diff --git a/cmd/txqr-tester/.gitattributes b/cmd/txqr-tester/.gitattributes new file mode 100644 index 0000000..cdde7b9 --- /dev/null +++ b/cmd/txqr-tester/.gitattributes @@ -0,0 +1,3 @@ +txqr-tester.js linguist-generated=true +txqr-tester.js.map linguist-generated=true +css/* linguist-vendored=true diff --git a/cmd/txqr-tester/app.go b/cmd/txqr-tester/app.go new file mode 100644 index 0000000..8d11e9f --- /dev/null +++ b/cmd/txqr-tester/app.go @@ -0,0 +1,76 @@ +package main + +import ( + "github.com/gopherjs/vecty" + "github.com/gopherjs/vecty/elem" + "github.com/gopherjs/vecty/event" +) + +// App is a top-level app component. +type App struct { + vecty.Core + + session *Session +} + +// NewApp creates and inits new app page. +func NewApp() *App { + app := &App{ + session: NewSession(), + } + + return app +} + +// Render implements the vecty.Component interface. +func (a *App) Render() vecty.ComponentOrHTML { + return elem.Body( + a.header(), + elem.Div( + vecty.Markup( + vecty.Class("columns"), + ), + // Left half + elem.Div( + vecty.Markup( + vecty.Class("column", "is-half"), + ), + elem.Div( + // TODO + vecty.If(a.session.state == StateNew, + a.StartQR()), + ), + ), + // Right half + elem.Div( + vecty.Markup( + vecty.Class("column", "is-half"), + ), + elem.Div( + // TODO + elem.Heading1(vecty.Text("Right")), + ), + ), + ), + vecty.Markup( + event.KeyDown(a.KeyListener), + ), + ) +} + +func (a *App) header() *vecty.HTML { + return elem.Section( + elem.Heading1( + vecty.Markup( + vecty.Class("title", "has-text-weight-light"), + ), + vecty.Text("TXQR Automated Tester"), + ), + elem.Heading6( + vecty.Markup( + vecty.Class("subtitle", "has-text-weight-light"), + ), + vecty.Text("Run TQXR Reader app on your smartphone and point to the QR code to start testing."), + ), + ) +} diff --git a/cmd/txqr-tester/css/bulma-extensions.min.css b/cmd/txqr-tester/css/bulma-extensions.min.css new file mode 100644 index 0000000..c3b03f2 --- /dev/null +++ b/cmd/txqr-tester/css/bulma-extensions.min.css @@ -0,0 +1 @@ +@-webkit-keyframes spinAround{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes spinAround{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.accordions .accordion:not(:last-child),.steps:not(:last-child){margin-bottom:1.5rem}.pageloader{bottom:0;left:0;position:absolute;right:0;top:0}.accordions .accordion{display:flex;flex-direction:column;background-color:#f5f5f5;border-radius:4px;font-size:1rem}.accordions .accordion strong{color:currentColor}.accordions .accordion a:not(.button):not(.tag){color:currentColor;text-decoration:underline}.accordions .accordion.is-small{font-size:.75rem}.accordions .accordion.is-medium{font-size:1.25rem}.accordions .accordion.is-large{font-size:1.5rem}.accordions .accordion:not(:first-child) .accordion-header{border-radius:0}.accordions .accordion:not(:last-child){margin-bottom:0}.accordions .accordion:not(:last-child) .accordion-content{border-radius:0}.accordions .accordion .toggle,.accordions .accordion [data-action=toggle]{cursor:pointer}.accordions .accordion .accordion-header{align-items:center;background-color:#4a4a4a;border-radius:4px 4px 0 0;color:#fff;display:flex;justify-content:space-between;line-height:1.25;padding:.5em .75em;position:relative}.accordions .accordion .accordion-header .toggle{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,.2);border:none;border-radius:290486px;display:inline-block;flex-grow:0;flex-shrink:0;margin-left:.75em;height:20px;width:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:0;position:relative;vertical-align:top}.accordions .accordion .accordion-header .toggle::before{color:#fff;display:block;left:0;position:absolute;top:-.1em;right:0;bottom:0;content:'\002B'}.accordions .accordion .accordion-header .toggle::after{display:none}.accordions .accordion .accordion-header+.accordion-body{overflow-y:hidden;max-height:0;color:#4a4a4a;border:1px solid #dbdbdb;border-radius:4px;border-top-left-radius:0;border-top-right-radius:0;border-top:none;transition:max-height .2s ease}.accordions .accordion .accordion-header+.accordion-body .accordion-content{padding:1em 1.25em}.accordions .accordion .accordion-header+.accordion-body .accordion-content code,.accordions .accordion .accordion-header+.accordion-body .accordion-content pre{background-color:#fff}.accordions .accordion .accordion-header+.accordion-body .accordion-content pre code{background-color:transparent}.accordions .accordion.is-active .accordion-header .toggle::before{content:'\002D'}.accordions .accordion.is-active .accordion-body{max-height:100em}.accordions .accordion.is-white{background-color:#fff}.accordions .accordion.is-white .accordion-header{background-color:#fff;color:#0a0a0a}.accordions .accordion.is-white .accordion-content{border-color:#fff;color:#4d4d4d}.accordions .accordion.is-black{background-color:#fafafa}.accordions .accordion.is-black .accordion-header{background-color:#0a0a0a;color:#fff}.accordions .accordion.is-black .accordion-content{border-color:#0a0a0a;color:#090909}.accordions .accordion.is-light{background-color:#fafafa}.accordions .accordion.is-light .accordion-header{background-color:#f5f5f5;color:#363636}.accordions .accordion.is-light .accordion-content{border-color:#f5f5f5;color:#505050}.accordions .accordion.is-dark{background-color:#fafafa}.accordions .accordion.is-dark .accordion-header{background-color:#363636;color:#f5f5f5}.accordions .accordion.is-dark .accordion-content{border-color:#363636;color:#2a2a2a}.accordions .accordion.is-primary{background-color:#f5fffd}.accordions .accordion.is-primary .accordion-header{background-color:#00d1b2;color:#fff}.accordions .accordion.is-primary .accordion-content{border-color:#00d1b2;color:#021310}.accordions .accordion.is-link{background-color:#f6f9fe}.accordions .accordion.is-link .accordion-header{background-color:#3273dc;color:#fff}.accordions .accordion.is-link .accordion-content{border-color:#3273dc;color:#22509a}.accordions .accordion.is-info{background-color:#f6fbfe}.accordions .accordion.is-info .accordion-header{background-color:#209cee;color:#fff}.accordions .accordion.is-info .accordion-content{border-color:#209cee;color:#12537e}.accordions .accordion.is-success{background-color:#f6fef9}.accordions .accordion.is-success .accordion-header{background-color:#23d160;color:#fff}.accordions .accordion.is-success .accordion-content{border-color:#23d160;color:#0e301a}.accordions .accordion.is-warning{background-color:#fffdf5}.accordions .accordion.is-warning .accordion-header{background-color:#ffdd57;color:rgba(0,0,0,.7)}.accordions .accordion.is-warning .accordion-content{border-color:#ffdd57;color:#3b3108}.accordions .accordion.is-danger{background-color:#fff5f7}.accordions .accordion.is-danger .accordion-header{background-color:#ff3860;color:#fff}.accordions .accordion.is-danger .accordion-content{border-color:#ff3860;color:#cd0930}.badge{position:relative;white-space:nowrap;position:relative}.badge[data-badge]::after{position:absolute;left:100%;margin:0;background:#00d1b2;background-clip:padding-box;border-radius:1rem;box-shadow:0 0 0 .1rem #fff;color:#fff;content:attr(data-badge);display:inline-block}.badge:not([data-badge=""])::after{padding:.3rem .5rem;text-align:center;white-space:nowrap}.badge[data-badge=""]::after{display:inline-block;vertical-align:inherit}.badge.is-badge-white:not([data-badge])::after,.badge.is-badge-white[data-badge]::after{background:#fff;color:#0a0a0a}.badge.is-badge-black:not([data-badge])::after,.badge.is-badge-black[data-badge]::after{background:#0a0a0a;color:#fff}.badge.is-badge-light:not([data-badge])::after,.badge.is-badge-light[data-badge]::after{background:#f5f5f5;color:#363636}.badge.is-badge-dark:not([data-badge])::after,.badge.is-badge-dark[data-badge]::after{background:#363636;color:#f5f5f5}.badge.is-badge-primary:not([data-badge])::after,.badge.is-badge-primary[data-badge]::after{background:#00d1b2;color:#fff}.badge.is-badge-link:not([data-badge])::after,.badge.is-badge-link[data-badge]::after{background:#3273dc;color:#fff}.badge.is-badge-info:not([data-badge])::after,.badge.is-badge-info[data-badge]::after{background:#209cee;color:#fff}.badge.is-badge-success:not([data-badge])::after,.badge.is-badge-success[data-badge]::after{background:#23d160;color:#fff}.badge.is-badge-warning:not([data-badge])::after,.badge.is-badge-warning[data-badge]::after{background:#ffdd57;color:rgba(0,0,0,.7)}.badge.is-badge-danger:not([data-badge])::after,.badge.is-badge-danger[data-badge]::after{background:#ff3860;color:#fff}.badge.is-badge-outlined[data-badge]::after{background-color:#fff;box-shadow:none;border:.1rem solid #00d1b2;color:#00d1b2}.badge.is-badge-outlined.is-badge-white[data-badge]::after{background:#fff;box-shadow:none;border:.1rem solid #fff;color:#fff}.badge.is-badge-outlined.is-badge-black[data-badge]::after{background:#fff;box-shadow:none;border:.1rem solid #0a0a0a;color:#0a0a0a}.badge.is-badge-outlined.is-badge-light[data-badge]::after{background:#fff;box-shadow:none;border:.1rem solid #f5f5f5;color:#f5f5f5}.badge.is-badge-outlined.is-badge-dark[data-badge]::after{background:#fff;box-shadow:none;border:.1rem solid #363636;color:#363636}.badge.is-badge-outlined.is-badge-primary[data-badge]::after{background:#fff;box-shadow:none;border:.1rem solid #00d1b2;color:#00d1b2}.badge.is-badge-outlined.is-badge-link[data-badge]::after{background:#fff;box-shadow:none;border:.1rem solid #3273dc;color:#3273dc}.badge.is-badge-outlined.is-badge-info[data-badge]::after{background:#fff;box-shadow:none;border:.1rem solid #209cee;color:#209cee}.badge.is-badge-outlined.is-badge-success[data-badge]::after{background:#fff;box-shadow:none;border:.1rem solid #23d160;color:#23d160}.badge.is-badge-outlined.is-badge-warning[data-badge]::after{background:#fff;box-shadow:none;border:.1rem solid #ffdd57;color:#ffdd57}.badge.is-badge-outlined.is-badge-danger[data-badge]::after{background:#fff;box-shadow:none;border:.1rem solid #ff3860;color:#ff3860}.badge[data-badge]::after{top:calc(0px - (1rem / 2));left:calc(100% - (1rem / 2));min-height:1rem;min-width:1rem}.badge:not([data-badge=""])::after{font-size:.75rem;line-height:.5rem}.badge[data-badge=""]::after{width:1rem}.badge.is-badge-left::after{left:calc(0px - (1rem / 2))}.badge.is-badge-bottom::after{top:calc(100% - (1rem / 2))}.badge.is-badge-bottom-left::after{left:calc(0px - (1rem / 2));top:calc(100% - (1rem / 2))}.badge.is-badge-small[data-badge]::after{top:calc(0px - (.75rem / 2));left:calc(100% - (.75rem / 2));min-height:.75rem;min-width:.75rem}.badge.is-badge-small:not([data-badge=""])::after{font-size:.5625rem;line-height:.375rem}.badge.is-badge-small[data-badge=""]::after{width:.75rem}.badge.is-badge-small.is-badge-left::after{left:calc(0px - (.75rem / 2))}.badge.is-badge-small.is-badge-bottom::after{top:calc(100% - (.75rem / 2))}.badge.is-badge-small.is-badge-bottom-left::after{left:calc(0px - (.75rem / 2));top:calc(100% - (.75rem / 2))}.badge.is-badge-medium[data-badge]::after{top:calc(0px - (1.25rem / 2));left:calc(100% - (1.25rem / 2));min-height:1.25rem;min-width:1.25rem}.badge.is-badge-medium:not([data-badge=""])::after{font-size:.9375rem;line-height:.625rem}.badge.is-badge-medium[data-badge=""]::after{width:1.25rem}.badge.is-badge-medium.is-badge-left::after{left:calc(0px - (1.25rem / 2))}.badge.is-badge-medium.is-badge-bottom::after{top:calc(100% - (1.25rem / 2))}.badge.is-badge-medium.is-badge-bottom-left::after{left:calc(0px - (1.25rem / 2));top:calc(100% - (1.25rem / 2))}.badge.is-badge-large[data-badge]::after{top:calc(0px - (1.5rem / 2));left:calc(100% - (1.5rem / 2));min-height:1.5rem;min-width:1.5rem}.badge.is-badge-large:not([data-badge=""])::after{font-size:1.125rem;line-height:.75rem}.badge.is-badge-large[data-badge=""]::after{width:1.5rem}.badge.is-badge-large.is-badge-left::after{left:calc(0px - (1.5rem / 2))}.badge.is-badge-large.is-badge-bottom::after{top:calc(100% - (1.5rem / 2))}.badge.is-badge-large.is-badge-bottom-left::after{left:calc(0px - (1.5rem / 2));top:calc(100% - (1.5rem / 2))}.calendar{background:#fff;border:.1rem solid #f5f5f5;border-radius:2px;display:block;width:28rem;text-align:center;max-width:95%;margin:auto}.calendar.is-active{display:initial}.calendar .calendar-header{display:flex;flex:1;text-align:left;position:relative;padding:0 .5rem}@media screen and (max-width:768px){.calendar .calendar-header{font-size:.5rem}}.calendar .calendar-header .calendar-selection-from,.calendar .calendar-header .calendar-selection-to{font-size:.75rem;color:#b5b5b5;text-transform:uppercase}.calendar .calendar-header .calendar-selection-end,.calendar .calendar-header .calendar-selection-start{padding:.5rem;display:flex;flex:1;flex-direction:column}.calendar .calendar-header .calendar-selection-end .calendar-selection-date,.calendar .calendar-header .calendar-selection-start .calendar-selection-date{flex-direction:row;display:flex}.calendar .calendar-header .calendar-selection-end .calendar-selection-day,.calendar .calendar-header .calendar-selection-start .calendar-selection-day{flex:0;text-transform:capitalize;font-size:3rem;margin-right:.5rem;color:#5d5d5e}@media screen and (max-width:768px){.calendar .calendar-header .calendar-selection-end .calendar-selection-day,.calendar .calendar-header .calendar-selection-start .calendar-selection-day{font-size:2rem}}.calendar .calendar-header .calendar-selection-end .calendar-selection-details,.calendar .calendar-header .calendar-selection-start .calendar-selection-details{justify-content:center;display:flex;flex-direction:column}.calendar .calendar-header .calendar-selection-end .calendar-selection-month,.calendar .calendar-header .calendar-selection-start .calendar-selection-month{color:#4a4a4a;text-transform:capitalize}.calendar .calendar-header .calendar-selection-end .calendar-selection-weekday,.calendar .calendar-header .calendar-selection-start .calendar-selection-weekday{font-size:12px;color:#b6b4b6;text-transform:capitalize;text-align:left}.calendar .calendar-header .calendar-selection-end::before,.calendar .calendar-header .calendar-selection-end:before{content:">";font:2rem Consolas;color:#f5f5f5;font-weight:700;position:absolute;left:50%;top:50%;-webkit-transform:translateY(-50%) translateX(-50%);transform:translateY(-50%) translateX(-50%)}.calendar .calendar-header .calendar-selection-end .calendar-selection-to{padding-left:1rem}.calendar .calendar-header .calendar-selection-end .calendar-selection-date{justify-content:flex-end}.calendar .calendar-nav{background:#00d1b2;color:#fff;border-top-left-radius:2px;border-top-right-radius:2px;display:flex;align-items:center;justify-content:space-between;padding:.5em;flex-direction:row}.calendar .calendar-nav .calendar-nav-month-year{flex-direction:row;display:flex}.calendar .calendar-nav .calendar-nav-month,.calendar .calendar-nav .calendar-nav-year{text-decoration:none;font-size:1rem;color:#fff}.calendar .calendar-nav .calendar-nav-month:hover,.calendar .calendar-nav .calendar-nav-year:hover{cursor:pointer}.calendar .calendar-nav .calendar-nav-month{text-transform:capitalize}.calendar .calendar-nav .calendar-nav-next,.calendar .calendar-nav .calendar-nav-previous{flex-basis:auto;flex-grow:0;flex-shrink:0;text-decoration:none;color:#fff}.calendar .calendar-nav .calendar-nav-next:hover,.calendar .calendar-nav .calendar-nav-previous:hover{background-color:transparent}.calendar .calendar-nav .calendar-nav-next:hover svg,.calendar .calendar-nav .calendar-nav-previous:hover svg{stroke-width:1em}.calendar .calendar-nav .calendar-nav-next svg,.calendar .calendar-nav .calendar-nav-previous svg{stroke:currentColor;width:11.25px;height:18px}.calendar .calendar-body .calendar-dates{display:none}.calendar .calendar-body .calendar-dates.is-active{display:flex;flex-direction:column}.calendar .calendar-body .calendar-months,.calendar .calendar-body .calendar-years{display:none}.calendar .calendar-body .calendar-months.is-active,.calendar .calendar-body .calendar-years.is-active{display:flex;flex-direction:row}.calendar .calendar-body .calendar-weekdays{display:flex;flex-wrap:wrap;justify-content:space-around;padding:.3rem 0;background:0 0;color:#fff;font-size:.75rem}.calendar .calendar-body .calendar-weekdays .calendar-date{flex:0 0 14.28%;max-width:14.28%;background:0 0!important;color:#b5b5b5;padding:.3rem}.calendar .calendar-body .calendar-dates .calendar-days{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-around;padding:0;color:#7a7a7a}.calendar .calendar-body .calendar-dates .calendar-days .calendar-date{flex:0 0 14.28%;max-width:14.28%;border:0;padding:.1rem 0;background:#f5f5f5}.calendar .calendar-body .calendar-dates .calendar-days .calendar-date .date-item{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:0 0;border:.1rem solid transparent;border-radius:100%;color:#4a4a4a;cursor:pointer;height:2.2rem;line-height:1.4rem;outline:0;padding:.3rem;position:relative;text-align:center;text-decoration:none;transition:all .2s ease;vertical-align:middle;white-space:nowrap;width:2.2rem}.calendar .calendar-body .calendar-dates .calendar-days .calendar-date .date-item.is-today{background:0 0;border:.1rem dotted #00d1b2;color:#00d1b2}.calendar .calendar-body .calendar-dates .calendar-days .calendar-date .date-item:focus{background:#fff;border-color:#fff;color:rgba(0,0,0,.7);text-decoration:none}.calendar .calendar-body .calendar-dates .calendar-days .calendar-date .date-item.is-active{background:#00d1b2;border-color:#00d1b2;border-radius:25091983px;color:#fff}.calendar .calendar-body .calendar-dates .calendar-days .calendar-date .date-item:hover{background:#fff;border:.1rem solid #00d1b2;color:rgba(0,0,0,.7);text-decoration:none}.calendar .calendar-body .calendar-dates .calendar-days .calendar-date.is-disabled .calendar-event,.calendar .calendar-body .calendar-dates .calendar-days .calendar-date.is-disabled .date-item,.calendar .calendar-body .calendar-dates .calendar-days .calendar-date[disabled] .calendar-event,.calendar .calendar-body .calendar-dates .calendar-days .calendar-date[disabled] .date-item{cursor:default;opacity:.25;pointer-events:none}.calendar .calendar-body .calendar-dates .calendar-days .calendar-date.is-current-month{background:0 0}.calendar .calendar-body .calendar-dates .calendar-days .calendar-date.calendar-range{position:relative;background:#00d1b2}.calendar .calendar-body .calendar-dates .calendar-days .calendar-date.calendar-range::before{background:#00d1b2;border:.1rem solid #00d1b2;content:"";height:100%;width:100%;position:absolute;right:0;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.calendar .calendar-body .calendar-dates .calendar-days .calendar-date.calendar-range.calendar-range-end,.calendar .calendar-body .calendar-dates .calendar-days .calendar-date.calendar-range.calendar-range-start{border-radius:25091983px}.calendar .calendar-body .calendar-dates .calendar-days .calendar-date.calendar-range.calendar-range-start::before{left:53%}.calendar .calendar-body .calendar-dates .calendar-days .calendar-date.calendar-range.calendar-range-end::before{right:50%}.calendar .calendar-body .calendar-dates .calendar-days .calendar-date.calendar-range .date-item{background-color:#00d1b2;color:#fff}.calendar .calendar-body .calendar-months,.calendar .calendar-body .calendar-years{display:none;flex-direction:row;flex-wrap:wrap;padding:.5rem;max-height:17rem;overflow-y:auto}.calendar .calendar-body .calendar-months.is-active,.calendar .calendar-body .calendar-years.is-active{display:flex}.calendar .calendar-body .calendar-months .calendar-month,.calendar .calendar-body .calendar-months .calendar-year,.calendar .calendar-body .calendar-years .calendar-month,.calendar .calendar-body .calendar-years .calendar-year{padding:.5rem;margin:.5rem;font-size:1rem;flex:calc(25% - 1rem);text-transform:capitalize;border-radius:25091983px;border:.1rem solid transparent}.calendar .calendar-body .calendar-months .calendar-month.is-active,.calendar .calendar-body .calendar-months .calendar-year.is-active,.calendar .calendar-body .calendar-years .calendar-month.is-active,.calendar .calendar-body .calendar-years .calendar-year.is-active{background:#00d1b2;border-color:#00d1b2;color:#fff}.calendar .calendar-body .calendar-months .calendar-month:hover,.calendar .calendar-body .calendar-months .calendar-year:hover,.calendar .calendar-body .calendar-years .calendar-month:hover,.calendar .calendar-body .calendar-years .calendar-year:hover{cursor:pointer;background:#fff;border:.1rem solid #00d1b2;color:rgba(0,0,0,.7)}.calendar .calendar-footer{display:flex;flex:1;justify-content:space-evenly;margin-top:.5rem}.calendar .calendar-footer>*{text-decoration:none!important}.calendar.is-large{max-width:100%}.calendar.is-large .calendar-body .calendar-date{border-bottom:.1rem solid #f5f5f5;border-right:.1rem solid #f5f5f5;display:flex;flex-direction:column;height:11rem;padding:0}.calendar.is-large .calendar-body .calendar-date:nth-child(7n){border-right:0}.calendar.is-large .calendar-body .calendar-date:nth-last-child(-n+7){border-bottom:0}.calendar.is-large .date-item{align-self:flex-end;height:2.2rem;margin-right:.5rem;margin-top:.5rem}.calendar.is-large .calendar-range::before{top:1.9rem}.calendar.is-large .calendar-range.calendar-range-start::before{left:auto;width:1.9rem}.calendar.is-large .calendar-range.calendar-range-end::before{right:1.9rem}.calendar.is-large .calendar-events{flex-grow:1;line-height:1;overflow-y:auto;padding:.5rem}.calendar.is-large .calendar-event{background-color:#7a7a7a;border-radius:2px;color:#fff;display:block;font-size:1rem;margin:.2rem auto;overflow:hidden;padding:.3rem .4rem;text-align:left;text-overflow:ellipsis;vertical-align:baseline;white-space:nowrap}.calendar.is-large .calendar-event.is-white{background-color:#fff;color:#0a0a0a}.calendar.is-large .calendar-event.is-black{background-color:#0a0a0a;color:#fff}.calendar.is-large .calendar-event.is-light{background-color:#f5f5f5;color:#363636}.calendar.is-large .calendar-event.is-dark{background-color:#363636;color:#f5f5f5}.calendar.is-large .calendar-event.is-primary{background-color:#00d1b2;color:#fff}.calendar.is-large .calendar-event.is-link{background-color:#3273dc;color:#fff}.calendar.is-large .calendar-event.is-info{background-color:#209cee;color:#fff}.calendar.is-large .calendar-event.is-success{background-color:#23d160;color:#fff}.calendar.is-large .calendar-event.is-warning{background-color:#ffdd57;color:rgba(0,0,0,.7)}.calendar.is-large .calendar-event.is-danger{background-color:#ff3860;color:#fff}.datepicker{display:none}.datepicker.is-active{display:flex}.datepicker.is-active .calendar{position:fixed;z-index:40;position:relative;margin:0 auto;max-height:calc(100vh - 40px)}.datepicker .calendar{background:#fff;border:.1rem solid #f5f5f5;border-radius:2px;display:block;width:28rem;text-align:center;max-width:95%;margin:auto}.datepicker .calendar.is-active{display:initial}.datepicker .calendar .calendar-header{display:flex;flex:1;text-align:left;position:relative;padding:0 .5rem}@media screen and (max-width:768px){.datepicker .calendar .calendar-header{font-size:.5rem}}.datepicker .calendar .calendar-header .calendar-selection-from,.datepicker .calendar .calendar-header .calendar-selection-to{font-size:.75rem;color:#b5b5b5;text-transform:uppercase}.datepicker .calendar .calendar-header .calendar-selection-end,.datepicker .calendar .calendar-header .calendar-selection-start{padding:.5rem;display:flex;flex:1;flex-direction:column}.datepicker .calendar .calendar-header .calendar-selection-end .calendar-selection-date,.datepicker .calendar .calendar-header .calendar-selection-start .calendar-selection-date{flex-direction:row;display:flex}.datepicker .calendar .calendar-header .calendar-selection-end .calendar-selection-day,.datepicker .calendar .calendar-header .calendar-selection-start .calendar-selection-day{flex:0;text-transform:capitalize;font-size:3rem;margin-right:.5rem;color:#5d5d5e}@media screen and (max-width:768px){.datepicker .calendar .calendar-header .calendar-selection-end .calendar-selection-day,.datepicker .calendar .calendar-header .calendar-selection-start .calendar-selection-day{font-size:2rem}}.datepicker .calendar .calendar-header .calendar-selection-end .calendar-selection-details,.datepicker .calendar .calendar-header .calendar-selection-start .calendar-selection-details{justify-content:center;display:flex;flex-direction:column}.datepicker .calendar .calendar-header .calendar-selection-end .calendar-selection-month,.datepicker .calendar .calendar-header .calendar-selection-start .calendar-selection-month{color:#4a4a4a;text-transform:capitalize}.datepicker .calendar .calendar-header .calendar-selection-end .calendar-selection-weekday,.datepicker .calendar .calendar-header .calendar-selection-start .calendar-selection-weekday{font-size:12px;color:#b6b4b6;text-transform:capitalize;text-align:left}.datepicker .calendar .calendar-header .calendar-selection-end::before,.datepicker .calendar .calendar-header .calendar-selection-end:before{content:">";font:2rem Consolas;color:#f5f5f5;font-weight:700;position:absolute;left:50%;top:50%;-webkit-transform:translateY(-50%) translateX(-50%);transform:translateY(-50%) translateX(-50%)}.datepicker .calendar .calendar-header .calendar-selection-end .calendar-selection-to{padding-left:1rem}.datepicker .calendar .calendar-header .calendar-selection-end .calendar-selection-date{justify-content:flex-end}.datepicker .calendar .calendar-nav{background:#00d1b2;color:#fff;border-top-left-radius:2px;border-top-right-radius:2px;display:flex;align-items:center;justify-content:space-between;padding:.5em;flex-direction:row}.datepicker .calendar .calendar-nav .calendar-nav-month-year{flex-direction:row;display:flex}.datepicker .calendar .calendar-nav .calendar-nav-month,.datepicker .calendar .calendar-nav .calendar-nav-year{text-decoration:none;font-size:1rem;color:#fff}.datepicker .calendar .calendar-nav .calendar-nav-month:hover,.datepicker .calendar .calendar-nav .calendar-nav-year:hover{cursor:pointer}.datepicker .calendar .calendar-nav .calendar-nav-month{text-transform:capitalize}.datepicker .calendar .calendar-nav .calendar-nav-next,.datepicker .calendar .calendar-nav .calendar-nav-previous{flex-basis:auto;flex-grow:0;flex-shrink:0;text-decoration:none;color:#fff}.datepicker .calendar .calendar-nav .calendar-nav-next:hover,.datepicker .calendar .calendar-nav .calendar-nav-previous:hover{background-color:transparent}.datepicker .calendar .calendar-nav .calendar-nav-next:hover svg,.datepicker .calendar .calendar-nav .calendar-nav-previous:hover svg{stroke-width:1em}.datepicker .calendar .calendar-nav .calendar-nav-next svg,.datepicker .calendar .calendar-nav .calendar-nav-previous svg{stroke:currentColor;width:11.25px;height:18px}.datepicker .calendar .calendar-body .calendar-dates{display:none}.datepicker .calendar .calendar-body .calendar-dates.is-active{display:flex;flex-direction:column}.datepicker .calendar .calendar-body .calendar-months,.datepicker .calendar .calendar-body .calendar-years{display:none}.datepicker .calendar .calendar-body .calendar-months.is-active,.datepicker .calendar .calendar-body .calendar-years.is-active{display:flex;flex-direction:row}.datepicker .calendar .calendar-body .calendar-weekdays{display:flex;flex-wrap:wrap;justify-content:space-around;padding:.3rem 0;background:0 0;color:#fff;font-size:.75rem}.datepicker .calendar .calendar-body .calendar-weekdays .calendar-date{flex:0 0 14.28%;max-width:14.28%;background:0 0!important;color:#b5b5b5;padding:.3rem}.datepicker .calendar .calendar-body .calendar-dates .calendar-days{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-around;padding:0;color:#7a7a7a}.datepicker .calendar .calendar-body .calendar-dates .calendar-days .calendar-date{flex:0 0 14.28%;max-width:14.28%;border:0;padding:.1rem 0;background:#f5f5f5}.datepicker .calendar .calendar-body .calendar-dates .calendar-days .calendar-date .date-item{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:0 0;border:.1rem solid transparent;border-radius:100%;color:#4a4a4a;cursor:pointer;height:2.2rem;line-height:1.4rem;outline:0;padding:.3rem;position:relative;text-align:center;text-decoration:none;transition:all .2s ease;vertical-align:middle;white-space:nowrap;width:2.2rem}.datepicker .calendar .calendar-body .calendar-dates .calendar-days .calendar-date .date-item.is-today{background:0 0;border:.1rem dotted #00d1b2;color:#00d1b2}.datepicker .calendar .calendar-body .calendar-dates .calendar-days .calendar-date .date-item:focus{background:#fff;border-color:#fff;color:rgba(0,0,0,.7);text-decoration:none}.datepicker .calendar .calendar-body .calendar-dates .calendar-days .calendar-date .date-item.is-active{background:#00d1b2;border-color:#00d1b2;border-radius:25091983px;color:#fff}.datepicker .calendar .calendar-body .calendar-dates .calendar-days .calendar-date .date-item:hover{background:#fff;border:.1rem solid #00d1b2;color:rgba(0,0,0,.7);text-decoration:none}.datepicker .calendar .calendar-body .calendar-dates .calendar-days .calendar-date.is-disabled .calendar-event,.datepicker .calendar .calendar-body .calendar-dates .calendar-days .calendar-date.is-disabled .date-item,.datepicker .calendar .calendar-body .calendar-dates .calendar-days .calendar-date[disabled] .calendar-event,.datepicker .calendar .calendar-body .calendar-dates .calendar-days .calendar-date[disabled] .date-item{cursor:default;opacity:.25;pointer-events:none}.datepicker .calendar .calendar-body .calendar-dates .calendar-days .calendar-date.is-current-month{background:0 0}.datepicker .calendar .calendar-body .calendar-dates .calendar-days .calendar-date.calendar-range{position:relative;background:#00d1b2}.datepicker .calendar .calendar-body .calendar-dates .calendar-days .calendar-date.calendar-range::before{background:#00d1b2;border:.1rem solid #00d1b2;content:"";height:100%;width:100%;position:absolute;right:0;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.datepicker .calendar .calendar-body .calendar-dates .calendar-days .calendar-date.calendar-range.calendar-range-end,.datepicker .calendar .calendar-body .calendar-dates .calendar-days .calendar-date.calendar-range.calendar-range-start{border-radius:25091983px}.datepicker .calendar .calendar-body .calendar-dates .calendar-days .calendar-date.calendar-range.calendar-range-start::before{left:53%}.datepicker .calendar .calendar-body .calendar-dates .calendar-days .calendar-date.calendar-range.calendar-range-end::before{right:50%}.datepicker .calendar .calendar-body .calendar-dates .calendar-days .calendar-date.calendar-range .date-item{background-color:#00d1b2;color:#fff}.datepicker .calendar .calendar-body .calendar-months,.datepicker .calendar .calendar-body .calendar-years{display:none;flex-direction:row;flex-wrap:wrap;padding:.5rem;max-height:17rem;overflow-y:auto}.datepicker .calendar .calendar-body .calendar-months.is-active,.datepicker .calendar .calendar-body .calendar-years.is-active{display:flex}.datepicker .calendar .calendar-body .calendar-months .calendar-month,.datepicker .calendar .calendar-body .calendar-months .calendar-year,.datepicker .calendar .calendar-body .calendar-years .calendar-month,.datepicker .calendar .calendar-body .calendar-years .calendar-year{padding:.5rem;margin:.5rem;font-size:1rem;flex:calc(25% - 1rem);text-transform:capitalize;border-radius:25091983px;border:.1rem solid transparent}.datepicker .calendar .calendar-body .calendar-months .calendar-month.is-active,.datepicker .calendar .calendar-body .calendar-months .calendar-year.is-active,.datepicker .calendar .calendar-body .calendar-years .calendar-month.is-active,.datepicker .calendar .calendar-body .calendar-years .calendar-year.is-active{background:#00d1b2;border-color:#00d1b2;color:#fff}.datepicker .calendar .calendar-body .calendar-months .calendar-month:hover,.datepicker .calendar .calendar-body .calendar-months .calendar-year:hover,.datepicker .calendar .calendar-body .calendar-years .calendar-month:hover,.datepicker .calendar .calendar-body .calendar-years .calendar-year:hover{cursor:pointer;background:#fff;border:.1rem solid #00d1b2;color:rgba(0,0,0,.7)}.datepicker .calendar .calendar-footer{display:flex;flex:1;justify-content:space-evenly;margin-top:.5rem}.datepicker .calendar .calendar-footer>*{text-decoration:none!important}.datepicker .calendar.is-large{max-width:100%}.datepicker .calendar.is-large .calendar-body .calendar-date{border-bottom:.1rem solid #f5f5f5;border-right:.1rem solid #f5f5f5;display:flex;flex-direction:column;height:11rem;padding:0}.datepicker .calendar.is-large .calendar-body .calendar-date:nth-child(7n){border-right:0}.datepicker .calendar.is-large .calendar-body .calendar-date:nth-last-child(-n+7){border-bottom:0}.datepicker .calendar.is-large .date-item{align-self:flex-end;height:2.2rem;margin-right:.5rem;margin-top:.5rem}.datepicker .calendar.is-large .calendar-range::before{top:1.9rem}.datepicker .calendar.is-large .calendar-range.calendar-range-start::before{left:auto;width:1.9rem}.datepicker .calendar.is-large .calendar-range.calendar-range-end::before{right:1.9rem}.datepicker .calendar.is-large .calendar-events{flex-grow:1;line-height:1;overflow-y:auto;padding:.5rem}.datepicker .calendar.is-large .calendar-event{background-color:#7a7a7a;border-radius:2px;color:#fff;display:block;font-size:1rem;margin:.2rem auto;overflow:hidden;padding:.3rem .4rem;text-align:left;text-overflow:ellipsis;vertical-align:baseline;white-space:nowrap}.datepicker .calendar.is-large .calendar-event.is-white{background-color:#fff;color:#0a0a0a}.datepicker .calendar.is-large .calendar-event.is-black{background-color:#0a0a0a;color:#fff}.datepicker .calendar.is-large .calendar-event.is-light{background-color:#f5f5f5;color:#363636}.datepicker .calendar.is-large .calendar-event.is-dark{background-color:#363636;color:#f5f5f5}.datepicker .calendar.is-large .calendar-event.is-primary{background-color:#00d1b2;color:#fff}.datepicker .calendar.is-large .calendar-event.is-link{background-color:#3273dc;color:#fff}.datepicker .calendar.is-large .calendar-event.is-info{background-color:#209cee;color:#fff}.datepicker .calendar.is-large .calendar-event.is-success{background-color:#23d160;color:#fff}.datepicker .calendar.is-large .calendar-event.is-warning{background-color:#ffdd57;color:rgba(0,0,0,.7)}.datepicker .calendar.is-large .calendar-event.is-danger{background-color:#ff3860;color:#fff}.carousel{position:relative;overflow:hidden}.carousel .carousel-container{width:100%;position:relative;border:none;display:flex;margin:0;padding:0;left:-100%;-webkit-transform:translateX(100%);transform:translateX(100%)}.carousel .carousel-container .carousel-item{display:block;position:relative;flex:1 0 100%}.carousel .carousel-container .carousel-item.has-background .is-background{-o-object-fit:cover;object-fit:cover;-o-object-position:center center;object-position:center center;height:100%;width:100%}.carousel .carousel-container .carousel-item .title{position:absolute;left:0;right:0;bottom:0;padding:1.5em;margin:0;text-align:center;background:rgba(255,255,255,.6);font-size:.75rem}.carousel .carousel-navigation{display:flex;justify-content:space-around;width:100%;pointer-events:none}.carousel .carousel-navigation .carousel-nav-left,.carousel .carousel-navigation .carousel-nav-right{padding:1em;pointer-events:auto}.carousel .carousel-navigation.is-centered{justify-content:center}.carousel .carousel-navigation.is-overlay{top:50%;-webkit-transform:perspective(1px) translateY(-50%);transform:perspective(1px) translateY(-50%);bottom:auto;left:auto;right:auto;align-items:center;justify-content:space-between;z-index:99}.carousel .carousel-navigation.is-overlay .carousel-nav-left,.carousel .carousel-navigation.is-overlay .carousel-nav-right{height:2.2em;width:2em;background:rgba(255,255,255,.7);display:flex;justify-content:center;align-items:center;color:#4a4a4a;position:absolute;left:0}.carousel .carousel-navigation.is-overlay .carousel-nav-left:hover,.carousel .carousel-navigation.is-overlay .carousel-nav-right:hover{cursor:pointer}.carousel .carousel-navigation.is-overlay .carousel-nav-right{left:auto;right:0}.carousel.is-reversing .carousel-container{-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel[data-size]:not(.carousel-animate-fade) .carousel-container .carousel-item{padding:1em}.hero.has-carousel{position:relative}.hero.has-carousel+.hero-body,.hero.has-carousel+.hero-footer,.hero.has-carousel+.hero-head{z-index:1}.hero.has-carousel .hero-carousel{display:flex;position:absolute;top:0;left:0;bottom:0;right:0;height:auto;border:none;margin:auto;padding:0;z-index:0}.hero.has-carousel .hero-carousel .carousel-container{height:auto!important}.hero-carousel{position:relative;overflow:hidden}.hero-carousel .carousel-container{width:100%;position:relative;border:none;display:flex;margin:0;padding:0;left:-100%;-webkit-transform:translateX(100%);transform:translateX(100%)}.hero-carousel .carousel-container .carousel-item{display:block;position:relative;flex:1 0 100%}.hero-carousel .carousel-container .carousel-item.has-background .is-background{-o-object-fit:cover;object-fit:cover;-o-object-position:center center;object-position:center center;height:100%;width:100%}.hero-carousel .carousel-container .carousel-item .title{position:absolute;left:0;right:0;bottom:0;padding:1.5em;margin:0;text-align:center;background:rgba(255,255,255,.6);font-size:.75rem}.hero-carousel .carousel-navigation{display:flex;justify-content:space-around;width:100%;pointer-events:none}.hero-carousel .carousel-navigation .carousel-nav-left,.hero-carousel .carousel-navigation .carousel-nav-right{padding:1em;pointer-events:auto}.hero-carousel .carousel-navigation.is-centered{justify-content:center}.hero-carousel .carousel-navigation.is-overlay{top:50%;-webkit-transform:perspective(1px) translateY(-50%);transform:perspective(1px) translateY(-50%);bottom:auto;left:auto;right:auto;align-items:center;justify-content:space-between;z-index:99}.hero-carousel .carousel-navigation.is-overlay .carousel-nav-left,.hero-carousel .carousel-navigation.is-overlay .carousel-nav-right{height:2.2em;width:2em;background:rgba(255,255,255,.7);display:flex;justify-content:center;align-items:center;color:#4a4a4a;position:absolute;left:0}.hero-carousel .carousel-navigation.is-overlay .carousel-nav-left:hover,.hero-carousel .carousel-navigation.is-overlay .carousel-nav-right:hover{cursor:pointer}.hero-carousel .carousel-navigation.is-overlay .carousel-nav-right{left:auto;right:0}.hero-carousel.is-reversing .carousel-container{-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel.carousel-animate-slide.carousel-animated .carousel-container,.hero-carousel.carousel-animate-slide.carousel-animated .carousel-container{-webkit-transform:none!important;transform:none!important;transition:-webkit-transform .5s ease-in-out;transition:transform .5s ease-in-out;transition:transform .5s ease-in-out,-webkit-transform .5s ease-in-out}.carousel.carousel-animate-fade .carousel-item,.hero-carousel.carousel-animate-fade .carousel-item{position:absolute;width:100%;height:100%;transition:opacity .5s ease-in-out}.carousel.carousel-animate-fade .carousel-item.is-active,.hero-carousel.carousel-animate-fade .carousel-item.is-active{opacity:1}.carousel.carousel-animate-fade .carousel-item:not(.is-active),.hero-carousel.carousel-animate-fade .carousel-item:not(.is-active){opacity:0}.is-checkradio[type=checkbox],.is-checkradio[type=radio]{outline:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:inline-block;position:absolute;opacity:0}.is-checkradio[type=checkbox]+label,.is-checkradio[type=radio]+label{position:relative;display:initial;cursor:pointer;vertical-align:middle;margin:.5em;padding:.2rem .5rem .2rem 0;border-radius:4px}.is-checkradio[type=checkbox]+label:first-of-type,.is-checkradio[type=radio]+label:first-of-type{margin-left:0}.is-checkradio[type=checkbox]+label:hover::before,.is-checkradio[type=checkbox]+label:hover:before,.is-checkradio[type=radio]+label:hover::before,.is-checkradio[type=radio]+label:hover:before{-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-name:hover-color;animation-name:hover-color}.is-checkradio[type=checkbox]+label::before,.is-checkradio[type=checkbox]+label:before,.is-checkradio[type=radio]+label::before,.is-checkradio[type=radio]+label:before{position:absolute;left:0;top:0;content:'';border:.1rem solid #dbdbdb}.is-checkradio[type=checkbox]+label::after,.is-checkradio[type=checkbox]+label:after,.is-checkradio[type=radio]+label::after,.is-checkradio[type=radio]+label:after{position:absolute;display:none;content:'';top:0}.is-checkradio[type=checkbox].is-rtl+label,.is-checkradio[type=radio].is-rtl+label{margin-right:0;margin-left:.5rem}.is-checkradio[type=checkbox].is-rtl+label::before,.is-checkradio[type=checkbox].is-rtl+label:before,.is-checkradio[type=radio].is-rtl+label::before,.is-checkradio[type=radio].is-rtl+label:before{left:auto;right:0}.is-checkradio[type=checkbox]:focus+label::before,.is-checkradio[type=checkbox]:focus+label:before,.is-checkradio[type=radio]:focus+label::before,.is-checkradio[type=radio]:focus+label:before{outline:1px dotted #b5b5b5}.is-checkradio[type=checkbox]:hover:not([disabled])+label::before,.is-checkradio[type=checkbox]:hover:not([disabled])+label:before,.is-checkradio[type=radio]:hover:not([disabled])+label::before,.is-checkradio[type=radio]:hover:not([disabled])+label:before{border-color:#00d1b2!important}.is-checkradio[type=checkbox]:checked+label::before,.is-checkradio[type=checkbox]:checked+label:before,.is-checkradio[type=radio]:checked+label::before,.is-checkradio[type=radio]:checked+label:before{border:.1rem solid #dbdbdb}.is-checkradio[type=checkbox]:checked[disabled],.is-checkradio[type=radio]:checked[disabled]{cursor:not-allowed}.is-checkradio[type=checkbox]:checked[disabled]+label,.is-checkradio[type=radio]:checked[disabled]+label{opacity:.5}.is-checkradio[type=checkbox]:checked+label::before,.is-checkradio[type=checkbox]:checked+label:before,.is-checkradio[type=radio]:checked+label::before,.is-checkradio[type=radio]:checked+label:before{-webkit-animation-name:none;animation-name:none}.is-checkradio[type=checkbox]:checked+label::after,.is-checkradio[type=checkbox]:checked+label:after,.is-checkradio[type=radio]:checked+label::after,.is-checkradio[type=radio]:checked+label:after{display:inline-block}.is-checkradio[type=checkbox][disabled],.is-checkradio[type=radio][disabled]{cursor:not-allowed}.is-checkradio[type=checkbox][disabled]+label,.is-checkradio[type=radio][disabled]+label{opacity:.5;cursor:not-allowed}.is-checkradio[type=checkbox][disabled]+label::after,.is-checkradio[type=checkbox][disabled]+label::before,.is-checkradio[type=checkbox][disabled]+label:after,.is-checkradio[type=checkbox][disabled]+label:before,.is-checkradio[type=checkbox][disabled]+label:hover,.is-checkradio[type=radio][disabled]+label::after,.is-checkradio[type=radio][disabled]+label::before,.is-checkradio[type=radio][disabled]+label:after,.is-checkradio[type=radio][disabled]+label:before,.is-checkradio[type=radio][disabled]+label:hover{cursor:not-allowed}.is-checkradio[type=checkbox][disabled]:hover,.is-checkradio[type=radio][disabled]:hover{cursor:not-allowed}.is-checkradio[type=checkbox][disabled]:hover::before,.is-checkradio[type=checkbox][disabled]:hover:before,.is-checkradio[type=radio][disabled]:hover::before,.is-checkradio[type=radio][disabled]:hover:before{-webkit-animation-name:none;animation-name:none}.is-checkradio[type=checkbox][disabled]::before,.is-checkradio[type=checkbox][disabled]:before,.is-checkradio[type=radio][disabled]::before,.is-checkradio[type=radio][disabled]:before{cursor:not-allowed}.is-checkradio[type=checkbox][disabled]::after,.is-checkradio[type=checkbox][disabled]:after,.is-checkradio[type=radio][disabled]::after,.is-checkradio[type=radio][disabled]:after{cursor:not-allowed}.is-checkradio[type=checkbox].has-no-border+label::before,.is-checkradio[type=checkbox].has-no-border+label:before,.is-checkradio[type=radio].has-no-border+label::before,.is-checkradio[type=radio].has-no-border+label:before{border:none!important}.is-checkradio[type=checkbox].is-block,.is-checkradio[type=radio].is-block{display:none!important}.is-checkradio[type=checkbox].is-block+label,.is-checkradio[type=radio].is-block+label{width:100%!important;background:#f5f5f5;color:rgba(0,0,0,.7);padding-right:.75em}.is-checkradio[type=checkbox].is-block+label::before,.is-checkradio[type=checkbox].is-block+label:before,.is-checkradio[type=radio].is-block+label::before,.is-checkradio[type=radio].is-block+label:before{border:none!important}.is-checkradio[type=checkbox]+label::before,.is-checkradio[type=checkbox]+label:before{border-radius:4px}.is-checkradio[type=checkbox]+label::after,.is-checkradio[type=checkbox]+label:after{box-sizing:border-box;-webkit-transform:rotate(45deg);transform:rotate(45deg);border-width:.1rem;border-style:solid;border-color:#00d1b2;border-top:0;border-left:0}.is-checkradio[type=checkbox].is-circle+label::before,.is-checkradio[type=checkbox].is-circle+label:before{border-radius:50%}.is-checkradio[type=checkbox]+label{font-size:1rem;padding-left:2rem}.is-checkradio[type=checkbox]+label::before,.is-checkradio[type=checkbox]+label:before{width:1.5rem;height:1.5rem}.is-checkradio[type=checkbox]+label::after,.is-checkradio[type=checkbox]+label:after{width:.375rem;height:.6rem;top:.405rem;left:.6rem}.is-checkradio[type=checkbox].is-block+label::after,.is-checkradio[type=checkbox].is-block+label:after{top:.585rem;left:.78rem}.is-checkradio[type=checkbox].is-rtl+label{padding-left:0;padding-right:2rem}.is-checkradio[type=checkbox].is-rtl+label::after,.is-checkradio[type=checkbox].is-rtl+label:after{left:auto;right:.6rem}.is-checkradio[type=checkbox].is-small+label{font-size:.75rem;padding-left:1.5rem}.is-checkradio[type=checkbox].is-small+label::before,.is-checkradio[type=checkbox].is-small+label:before{width:1.125rem;height:1.125rem}.is-checkradio[type=checkbox].is-small+label::after,.is-checkradio[type=checkbox].is-small+label:after{width:.28125rem;height:.45rem;top:.30375rem;left:.45rem}.is-checkradio[type=checkbox].is-small.is-block+label::after,.is-checkradio[type=checkbox].is-small.is-block+label:after{top:.43875rem;left:.585rem}.is-checkradio[type=checkbox].is-small.is-rtl+label{padding-left:0;padding-right:1.5rem}.is-checkradio[type=checkbox].is-small.is-rtl+label::after,.is-checkradio[type=checkbox].is-small.is-rtl+label:after{left:auto;right:.45rem}.is-checkradio[type=checkbox].is-medium+label{font-size:1.25rem;padding-left:2.5rem}.is-checkradio[type=checkbox].is-medium+label::before,.is-checkradio[type=checkbox].is-medium+label:before{width:1.875rem;height:1.875rem}.is-checkradio[type=checkbox].is-medium+label::after,.is-checkradio[type=checkbox].is-medium+label:after{width:.46875rem;height:.75rem;top:.50625rem;left:.75rem}.is-checkradio[type=checkbox].is-medium.is-block+label::after,.is-checkradio[type=checkbox].is-medium.is-block+label:after{top:.73125rem;left:.975rem}.is-checkradio[type=checkbox].is-medium.is-rtl+label{padding-left:0;padding-right:2.5rem}.is-checkradio[type=checkbox].is-medium.is-rtl+label::after,.is-checkradio[type=checkbox].is-medium.is-rtl+label:after{left:auto;right:.75rem}.is-checkradio[type=checkbox].is-large+label{font-size:1.5rem;padding-left:3rem}.is-checkradio[type=checkbox].is-large+label::before,.is-checkradio[type=checkbox].is-large+label:before{width:2.25rem;height:2.25rem}.is-checkradio[type=checkbox].is-large+label::after,.is-checkradio[type=checkbox].is-large+label:after{width:.5625rem;height:.9rem;top:.6075rem;left:.9rem}.is-checkradio[type=checkbox].is-large.is-block+label::after,.is-checkradio[type=checkbox].is-large.is-block+label:after{top:.8775rem;left:1.17rem}.is-checkradio[type=checkbox].is-large.is-rtl+label{padding-left:0;padding-right:3rem}.is-checkradio[type=checkbox].is-large.is-rtl+label::after,.is-checkradio[type=checkbox].is-large.is-rtl+label:after{left:auto;right:.9rem}.is-checkradio[type=checkbox].is-white.has-background-color+label::before,.is-checkradio[type=checkbox].is-white.has-background-color+label:before{border-color:transparent!important;background-color:#fff!important}.is-checkradio[type=checkbox].is-white:hover:not([disabled])+label::before,.is-checkradio[type=checkbox].is-white:hover:not([disabled])+label:before{border-color:#fff!important}.is-checkradio[type=checkbox].is-white:checked+label::after,.is-checkradio[type=checkbox].is-white:checked+label:after{border-color:#fff!important}.is-checkradio[type=checkbox].is-white:checked.has-background-color+label::before,.is-checkradio[type=checkbox].is-white:checked.has-background-color+label:before{border-color:transparent!important;background-color:#fff!important}.is-checkradio[type=checkbox].is-white:checked.has-background-color+label::after,.is-checkradio[type=checkbox].is-white:checked.has-background-color+label:after{border-color:#0a0a0a!important;background-color:#fff!important}.is-checkradio[type=checkbox].is-white:checked.is-block+label{color:#0a0a0a;border-color:#fff!important;background:#fff}.is-checkradio[type=checkbox].is-white:checked.is-block+label::after,.is-checkradio[type=checkbox].is-white:checked.is-block+label:after{border-color:#0a0a0a!important}.is-checkradio[type=checkbox].is-black.has-background-color+label::before,.is-checkradio[type=checkbox].is-black.has-background-color+label:before{border-color:transparent!important;background-color:#0a0a0a!important}.is-checkradio[type=checkbox].is-black:hover:not([disabled])+label::before,.is-checkradio[type=checkbox].is-black:hover:not([disabled])+label:before{border-color:#0a0a0a!important}.is-checkradio[type=checkbox].is-black:checked+label::after,.is-checkradio[type=checkbox].is-black:checked+label:after{border-color:#0a0a0a!important}.is-checkradio[type=checkbox].is-black:checked.has-background-color+label::before,.is-checkradio[type=checkbox].is-black:checked.has-background-color+label:before{border-color:transparent!important;background-color:#0a0a0a!important}.is-checkradio[type=checkbox].is-black:checked.has-background-color+label::after,.is-checkradio[type=checkbox].is-black:checked.has-background-color+label:after{border-color:#fff!important;background-color:#0a0a0a!important}.is-checkradio[type=checkbox].is-black:checked.is-block+label{color:#fff;border-color:#0a0a0a!important;background:#0a0a0a}.is-checkradio[type=checkbox].is-black:checked.is-block+label::after,.is-checkradio[type=checkbox].is-black:checked.is-block+label:after{border-color:#fff!important}.is-checkradio[type=checkbox].is-light.has-background-color+label::before,.is-checkradio[type=checkbox].is-light.has-background-color+label:before{border-color:transparent!important;background-color:#f5f5f5!important}.is-checkradio[type=checkbox].is-light:hover:not([disabled])+label::before,.is-checkradio[type=checkbox].is-light:hover:not([disabled])+label:before{border-color:#f5f5f5!important}.is-checkradio[type=checkbox].is-light:checked+label::after,.is-checkradio[type=checkbox].is-light:checked+label:after{border-color:#f5f5f5!important}.is-checkradio[type=checkbox].is-light:checked.has-background-color+label::before,.is-checkradio[type=checkbox].is-light:checked.has-background-color+label:before{border-color:transparent!important;background-color:#f5f5f5!important}.is-checkradio[type=checkbox].is-light:checked.has-background-color+label::after,.is-checkradio[type=checkbox].is-light:checked.has-background-color+label:after{border-color:#363636!important;background-color:#f5f5f5!important}.is-checkradio[type=checkbox].is-light:checked.is-block+label{color:#363636;border-color:#f5f5f5!important;background:#f5f5f5}.is-checkradio[type=checkbox].is-light:checked.is-block+label::after,.is-checkradio[type=checkbox].is-light:checked.is-block+label:after{border-color:#363636!important}.is-checkradio[type=checkbox].is-dark.has-background-color+label::before,.is-checkradio[type=checkbox].is-dark.has-background-color+label:before{border-color:transparent!important;background-color:#363636!important}.is-checkradio[type=checkbox].is-dark:hover:not([disabled])+label::before,.is-checkradio[type=checkbox].is-dark:hover:not([disabled])+label:before{border-color:#363636!important}.is-checkradio[type=checkbox].is-dark:checked+label::after,.is-checkradio[type=checkbox].is-dark:checked+label:after{border-color:#363636!important}.is-checkradio[type=checkbox].is-dark:checked.has-background-color+label::before,.is-checkradio[type=checkbox].is-dark:checked.has-background-color+label:before{border-color:transparent!important;background-color:#363636!important}.is-checkradio[type=checkbox].is-dark:checked.has-background-color+label::after,.is-checkradio[type=checkbox].is-dark:checked.has-background-color+label:after{border-color:#f5f5f5!important;background-color:#363636!important}.is-checkradio[type=checkbox].is-dark:checked.is-block+label{color:#f5f5f5;border-color:#363636!important;background:#363636}.is-checkradio[type=checkbox].is-dark:checked.is-block+label::after,.is-checkradio[type=checkbox].is-dark:checked.is-block+label:after{border-color:#f5f5f5!important}.is-checkradio[type=checkbox].is-primary.has-background-color+label::before,.is-checkradio[type=checkbox].is-primary.has-background-color+label:before{border-color:transparent!important;background-color:#00d1b2!important}.is-checkradio[type=checkbox].is-primary:hover:not([disabled])+label::before,.is-checkradio[type=checkbox].is-primary:hover:not([disabled])+label:before{border-color:#00d1b2!important}.is-checkradio[type=checkbox].is-primary:checked+label::after,.is-checkradio[type=checkbox].is-primary:checked+label:after{border-color:#00d1b2!important}.is-checkradio[type=checkbox].is-primary:checked.has-background-color+label::before,.is-checkradio[type=checkbox].is-primary:checked.has-background-color+label:before{border-color:transparent!important;background-color:#00d1b2!important}.is-checkradio[type=checkbox].is-primary:checked.has-background-color+label::after,.is-checkradio[type=checkbox].is-primary:checked.has-background-color+label:after{border-color:#fff!important;background-color:#00d1b2!important}.is-checkradio[type=checkbox].is-primary:checked.is-block+label{color:#fff;border-color:#00d1b2!important;background:#00d1b2}.is-checkradio[type=checkbox].is-primary:checked.is-block+label::after,.is-checkradio[type=checkbox].is-primary:checked.is-block+label:after{border-color:#fff!important}.is-checkradio[type=checkbox].is-link.has-background-color+label::before,.is-checkradio[type=checkbox].is-link.has-background-color+label:before{border-color:transparent!important;background-color:#3273dc!important}.is-checkradio[type=checkbox].is-link:hover:not([disabled])+label::before,.is-checkradio[type=checkbox].is-link:hover:not([disabled])+label:before{border-color:#3273dc!important}.is-checkradio[type=checkbox].is-link:checked+label::after,.is-checkradio[type=checkbox].is-link:checked+label:after{border-color:#3273dc!important}.is-checkradio[type=checkbox].is-link:checked.has-background-color+label::before,.is-checkradio[type=checkbox].is-link:checked.has-background-color+label:before{border-color:transparent!important;background-color:#3273dc!important}.is-checkradio[type=checkbox].is-link:checked.has-background-color+label::after,.is-checkradio[type=checkbox].is-link:checked.has-background-color+label:after{border-color:#fff!important;background-color:#3273dc!important}.is-checkradio[type=checkbox].is-link:checked.is-block+label{color:#fff;border-color:#3273dc!important;background:#3273dc}.is-checkradio[type=checkbox].is-link:checked.is-block+label::after,.is-checkradio[type=checkbox].is-link:checked.is-block+label:after{border-color:#fff!important}.is-checkradio[type=checkbox].is-info.has-background-color+label::before,.is-checkradio[type=checkbox].is-info.has-background-color+label:before{border-color:transparent!important;background-color:#209cee!important}.is-checkradio[type=checkbox].is-info:hover:not([disabled])+label::before,.is-checkradio[type=checkbox].is-info:hover:not([disabled])+label:before{border-color:#209cee!important}.is-checkradio[type=checkbox].is-info:checked+label::after,.is-checkradio[type=checkbox].is-info:checked+label:after{border-color:#209cee!important}.is-checkradio[type=checkbox].is-info:checked.has-background-color+label::before,.is-checkradio[type=checkbox].is-info:checked.has-background-color+label:before{border-color:transparent!important;background-color:#209cee!important}.is-checkradio[type=checkbox].is-info:checked.has-background-color+label::after,.is-checkradio[type=checkbox].is-info:checked.has-background-color+label:after{border-color:#fff!important;background-color:#209cee!important}.is-checkradio[type=checkbox].is-info:checked.is-block+label{color:#fff;border-color:#209cee!important;background:#209cee}.is-checkradio[type=checkbox].is-info:checked.is-block+label::after,.is-checkradio[type=checkbox].is-info:checked.is-block+label:after{border-color:#fff!important}.is-checkradio[type=checkbox].is-success.has-background-color+label::before,.is-checkradio[type=checkbox].is-success.has-background-color+label:before{border-color:transparent!important;background-color:#23d160!important}.is-checkradio[type=checkbox].is-success:hover:not([disabled])+label::before,.is-checkradio[type=checkbox].is-success:hover:not([disabled])+label:before{border-color:#23d160!important}.is-checkradio[type=checkbox].is-success:checked+label::after,.is-checkradio[type=checkbox].is-success:checked+label:after{border-color:#23d160!important}.is-checkradio[type=checkbox].is-success:checked.has-background-color+label::before,.is-checkradio[type=checkbox].is-success:checked.has-background-color+label:before{border-color:transparent!important;background-color:#23d160!important}.is-checkradio[type=checkbox].is-success:checked.has-background-color+label::after,.is-checkradio[type=checkbox].is-success:checked.has-background-color+label:after{border-color:#fff!important;background-color:#23d160!important}.is-checkradio[type=checkbox].is-success:checked.is-block+label{color:#fff;border-color:#23d160!important;background:#23d160}.is-checkradio[type=checkbox].is-success:checked.is-block+label::after,.is-checkradio[type=checkbox].is-success:checked.is-block+label:after{border-color:#fff!important}.is-checkradio[type=checkbox].is-warning.has-background-color+label::before,.is-checkradio[type=checkbox].is-warning.has-background-color+label:before{border-color:transparent!important;background-color:#ffdd57!important}.is-checkradio[type=checkbox].is-warning:hover:not([disabled])+label::before,.is-checkradio[type=checkbox].is-warning:hover:not([disabled])+label:before{border-color:#ffdd57!important}.is-checkradio[type=checkbox].is-warning:checked+label::after,.is-checkradio[type=checkbox].is-warning:checked+label:after{border-color:#ffdd57!important}.is-checkradio[type=checkbox].is-warning:checked.has-background-color+label::before,.is-checkradio[type=checkbox].is-warning:checked.has-background-color+label:before{border-color:transparent!important;background-color:#ffdd57!important}.is-checkradio[type=checkbox].is-warning:checked.has-background-color+label::after,.is-checkradio[type=checkbox].is-warning:checked.has-background-color+label:after{border-color:rgba(0,0,0,.7)!important;background-color:#ffdd57!important}.is-checkradio[type=checkbox].is-warning:checked.is-block+label{color:rgba(0,0,0,.7);border-color:#ffdd57!important;background:#ffdd57}.is-checkradio[type=checkbox].is-warning:checked.is-block+label::after,.is-checkradio[type=checkbox].is-warning:checked.is-block+label:after{border-color:rgba(0,0,0,.7)!important}.is-checkradio[type=checkbox].is-danger.has-background-color+label::before,.is-checkradio[type=checkbox].is-danger.has-background-color+label:before{border-color:transparent!important;background-color:#ff3860!important}.is-checkradio[type=checkbox].is-danger:hover:not([disabled])+label::before,.is-checkradio[type=checkbox].is-danger:hover:not([disabled])+label:before{border-color:#ff3860!important}.is-checkradio[type=checkbox].is-danger:checked+label::after,.is-checkradio[type=checkbox].is-danger:checked+label:after{border-color:#ff3860!important}.is-checkradio[type=checkbox].is-danger:checked.has-background-color+label::before,.is-checkradio[type=checkbox].is-danger:checked.has-background-color+label:before{border-color:transparent!important;background-color:#ff3860!important}.is-checkradio[type=checkbox].is-danger:checked.has-background-color+label::after,.is-checkradio[type=checkbox].is-danger:checked.has-background-color+label:after{border-color:#fff!important;background-color:#ff3860!important}.is-checkradio[type=checkbox].is-danger:checked.is-block+label{color:#fff;border-color:#ff3860!important;background:#ff3860}.is-checkradio[type=checkbox].is-danger:checked.is-block+label::after,.is-checkradio[type=checkbox].is-danger:checked.is-block+label:after{border-color:#fff!important}.is-checkradio[type=checkbox]:indeterminate+label::after,.is-checkradio[type=checkbox]:indeterminate+label:after{display:inline-block;-webkit-transform:rotate(90deg);transform:rotate(90deg);border-bottom:none}.is-checkradio[type=checkbox]:indeterminate.is-white+label::after,.is-checkradio[type=checkbox]:indeterminate.is-white+label:after{border-color:#fff}.is-checkradio[type=checkbox]:indeterminate.is-black+label::after,.is-checkradio[type=checkbox]:indeterminate.is-black+label:after{border-color:#0a0a0a}.is-checkradio[type=checkbox]:indeterminate.is-light+label::after,.is-checkradio[type=checkbox]:indeterminate.is-light+label:after{border-color:#f5f5f5}.is-checkradio[type=checkbox]:indeterminate.is-dark+label::after,.is-checkradio[type=checkbox]:indeterminate.is-dark+label:after{border-color:#363636}.is-checkradio[type=checkbox]:indeterminate.is-primary+label::after,.is-checkradio[type=checkbox]:indeterminate.is-primary+label:after{border-color:#00d1b2}.is-checkradio[type=checkbox]:indeterminate.is-link+label::after,.is-checkradio[type=checkbox]:indeterminate.is-link+label:after{border-color:#3273dc}.is-checkradio[type=checkbox]:indeterminate.is-info+label::after,.is-checkradio[type=checkbox]:indeterminate.is-info+label:after{border-color:#209cee}.is-checkradio[type=checkbox]:indeterminate.is-success+label::after,.is-checkradio[type=checkbox]:indeterminate.is-success+label:after{border-color:#23d160}.is-checkradio[type=checkbox]:indeterminate.is-warning+label::after,.is-checkradio[type=checkbox]:indeterminate.is-warning+label:after{border-color:#ffdd57}.is-checkradio[type=checkbox]:indeterminate.is-danger+label::after,.is-checkradio[type=checkbox]:indeterminate.is-danger+label:after{border-color:#ff3860}.is-checkradio[type=radio]+label::before,.is-checkradio[type=radio]+label:before{border-radius:50%}.is-checkradio[type=radio]+label::after,.is-checkradio[type=radio]+label:after{border-radius:50%;background:#00d1b2;left:0;-webkit-transform:scale(.5);transform:scale(.5)}.is-checkradio[type=radio]:checked.has-background-color+label::before,.is-checkradio[type=radio]:checked.has-background-color+label:before{border-color:#4a4a4a!important;background-color:#4a4a4a!important}.is-checkradio[type=radio]:checked.has-background-color+label::after,.is-checkradio[type=radio]:checked.has-background-color+label:after{border-color:#4a4a4a!important;background-color:#4a4a4a!important}.is-checkradio[type=radio].is-rtl+label{padding-left:0}.is-checkradio[type=radio].is-rtl+label::after,.is-checkradio[type=radio].is-rtl+label:after{left:auto;right:0}.is-checkradio[type=radio]+label{font-size:1rem;line-height:1.5rem;padding-left:2rem}.is-checkradio[type=radio]+label::after,.is-checkradio[type=radio]+label::before,.is-checkradio[type=radio]+label:after,.is-checkradio[type=radio]+label:before{width:1.5rem;height:1.5rem}.is-checkradio[type=radio].is-rtl+label{padding-right:2rem}.is-checkradio[type=radio].is-small+label{font-size:.75rem;line-height:1.125rem;padding-left:1.5rem}.is-checkradio[type=radio].is-small+label::after,.is-checkradio[type=radio].is-small+label::before,.is-checkradio[type=radio].is-small+label:after,.is-checkradio[type=radio].is-small+label:before{width:1.125rem;height:1.125rem}.is-checkradio[type=radio].is-small.is-rtl+label{padding-right:1.5rem}.is-checkradio[type=radio].is-medium+label{font-size:1.25rem;line-height:1.875rem;padding-left:2.5rem}.is-checkradio[type=radio].is-medium+label::after,.is-checkradio[type=radio].is-medium+label::before,.is-checkradio[type=radio].is-medium+label:after,.is-checkradio[type=radio].is-medium+label:before{width:1.875rem;height:1.875rem}.is-checkradio[type=radio].is-medium.is-rtl+label{padding-right:2.5rem}.is-checkradio[type=radio].is-large+label{font-size:1.5rem;line-height:2.25rem;padding-left:3rem}.is-checkradio[type=radio].is-large+label::after,.is-checkradio[type=radio].is-large+label::before,.is-checkradio[type=radio].is-large+label:after,.is-checkradio[type=radio].is-large+label:before{width:2.25rem;height:2.25rem}.is-checkradio[type=radio].is-large.is-rtl+label{padding-right:3rem}.is-checkradio[type=radio].is-white.has-background-color+label::before,.is-checkradio[type=radio].is-white.has-background-color+label:before{border-color:#fff!important;background-color:#fff!important}.is-checkradio[type=radio].is-white:hover:not([disabled])+label::before,.is-checkradio[type=radio].is-white:hover:not([disabled])+label:before{border-color:#fff!important}.is-checkradio[type=radio].is-white:checked+label::after,.is-checkradio[type=radio].is-white:checked+label:after{border-color:#fff!important;background-color:#fff!important}.is-checkradio[type=radio].is-white:checked.has-background-color+label::before,.is-checkradio[type=radio].is-white:checked.has-background-color+label:before{border-color:#fff!important;background-color:#fff!important}.is-checkradio[type=radio].is-white:checked.has-background-color+label::after,.is-checkradio[type=radio].is-white:checked.has-background-color+label:after{border-color:#0a0a0a!important;background-color:#0a0a0a!important}.is-checkradio[type=radio].is-black.has-background-color+label::before,.is-checkradio[type=radio].is-black.has-background-color+label:before{border-color:#0a0a0a!important;background-color:#0a0a0a!important}.is-checkradio[type=radio].is-black:hover:not([disabled])+label::before,.is-checkradio[type=radio].is-black:hover:not([disabled])+label:before{border-color:#0a0a0a!important}.is-checkradio[type=radio].is-black:checked+label::after,.is-checkradio[type=radio].is-black:checked+label:after{border-color:#0a0a0a!important;background-color:#0a0a0a!important}.is-checkradio[type=radio].is-black:checked.has-background-color+label::before,.is-checkradio[type=radio].is-black:checked.has-background-color+label:before{border-color:#0a0a0a!important;background-color:#0a0a0a!important}.is-checkradio[type=radio].is-black:checked.has-background-color+label::after,.is-checkradio[type=radio].is-black:checked.has-background-color+label:after{border-color:#fff!important;background-color:#fff!important}.is-checkradio[type=radio].is-light.has-background-color+label::before,.is-checkradio[type=radio].is-light.has-background-color+label:before{border-color:#f5f5f5!important;background-color:#f5f5f5!important}.is-checkradio[type=radio].is-light:hover:not([disabled])+label::before,.is-checkradio[type=radio].is-light:hover:not([disabled])+label:before{border-color:#f5f5f5!important}.is-checkradio[type=radio].is-light:checked+label::after,.is-checkradio[type=radio].is-light:checked+label:after{border-color:#f5f5f5!important;background-color:#f5f5f5!important}.is-checkradio[type=radio].is-light:checked.has-background-color+label::before,.is-checkradio[type=radio].is-light:checked.has-background-color+label:before{border-color:#f5f5f5!important;background-color:#f5f5f5!important}.is-checkradio[type=radio].is-light:checked.has-background-color+label::after,.is-checkradio[type=radio].is-light:checked.has-background-color+label:after{border-color:#363636!important;background-color:#363636!important}.is-checkradio[type=radio].is-dark.has-background-color+label::before,.is-checkradio[type=radio].is-dark.has-background-color+label:before{border-color:#363636!important;background-color:#363636!important}.is-checkradio[type=radio].is-dark:hover:not([disabled])+label::before,.is-checkradio[type=radio].is-dark:hover:not([disabled])+label:before{border-color:#363636!important}.is-checkradio[type=radio].is-dark:checked+label::after,.is-checkradio[type=radio].is-dark:checked+label:after{border-color:#363636!important;background-color:#363636!important}.is-checkradio[type=radio].is-dark:checked.has-background-color+label::before,.is-checkradio[type=radio].is-dark:checked.has-background-color+label:before{border-color:#363636!important;background-color:#363636!important}.is-checkradio[type=radio].is-dark:checked.has-background-color+label::after,.is-checkradio[type=radio].is-dark:checked.has-background-color+label:after{border-color:#f5f5f5!important;background-color:#f5f5f5!important}.is-checkradio[type=radio].is-primary.has-background-color+label::before,.is-checkradio[type=radio].is-primary.has-background-color+label:before{border-color:#00d1b2!important;background-color:#00d1b2!important}.is-checkradio[type=radio].is-primary:hover:not([disabled])+label::before,.is-checkradio[type=radio].is-primary:hover:not([disabled])+label:before{border-color:#00d1b2!important}.is-checkradio[type=radio].is-primary:checked+label::after,.is-checkradio[type=radio].is-primary:checked+label:after{border-color:#00d1b2!important;background-color:#00d1b2!important}.is-checkradio[type=radio].is-primary:checked.has-background-color+label::before,.is-checkradio[type=radio].is-primary:checked.has-background-color+label:before{border-color:#00d1b2!important;background-color:#00d1b2!important}.is-checkradio[type=radio].is-primary:checked.has-background-color+label::after,.is-checkradio[type=radio].is-primary:checked.has-background-color+label:after{border-color:#fff!important;background-color:#fff!important}.is-checkradio[type=radio].is-link.has-background-color+label::before,.is-checkradio[type=radio].is-link.has-background-color+label:before{border-color:#3273dc!important;background-color:#3273dc!important}.is-checkradio[type=radio].is-link:hover:not([disabled])+label::before,.is-checkradio[type=radio].is-link:hover:not([disabled])+label:before{border-color:#3273dc!important}.is-checkradio[type=radio].is-link:checked+label::after,.is-checkradio[type=radio].is-link:checked+label:after{border-color:#3273dc!important;background-color:#3273dc!important}.is-checkradio[type=radio].is-link:checked.has-background-color+label::before,.is-checkradio[type=radio].is-link:checked.has-background-color+label:before{border-color:#3273dc!important;background-color:#3273dc!important}.is-checkradio[type=radio].is-link:checked.has-background-color+label::after,.is-checkradio[type=radio].is-link:checked.has-background-color+label:after{border-color:#fff!important;background-color:#fff!important}.is-checkradio[type=radio].is-info.has-background-color+label::before,.is-checkradio[type=radio].is-info.has-background-color+label:before{border-color:#209cee!important;background-color:#209cee!important}.is-checkradio[type=radio].is-info:hover:not([disabled])+label::before,.is-checkradio[type=radio].is-info:hover:not([disabled])+label:before{border-color:#209cee!important}.is-checkradio[type=radio].is-info:checked+label::after,.is-checkradio[type=radio].is-info:checked+label:after{border-color:#209cee!important;background-color:#209cee!important}.is-checkradio[type=radio].is-info:checked.has-background-color+label::before,.is-checkradio[type=radio].is-info:checked.has-background-color+label:before{border-color:#209cee!important;background-color:#209cee!important}.is-checkradio[type=radio].is-info:checked.has-background-color+label::after,.is-checkradio[type=radio].is-info:checked.has-background-color+label:after{border-color:#fff!important;background-color:#fff!important}.is-checkradio[type=radio].is-success.has-background-color+label::before,.is-checkradio[type=radio].is-success.has-background-color+label:before{border-color:#23d160!important;background-color:#23d160!important}.is-checkradio[type=radio].is-success:hover:not([disabled])+label::before,.is-checkradio[type=radio].is-success:hover:not([disabled])+label:before{border-color:#23d160!important}.is-checkradio[type=radio].is-success:checked+label::after,.is-checkradio[type=radio].is-success:checked+label:after{border-color:#23d160!important;background-color:#23d160!important}.is-checkradio[type=radio].is-success:checked.has-background-color+label::before,.is-checkradio[type=radio].is-success:checked.has-background-color+label:before{border-color:#23d160!important;background-color:#23d160!important}.is-checkradio[type=radio].is-success:checked.has-background-color+label::after,.is-checkradio[type=radio].is-success:checked.has-background-color+label:after{border-color:#fff!important;background-color:#fff!important}.is-checkradio[type=radio].is-warning.has-background-color+label::before,.is-checkradio[type=radio].is-warning.has-background-color+label:before{border-color:#ffdd57!important;background-color:#ffdd57!important}.is-checkradio[type=radio].is-warning:hover:not([disabled])+label::before,.is-checkradio[type=radio].is-warning:hover:not([disabled])+label:before{border-color:#ffdd57!important}.is-checkradio[type=radio].is-warning:checked+label::after,.is-checkradio[type=radio].is-warning:checked+label:after{border-color:#ffdd57!important;background-color:#ffdd57!important}.is-checkradio[type=radio].is-warning:checked.has-background-color+label::before,.is-checkradio[type=radio].is-warning:checked.has-background-color+label:before{border-color:#ffdd57!important;background-color:#ffdd57!important}.is-checkradio[type=radio].is-warning:checked.has-background-color+label::after,.is-checkradio[type=radio].is-warning:checked.has-background-color+label:after{border-color:rgba(0,0,0,.7)!important;background-color:rgba(0,0,0,.7)!important}.is-checkradio[type=radio].is-danger.has-background-color+label::before,.is-checkradio[type=radio].is-danger.has-background-color+label:before{border-color:#ff3860!important;background-color:#ff3860!important}.is-checkradio[type=radio].is-danger:hover:not([disabled])+label::before,.is-checkradio[type=radio].is-danger:hover:not([disabled])+label:before{border-color:#ff3860!important}.is-checkradio[type=radio].is-danger:checked+label::after,.is-checkradio[type=radio].is-danger:checked+label:after{border-color:#ff3860!important;background-color:#ff3860!important}.is-checkradio[type=radio].is-danger:checked.has-background-color+label::before,.is-checkradio[type=radio].is-danger:checked.has-background-color+label:before{border-color:#ff3860!important;background-color:#ff3860!important}.is-checkradio[type=radio].is-danger:checked.has-background-color+label::after,.is-checkradio[type=radio].is-danger:checked.has-background-color+label:after{border-color:#fff!important;background-color:#fff!important}.is-divider,.is-divider-vertical{display:block;position:relative;border-top:.1rem solid #dbdbdb;height:.1rem;margin:2rem 0;text-align:center}.is-divider-vertical[data-content]::after,.is-divider[data-content]::after{background:#fff;color:#b5b5b5;content:attr(data-content);display:inline-block;font-size:.75rem;padding:.4rem .8rem;-webkit-transform:translateY(-1.1rem);transform:translateY(-1.1rem);text-align:center}@media screen and (min-width:769px),print{.is-divider-vertical{display:block;flex:none;width:auto;height:auto;padding:2rem;margin:0;position:relative;border-top:none;min-height:2rem}.is-divider-vertical::before{border-left:.1rem solid #dbdbdb;bottom:1rem;content:"";display:block;left:50%;position:absolute;top:1rem;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.is-divider-vertical[data-content]::after{position:absolute;left:50%;top:50%;padding:.1rem;-webkit-transform:translateY(-50%) translateX(-50%);transform:translateY(-50%) translateX(-50%)}}.is-divider-vertical.is-white,.is-divider.is-white{border-top-color:#fff}.is-divider-vertical.is-white[data-content]::after,.is-divider.is-white[data-content]::after{background:#0a0a0a;color:#fff}.is-divider-vertical.is-white::before,.is-divider.is-white::before{border-left-color:#fff}.is-divider-vertical.is-black,.is-divider.is-black{border-top-color:#0a0a0a}.is-divider-vertical.is-black[data-content]::after,.is-divider.is-black[data-content]::after{background:#fff;color:#0a0a0a}.is-divider-vertical.is-black::before,.is-divider.is-black::before{border-left-color:#0a0a0a}.is-divider-vertical.is-light,.is-divider.is-light{border-top-color:#f5f5f5}.is-divider-vertical.is-light[data-content]::after,.is-divider.is-light[data-content]::after{background:#363636;color:#f5f5f5}.is-divider-vertical.is-light::before,.is-divider.is-light::before{border-left-color:#f5f5f5}.is-divider-vertical.is-dark,.is-divider.is-dark{border-top-color:#363636}.is-divider-vertical.is-dark[data-content]::after,.is-divider.is-dark[data-content]::after{background:#f5f5f5;color:#363636}.is-divider-vertical.is-dark::before,.is-divider.is-dark::before{border-left-color:#363636}.is-divider-vertical.is-primary,.is-divider.is-primary{border-top-color:#00d1b2}.is-divider-vertical.is-primary[data-content]::after,.is-divider.is-primary[data-content]::after{background:#fff;color:#00d1b2}.is-divider-vertical.is-primary::before,.is-divider.is-primary::before{border-left-color:#00d1b2}.is-divider-vertical.is-link,.is-divider.is-link{border-top-color:#3273dc}.is-divider-vertical.is-link[data-content]::after,.is-divider.is-link[data-content]::after{background:#fff;color:#3273dc}.is-divider-vertical.is-link::before,.is-divider.is-link::before{border-left-color:#3273dc}.is-divider-vertical.is-info,.is-divider.is-info{border-top-color:#209cee}.is-divider-vertical.is-info[data-content]::after,.is-divider.is-info[data-content]::after{background:#fff;color:#209cee}.is-divider-vertical.is-info::before,.is-divider.is-info::before{border-left-color:#209cee}.is-divider-vertical.is-success,.is-divider.is-success{border-top-color:#23d160}.is-divider-vertical.is-success[data-content]::after,.is-divider.is-success[data-content]::after{background:#fff;color:#23d160}.is-divider-vertical.is-success::before,.is-divider.is-success::before{border-left-color:#23d160}.is-divider-vertical.is-warning,.is-divider.is-warning{border-top-color:#ffdd57}.is-divider-vertical.is-warning[data-content]::after,.is-divider.is-warning[data-content]::after{background:rgba(0,0,0,.7);color:#ffdd57}.is-divider-vertical.is-warning::before,.is-divider.is-warning::before{border-left-color:#ffdd57}.is-divider-vertical.is-danger,.is-divider.is-danger{border-top-color:#ff3860}.is-divider-vertical.is-danger[data-content]::after,.is-divider.is-danger[data-content]::after{background:#fff;color:#ff3860}.is-divider-vertical.is-danger::before,.is-divider.is-danger::before{border-left-color:#ff3860}.is-divider-vertical.is-black-bis,.is-divider.is-black-bis{border-top-color:#121212}.is-divider-vertical.is-black-bis[data-content]::after,.is-divider.is-black-bis[data-content]::after{background:#fff;color:#121212}.is-divider-vertical.is-black-bis::before,.is-divider.is-black-bis::before{border-left-color:#121212}.is-divider-vertical.is-black-ter,.is-divider.is-black-ter{border-top-color:#242424}.is-divider-vertical.is-black-ter[data-content]::after,.is-divider.is-black-ter[data-content]::after{background:#fff;color:#242424}.is-divider-vertical.is-black-ter::before,.is-divider.is-black-ter::before{border-left-color:#242424}.is-divider-vertical.is-grey-darker,.is-divider.is-grey-darker{border-top-color:#363636}.is-divider-vertical.is-grey-darker[data-content]::after,.is-divider.is-grey-darker[data-content]::after{background:#fff;color:#363636}.is-divider-vertical.is-grey-darker::before,.is-divider.is-grey-darker::before{border-left-color:#363636}.is-divider-vertical.is-grey-dark,.is-divider.is-grey-dark{border-top-color:#4a4a4a}.is-divider-vertical.is-grey-dark[data-content]::after,.is-divider.is-grey-dark[data-content]::after{background:#fff;color:#4a4a4a}.is-divider-vertical.is-grey-dark::before,.is-divider.is-grey-dark::before{border-left-color:#4a4a4a}.is-divider-vertical.is-grey,.is-divider.is-grey{border-top-color:#7a7a7a}.is-divider-vertical.is-grey[data-content]::after,.is-divider.is-grey[data-content]::after{background:#fff;color:#7a7a7a}.is-divider-vertical.is-grey::before,.is-divider.is-grey::before{border-left-color:#7a7a7a}.is-divider-vertical.is-grey-light,.is-divider.is-grey-light{border-top-color:#b5b5b5}.is-divider-vertical.is-grey-light[data-content]::after,.is-divider.is-grey-light[data-content]::after{background:#fff;color:#b5b5b5}.is-divider-vertical.is-grey-light::before,.is-divider.is-grey-light::before{border-left-color:#b5b5b5}.is-divider-vertical.is-grey-lighter,.is-divider.is-grey-lighter{border-top-color:#dbdbdb}.is-divider-vertical.is-grey-lighter[data-content]::after,.is-divider.is-grey-lighter[data-content]::after{background:rgba(0,0,0,.7);color:#dbdbdb}.is-divider-vertical.is-grey-lighter::before,.is-divider.is-grey-lighter::before{border-left-color:#dbdbdb}.is-divider-vertical.is-white-ter,.is-divider.is-white-ter{border-top-color:#f5f5f5}.is-divider-vertical.is-white-ter[data-content]::after,.is-divider.is-white-ter[data-content]::after{background:rgba(0,0,0,.7);color:#f5f5f5}.is-divider-vertical.is-white-ter::before,.is-divider.is-white-ter::before{border-left-color:#f5f5f5}.is-divider-vertical.is-white-bis,.is-divider.is-white-bis{border-top-color:#fafafa}.is-divider-vertical.is-white-bis[data-content]::after,.is-divider.is-white-bis[data-content]::after{background:rgba(0,0,0,.7);color:#fafafa}.is-divider-vertical.is-white-bis::before,.is-divider.is-white-bis::before{border-left-color:#fafafa}[data-action=iconPicker]{width:0;height:0;display:block;opacity:0;top:-999px;position:absolute}.iconpicker-preview{border-radius:100%;background-color:#f5f5f5}.iconpicker-preview:hover{cursor:pointer}.iconpicker-preview .iconpicker-icon-preview{color:#7a7a7a;font-size:1.5em}.iconpicker-modal .modal-card .modal-card-head{background:#00d1b2;color:#fff;border-top-left-radius:0;border-top-right-radius:0;padding:1rem}.iconpicker-modal .modal-card .modal-card-head .modal-card-title{font-size:1.2em;color:#fff}.iconpicker-modal .modal-card .modal-card-head .iconpicker-search{background-color:rgba(255,255,255,.5);border-radius:2em;box-shadow:none;border:.1em solid rgba(255,255,255,.3);margin:0 2em;padding:.3em 1em;color:#7a7a7a}.iconpicker-modal .iconpicker-sets{flex-shrink:0;background-color:#f5f5f5;font-size:.8em;margin:0}.iconpicker-modal .modal-card-body{padding:0}.iconpicker-modal .modal-card-body .iconpicker-icons{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;padding:1em}.iconpicker-modal .modal-card-body .iconpicker-icons [data-icon]{display:block;width:48px;height:48px;text-align:center;padding:.5rem}.iconpicker-modal .modal-card-body .iconpicker-icons [data-icon] .iconpicker-icon-preview{font-size:1.4em}.pageloader{position:fixed;padding-top:2em;background:#00d1b2;background:#00d1b2;z-index:999998;transition:transform .35s ease-out,-webkit-transform .35s ease-out;will-change:transform}.pageloader.is-white{background-color:#fff;background:#fff}.pageloader.is-white::after{border-color:#0a0a0a;-webkit-animation:loader-figure-white 1.15s infinite cubic-bezier(.215,.61,.355,1);animation:loader-figure-white 1.15s infinite cubic-bezier(.215,.61,.355,1)}.pageloader.is-white .title{color:#0a0a0a}.pageloader.is-black{background-color:#0a0a0a;background:#0a0a0a}.pageloader.is-black::after{border-color:#fff;-webkit-animation:loader-figure-black 1.15s infinite cubic-bezier(.215,.61,.355,1);animation:loader-figure-black 1.15s infinite cubic-bezier(.215,.61,.355,1)}.pageloader.is-black .title{color:#fff}.pageloader.is-light{background-color:#f5f5f5;background:#f5f5f5}.pageloader.is-light::after{border-color:#363636;-webkit-animation:loader-figure-light 1.15s infinite cubic-bezier(.215,.61,.355,1);animation:loader-figure-light 1.15s infinite cubic-bezier(.215,.61,.355,1)}.pageloader.is-light .title{color:#363636}.pageloader.is-dark{background-color:#363636;background:#363636}.pageloader.is-dark::after{border-color:#f5f5f5;-webkit-animation:loader-figure-dark 1.15s infinite cubic-bezier(.215,.61,.355,1);animation:loader-figure-dark 1.15s infinite cubic-bezier(.215,.61,.355,1)}.pageloader.is-dark .title{color:#f5f5f5}.pageloader.is-primary{background-color:#00d1b2;background:#00d1b2}.pageloader.is-primary::after{border-color:#fff;-webkit-animation:loader-figure-primary 1.15s infinite cubic-bezier(.215,.61,.355,1);animation:loader-figure-primary 1.15s infinite cubic-bezier(.215,.61,.355,1)}.pageloader.is-primary .title{color:#fff}.pageloader.is-link{background-color:#3273dc;background:#3273dc}.pageloader.is-link::after{border-color:#fff;-webkit-animation:loader-figure-link 1.15s infinite cubic-bezier(.215,.61,.355,1);animation:loader-figure-link 1.15s infinite cubic-bezier(.215,.61,.355,1)}.pageloader.is-link .title{color:#fff}.pageloader.is-info{background-color:#209cee;background:#209cee}.pageloader.is-info::after{border-color:#fff;-webkit-animation:loader-figure-info 1.15s infinite cubic-bezier(.215,.61,.355,1);animation:loader-figure-info 1.15s infinite cubic-bezier(.215,.61,.355,1)}.pageloader.is-info .title{color:#fff}.pageloader.is-success{background-color:#23d160;background:#23d160}.pageloader.is-success::after{border-color:#fff;-webkit-animation:loader-figure-success 1.15s infinite cubic-bezier(.215,.61,.355,1);animation:loader-figure-success 1.15s infinite cubic-bezier(.215,.61,.355,1)}.pageloader.is-success .title{color:#fff}.pageloader.is-warning{background-color:#ffdd57;background:#ffdd57}.pageloader.is-warning::after{border-color:rgba(0,0,0,.7);-webkit-animation:loader-figure-warning 1.15s infinite cubic-bezier(.215,.61,.355,1);animation:loader-figure-warning 1.15s infinite cubic-bezier(.215,.61,.355,1)}.pageloader.is-warning .title{color:rgba(0,0,0,.7)}.pageloader.is-danger{background-color:#ff3860;background:#ff3860}.pageloader.is-danger::after{border-color:#fff;-webkit-animation:loader-figure-danger 1.15s infinite cubic-bezier(.215,.61,.355,1);animation:loader-figure-danger 1.15s infinite cubic-bezier(.215,.61,.355,1)}.pageloader.is-danger .title{color:#fff}.pageloader:not(.is-left-to-right),.pageloader:not(.is-right-to-left){-webkit-transform:translateY(-100%);transform:translateY(-100%)}.pageloader.is-left-to-right{-webkit-transform:translateX(-100%);transform:translateX(-100%)}.pageloader.is-right-to-left{-webkit-transform:translateX(100%);transform:translateX(100%)}.pageloader.is-active:not(.is-left-to-right),.pageloader.is-active:not(.is-right-to-left){-webkit-transform:translateY(0);transform:translateY(0)}.pageloader.is-active.is-left-to-right,.pageloader.is-active.is-right-to-left{-webkit-transform:translateX(0);transform:translateX(0)}.pageloader::after{position:absolute;top:50%;left:50%;display:block;border-radius:100%;content:'';z-index:9999;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:0;height:0;box-sizing:border-box;border:0 solid #fff;-webkit-animation:loader-figure 1.15s infinite cubic-bezier(.215,.61,.355,1);animation:loader-figure 1.15s infinite cubic-bezier(.215,.61,.355,1)}.pageloader .title{position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);margin:2em 0 0 0;font-size:.875em;letter-spacing:.1em;line-height:1.5em;color:#fff;white-space:nowrap}@-webkit-keyframes loader-figure{0%{height:0;width:0;background-color:#fff}29%{background-color:#fff}30%{height:2em;width:2em;background-color:transparent;border-width:1em;opacity:1}100%{height:2em;width:2em;border-width:0;opacity:0;background-color:transparent}}@keyframes loader-figure{0%{height:0;width:0;background-color:#fff}29%{background-color:#fff}30%{height:2em;width:2em;background-color:transparent;border-width:1em;opacity:1}100%{height:2em;width:2em;border-width:0;opacity:0;background-color:transparent}}@-webkit-keyframes loader-figure-white{0%{height:0;width:0;background-color:#0a0a0a}29%{background-color:#0a0a0a}30%{height:2em;width:2em;background-color:transparent;border-width:1em;opacity:1}100%{height:2em;width:2em;border-width:0;opacity:0;background-color:transparent}}@keyframes loader-figure-white{0%{height:0;width:0;background-color:#0a0a0a}29%{background-color:#0a0a0a}30%{height:2em;width:2em;background-color:transparent;border-width:1em;opacity:1}100%{height:2em;width:2em;border-width:0;opacity:0;background-color:transparent}}@-webkit-keyframes loader-figure-black{0%{height:0;width:0;background-color:#fff}29%{background-color:#fff}30%{height:2em;width:2em;background-color:transparent;border-width:1em;opacity:1}100%{height:2em;width:2em;border-width:0;opacity:0;background-color:transparent}}@keyframes loader-figure-black{0%{height:0;width:0;background-color:#fff}29%{background-color:#fff}30%{height:2em;width:2em;background-color:transparent;border-width:1em;opacity:1}100%{height:2em;width:2em;border-width:0;opacity:0;background-color:transparent}}@-webkit-keyframes loader-figure-light{0%{height:0;width:0;background-color:#363636}29%{background-color:#363636}30%{height:2em;width:2em;background-color:transparent;border-width:1em;opacity:1}100%{height:2em;width:2em;border-width:0;opacity:0;background-color:transparent}}@keyframes loader-figure-light{0%{height:0;width:0;background-color:#363636}29%{background-color:#363636}30%{height:2em;width:2em;background-color:transparent;border-width:1em;opacity:1}100%{height:2em;width:2em;border-width:0;opacity:0;background-color:transparent}}@-webkit-keyframes loader-figure-dark{0%{height:0;width:0;background-color:#f5f5f5}29%{background-color:#f5f5f5}30%{height:2em;width:2em;background-color:transparent;border-width:1em;opacity:1}100%{height:2em;width:2em;border-width:0;opacity:0;background-color:transparent}}@keyframes loader-figure-dark{0%{height:0;width:0;background-color:#f5f5f5}29%{background-color:#f5f5f5}30%{height:2em;width:2em;background-color:transparent;border-width:1em;opacity:1}100%{height:2em;width:2em;border-width:0;opacity:0;background-color:transparent}}@-webkit-keyframes loader-figure-primary{0%{height:0;width:0;background-color:#fff}29%{background-color:#fff}30%{height:2em;width:2em;background-color:transparent;border-width:1em;opacity:1}100%{height:2em;width:2em;border-width:0;opacity:0;background-color:transparent}}@keyframes loader-figure-primary{0%{height:0;width:0;background-color:#fff}29%{background-color:#fff}30%{height:2em;width:2em;background-color:transparent;border-width:1em;opacity:1}100%{height:2em;width:2em;border-width:0;opacity:0;background-color:transparent}}@-webkit-keyframes loader-figure-link{0%{height:0;width:0;background-color:#fff}29%{background-color:#fff}30%{height:2em;width:2em;background-color:transparent;border-width:1em;opacity:1}100%{height:2em;width:2em;border-width:0;opacity:0;background-color:transparent}}@keyframes loader-figure-link{0%{height:0;width:0;background-color:#fff}29%{background-color:#fff}30%{height:2em;width:2em;background-color:transparent;border-width:1em;opacity:1}100%{height:2em;width:2em;border-width:0;opacity:0;background-color:transparent}}@-webkit-keyframes loader-figure-info{0%{height:0;width:0;background-color:#fff}29%{background-color:#fff}30%{height:2em;width:2em;background-color:transparent;border-width:1em;opacity:1}100%{height:2em;width:2em;border-width:0;opacity:0;background-color:transparent}}@keyframes loader-figure-info{0%{height:0;width:0;background-color:#fff}29%{background-color:#fff}30%{height:2em;width:2em;background-color:transparent;border-width:1em;opacity:1}100%{height:2em;width:2em;border-width:0;opacity:0;background-color:transparent}}@-webkit-keyframes loader-figure-success{0%{height:0;width:0;background-color:#fff}29%{background-color:#fff}30%{height:2em;width:2em;background-color:transparent;border-width:1em;opacity:1}100%{height:2em;width:2em;border-width:0;opacity:0;background-color:transparent}}@keyframes loader-figure-success{0%{height:0;width:0;background-color:#fff}29%{background-color:#fff}30%{height:2em;width:2em;background-color:transparent;border-width:1em;opacity:1}100%{height:2em;width:2em;border-width:0;opacity:0;background-color:transparent}}@-webkit-keyframes loader-figure-warning{0%{height:0;width:0;background-color:rgba(0,0,0,.7)}29%{background-color:rgba(0,0,0,.7)}30%{height:2em;width:2em;background-color:transparent;border-width:1em;opacity:1}100%{height:2em;width:2em;border-width:0;opacity:0;background-color:transparent}}@keyframes loader-figure-warning{0%{height:0;width:0;background-color:rgba(0,0,0,.7)}29%{background-color:rgba(0,0,0,.7)}30%{height:2em;width:2em;background-color:transparent;border-width:1em;opacity:1}100%{height:2em;width:2em;border-width:0;opacity:0;background-color:transparent}}@-webkit-keyframes loader-figure-danger{0%{height:0;width:0;background-color:#fff}29%{background-color:#fff}30%{height:2em;width:2em;background-color:transparent;border-width:1em;opacity:1}100%{height:2em;width:2em;border-width:0;opacity:0;background-color:transparent}}@keyframes loader-figure-danger{0%{height:0;width:0;background-color:#fff}29%{background-color:#fff}30%{height:2em;width:2em;background-color:transparent;border-width:1em;opacity:1}100%{height:2em;width:2em;border-width:0;opacity:0;background-color:transparent}}.pricing-table{display:flex;align-items:stretch;flex-direction:row;flex-flow:row wrap;justify-content:space-between}.pricing-table.is-comparative .pricing-plan{border-radius:initial;margin:0}.pricing-table.is-comparative .pricing-plan:not(:last-child){border-right:none}.pricing-table.is-comparative .pricing-plan:first-child{border-top-left-radius:4px;border-bottom-left-radius:4px}.pricing-table.is-comparative .pricing-plan:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px}.pricing-table.is-comparative .pricing-plan.is-active{border:.1rem solid #f5f5f5;border-radius:4px}.pricing-table .pricing-plan{display:flex;flex-direction:column;flex:1 1 auto;background-color:#fff;border:.1rem solid #f5f5f5;border-radius:4px;list-style-type:none;transition:.25s;margin:.5em}.pricing-table .pricing-plan .plan-header{border-top-left-radius:4px;border-top-right-radius:4px;background-color:#fff;color:#4a4a4a;font-size:1.25rem;font-weight:600;padding:.75em;align-content:center;text-align:center}.pricing-table .pricing-plan .plan-item{background:#f5f5f5;border-bottom:.1rem solid #fff;padding:.75em;align-content:center;text-align:center;font-size:.9em;color:#7a7a7a}.pricing-table .pricing-plan .plan-price{background-color:#fff;color:#4a4a4a;font-size:.75rem;font-weight:400;padding:.75em;align-content:center;text-align:center}.pricing-table .pricing-plan .plan-price .plan-price-amount{font-size:2.5rem;font-weight:700}.pricing-table .pricing-plan .plan-price .plan-price-amount .plan-price-currency{vertical-align:super;font-size:1rem!important;font-weight:400!important;color:#4a4a4a;margin-right:.25rem}.pricing-table .pricing-plan .plan-footer{border-bottom-left-radius:4px;border-bottom-right-radius:4px;padding:.75em;align-content:center;text-align:center;margin-top:auto}.pricing-table .pricing-plan.is-active{box-shadow:0 8px 12px 0 rgba(122,122,122,.2);-webkit-transform:scale(1.05);transform:scale(1.05)}.pricing-table .pricing-plan.is-active .plan-price .plan-price-amount{color:#00d1b2}.pricing-table .pricing-plan.is-active .plan-footer .button{background-color:#00d1b2;border-color:transparent;color:#fff}.pricing-table .pricing-plan.is-active .plan-footer .button.is-hovered,.pricing-table .pricing-plan.is-active .plan-footer .button:hover{background-color:#00c4a7;border-color:transparent;color:#fff}.pricing-table .pricing-plan.is-active .plan-footer .button.is-focused,.pricing-table .pricing-plan.is-active .plan-footer .button:focus{border-color:transparent;box-shadow:0 0 .5em rgba(0,209,178,.25);color:#fff}.pricing-table .pricing-plan.is-active .plan-footer .button.is-active,.pricing-table .pricing-plan.is-active .plan-footer .button:active{background-color:#00b89c;border-color:transparent;color:#fff}.pricing-table .pricing-plan.is-active .plan-footer .button[disabled]{background-color:#00d1b2;border-color:transparent}.pricing-table .pricing-plan.is-white .plan-price .plan-price-amount{color:#fff}.pricing-table .pricing-plan.is-white .plan-footer .button{background-color:#fff;border-color:transparent;color:#0a0a0a}.pricing-table .pricing-plan.is-white .plan-footer .button.is-hovered,.pricing-table .pricing-plan.is-white .plan-footer .button:hover{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.pricing-table .pricing-plan.is-white .plan-footer .button.is-focused,.pricing-table .pricing-plan.is-white .plan-footer .button:focus{border-color:transparent;box-shadow:0 0 .5em rgba(255,255,255,.25);color:#0a0a0a}.pricing-table .pricing-plan.is-white .plan-footer .button.is-active,.pricing-table .pricing-plan.is-white .plan-footer .button:active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.pricing-table .pricing-plan.is-white .plan-footer .button[disabled]{background-color:#fff;border-color:transparent;box-shadow:none}.pricing-table .pricing-plan.is-black .plan-price .plan-price-amount{color:#0a0a0a}.pricing-table .pricing-plan.is-black .plan-footer .button{background-color:#0a0a0a;border-color:transparent;color:#fff}.pricing-table .pricing-plan.is-black .plan-footer .button.is-hovered,.pricing-table .pricing-plan.is-black .plan-footer .button:hover{background-color:#040404;border-color:transparent;color:#fff}.pricing-table .pricing-plan.is-black .plan-footer .button.is-focused,.pricing-table .pricing-plan.is-black .plan-footer .button:focus{border-color:transparent;box-shadow:0 0 .5em rgba(10,10,10,.25);color:#fff}.pricing-table .pricing-plan.is-black .plan-footer .button.is-active,.pricing-table .pricing-plan.is-black .plan-footer .button:active{background-color:#000;border-color:transparent;color:#fff}.pricing-table .pricing-plan.is-black .plan-footer .button[disabled]{background-color:#0a0a0a;border-color:transparent;box-shadow:none}.pricing-table .pricing-plan.is-light .plan-price .plan-price-amount{color:#f5f5f5}.pricing-table .pricing-plan.is-light .plan-footer .button{background-color:#f5f5f5;border-color:transparent;color:#363636}.pricing-table .pricing-plan.is-light .plan-footer .button.is-hovered,.pricing-table .pricing-plan.is-light .plan-footer .button:hover{background-color:#eee;border-color:transparent;color:#363636}.pricing-table .pricing-plan.is-light .plan-footer .button.is-focused,.pricing-table .pricing-plan.is-light .plan-footer .button:focus{border-color:transparent;box-shadow:0 0 .5em rgba(245,245,245,.25);color:#363636}.pricing-table .pricing-plan.is-light .plan-footer .button.is-active,.pricing-table .pricing-plan.is-light .plan-footer .button:active{background-color:#e8e8e8;border-color:transparent;color:#363636}.pricing-table .pricing-plan.is-light .plan-footer .button[disabled]{background-color:#f5f5f5;border-color:transparent;box-shadow:none}.pricing-table .pricing-plan.is-dark .plan-price .plan-price-amount{color:#363636}.pricing-table .pricing-plan.is-dark .plan-footer .button{background-color:#363636;border-color:transparent;color:#f5f5f5}.pricing-table .pricing-plan.is-dark .plan-footer .button.is-hovered,.pricing-table .pricing-plan.is-dark .plan-footer .button:hover{background-color:#2f2f2f;border-color:transparent;color:#f5f5f5}.pricing-table .pricing-plan.is-dark .plan-footer .button.is-focused,.pricing-table .pricing-plan.is-dark .plan-footer .button:focus{border-color:transparent;box-shadow:0 0 .5em rgba(54,54,54,.25);color:#f5f5f5}.pricing-table .pricing-plan.is-dark .plan-footer .button.is-active,.pricing-table .pricing-plan.is-dark .plan-footer .button:active{background-color:#292929;border-color:transparent;color:#f5f5f5}.pricing-table .pricing-plan.is-dark .plan-footer .button[disabled]{background-color:#363636;border-color:transparent;box-shadow:none}.pricing-table .pricing-plan.is-primary .plan-price .plan-price-amount{color:#00d1b2}.pricing-table .pricing-plan.is-primary .plan-footer .button{background-color:#00d1b2;border-color:transparent;color:#fff}.pricing-table .pricing-plan.is-primary .plan-footer .button.is-hovered,.pricing-table .pricing-plan.is-primary .plan-footer .button:hover{background-color:#00c4a7;border-color:transparent;color:#fff}.pricing-table .pricing-plan.is-primary .plan-footer .button.is-focused,.pricing-table .pricing-plan.is-primary .plan-footer .button:focus{border-color:transparent;box-shadow:0 0 .5em rgba(0,209,178,.25);color:#fff}.pricing-table .pricing-plan.is-primary .plan-footer .button.is-active,.pricing-table .pricing-plan.is-primary .plan-footer .button:active{background-color:#00b89c;border-color:transparent;color:#fff}.pricing-table .pricing-plan.is-primary .plan-footer .button[disabled]{background-color:#00d1b2;border-color:transparent;box-shadow:none}.pricing-table .pricing-plan.is-link .plan-price .plan-price-amount{color:#3273dc}.pricing-table .pricing-plan.is-link .plan-footer .button{background-color:#3273dc;border-color:transparent;color:#fff}.pricing-table .pricing-plan.is-link .plan-footer .button.is-hovered,.pricing-table .pricing-plan.is-link .plan-footer .button:hover{background-color:#276cda;border-color:transparent;color:#fff}.pricing-table .pricing-plan.is-link .plan-footer .button.is-focused,.pricing-table .pricing-plan.is-link .plan-footer .button:focus{border-color:transparent;box-shadow:0 0 .5em rgba(50,115,220,.25);color:#fff}.pricing-table .pricing-plan.is-link .plan-footer .button.is-active,.pricing-table .pricing-plan.is-link .plan-footer .button:active{background-color:#2366d1;border-color:transparent;color:#fff}.pricing-table .pricing-plan.is-link .plan-footer .button[disabled]{background-color:#3273dc;border-color:transparent;box-shadow:none}.pricing-table .pricing-plan.is-info .plan-price .plan-price-amount{color:#209cee}.pricing-table .pricing-plan.is-info .plan-footer .button{background-color:#209cee;border-color:transparent;color:#fff}.pricing-table .pricing-plan.is-info .plan-footer .button.is-hovered,.pricing-table .pricing-plan.is-info .plan-footer .button:hover{background-color:#1496ed;border-color:transparent;color:#fff}.pricing-table .pricing-plan.is-info .plan-footer .button.is-focused,.pricing-table .pricing-plan.is-info .plan-footer .button:focus{border-color:transparent;box-shadow:0 0 .5em rgba(32,156,238,.25);color:#fff}.pricing-table .pricing-plan.is-info .plan-footer .button.is-active,.pricing-table .pricing-plan.is-info .plan-footer .button:active{background-color:#118fe4;border-color:transparent;color:#fff}.pricing-table .pricing-plan.is-info .plan-footer .button[disabled]{background-color:#209cee;border-color:transparent;box-shadow:none}.pricing-table .pricing-plan.is-success .plan-price .plan-price-amount{color:#23d160}.pricing-table .pricing-plan.is-success .plan-footer .button{background-color:#23d160;border-color:transparent;color:#fff}.pricing-table .pricing-plan.is-success .plan-footer .button.is-hovered,.pricing-table .pricing-plan.is-success .plan-footer .button:hover{background-color:#22c65b;border-color:transparent;color:#fff}.pricing-table .pricing-plan.is-success .plan-footer .button.is-focused,.pricing-table .pricing-plan.is-success .plan-footer .button:focus{border-color:transparent;box-shadow:0 0 .5em rgba(35,209,96,.25);color:#fff}.pricing-table .pricing-plan.is-success .plan-footer .button.is-active,.pricing-table .pricing-plan.is-success .plan-footer .button:active{background-color:#20bc56;border-color:transparent;color:#fff}.pricing-table .pricing-plan.is-success .plan-footer .button[disabled]{background-color:#23d160;border-color:transparent;box-shadow:none}.pricing-table .pricing-plan.is-warning .plan-price .plan-price-amount{color:#ffdd57}.pricing-table .pricing-plan.is-warning .plan-footer .button{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,.7)}.pricing-table .pricing-plan.is-warning .plan-footer .button.is-hovered,.pricing-table .pricing-plan.is-warning .plan-footer .button:hover{background-color:#ffdb4a;border-color:transparent;color:rgba(0,0,0,.7)}.pricing-table .pricing-plan.is-warning .plan-footer .button.is-focused,.pricing-table .pricing-plan.is-warning .plan-footer .button:focus{border-color:transparent;box-shadow:0 0 .5em rgba(255,221,87,.25);color:rgba(0,0,0,.7)}.pricing-table .pricing-plan.is-warning .plan-footer .button.is-active,.pricing-table .pricing-plan.is-warning .plan-footer .button:active{background-color:#ffd83d;border-color:transparent;color:rgba(0,0,0,.7)}.pricing-table .pricing-plan.is-warning .plan-footer .button[disabled]{background-color:#ffdd57;border-color:transparent;box-shadow:none}.pricing-table .pricing-plan.is-danger .plan-price .plan-price-amount{color:#ff3860}.pricing-table .pricing-plan.is-danger .plan-footer .button{background-color:#ff3860;border-color:transparent;color:#fff}.pricing-table .pricing-plan.is-danger .plan-footer .button.is-hovered,.pricing-table .pricing-plan.is-danger .plan-footer .button:hover{background-color:#ff2b56;border-color:transparent;color:#fff}.pricing-table .pricing-plan.is-danger .plan-footer .button.is-focused,.pricing-table .pricing-plan.is-danger .plan-footer .button:focus{border-color:transparent;box-shadow:0 0 .5em rgba(255,56,96,.25);color:#fff}.pricing-table .pricing-plan.is-danger .plan-footer .button.is-active,.pricing-table .pricing-plan.is-danger .plan-footer .button:active{background-color:#ff1f4b;border-color:transparent;color:#fff}.pricing-table .pricing-plan.is-danger .plan-footer .button[disabled]{background-color:#ff3860;border-color:transparent;box-shadow:none}@media screen and (min-width:769px),print{.pricing-table.is-comparative{margin:.5rem}.pricing-table.is-comparative.is-features{display:none}.pricing-table.is-comparative .plan-item::before{content:attr("data-feature")}.pricing-table.is-horizontal .pricing-plan{display:flex;flex-direction:row;flex-basis:100%}.pricing-table.is-horizontal .pricing-plan .plan-header{width:50%;display:flex;flex-direction:column;justify-content:center}.pricing-table.is-horizontal .pricing-plan .plan-price{width:100%;display:flex;flex-direction:row;justify-content:center}.pricing-table.is-horizontal .pricing-plan .plan-items{width:100%;background-color:#f5f5f5;columns:2;-webkit-columns:2;-moz-columns:2;-webkit-column-gap:.1rem;column-gap:.1rem}.pricing-table.is-horizontal .pricing-plan .plan-footer{width:50%;display:flex;flex-direction:column;justify-content:center;margin:auto}}@media screen and (max-width:768px){.pricing-table.is-comparative .pricing-plan{margin:.5rem}.pricing-table.is-comparative .pricing-plan.is-plan-first-mobile{order:-1}.pricing-table.is-comparative .pricing-plan.is-features{display:none}.pricing-table.is-comparative .pricing-plan .plan-item::before{content:attr(data-feature);display:block;font-weight:600;font-size:.75rem;color:#b5b5b5}}.quickview{display:flex;flex-direction:column;background-color:#fff;max-width:calc(100% - 50px);position:fixed;top:0;bottom:0;z-index:35;-webkit-transform:translateZ(0);transform:translateZ(0);transition:.3s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000;perspective:1000;will-change:transform}.quickview.is-marginless{max-width:100%}@media screen and (max-width:768px){.quickview{width:100%;right:-100%}}@media screen and (min-width:769px),print{.quickview{width:50%;right:-50%}}@media screen and (min-width:1088px){.quickview{width:35%;right:-35%}}@media screen and (min-width:1280px){.quickview{width:30%;right:-30%}}@media screen and (min-width:1472px){.quickview{width:25%;right:-25%}}@media screen and (max-width:768px){.quickview.is-left{left:-100%}}@media screen and (min-width:769px),print{.quickview.is-left{left:-50%}}@media screen and (min-width:1088px){.quickview.is-left{left:-35%}}@media screen and (min-width:1280px){.quickview.is-left{left:-30%}}@media screen and (min-width:1472px){.quickview.is-left{left:-25%}}.quickview.is-active{right:0;box-shadow:5px 0 13px 3px rgba(0,0,0,.1)}.quickview.is-active.is-left{left:0}.quickview-header{display:flex;justify-content:space-between;align-items:center;padding:0 1rem;min-height:3.25em!important;border-bottom:1px solid #dbdbdb}.quickview-header.is-white{background-color:#fff}.quickview-header.is-white .title{color:#0a0a0a}.quickview-header.is-black{background-color:#0a0a0a}.quickview-header.is-black .title{color:#fff}.quickview-header.is-light{background-color:#f5f5f5}.quickview-header.is-light .title{color:#363636}.quickview-header.is-dark{background-color:#363636}.quickview-header.is-dark .title{color:#f5f5f5}.quickview-header.is-primary{background-color:#00d1b2}.quickview-header.is-primary .title{color:#fff}.quickview-header.is-link{background-color:#3273dc}.quickview-header.is-link .title{color:#fff}.quickview-header.is-info{background-color:#209cee}.quickview-header.is-info .title{color:#fff}.quickview-header.is-success{background-color:#23d160}.quickview-header.is-success .title{color:#fff}.quickview-header.is-warning{background-color:#ffdd57}.quickview-header.is-warning .title{color:rgba(0,0,0,.7)}.quickview-header.is-danger{background-color:#ff3860}.quickview-header.is-danger .title{color:#fff}.quickview-header .title{font-size:1rem;font-weight:300;margin-bottom:0}.quickview-header .title img{max-height:2em}.quickview-body{flex:1 1 0%;overflow-y:auto}.quickview-footer{display:flex;justify-content:space-between;align-items:center;padding:0 1rem;min-height:4rem;background-color:#f5f5f5;border-top:1px solid #dbdbdb}.quickview-footer>*{margin:0 .4rem}.has-ribbon{position:relative}.has-ribbon-left{position:relative}.has-ribbon-left .ribbon{right:auto;left:0;border-left:none;border-right:.1rem solid #dbdbdb}.has-ribbon-bottom{position:relative}.has-ribbon-bottom .ribbon{top:auto;bottom:.5em}.ribbon{background-color:#fff;border:.1rem solid #dbdbdb;border-right:none;color:#363636;font-size:1rem;justify-content:center;padding-left:.75em;padding-right:.75em;text-align:center;white-space:nowrap;position:absolute;top:.5em;right:0;font-weight:400;z-index:2}.ribbon.is-white:not(.is-outlined){background-color:#fff;border-color:transparent;color:#0a0a0a!important}.ribbon.is-white.is-outlined{background-color:transparent;border-color:#fff}.ribbon.is-black:not(.is-outlined){background-color:#0a0a0a;border-color:transparent;color:#fff!important}.ribbon.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a}.ribbon.is-light:not(.is-outlined){background-color:#f5f5f5;border-color:transparent;color:#363636!important}.ribbon.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5}.ribbon.is-dark:not(.is-outlined){background-color:#363636;border-color:transparent;color:#f5f5f5!important}.ribbon.is-dark.is-outlined{background-color:transparent;border-color:#363636}.ribbon.is-primary:not(.is-outlined){background-color:#00d1b2;border-color:transparent;color:#fff!important}.ribbon.is-primary.is-outlined{background-color:transparent;border-color:#00d1b2}.ribbon.is-link:not(.is-outlined){background-color:#3273dc;border-color:transparent;color:#fff!important}.ribbon.is-link.is-outlined{background-color:transparent;border-color:#3273dc}.ribbon.is-info:not(.is-outlined){background-color:#209cee;border-color:transparent;color:#fff!important}.ribbon.is-info.is-outlined{background-color:transparent;border-color:#209cee}.ribbon.is-success:not(.is-outlined){background-color:#23d160;border-color:transparent;color:#fff!important}.ribbon.is-success.is-outlined{background-color:transparent;border-color:#23d160}.ribbon.is-warning:not(.is-outlined){background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,.7)!important}.ribbon.is-warning.is-outlined{background-color:transparent;border-color:#ffdd57}.ribbon.is-danger:not(.is-outlined){background-color:#ff3860;border-color:transparent;color:#fff!important}.ribbon.is-danger.is-outlined{background-color:transparent;border-color:#ff3860}.ribbon.is-small{font-size:.75rem}.ribbon.is-medium{font-size:1.25rem}.ribbon.is-large{font-size:1.5rem}.ribbon.is-outlined{background-color:transparent}input[type=range].slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:1rem 0;background:0 0}input[type=range].slider.is-fullwidth{display:block;width:100%}input[type=range].slider:focus{outline:0}input[type=range].slider:not([orient=vertical])::-webkit-slider-runnable-track{width:100%}input[type=range].slider:not([orient=vertical])::-moz-range-track{width:100%}input[type=range].slider:not([orient=vertical])::-ms-track{width:100%}input[type=range].slider:not([orient=vertical]).has-output+output,input[type=range].slider:not([orient=vertical]).has-output-tooltip+output{width:3rem;background:#4a4a4a;border-radius:4px;padding:.4rem .8rem;font-size:.75rem;line-height:.75rem;text-align:center;text-overflow:ellipsis;white-space:nowrap;color:#fff;overflow:hidden;pointer-events:none;z-index:200}input[type=range].slider:not([orient=vertical]).has-output{display:inline-block;width:calc(100% - (4.2rem))}input[type=range].slider:not([orient=vertical]).has-output+output{display:inline-block;position:relative;margin-left:.75rem;top:-.75rem}input[type=range].slider:not([orient=vertical]).has-output-tooltip{display:block}input[type=range].slider:not([orient=vertical]).has-output-tooltip+output{position:absolute;left:0;top:-.1rem}input[type=range].slider[orient=vertical]{-webkit-appearance:slider-vertical;-webkit-writing-mode:bt-lr;-ms-writing-mode:bt-lr;writing-mode:bt-lr}input[type=range].slider[orient=vertical]::-webkit-slider-runnable-track{height:100%}input[type=range].slider[orient=vertical]::-moz-range-track{height:100%}input[type=range].slider[orient=vertical]::-ms-track{height:100%}input[type=range].slider::-webkit-slider-runnable-track{cursor:pointer;animate:.2s;box-shadow:0 0 0 #7a7a7a;background:#dbdbdb;border-radius:4px;border:0 solid #7a7a7a}input[type=range].slider::-moz-range-track{cursor:pointer;animate:.2s;box-shadow:0 0 0 #7a7a7a;background:#dbdbdb;border-radius:4px;border:0 solid #7a7a7a}input[type=range].slider::-ms-track{cursor:pointer;animate:.2s;box-shadow:0 0 0 #7a7a7a;background:#dbdbdb;border-radius:4px;border:0 solid #7a7a7a}input[type=range].slider::-ms-fill-lower,input[type=range].slider::-ms-fill-upper{background:#dbdbdb;border-radius:4px}input[type=range].slider::-webkit-slider-thumb{box-shadow:none;border:1px solid #b5b5b5;border-radius:4px;background:#fff;cursor:pointer;-webkit-appearance:none;transition:transform .2s ease,-webkit-transform .2s ease;transition:transform .2s ease;transition:-webkit-transform .2s ease}input[type=range].slider::-moz-range-thumb{box-shadow:none;border:1px solid #b5b5b5;background:#fff;border-radius:4px;cursor:pointer;transition:transform .2s ease,-webkit-transform .2s ease;transition:transform .2s ease;transition:-webkit-transform .2s ease}input[type=range].slider::-ms-thumb{box-shadow:none;border:1px solid #b5b5b5;background:#fff;border-radius:4px;cursor:pointer;transition:transform .2s ease,-webkit-transform .2s ease;transition:transform .2s ease;transition:-webkit-transform .2s ease}input[type=range].slider::-webkit-slider-thumb{-webkit-appearance:none}input[type=range].slider.is-circle::-webkit-slider-thumb{border-radius:50%}input[type=range].slider.is-circle::-moz-range-thumb{border-radius:50%}input[type=range].slider.is-circle::-ms-thumb{border-radius:50%}input[type=range].slider:active::-webkit-slider-thumb{-webkit-transform:scale(1.25);transform:scale(1.25)}input[type=range].slider:active::-moz-range-thumb{transform:scale(1.25)}input[type=range].slider:active::-ms-thumb{transform:scale(1.25)}input[type=range].slider:disabled{opacity:.5;cursor:not-allowed}input[type=range].slider:disabled::-webkit-slider-thumb{cursor:not-allowed;-webkit-transform:scale(1);transform:scale(1)}input[type=range].slider:disabled::-moz-range-thumb{cursor:not-allowed;transform:scale(1)}input[type=range].slider:disabled::-ms-thumb{cursor:not-allowed;transform:scale(1)}input[type=range].slider:not([orient=vertical]){min-height:calc((1rem + 2px) * 1.25)}input[type=range].slider:not([orient=vertical])::-webkit-slider-runnable-track{height:.5rem}input[type=range].slider:not([orient=vertical])::-moz-range-track{height:.5rem}input[type=range].slider:not([orient=vertical])::-ms-track{height:.5rem}input[type=range].slider[orient=vertical]::-webkit-slider-runnable-track{width:.5rem}input[type=range].slider[orient=vertical]::-moz-range-track{width:.5rem}input[type=range].slider[orient=vertical]::-ms-track{width:.5rem}input[type=range].slider::-webkit-slider-thumb{height:1rem;width:1rem;margin-top:-.25rem}input[type=range].slider::-moz-range-thumb{height:1rem;width:1rem}input[type=range].slider::-ms-thumb{height:1rem;width:1rem;margin-top:0}input[type=range].slider[orient=vertical]::-webkit-slider-thumb{margin-top:auto;margin-left:-.25rem}input[type=range].slider.is-small:not([orient=vertical]){min-height:calc((.75rem + 2px) * 1.25)}input[type=range].slider.is-small:not([orient=vertical])::-webkit-slider-runnable-track{height:.375rem}input[type=range].slider.is-small:not([orient=vertical])::-moz-range-track{height:.375rem}input[type=range].slider.is-small:not([orient=vertical])::-ms-track{height:.375rem}input[type=range].slider.is-small[orient=vertical]::-webkit-slider-runnable-track{width:.375rem}input[type=range].slider.is-small[orient=vertical]::-moz-range-track{width:.375rem}input[type=range].slider.is-small[orient=vertical]::-ms-track{width:.375rem}input[type=range].slider.is-small::-webkit-slider-thumb{height:.75rem;width:.75rem;margin-top:-.1875rem}input[type=range].slider.is-small::-moz-range-thumb{height:.75rem;width:.75rem}input[type=range].slider.is-small::-ms-thumb{height:.75rem;width:.75rem;margin-top:0}input[type=range].slider.is-small[orient=vertical]::-webkit-slider-thumb{margin-top:auto;margin-left:-.1875rem}input[type=range].slider.is-medium:not([orient=vertical]){min-height:calc((1.25rem + 2px) * 1.25)}input[type=range].slider.is-medium:not([orient=vertical])::-webkit-slider-runnable-track{height:.625rem}input[type=range].slider.is-medium:not([orient=vertical])::-moz-range-track{height:.625rem}input[type=range].slider.is-medium:not([orient=vertical])::-ms-track{height:.625rem}input[type=range].slider.is-medium[orient=vertical]::-webkit-slider-runnable-track{width:.625rem}input[type=range].slider.is-medium[orient=vertical]::-moz-range-track{width:.625rem}input[type=range].slider.is-medium[orient=vertical]::-ms-track{width:.625rem}input[type=range].slider.is-medium::-webkit-slider-thumb{height:1.25rem;width:1.25rem;margin-top:-.3125rem}input[type=range].slider.is-medium::-moz-range-thumb{height:1.25rem;width:1.25rem}input[type=range].slider.is-medium::-ms-thumb{height:1.25rem;width:1.25rem;margin-top:0}input[type=range].slider.is-medium[orient=vertical]::-webkit-slider-thumb{margin-top:auto;margin-left:-.3125rem}input[type=range].slider.is-large:not([orient=vertical]){min-height:calc((1.5rem + 2px) * 1.25)}input[type=range].slider.is-large:not([orient=vertical])::-webkit-slider-runnable-track{height:.75rem}input[type=range].slider.is-large:not([orient=vertical])::-moz-range-track{height:.75rem}input[type=range].slider.is-large:not([orient=vertical])::-ms-track{height:.75rem}input[type=range].slider.is-large[orient=vertical]::-webkit-slider-runnable-track{width:.75rem}input[type=range].slider.is-large[orient=vertical]::-moz-range-track{width:.75rem}input[type=range].slider.is-large[orient=vertical]::-ms-track{width:.75rem}input[type=range].slider.is-large::-webkit-slider-thumb{height:1.5rem;width:1.5rem;margin-top:-.375rem}input[type=range].slider.is-large::-moz-range-thumb{height:1.5rem;width:1.5rem}input[type=range].slider.is-large::-ms-thumb{height:1.5rem;width:1.5rem;margin-top:0}input[type=range].slider.is-large[orient=vertical]::-webkit-slider-thumb{margin-top:auto;margin-left:-.375rem}input[type=range].slider.is-white::-moz-range-track{background:#fff}input[type=range].slider.is-white::-webkit-slider-runnable-track{background:#fff}input[type=range].slider.is-white::-ms-track{background:#fff!important}input[type=range].slider.is-white::-ms-fill-lower,input[type=range].slider.is-white::-ms-fill-upper{background:#fff}input[type=range].slider.is-white .has-output-tooltip+output,input[type=range].slider.is-white.has-output+output{background-color:#fff;color:#0a0a0a}input[type=range].slider.is-black::-moz-range-track{background:#0a0a0a}input[type=range].slider.is-black::-webkit-slider-runnable-track{background:#0a0a0a}input[type=range].slider.is-black::-ms-track{background:#0a0a0a!important}input[type=range].slider.is-black::-ms-fill-lower,input[type=range].slider.is-black::-ms-fill-upper{background:#0a0a0a}input[type=range].slider.is-black .has-output-tooltip+output,input[type=range].slider.is-black.has-output+output{background-color:#0a0a0a;color:#fff}input[type=range].slider.is-light::-moz-range-track{background:#f5f5f5}input[type=range].slider.is-light::-webkit-slider-runnable-track{background:#f5f5f5}input[type=range].slider.is-light::-ms-track{background:#f5f5f5!important}input[type=range].slider.is-light::-ms-fill-lower,input[type=range].slider.is-light::-ms-fill-upper{background:#f5f5f5}input[type=range].slider.is-light .has-output-tooltip+output,input[type=range].slider.is-light.has-output+output{background-color:#f5f5f5;color:#363636}input[type=range].slider.is-dark::-moz-range-track{background:#363636}input[type=range].slider.is-dark::-webkit-slider-runnable-track{background:#363636}input[type=range].slider.is-dark::-ms-track{background:#363636!important}input[type=range].slider.is-dark::-ms-fill-lower,input[type=range].slider.is-dark::-ms-fill-upper{background:#363636}input[type=range].slider.is-dark .has-output-tooltip+output,input[type=range].slider.is-dark.has-output+output{background-color:#363636;color:#f5f5f5}input[type=range].slider.is-primary::-moz-range-track{background:#00d1b2}input[type=range].slider.is-primary::-webkit-slider-runnable-track{background:#00d1b2}input[type=range].slider.is-primary::-ms-track{background:#00d1b2!important}input[type=range].slider.is-primary::-ms-fill-lower,input[type=range].slider.is-primary::-ms-fill-upper{background:#00d1b2}input[type=range].slider.is-primary .has-output-tooltip+output,input[type=range].slider.is-primary.has-output+output{background-color:#00d1b2;color:#fff}input[type=range].slider.is-link::-moz-range-track{background:#3273dc}input[type=range].slider.is-link::-webkit-slider-runnable-track{background:#3273dc}input[type=range].slider.is-link::-ms-track{background:#3273dc!important}input[type=range].slider.is-link::-ms-fill-lower,input[type=range].slider.is-link::-ms-fill-upper{background:#3273dc}input[type=range].slider.is-link .has-output-tooltip+output,input[type=range].slider.is-link.has-output+output{background-color:#3273dc;color:#fff}input[type=range].slider.is-info::-moz-range-track{background:#209cee}input[type=range].slider.is-info::-webkit-slider-runnable-track{background:#209cee}input[type=range].slider.is-info::-ms-track{background:#209cee!important}input[type=range].slider.is-info::-ms-fill-lower,input[type=range].slider.is-info::-ms-fill-upper{background:#209cee}input[type=range].slider.is-info .has-output-tooltip+output,input[type=range].slider.is-info.has-output+output{background-color:#209cee;color:#fff}input[type=range].slider.is-success::-moz-range-track{background:#23d160}input[type=range].slider.is-success::-webkit-slider-runnable-track{background:#23d160}input[type=range].slider.is-success::-ms-track{background:#23d160!important}input[type=range].slider.is-success::-ms-fill-lower,input[type=range].slider.is-success::-ms-fill-upper{background:#23d160}input[type=range].slider.is-success .has-output-tooltip+output,input[type=range].slider.is-success.has-output+output{background-color:#23d160;color:#fff}input[type=range].slider.is-warning::-moz-range-track{background:#ffdd57}input[type=range].slider.is-warning::-webkit-slider-runnable-track{background:#ffdd57}input[type=range].slider.is-warning::-ms-track{background:#ffdd57!important}input[type=range].slider.is-warning::-ms-fill-lower,input[type=range].slider.is-warning::-ms-fill-upper{background:#ffdd57}input[type=range].slider.is-warning .has-output-tooltip+output,input[type=range].slider.is-warning.has-output+output{background-color:#ffdd57;color:rgba(0,0,0,.7)}input[type=range].slider.is-danger::-moz-range-track{background:#ff3860}input[type=range].slider.is-danger::-webkit-slider-runnable-track{background:#ff3860}input[type=range].slider.is-danger::-ms-track{background:#ff3860!important}input[type=range].slider.is-danger::-ms-fill-lower,input[type=range].slider.is-danger::-ms-fill-upper{background:#ff3860}input[type=range].slider.is-danger .has-output-tooltip+output,input[type=range].slider.is-danger.has-output+output{background-color:#ff3860;color:#fff}.steps{display:flex;flex-wrap:wrap;font-size:1rem;min-height:2rem}.steps .step-item{margin-top:0;position:relative;flex-grow:1;flex-basis:0}.steps .step-item:not(:first-child){flex-basis:1em;flex-grow:1;flex-shrink:1}.steps .step-item:not(:first-child)::before{content:" ";display:block;position:absolute}.steps .step-item::before{background:linear-gradient(to left,#dbdbdb 50%,#00d1b2 50%);background-size:200% 100%;background-position:right bottom}.steps .step-item::before .step-marker{color:#fff}.steps .step-item.is-active::before{background-position:left bottom}.steps .step-item.is-active .step-marker{background-color:#fff;border-color:#00d1b2;color:#00d1b2}.steps .step-item.is-completed::before{background-position:left bottom}.steps .step-item.is-completed .step-marker{color:#fff;background-color:#00d1b2}.steps .step-item .step-marker{align-items:center;display:flex;border-radius:50%;font-weight:700;justify-content:center;background:#b5b5b5;color:#fff;border:.2em solid #fff;z-index:1}.steps .step-item .step-details{text-align:center}.steps .step-item.is-white::before{background:linear-gradient(to left,#dbdbdb 50%,#fff 50%);background-size:200% 100%;background-position:right bottom}.steps .step-item.is-white.is-active::before{background-position:left bottom}.steps .step-item.is-white.is-active .step-marker{background-color:#fff;border-color:#fff;color:#fff}.steps .step-item.is-white.is-completed::before{background-position:left bottom}.steps .step-item.is-white.is-completed .step-marker{color:#0a0a0a;background-color:#fff}.steps .step-item.is-black::before{background:linear-gradient(to left,#dbdbdb 50%,#0a0a0a 50%);background-size:200% 100%;background-position:right bottom}.steps .step-item.is-black.is-active::before{background-position:left bottom}.steps .step-item.is-black.is-active .step-marker{background-color:#fff;border-color:#0a0a0a;color:#0a0a0a}.steps .step-item.is-black.is-completed::before{background-position:left bottom}.steps .step-item.is-black.is-completed .step-marker{color:#fff;background-color:#0a0a0a}.steps .step-item.is-light::before{background:linear-gradient(to left,#dbdbdb 50%,#f5f5f5 50%);background-size:200% 100%;background-position:right bottom}.steps .step-item.is-light.is-active::before{background-position:left bottom}.steps .step-item.is-light.is-active .step-marker{background-color:#fff;border-color:#f5f5f5;color:#f5f5f5}.steps .step-item.is-light.is-completed::before{background-position:left bottom}.steps .step-item.is-light.is-completed .step-marker{color:#363636;background-color:#f5f5f5}.steps .step-item.is-dark::before{background:linear-gradient(to left,#dbdbdb 50%,#363636 50%);background-size:200% 100%;background-position:right bottom}.steps .step-item.is-dark.is-active::before{background-position:left bottom}.steps .step-item.is-dark.is-active .step-marker{background-color:#fff;border-color:#363636;color:#363636}.steps .step-item.is-dark.is-completed::before{background-position:left bottom}.steps .step-item.is-dark.is-completed .step-marker{color:#f5f5f5;background-color:#363636}.steps .step-item.is-primary::before{background:linear-gradient(to left,#dbdbdb 50%,#00d1b2 50%);background-size:200% 100%;background-position:right bottom}.steps .step-item.is-primary.is-active::before{background-position:left bottom}.steps .step-item.is-primary.is-active .step-marker{background-color:#fff;border-color:#00d1b2;color:#00d1b2}.steps .step-item.is-primary.is-completed::before{background-position:left bottom}.steps .step-item.is-primary.is-completed .step-marker{color:#fff;background-color:#00d1b2}.steps .step-item.is-link::before{background:linear-gradient(to left,#dbdbdb 50%,#3273dc 50%);background-size:200% 100%;background-position:right bottom}.steps .step-item.is-link.is-active::before{background-position:left bottom}.steps .step-item.is-link.is-active .step-marker{background-color:#fff;border-color:#3273dc;color:#3273dc}.steps .step-item.is-link.is-completed::before{background-position:left bottom}.steps .step-item.is-link.is-completed .step-marker{color:#fff;background-color:#3273dc}.steps .step-item.is-info::before{background:linear-gradient(to left,#dbdbdb 50%,#209cee 50%);background-size:200% 100%;background-position:right bottom}.steps .step-item.is-info.is-active::before{background-position:left bottom}.steps .step-item.is-info.is-active .step-marker{background-color:#fff;border-color:#209cee;color:#209cee}.steps .step-item.is-info.is-completed::before{background-position:left bottom}.steps .step-item.is-info.is-completed .step-marker{color:#fff;background-color:#209cee}.steps .step-item.is-success::before{background:linear-gradient(to left,#dbdbdb 50%,#23d160 50%);background-size:200% 100%;background-position:right bottom}.steps .step-item.is-success.is-active::before{background-position:left bottom}.steps .step-item.is-success.is-active .step-marker{background-color:#fff;border-color:#23d160;color:#23d160}.steps .step-item.is-success.is-completed::before{background-position:left bottom}.steps .step-item.is-success.is-completed .step-marker{color:#fff;background-color:#23d160}.steps .step-item.is-warning::before{background:linear-gradient(to left,#dbdbdb 50%,#ffdd57 50%);background-size:200% 100%;background-position:right bottom}.steps .step-item.is-warning.is-active::before{background-position:left bottom}.steps .step-item.is-warning.is-active .step-marker{background-color:#fff;border-color:#ffdd57;color:#ffdd57}.steps .step-item.is-warning.is-completed::before{background-position:left bottom}.steps .step-item.is-warning.is-completed .step-marker{color:rgba(0,0,0,.7);background-color:#ffdd57}.steps .step-item.is-danger::before{background:linear-gradient(to left,#dbdbdb 50%,#ff3860 50%);background-size:200% 100%;background-position:right bottom}.steps .step-item.is-danger.is-active::before{background-position:left bottom}.steps .step-item.is-danger.is-active .step-marker{background-color:#fff;border-color:#ff3860;color:#ff3860}.steps .step-item.is-danger.is-completed::before{background-position:left bottom}.steps .step-item.is-danger.is-completed .step-marker{color:#fff;background-color:#ff3860}.steps .steps-content{align-items:stretch;flex-basis:100%;margin:2rem 0}.steps .steps-content .step-content{display:none}.steps .steps-content .step-content.is-active{display:block}.steps .steps-actions{display:flex;align-items:stretch;flex-basis:100%}.steps .steps-actions .steps-action{display:flex;flex-basis:0;flex-grow:1;margin:.5rem;justify-content:center;align-items:center}.steps.is-animated .step-item::before{transition:all 2s ease}.steps.is-animated .step-item .step-marker{transition:all 0s ease;transition-delay:1.5s}.steps .step-item:not(:first-child)::before{height:.2em;width:100%;bottom:0;left:-50%;top:1rem}.steps .step-item .step-marker{height:2rem;width:2rem;position:absolute;left:calc(50% - 1rem)}.steps .step-item .step-marker .icon *{font-size:1rem}.steps .step-item .step-details{margin-top:2rem;margin-left:.5em;margin-right:.5em;padding-top:.2em}.steps .step-item .step-details .step-title{font-size:1.2rem;font-weight:600}.steps.is-small{font-size:.75rem;min-height:1.5rem}.steps.is-small .step-item:not(:first-child)::before{height:.2em;width:100%;bottom:0;left:-50%;top:.75rem}.steps.is-small .step-item .step-marker{height:1.5rem;width:1.5rem;position:absolute;left:calc(50% - .75rem)}.steps.is-small .step-item .step-marker .icon *{font-size:.75rem}.steps.is-small .step-item .step-details{margin-top:1.5rem;margin-left:.5em;margin-right:.5em;padding-top:.2em}.steps.is-small .step-item .step-details .step-title{font-size:.9rem;font-weight:600}.steps.is-medium{font-size:1.25rem;min-height:2.5rem}.steps.is-medium .step-item:not(:first-child)::before{height:.2em;width:100%;bottom:0;left:-50%;top:1.25rem}.steps.is-medium .step-item .step-marker{height:2.5rem;width:2.5rem;position:absolute;left:calc(50% - 1.25rem)}.steps.is-medium .step-item .step-marker .icon *{font-size:1.25rem}.steps.is-medium .step-item .step-details{margin-top:2.5rem;margin-left:.5em;margin-right:.5em;padding-top:.2em}.steps.is-medium .step-item .step-details .step-title{font-size:1.5rem;font-weight:600}.steps.is-large{font-size:1.5rem;min-height:3rem}.steps.is-large .step-item:not(:first-child)::before{height:.2em;width:100%;bottom:0;left:-50%;top:1.5rem}.steps.is-large .step-item .step-marker{height:3rem;width:3rem;position:absolute;left:calc(50% - 1.5rem)}.steps.is-large .step-item .step-marker .icon *{font-size:1.5rem}.steps.is-large .step-item .step-details{margin-top:3rem;margin-left:.5em;margin-right:.5em;padding-top:.2em}.steps.is-large .step-item .step-details .step-title{font-size:1.8rem;font-weight:600}.switch[type=checkbox]{outline:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:inline-block;position:absolute;opacity:0}.switch[type=checkbox]:focus+label::after,.switch[type=checkbox]:focus+label::before,.switch[type=checkbox]:focus+label:after,.switch[type=checkbox]:focus+label:before{outline:1px dotted #b5b5b5}.switch[type=checkbox][disabled]{cursor:not-allowed}.switch[type=checkbox][disabled]+label{opacity:.5}.switch[type=checkbox][disabled]+label::before,.switch[type=checkbox][disabled]+label:before{opacity:.5}.switch[type=checkbox][disabled]+label::after,.switch[type=checkbox][disabled]+label:after{opacity:.5}.switch[type=checkbox][disabled]+label:hover{cursor:not-allowed}.switch[type=checkbox]+label{position:relative;display:initial;font-size:1rem;line-height:initial;padding-left:3.5rem;padding-top:.2rem;cursor:pointer}.switch[type=checkbox]+label::before,.switch[type=checkbox]+label:before{position:absolute;display:block;top:0;left:0;width:3rem;height:1.5rem;border:.1rem solid transparent;border-radius:4px;background:#b5b5b5;content:''}.switch[type=checkbox]+label::after,.switch[type=checkbox]+label:after{display:block;position:absolute;top:.25rem;left:.25rem;width:1rem;height:1rem;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);border-radius:4px;background:#fff;transition:all .25s ease-out;content:''}.switch[type=checkbox].is-rtl+label{padding-left:0;padding-right:3.5rem}.switch[type=checkbox].is-rtl+label::before,.switch[type=checkbox].is-rtl+label:before{left:auto;right:0}.switch[type=checkbox].is-rtl+label::after,.switch[type=checkbox].is-rtl+label:after{left:auto;right:.25rem}.switch[type=checkbox]:checked+label::before,.switch[type=checkbox]:checked+label:before{background:#00d1b2}.switch[type=checkbox]:checked+label::after{left:1.625rem}.switch[type=checkbox]:checked.is-rtl+label::after,.switch[type=checkbox]:checked.is-rtl+label:after{left:auto;right:1.625rem}.switch[type=checkbox].is-outlined+label::before,.switch[type=checkbox].is-outlined+label:before{background-color:transparent;border-color:#b5b5b5}.switch[type=checkbox].is-outlined+label::after,.switch[type=checkbox].is-outlined+label:after{background:#b5b5b5}.switch[type=checkbox].is-outlined:checked+label::before,.switch[type=checkbox].is-outlined:checked+label:before{background-color:transparent;border-color:#00d1b2}.switch[type=checkbox].is-outlined:checked+label::after,.switch[type=checkbox].is-outlined:checked+label:after{background:#00d1b2}.switch[type=checkbox].is-thin+label::before,.switch[type=checkbox].is-thin+label:before{top:.54545rem;height:.375rem}.switch[type=checkbox].is-thin+label::after,.switch[type=checkbox].is-thin+label:after{box-shadow:0 0 3px #7a7a7a}.switch[type=checkbox].is-rounded+label::before,.switch[type=checkbox].is-rounded+label:before{border-radius:24px}.switch[type=checkbox].is-rounded+label::after,.switch[type=checkbox].is-rounded+label:after{border-radius:50%}.switch[type=checkbox].is-small+label{position:relative;display:initial;font-size:.75rem;line-height:initial;padding-left:2.75rem;padding-top:.2rem;cursor:pointer}.switch[type=checkbox].is-small+label::before,.switch[type=checkbox].is-small+label:before{position:absolute;display:block;top:0;left:0;width:2.25rem;height:1.125rem;border:.1rem solid transparent;border-radius:4px;background:#b5b5b5;content:''}.switch[type=checkbox].is-small+label::after,.switch[type=checkbox].is-small+label:after{display:block;position:absolute;top:.25rem;left:.25rem;width:.625rem;height:.625rem;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);border-radius:4px;background:#fff;transition:all .25s ease-out;content:''}.switch[type=checkbox].is-small.is-rtl+label{padding-left:0;padding-right:2.75rem}.switch[type=checkbox].is-small.is-rtl+label::before,.switch[type=checkbox].is-small.is-rtl+label:before{left:auto;right:0}.switch[type=checkbox].is-small.is-rtl+label::after,.switch[type=checkbox].is-small.is-rtl+label:after{left:auto;right:.25rem}.switch[type=checkbox].is-small:checked+label::before,.switch[type=checkbox].is-small:checked+label:before{background:#00d1b2}.switch[type=checkbox].is-small:checked+label::after{left:1.25rem}.switch[type=checkbox].is-small:checked.is-rtl+label::after,.switch[type=checkbox].is-small:checked.is-rtl+label:after{left:auto;right:1.25rem}.switch[type=checkbox].is-small.is-outlined+label::before,.switch[type=checkbox].is-small.is-outlined+label:before{background-color:transparent;border-color:#b5b5b5}.switch[type=checkbox].is-small.is-outlined+label::after,.switch[type=checkbox].is-small.is-outlined+label:after{background:#b5b5b5}.switch[type=checkbox].is-small.is-outlined:checked+label::before,.switch[type=checkbox].is-small.is-outlined:checked+label:before{background-color:transparent;border-color:#00d1b2}.switch[type=checkbox].is-small.is-outlined:checked+label::after,.switch[type=checkbox].is-small.is-outlined:checked+label:after{background:#00d1b2}.switch[type=checkbox].is-small.is-thin+label::before,.switch[type=checkbox].is-small.is-thin+label:before{top:.40909rem;height:.28125rem}.switch[type=checkbox].is-small.is-thin+label::after,.switch[type=checkbox].is-small.is-thin+label:after{box-shadow:0 0 3px #7a7a7a}.switch[type=checkbox].is-small.is-rounded+label::before,.switch[type=checkbox].is-small.is-rounded+label:before{border-radius:24px}.switch[type=checkbox].is-small.is-rounded+label::after,.switch[type=checkbox].is-small.is-rounded+label:after{border-radius:50%}.switch[type=checkbox].is-medium+label{position:relative;display:initial;font-size:1.25rem;line-height:initial;padding-left:4.25rem;padding-top:.2rem;cursor:pointer}.switch[type=checkbox].is-medium+label::before,.switch[type=checkbox].is-medium+label:before{position:absolute;display:block;top:0;left:0;width:3.75rem;height:1.875rem;border:.1rem solid transparent;border-radius:4px;background:#b5b5b5;content:''}.switch[type=checkbox].is-medium+label::after,.switch[type=checkbox].is-medium+label:after{display:block;position:absolute;top:.25rem;left:.25rem;width:1.375rem;height:1.375rem;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);border-radius:4px;background:#fff;transition:all .25s ease-out;content:''}.switch[type=checkbox].is-medium.is-rtl+label{padding-left:0;padding-right:4.25rem}.switch[type=checkbox].is-medium.is-rtl+label::before,.switch[type=checkbox].is-medium.is-rtl+label:before{left:auto;right:0}.switch[type=checkbox].is-medium.is-rtl+label::after,.switch[type=checkbox].is-medium.is-rtl+label:after{left:auto;right:.25rem}.switch[type=checkbox].is-medium:checked+label::before,.switch[type=checkbox].is-medium:checked+label:before{background:#00d1b2}.switch[type=checkbox].is-medium:checked+label::after{left:2rem}.switch[type=checkbox].is-medium:checked.is-rtl+label::after,.switch[type=checkbox].is-medium:checked.is-rtl+label:after{left:auto;right:2rem}.switch[type=checkbox].is-medium.is-outlined+label::before,.switch[type=checkbox].is-medium.is-outlined+label:before{background-color:transparent;border-color:#b5b5b5}.switch[type=checkbox].is-medium.is-outlined+label::after,.switch[type=checkbox].is-medium.is-outlined+label:after{background:#b5b5b5}.switch[type=checkbox].is-medium.is-outlined:checked+label::before,.switch[type=checkbox].is-medium.is-outlined:checked+label:before{background-color:transparent;border-color:#00d1b2}.switch[type=checkbox].is-medium.is-outlined:checked+label::after,.switch[type=checkbox].is-medium.is-outlined:checked+label:after{background:#00d1b2}.switch[type=checkbox].is-medium.is-thin+label::before,.switch[type=checkbox].is-medium.is-thin+label:before{top:.68182rem;height:.46875rem}.switch[type=checkbox].is-medium.is-thin+label::after,.switch[type=checkbox].is-medium.is-thin+label:after{box-shadow:0 0 3px #7a7a7a}.switch[type=checkbox].is-medium.is-rounded+label::before,.switch[type=checkbox].is-medium.is-rounded+label:before{border-radius:24px}.switch[type=checkbox].is-medium.is-rounded+label::after,.switch[type=checkbox].is-medium.is-rounded+label:after{border-radius:50%}.switch[type=checkbox].is-large+label{position:relative;display:initial;font-size:1.5rem;line-height:initial;padding-left:5rem;padding-top:.2rem;cursor:pointer}.switch[type=checkbox].is-large+label::before,.switch[type=checkbox].is-large+label:before{position:absolute;display:block;top:0;left:0;width:4.5rem;height:2.25rem;border:.1rem solid transparent;border-radius:4px;background:#b5b5b5;content:''}.switch[type=checkbox].is-large+label::after,.switch[type=checkbox].is-large+label:after{display:block;position:absolute;top:.25rem;left:.25rem;width:1.75rem;height:1.75rem;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);border-radius:4px;background:#fff;transition:all .25s ease-out;content:''}.switch[type=checkbox].is-large.is-rtl+label{padding-left:0;padding-right:5rem}.switch[type=checkbox].is-large.is-rtl+label::before,.switch[type=checkbox].is-large.is-rtl+label:before{left:auto;right:0}.switch[type=checkbox].is-large.is-rtl+label::after,.switch[type=checkbox].is-large.is-rtl+label:after{left:auto;right:.25rem}.switch[type=checkbox].is-large:checked+label::before,.switch[type=checkbox].is-large:checked+label:before{background:#00d1b2}.switch[type=checkbox].is-large:checked+label::after{left:2.375rem}.switch[type=checkbox].is-large:checked.is-rtl+label::after,.switch[type=checkbox].is-large:checked.is-rtl+label:after{left:auto;right:2.375rem}.switch[type=checkbox].is-large.is-outlined+label::before,.switch[type=checkbox].is-large.is-outlined+label:before{background-color:transparent;border-color:#b5b5b5}.switch[type=checkbox].is-large.is-outlined+label::after,.switch[type=checkbox].is-large.is-outlined+label:after{background:#b5b5b5}.switch[type=checkbox].is-large.is-outlined:checked+label::before,.switch[type=checkbox].is-large.is-outlined:checked+label:before{background-color:transparent;border-color:#00d1b2}.switch[type=checkbox].is-large.is-outlined:checked+label::after,.switch[type=checkbox].is-large.is-outlined:checked+label:after{background:#00d1b2}.switch[type=checkbox].is-large.is-thin+label::before,.switch[type=checkbox].is-large.is-thin+label:before{top:.81818rem;height:.5625rem}.switch[type=checkbox].is-large.is-thin+label::after,.switch[type=checkbox].is-large.is-thin+label:after{box-shadow:0 0 3px #7a7a7a}.switch[type=checkbox].is-large.is-rounded+label::before,.switch[type=checkbox].is-large.is-rounded+label:before{border-radius:24px}.switch[type=checkbox].is-large.is-rounded+label::after,.switch[type=checkbox].is-large.is-rounded+label:after{border-radius:50%}.switch[type=checkbox].is-white:checked+label::before,.switch[type=checkbox].is-white:checked+label:before{background:#fff}.switch[type=checkbox].is-white.is-outlined:checked+label::before,.switch[type=checkbox].is-white.is-outlined:checked+label:before{background-color:transparent;border-color:#fff!important}.switch[type=checkbox].is-white.is-outlined:checked+label::after,.switch[type=checkbox].is-white.is-outlined:checked+label:after{background:#fff}.switch[type=checkbox].is-white.is-thin.is-outlined+label::after,.switch[type=checkbox].is-white.is-thin.is-outlined+label:after{box-shadow:none}.switch[type=checkbox].is-unchecked-white+label::before,.switch[type=checkbox].is-unchecked-white+label:before{background:#fff}.switch[type=checkbox].is-unchecked-white.is-outlined+label::before,.switch[type=checkbox].is-unchecked-white.is-outlined+label:before{background-color:transparent;border-color:#fff!important}.switch[type=checkbox].is-unchecked-white.is-outlined+label::after,.switch[type=checkbox].is-unchecked-white.is-outlined+label:after{background:#fff}.switch[type=checkbox].is-black:checked+label::before,.switch[type=checkbox].is-black:checked+label:before{background:#0a0a0a}.switch[type=checkbox].is-black.is-outlined:checked+label::before,.switch[type=checkbox].is-black.is-outlined:checked+label:before{background-color:transparent;border-color:#0a0a0a!important}.switch[type=checkbox].is-black.is-outlined:checked+label::after,.switch[type=checkbox].is-black.is-outlined:checked+label:after{background:#0a0a0a}.switch[type=checkbox].is-black.is-thin.is-outlined+label::after,.switch[type=checkbox].is-black.is-thin.is-outlined+label:after{box-shadow:none}.switch[type=checkbox].is-unchecked-black+label::before,.switch[type=checkbox].is-unchecked-black+label:before{background:#0a0a0a}.switch[type=checkbox].is-unchecked-black.is-outlined+label::before,.switch[type=checkbox].is-unchecked-black.is-outlined+label:before{background-color:transparent;border-color:#0a0a0a!important}.switch[type=checkbox].is-unchecked-black.is-outlined+label::after,.switch[type=checkbox].is-unchecked-black.is-outlined+label:after{background:#0a0a0a}.switch[type=checkbox].is-light:checked+label::before,.switch[type=checkbox].is-light:checked+label:before{background:#f5f5f5}.switch[type=checkbox].is-light.is-outlined:checked+label::before,.switch[type=checkbox].is-light.is-outlined:checked+label:before{background-color:transparent;border-color:#f5f5f5!important}.switch[type=checkbox].is-light.is-outlined:checked+label::after,.switch[type=checkbox].is-light.is-outlined:checked+label:after{background:#f5f5f5}.switch[type=checkbox].is-light.is-thin.is-outlined+label::after,.switch[type=checkbox].is-light.is-thin.is-outlined+label:after{box-shadow:none}.switch[type=checkbox].is-unchecked-light+label::before,.switch[type=checkbox].is-unchecked-light+label:before{background:#f5f5f5}.switch[type=checkbox].is-unchecked-light.is-outlined+label::before,.switch[type=checkbox].is-unchecked-light.is-outlined+label:before{background-color:transparent;border-color:#f5f5f5!important}.switch[type=checkbox].is-unchecked-light.is-outlined+label::after,.switch[type=checkbox].is-unchecked-light.is-outlined+label:after{background:#f5f5f5}.switch[type=checkbox].is-dark:checked+label::before,.switch[type=checkbox].is-dark:checked+label:before{background:#363636}.switch[type=checkbox].is-dark.is-outlined:checked+label::before,.switch[type=checkbox].is-dark.is-outlined:checked+label:before{background-color:transparent;border-color:#363636!important}.switch[type=checkbox].is-dark.is-outlined:checked+label::after,.switch[type=checkbox].is-dark.is-outlined:checked+label:after{background:#363636}.switch[type=checkbox].is-dark.is-thin.is-outlined+label::after,.switch[type=checkbox].is-dark.is-thin.is-outlined+label:after{box-shadow:none}.switch[type=checkbox].is-unchecked-dark+label::before,.switch[type=checkbox].is-unchecked-dark+label:before{background:#363636}.switch[type=checkbox].is-unchecked-dark.is-outlined+label::before,.switch[type=checkbox].is-unchecked-dark.is-outlined+label:before{background-color:transparent;border-color:#363636!important}.switch[type=checkbox].is-unchecked-dark.is-outlined+label::after,.switch[type=checkbox].is-unchecked-dark.is-outlined+label:after{background:#363636}.switch[type=checkbox].is-primary:checked+label::before,.switch[type=checkbox].is-primary:checked+label:before{background:#00d1b2}.switch[type=checkbox].is-primary.is-outlined:checked+label::before,.switch[type=checkbox].is-primary.is-outlined:checked+label:before{background-color:transparent;border-color:#00d1b2!important}.switch[type=checkbox].is-primary.is-outlined:checked+label::after,.switch[type=checkbox].is-primary.is-outlined:checked+label:after{background:#00d1b2}.switch[type=checkbox].is-primary.is-thin.is-outlined+label::after,.switch[type=checkbox].is-primary.is-thin.is-outlined+label:after{box-shadow:none}.switch[type=checkbox].is-unchecked-primary+label::before,.switch[type=checkbox].is-unchecked-primary+label:before{background:#00d1b2}.switch[type=checkbox].is-unchecked-primary.is-outlined+label::before,.switch[type=checkbox].is-unchecked-primary.is-outlined+label:before{background-color:transparent;border-color:#00d1b2!important}.switch[type=checkbox].is-unchecked-primary.is-outlined+label::after,.switch[type=checkbox].is-unchecked-primary.is-outlined+label:after{background:#00d1b2}.switch[type=checkbox].is-link:checked+label::before,.switch[type=checkbox].is-link:checked+label:before{background:#3273dc}.switch[type=checkbox].is-link.is-outlined:checked+label::before,.switch[type=checkbox].is-link.is-outlined:checked+label:before{background-color:transparent;border-color:#3273dc!important}.switch[type=checkbox].is-link.is-outlined:checked+label::after,.switch[type=checkbox].is-link.is-outlined:checked+label:after{background:#3273dc}.switch[type=checkbox].is-link.is-thin.is-outlined+label::after,.switch[type=checkbox].is-link.is-thin.is-outlined+label:after{box-shadow:none}.switch[type=checkbox].is-unchecked-link+label::before,.switch[type=checkbox].is-unchecked-link+label:before{background:#3273dc}.switch[type=checkbox].is-unchecked-link.is-outlined+label::before,.switch[type=checkbox].is-unchecked-link.is-outlined+label:before{background-color:transparent;border-color:#3273dc!important}.switch[type=checkbox].is-unchecked-link.is-outlined+label::after,.switch[type=checkbox].is-unchecked-link.is-outlined+label:after{background:#3273dc}.switch[type=checkbox].is-info:checked+label::before,.switch[type=checkbox].is-info:checked+label:before{background:#209cee}.switch[type=checkbox].is-info.is-outlined:checked+label::before,.switch[type=checkbox].is-info.is-outlined:checked+label:before{background-color:transparent;border-color:#209cee!important}.switch[type=checkbox].is-info.is-outlined:checked+label::after,.switch[type=checkbox].is-info.is-outlined:checked+label:after{background:#209cee}.switch[type=checkbox].is-info.is-thin.is-outlined+label::after,.switch[type=checkbox].is-info.is-thin.is-outlined+label:after{box-shadow:none}.switch[type=checkbox].is-unchecked-info+label::before,.switch[type=checkbox].is-unchecked-info+label:before{background:#209cee}.switch[type=checkbox].is-unchecked-info.is-outlined+label::before,.switch[type=checkbox].is-unchecked-info.is-outlined+label:before{background-color:transparent;border-color:#209cee!important}.switch[type=checkbox].is-unchecked-info.is-outlined+label::after,.switch[type=checkbox].is-unchecked-info.is-outlined+label:after{background:#209cee}.switch[type=checkbox].is-success:checked+label::before,.switch[type=checkbox].is-success:checked+label:before{background:#23d160}.switch[type=checkbox].is-success.is-outlined:checked+label::before,.switch[type=checkbox].is-success.is-outlined:checked+label:before{background-color:transparent;border-color:#23d160!important}.switch[type=checkbox].is-success.is-outlined:checked+label::after,.switch[type=checkbox].is-success.is-outlined:checked+label:after{background:#23d160}.switch[type=checkbox].is-success.is-thin.is-outlined+label::after,.switch[type=checkbox].is-success.is-thin.is-outlined+label:after{box-shadow:none}.switch[type=checkbox].is-unchecked-success+label::before,.switch[type=checkbox].is-unchecked-success+label:before{background:#23d160}.switch[type=checkbox].is-unchecked-success.is-outlined+label::before,.switch[type=checkbox].is-unchecked-success.is-outlined+label:before{background-color:transparent;border-color:#23d160!important}.switch[type=checkbox].is-unchecked-success.is-outlined+label::after,.switch[type=checkbox].is-unchecked-success.is-outlined+label:after{background:#23d160}.switch[type=checkbox].is-warning:checked+label::before,.switch[type=checkbox].is-warning:checked+label:before{background:#ffdd57}.switch[type=checkbox].is-warning.is-outlined:checked+label::before,.switch[type=checkbox].is-warning.is-outlined:checked+label:before{background-color:transparent;border-color:#ffdd57!important}.switch[type=checkbox].is-warning.is-outlined:checked+label::after,.switch[type=checkbox].is-warning.is-outlined:checked+label:after{background:#ffdd57}.switch[type=checkbox].is-warning.is-thin.is-outlined+label::after,.switch[type=checkbox].is-warning.is-thin.is-outlined+label:after{box-shadow:none}.switch[type=checkbox].is-unchecked-warning+label::before,.switch[type=checkbox].is-unchecked-warning+label:before{background:#ffdd57}.switch[type=checkbox].is-unchecked-warning.is-outlined+label::before,.switch[type=checkbox].is-unchecked-warning.is-outlined+label:before{background-color:transparent;border-color:#ffdd57!important}.switch[type=checkbox].is-unchecked-warning.is-outlined+label::after,.switch[type=checkbox].is-unchecked-warning.is-outlined+label:after{background:#ffdd57}.switch[type=checkbox].is-danger:checked+label::before,.switch[type=checkbox].is-danger:checked+label:before{background:#ff3860}.switch[type=checkbox].is-danger.is-outlined:checked+label::before,.switch[type=checkbox].is-danger.is-outlined:checked+label:before{background-color:transparent;border-color:#ff3860!important}.switch[type=checkbox].is-danger.is-outlined:checked+label::after,.switch[type=checkbox].is-danger.is-outlined:checked+label:after{background:#ff3860}.switch[type=checkbox].is-danger.is-thin.is-outlined+label::after,.switch[type=checkbox].is-danger.is-thin.is-outlined+label:after{box-shadow:none}.switch[type=checkbox].is-unchecked-danger+label::before,.switch[type=checkbox].is-unchecked-danger+label:before{background:#ff3860}.switch[type=checkbox].is-unchecked-danger.is-outlined+label::before,.switch[type=checkbox].is-unchecked-danger.is-outlined+label:before{background-color:transparent;border-color:#ff3860!important}.switch[type=checkbox].is-unchecked-danger.is-outlined+label::after,.switch[type=checkbox].is-unchecked-danger.is-outlined+label:after{background:#ff3860}.tagsinput{height:auto!important}.tagsinput .control{margin-bottom:.1em!important;margin-top:.1em!important}.tagsinput input{border:none;margin-bottom:.1em!important;margin-top:.1em!important}.tagsinput .tag.is-active{background-color:#00d1b2;color:#fff}.timeline{display:flex;flex-direction:column}.timeline .timeline-header{width:4em;min-width:4em;max-width:8em;word-wrap:normal;text-align:center;display:flex;justify-content:center}.timeline .timeline-item{display:flex;display:-webkit-flex;position:relative;margin-left:2em;padding-bottom:2em}.timeline .timeline-item::before{content:"";background-color:#dbdbdb;display:block;width:.1em;height:100%;position:absolute;left:0;top:0}.timeline .timeline-item .timeline-marker{position:absolute;background:#dbdbdb;border:.1em solid #dbdbdb;border-radius:100%;content:"";display:block;height:.8em;left:-.35em;top:1.2rem;width:.8em}.timeline .timeline-item .timeline-marker.is-image{background:#dbdbdb;border:.1em solid #dbdbdb;border-radius:100%;display:block;overflow:hidden}.timeline .timeline-item .timeline-marker.is-image.is-16x16{height:16px;width:16px;left:-8px}.timeline .timeline-item .timeline-marker.is-image.is-24x24{height:24px;width:24px;left:-12px}.timeline .timeline-item .timeline-marker.is-image.is-32x32{height:32px;width:32px;left:-16px}.timeline .timeline-item .timeline-marker.is-image.is-48x48{height:48px;width:48px;left:-24px}.timeline .timeline-item .timeline-marker.is-image.is-64x64{height:64px;width:64px;left:-32px}.timeline .timeline-item .timeline-marker.is-image.is-96x96{height:96px;width:96px;left:-48px}.timeline .timeline-item .timeline-marker.is-image.is-128x128{height:128px;width:128px;left:-64px}.timeline .timeline-item .timeline-marker.is-icon{display:flex;align-items:center;justify-content:center;height:1.5em;width:1.5em;left:-.7em;line-height:.75rem;padding:.25rem;background:#dbdbdb;border:.1em solid #dbdbdb;border-radius:100%}.timeline .timeline-item .timeline-marker.is-icon>i{color:#fff;font-size:.75rem!important}.timeline .timeline-item .timeline-marker.is-outlined .image{background:#fff}.timeline .timeline-item .timeline-marker.is-outlined.is-icon{background:#fff}.timeline .timeline-item .timeline-marker.is-outlined.is-icon>i{color:#dbdbdb}.timeline .timeline-item .timeline-marker.is-white{background-color:#fff!important;border-color:#fff!important}.timeline .timeline-item .timeline-marker.is-white .image{border-color:#fff!important}.timeline .timeline-item .timeline-marker.is-white.is-icon{background-color:#fff!important;border-color:#fff!important}.timeline .timeline-item .timeline-marker.is-white.is-icon>i{color:#0a0a0a!important}.timeline .timeline-item .timeline-marker.is-white.is-outlined{background-color:#fff!important;border-color:#fff!important}.timeline .timeline-item .timeline-marker.is-white.is-outlined .image{background-color:#fff!important}.timeline .timeline-item .timeline-marker.is-white.is-outlined.is-icon{background-color:#fff!important}.timeline .timeline-item .timeline-marker.is-white.is-outlined.is-icon>i{color:#fff!important}.timeline .timeline-item .timeline-marker.is-black{background-color:#0a0a0a!important;border-color:#0a0a0a!important}.timeline .timeline-item .timeline-marker.is-black .image{border-color:#0a0a0a!important}.timeline .timeline-item .timeline-marker.is-black.is-icon{background-color:#0a0a0a!important;border-color:#0a0a0a!important}.timeline .timeline-item .timeline-marker.is-black.is-icon>i{color:#fff!important}.timeline .timeline-item .timeline-marker.is-black.is-outlined{background-color:#fff!important;border-color:#0a0a0a!important}.timeline .timeline-item .timeline-marker.is-black.is-outlined .image{background-color:#fff!important}.timeline .timeline-item .timeline-marker.is-black.is-outlined.is-icon{background-color:#fff!important}.timeline .timeline-item .timeline-marker.is-black.is-outlined.is-icon>i{color:#0a0a0a!important}.timeline .timeline-item .timeline-marker.is-light{background-color:#f5f5f5!important;border-color:#f5f5f5!important}.timeline .timeline-item .timeline-marker.is-light .image{border-color:#f5f5f5!important}.timeline .timeline-item .timeline-marker.is-light.is-icon{background-color:#f5f5f5!important;border-color:#f5f5f5!important}.timeline .timeline-item .timeline-marker.is-light.is-icon>i{color:#363636!important}.timeline .timeline-item .timeline-marker.is-light.is-outlined{background-color:#fff!important;border-color:#f5f5f5!important}.timeline .timeline-item .timeline-marker.is-light.is-outlined .image{background-color:#fff!important}.timeline .timeline-item .timeline-marker.is-light.is-outlined.is-icon{background-color:#fff!important}.timeline .timeline-item .timeline-marker.is-light.is-outlined.is-icon>i{color:#f5f5f5!important}.timeline .timeline-item .timeline-marker.is-dark{background-color:#363636!important;border-color:#363636!important}.timeline .timeline-item .timeline-marker.is-dark .image{border-color:#363636!important}.timeline .timeline-item .timeline-marker.is-dark.is-icon{background-color:#363636!important;border-color:#363636!important}.timeline .timeline-item .timeline-marker.is-dark.is-icon>i{color:#f5f5f5!important}.timeline .timeline-item .timeline-marker.is-dark.is-outlined{background-color:#fff!important;border-color:#363636!important}.timeline .timeline-item .timeline-marker.is-dark.is-outlined .image{background-color:#fff!important}.timeline .timeline-item .timeline-marker.is-dark.is-outlined.is-icon{background-color:#fff!important}.timeline .timeline-item .timeline-marker.is-dark.is-outlined.is-icon>i{color:#363636!important}.timeline .timeline-item .timeline-marker.is-primary{background-color:#00d1b2!important;border-color:#00d1b2!important}.timeline .timeline-item .timeline-marker.is-primary .image{border-color:#00d1b2!important}.timeline .timeline-item .timeline-marker.is-primary.is-icon{background-color:#00d1b2!important;border-color:#00d1b2!important}.timeline .timeline-item .timeline-marker.is-primary.is-icon>i{color:#fff!important}.timeline .timeline-item .timeline-marker.is-primary.is-outlined{background-color:#fff!important;border-color:#00d1b2!important}.timeline .timeline-item .timeline-marker.is-primary.is-outlined .image{background-color:#fff!important}.timeline .timeline-item .timeline-marker.is-primary.is-outlined.is-icon{background-color:#fff!important}.timeline .timeline-item .timeline-marker.is-primary.is-outlined.is-icon>i{color:#00d1b2!important}.timeline .timeline-item .timeline-marker.is-link{background-color:#3273dc!important;border-color:#3273dc!important}.timeline .timeline-item .timeline-marker.is-link .image{border-color:#3273dc!important}.timeline .timeline-item .timeline-marker.is-link.is-icon{background-color:#3273dc!important;border-color:#3273dc!important}.timeline .timeline-item .timeline-marker.is-link.is-icon>i{color:#fff!important}.timeline .timeline-item .timeline-marker.is-link.is-outlined{background-color:#fff!important;border-color:#3273dc!important}.timeline .timeline-item .timeline-marker.is-link.is-outlined .image{background-color:#fff!important}.timeline .timeline-item .timeline-marker.is-link.is-outlined.is-icon{background-color:#fff!important}.timeline .timeline-item .timeline-marker.is-link.is-outlined.is-icon>i{color:#3273dc!important}.timeline .timeline-item .timeline-marker.is-info{background-color:#209cee!important;border-color:#209cee!important}.timeline .timeline-item .timeline-marker.is-info .image{border-color:#209cee!important}.timeline .timeline-item .timeline-marker.is-info.is-icon{background-color:#209cee!important;border-color:#209cee!important}.timeline .timeline-item .timeline-marker.is-info.is-icon>i{color:#fff!important}.timeline .timeline-item .timeline-marker.is-info.is-outlined{background-color:#fff!important;border-color:#209cee!important}.timeline .timeline-item .timeline-marker.is-info.is-outlined .image{background-color:#fff!important}.timeline .timeline-item .timeline-marker.is-info.is-outlined.is-icon{background-color:#fff!important}.timeline .timeline-item .timeline-marker.is-info.is-outlined.is-icon>i{color:#209cee!important}.timeline .timeline-item .timeline-marker.is-success{background-color:#23d160!important;border-color:#23d160!important}.timeline .timeline-item .timeline-marker.is-success .image{border-color:#23d160!important}.timeline .timeline-item .timeline-marker.is-success.is-icon{background-color:#23d160!important;border-color:#23d160!important}.timeline .timeline-item .timeline-marker.is-success.is-icon>i{color:#fff!important}.timeline .timeline-item .timeline-marker.is-success.is-outlined{background-color:#fff!important;border-color:#23d160!important}.timeline .timeline-item .timeline-marker.is-success.is-outlined .image{background-color:#fff!important}.timeline .timeline-item .timeline-marker.is-success.is-outlined.is-icon{background-color:#fff!important}.timeline .timeline-item .timeline-marker.is-success.is-outlined.is-icon>i{color:#23d160!important}.timeline .timeline-item .timeline-marker.is-warning{background-color:#ffdd57!important;border-color:#ffdd57!important}.timeline .timeline-item .timeline-marker.is-warning .image{border-color:#ffdd57!important}.timeline .timeline-item .timeline-marker.is-warning.is-icon{background-color:#ffdd57!important;border-color:#ffdd57!important}.timeline .timeline-item .timeline-marker.is-warning.is-icon>i{color:rgba(0,0,0,.7)!important}.timeline .timeline-item .timeline-marker.is-warning.is-outlined{background-color:#fff!important;border-color:#ffdd57!important}.timeline .timeline-item .timeline-marker.is-warning.is-outlined .image{background-color:#fff!important}.timeline .timeline-item .timeline-marker.is-warning.is-outlined.is-icon{background-color:#fff!important}.timeline .timeline-item .timeline-marker.is-warning.is-outlined.is-icon>i{color:#ffdd57!important}.timeline .timeline-item .timeline-marker.is-danger{background-color:#ff3860!important;border-color:#ff3860!important}.timeline .timeline-item .timeline-marker.is-danger .image{border-color:#ff3860!important}.timeline .timeline-item .timeline-marker.is-danger.is-icon{background-color:#ff3860!important;border-color:#ff3860!important}.timeline .timeline-item .timeline-marker.is-danger.is-icon>i{color:#fff!important}.timeline .timeline-item .timeline-marker.is-danger.is-outlined{background-color:#fff!important;border-color:#ff3860!important}.timeline .timeline-item .timeline-marker.is-danger.is-outlined .image{background-color:#fff!important}.timeline .timeline-item .timeline-marker.is-danger.is-outlined.is-icon{background-color:#fff!important}.timeline .timeline-item .timeline-marker.is-danger.is-outlined.is-icon>i{color:#ff3860!important}.timeline .timeline-item .timeline-content{padding:1em 0 0 .5em;padding:1em 0 0 2em}.timeline .timeline-item .timeline-content .heading{font-weight:600}.timeline .timeline-item.is-white::before{background-color:#fff}.timeline .timeline-item.is-black::before{background-color:#0a0a0a}.timeline .timeline-item.is-light::before{background-color:#f5f5f5}.timeline .timeline-item.is-dark::before{background-color:#363636}.timeline .timeline-item.is-primary::before{background-color:#00d1b2}.timeline .timeline-item.is-link::before{background-color:#3273dc}.timeline .timeline-item.is-info::before{background-color:#209cee}.timeline .timeline-item.is-success::before{background-color:#23d160}.timeline .timeline-item.is-warning::before{background-color:#ffdd57}.timeline .timeline-item.is-danger::before{background-color:#ff3860}.timeline.is-centered .timeline-header{display:flex;width:100%;align-self:center}.timeline.is-centered .timeline-item{width:50%;align-self:flex-end}.timeline.is-centered .timeline-item:nth-of-type(2n){align-self:flex-start;margin-left:0;margin-right:2em}.timeline.is-centered .timeline-item:nth-of-type(2n)::before{right:-.1em;left:auto}.timeline.is-centered .timeline-item:nth-of-type(2n) .timeline-marker{left:auto;right:-.45em}.timeline.is-centered .timeline-item:nth-of-type(2n) .timeline-marker.is-image.is-16x16{left:auto;right:-8px}.timeline.is-centered .timeline-item:nth-of-type(2n) .timeline-marker.is-image.is-24x24{left:auto;right:-12px}.timeline.is-centered .timeline-item:nth-of-type(2n) .timeline-marker.is-image.is-32x32{left:auto;right:-16px}.timeline.is-centered .timeline-item:nth-of-type(2n) .timeline-marker.is-image.is-48x48{left:auto;right:-24px}.timeline.is-centered .timeline-item:nth-of-type(2n) .timeline-marker.is-image.is-64x64{left:auto;right:-32px}.timeline.is-centered .timeline-item:nth-of-type(2n) .timeline-marker.is-image.is-96x96{left:auto;right:-48px}.timeline.is-centered .timeline-item:nth-of-type(2n) .timeline-marker.is-image.is-128x128{left:auto;right:-64px}.timeline.is-centered .timeline-item:nth-of-type(2n) .timeline-marker.is-icon{left:auto;right:-.8em}.timeline.is-centered .timeline-item:nth-of-type(2n) .timeline-content{padding:1em 2em 0 0;text-align:right;display:flex;flex-direction:column;align-items:flex-end;flex-basis:100%}.timeline.is-centered .timeline-item:nth-of-type(2n+1)::before{content:"";background-color:#dbdbdb;display:block;width:.1em;height:100%;position:absolute;top:0}.timeline.is-centered .timeline-item.is-white::before{background-color:#fff}.timeline.is-centered .timeline-item.is-black::before{background-color:#0a0a0a}.timeline.is-centered .timeline-item.is-light::before{background-color:#f5f5f5}.timeline.is-centered .timeline-item.is-dark::before{background-color:#363636}.timeline.is-centered .timeline-item.is-primary::before{background-color:#00d1b2}.timeline.is-centered .timeline-item.is-link::before{background-color:#3273dc}.timeline.is-centered .timeline-item.is-info::before{background-color:#209cee}.timeline.is-centered .timeline-item.is-success::before{background-color:#23d160}.timeline.is-centered .timeline-item.is-warning::before{background-color:#ffdd57}.timeline.is-centered .timeline-item.is-danger::before{background-color:#ff3860}.timeline.is-rtl{justify-content:flex-end;align-items:flex-end}.timeline.is-rtl .timeline-item{justify-content:flex-end;border-left:none;margin-left:0;margin-right:2em}.timeline.is-rtl .timeline-item::before{right:0;left:auto}.timeline.is-rtl .timeline-item .timeline-marker{left:auto;right:-.35em}.timeline.is-rtl .timeline-item .timeline-marker.is-image.is-16x16{left:auto;right:-8px}.timeline.is-rtl .timeline-item .timeline-marker.is-image.is-24x24{left:auto;right:-12px}.timeline.is-rtl .timeline-item .timeline-marker.is-image.is-32x32{left:auto;right:-16px}.timeline.is-rtl .timeline-item .timeline-marker.is-image.is-48x48{left:auto;right:-24px}.timeline.is-rtl .timeline-item .timeline-marker.is-image.is-64x64{left:auto;right:-32px}.timeline.is-rtl .timeline-item .timeline-marker.is-image.is-96x96{left:auto;right:-48px}.timeline.is-rtl .timeline-item .timeline-marker.is-image.is-128x128{left:auto;right:-64px}.timeline.is-rtl .timeline-item .timeline-marker.is-icon{left:auto;right:-.7em}.timeline.is-rtl .timeline-item .timeline-content{padding:1em 2em 0 0;text-align:right}.tooltip{position:relative}.tooltip.is-tooltip-active:not(.is-loading)::after,.tooltip:hover:not(.is-loading)::after{z-index:99999;position:absolute;display:inline-block;pointer-events:none}.tooltip.is-tooltip-active::before,.tooltip:hover::before{z-index:99999;position:absolute;display:inline-block;pointer-events:none}.tooltip.is-tooltip-active:not(.is-loading)::after,.tooltip:hover:not(.is-loading)::after{content:"";border-style:solid;border-width:.5rem}.tooltip.is-tooltip-active::before,.tooltip:hover::before{opacity:0;content:attr(data-tooltip);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;padding:.4rem .8rem;background:rgba(74,74,74,.9);border-radius:4px;color:#fff;max-width:24rem}.tooltip.is-tooltip-active:not(.is-loading)::after,.tooltip:focus:not(.is-loading)::after,.tooltip:hover:not(.is-loading)::after{opacity:1;margin-left:-.5rem;margin-top:-.5rem}.tooltip.is-tooltip-active::before,.tooltip:focus::before,.tooltip:hover::before{opacity:1}.tooltip::before{top:auto;bottom:100%;left:50%;right:auto}.tooltip.is-tooltip-active:not(.is-loading)::after,.tooltip:focus:not(.is-loading)::after,.tooltip:hover:not(.is-loading)::after{top:0;bottom:auto;left:50%;right:auto;border-color:rgba(74,74,74,.9) transparent transparent transparent}.tooltip.is-tooltip-active::before,.tooltip:focus::before,.tooltip:hover::before{-webkit-transform:translate(-50%,-.5rem);transform:translate(-50%,-.5rem)}.tooltip.is-tooltip-right::before{top:auto;bottom:50%;left:100%;right:auto;-webkit-transform:translate(-1rem,50%);transform:translate(-1rem,50%)}.tooltip.is-tooltip-right.is-tooltip-active:not(.is-loading)::after,.tooltip.is-tooltip-right:focus:not(.is-loading)::after,.tooltip.is-tooltip-right:hover:not(.is-loading)::after{top:50%;left:100%;right:auto;border-color:transparent rgba(74,74,74,.9) transparent transparent}.tooltip.is-tooltip-right.is-tooltip-active::before,.tooltip.is-tooltip-right:focus::before,.tooltip.is-tooltip-right:hover::before{-webkit-transform:translate(.5rem,50%);transform:translate(.5rem,50%)}.tooltip.is-tooltip-bottom::before{top:100%;bottom:auto;left:50%;right:auto;-webkit-transform:translate(-50%,-1rem);transform:translate(-50%,-1rem)}.tooltip.is-tooltip-bottom.is-tooltip-active:not(.is-loading)::after,.tooltip.is-tooltip-bottom:focus:not(.is-loading)::after,.tooltip.is-tooltip-bottom:hover:not(.is-loading)::after{top:100%;bottom:auto;left:50%;right:auto;border-color:transparent transparent rgba(74,74,74,.9) transparent}.tooltip.is-tooltip-bottom.is-tooltip-active::before,.tooltip.is-tooltip-bottom:focus::before,.tooltip.is-tooltip-bottom:hover::before{-webkit-transform:translate(-50%,.5rem);transform:translate(-50%,.5rem)}.tooltip.is-tooltip-left::before{top:auto;bottom:50%;left:auto;right:100%;-webkit-transform:translate(1rem,50%);transform:translate(1rem,50%)}.tooltip.is-tooltip-left.is-tooltip-active:not(.is-loading)::after,.tooltip.is-tooltip-left:focus:not(.is-loading)::after,.tooltip.is-tooltip-left:hover:not(.is-loading)::after{top:50%;bottom:auto;left:auto;right:calc(100% - .5rem);border-color:transparent transparent transparent rgba(74,74,74,.9)}.tooltip.is-tooltip-left.is-tooltip-active::before,.tooltip.is-tooltip-left:focus::before,.tooltip.is-tooltip-left:hover::before{-webkit-transform:translate(-.5rem,50%);transform:translate(-.5rem,50%)}.tooltip.is-tooltip-multiline::before{min-width:24rem;text-overflow:clip;white-space:normal;word-break:keep-all}.tooltip.is-tooltip-white:not(.is-loading)::after{border-color:rgba(255,255,255,.9) transparent transparent transparent}.tooltip.is-tooltip-white.is-tooltip-right:not(.is-loading)::after{border-color:transparent rgba(255,255,255,.9) transparent transparent}.tooltip.is-tooltip-white.is-tooltip-bottom:not(.is-loading)::after{border-color:transparent transparent rgba(255,255,255,.9) transparent}.tooltip.is-tooltip-white.is-tooltip-left:not(.is-loading)::after{border-color:transparent transparent transparent rgba(255,255,255,.9)}.tooltip.is-tooltip-white::before{background:rgba(255,255,255,.9);color:#0a0a0a}.tooltip.is-tooltip-black:not(.is-loading)::after{border-color:rgba(10,10,10,.9) transparent transparent transparent}.tooltip.is-tooltip-black.is-tooltip-right:not(.is-loading)::after{border-color:transparent rgba(10,10,10,.9) transparent transparent}.tooltip.is-tooltip-black.is-tooltip-bottom:not(.is-loading)::after{border-color:transparent transparent rgba(10,10,10,.9) transparent}.tooltip.is-tooltip-black.is-tooltip-left:not(.is-loading)::after{border-color:transparent transparent transparent rgba(10,10,10,.9)}.tooltip.is-tooltip-black::before{background:rgba(10,10,10,.9);color:#fff}.tooltip.is-tooltip-light:not(.is-loading)::after{border-color:rgba(245,245,245,.9) transparent transparent transparent}.tooltip.is-tooltip-light.is-tooltip-right:not(.is-loading)::after{border-color:transparent rgba(245,245,245,.9) transparent transparent}.tooltip.is-tooltip-light.is-tooltip-bottom:not(.is-loading)::after{border-color:transparent transparent rgba(245,245,245,.9) transparent}.tooltip.is-tooltip-light.is-tooltip-left:not(.is-loading)::after{border-color:transparent transparent transparent rgba(245,245,245,.9)}.tooltip.is-tooltip-light::before{background:rgba(245,245,245,.9);color:#363636}.tooltip.is-tooltip-dark:not(.is-loading)::after{border-color:rgba(54,54,54,.9) transparent transparent transparent}.tooltip.is-tooltip-dark.is-tooltip-right:not(.is-loading)::after{border-color:transparent rgba(54,54,54,.9) transparent transparent}.tooltip.is-tooltip-dark.is-tooltip-bottom:not(.is-loading)::after{border-color:transparent transparent rgba(54,54,54,.9) transparent}.tooltip.is-tooltip-dark.is-tooltip-left:not(.is-loading)::after{border-color:transparent transparent transparent rgba(54,54,54,.9)}.tooltip.is-tooltip-dark::before{background:rgba(54,54,54,.9);color:#f5f5f5}.tooltip.is-tooltip-primary:not(.is-loading)::after{border-color:rgba(0,209,178,.9) transparent transparent transparent}.tooltip.is-tooltip-primary.is-tooltip-right:not(.is-loading)::after{border-color:transparent rgba(0,209,178,.9) transparent transparent}.tooltip.is-tooltip-primary.is-tooltip-bottom:not(.is-loading)::after{border-color:transparent transparent rgba(0,209,178,.9) transparent}.tooltip.is-tooltip-primary.is-tooltip-left:not(.is-loading)::after{border-color:transparent transparent transparent rgba(0,209,178,.9)}.tooltip.is-tooltip-primary::before{background:rgba(0,209,178,.9);color:#fff}.tooltip.is-tooltip-link:not(.is-loading)::after{border-color:rgba(50,115,220,.9) transparent transparent transparent}.tooltip.is-tooltip-link.is-tooltip-right:not(.is-loading)::after{border-color:transparent rgba(50,115,220,.9) transparent transparent}.tooltip.is-tooltip-link.is-tooltip-bottom:not(.is-loading)::after{border-color:transparent transparent rgba(50,115,220,.9) transparent}.tooltip.is-tooltip-link.is-tooltip-left:not(.is-loading)::after{border-color:transparent transparent transparent rgba(50,115,220,.9)}.tooltip.is-tooltip-link::before{background:rgba(50,115,220,.9);color:#fff}.tooltip.is-tooltip-info:not(.is-loading)::after{border-color:rgba(32,156,238,.9) transparent transparent transparent}.tooltip.is-tooltip-info.is-tooltip-right:not(.is-loading)::after{border-color:transparent rgba(32,156,238,.9) transparent transparent}.tooltip.is-tooltip-info.is-tooltip-bottom:not(.is-loading)::after{border-color:transparent transparent rgba(32,156,238,.9) transparent}.tooltip.is-tooltip-info.is-tooltip-left:not(.is-loading)::after{border-color:transparent transparent transparent rgba(32,156,238,.9)}.tooltip.is-tooltip-info::before{background:rgba(32,156,238,.9);color:#fff}.tooltip.is-tooltip-success:not(.is-loading)::after{border-color:rgba(35,209,96,.9) transparent transparent transparent}.tooltip.is-tooltip-success.is-tooltip-right:not(.is-loading)::after{border-color:transparent rgba(35,209,96,.9) transparent transparent}.tooltip.is-tooltip-success.is-tooltip-bottom:not(.is-loading)::after{border-color:transparent transparent rgba(35,209,96,.9) transparent}.tooltip.is-tooltip-success.is-tooltip-left:not(.is-loading)::after{border-color:transparent transparent transparent rgba(35,209,96,.9)}.tooltip.is-tooltip-success::before{background:rgba(35,209,96,.9);color:#fff}.tooltip.is-tooltip-warning:not(.is-loading)::after{border-color:rgba(255,221,87,.9) transparent transparent transparent}.tooltip.is-tooltip-warning.is-tooltip-right:not(.is-loading)::after{border-color:transparent rgba(255,221,87,.9) transparent transparent}.tooltip.is-tooltip-warning.is-tooltip-bottom:not(.is-loading)::after{border-color:transparent transparent rgba(255,221,87,.9) transparent}.tooltip.is-tooltip-warning.is-tooltip-left:not(.is-loading)::after{border-color:transparent transparent transparent rgba(255,221,87,.9)}.tooltip.is-tooltip-warning::before{background:rgba(255,221,87,.9);color:rgba(0,0,0,.7)}.tooltip.is-tooltip-danger:not(.is-loading)::after{border-color:rgba(255,56,96,.9) transparent transparent transparent}.tooltip.is-tooltip-danger.is-tooltip-right:not(.is-loading)::after{border-color:transparent rgba(255,56,96,.9) transparent transparent}.tooltip.is-tooltip-danger.is-tooltip-bottom:not(.is-loading)::after{border-color:transparent transparent rgba(255,56,96,.9) transparent}.tooltip.is-tooltip-danger.is-tooltip-left:not(.is-loading)::after{border-color:transparent transparent transparent rgba(255,56,96,.9)}.tooltip.is-tooltip-danger::before{background:rgba(255,56,96,.9);color:#fff}@media screen and (max-width:768px){.is-tooltip-top-mobile::before{top:auto!important;bottom:100%!important;left:50%!important;right:auto!important}.is-tooltip-top-mobile.is-tooltip-active:not(.is-loading)::after,.is-tooltip-top-mobile:focus:not(.is-loading)::after,.is-tooltip-top-mobile:hover:not(.is-loading)::after{top:0!important;bottom:auto!important;left:50%!important;right:auto!important;border-color:rgba(74,74,74,.9) transparent transparent transparent!important}.is-tooltip-top-mobile.is-tooltip-active::before,.is-tooltip-top-mobile:focus::before,.is-tooltip-top-mobile:hover::before{-webkit-transform:translate(-50%,-.5rem)!important;transform:translate(-50%,-.5rem)!important}}@media screen and (min-width:769px),print{.is-tooltip-top-tablet::before{top:auto!important;bottom:100%!important;left:50%!important;right:auto!important}.is-tooltip-top-tablet.is-tooltip-active:not(.is-loading)::after,.is-tooltip-top-tablet:focus:not(.is-loading)::after,.is-tooltip-top-tablet:hover:not(.is-loading)::after{top:0!important;bottom:auto!important;left:50%!important;right:auto!important;border-color:rgba(74,74,74,.9) transparent transparent transparent!important}.is-tooltip-top-tablet.is-tooltip-active::before,.is-tooltip-top-tablet:focus::before,.is-tooltip-top-tablet:hover::before{-webkit-transform:translate(-50%,-.5rem)!important;transform:translate(-50%,-.5rem)!important}}@media screen and (min-width:769px) and (max-width:1087px){.is-tooltip-top-tablet-only::before{top:auto!important;bottom:100%!important;left:50%!important;right:auto!important}.is-tooltip-top-tablet-only.is-tooltip-active:not(.is-loading)::after,.is-tooltip-top-tablet-only:focus:not(.is-loading)::after,.is-tooltip-top-tablet-only:hover:not(.is-loading)::after{top:0!important;bottom:auto!important;left:50%!important;right:auto!important;border-color:rgba(74,74,74,.9) transparent transparent transparent!important}.is-tooltip-top-tablet-only.is-tooltip-active::before,.is-tooltip-top-tablet-only:focus::before,.is-tooltip-top-tablet-only:hover::before{-webkit-transform:translate(-50%,-.5rem)!important;transform:translate(-50%,-.5rem)!important}}@media screen and (max-width:1087px){.is-tooltip-top-touch::before{top:auto!important;bottom:100%!important;left:50%!important;right:auto!important}.is-tooltip-top-touch.is-tooltip-active:not(.is-loading)::after,.is-tooltip-top-touch:focus:not(.is-loading)::after,.is-tooltip-top-touch:hover:not(.is-loading)::after{top:0!important;bottom:auto!important;left:50%!important;right:auto!important;border-color:rgba(74,74,74,.9) transparent transparent transparent!important}.is-tooltip-top-touch.is-tooltip-active::before,.is-tooltip-top-touch:focus::before,.is-tooltip-top-touch:hover::before{-webkit-transform:translate(-50%,-.5rem)!important;transform:translate(-50%,-.5rem)!important}}@media screen and (min-width:1088px){.is-tooltip-top-desktop::before{top:auto!important;bottom:100%!important;left:50%!important;right:auto!important}.is-tooltip-top-desktop.is-tooltip-active:not(.is-loading)::after,.is-tooltip-top-desktop:focus:not(.is-loading)::after,.is-tooltip-top-desktop:hover:not(.is-loading)::after{top:0!important;bottom:auto!important;left:50%!important;right:auto!important;border-color:rgba(74,74,74,.9) transparent transparent transparent!important}.is-tooltip-top-desktop.is-tooltip-active::before,.is-tooltip-top-desktop:focus::before,.is-tooltip-top-desktop:hover::before{-webkit-transform:translate(-50%,-.5rem)!important;transform:translate(-50%,-.5rem)!important}}@media screen and (min-width:1088px) and (max-width:1279px){.is-tooltip-top-desktop-only::before{top:auto!important;bottom:100%!important;left:50%!important;right:auto!important}.is-tooltip-top-desktop-only.is-tooltip-active:not(.is-loading)::after,.is-tooltip-top-desktop-only:focus:not(.is-loading)::after,.is-tooltip-top-desktop-only:hover:not(.is-loading)::after{top:0!important;bottom:auto!important;left:50%!important;right:auto!important;border-color:rgba(74,74,74,.9) transparent transparent transparent!important}.is-tooltip-top-desktop-only.is-tooltip-active::before,.is-tooltip-top-desktop-only:focus::before,.is-tooltip-top-desktop-only:hover::before{-webkit-transform:translate(-50%,-.5rem)!important;transform:translate(-50%,-.5rem)!important}}@media screen and (min-width:1280px){.is-tooltip-top-widescreen::before{top:auto!important;bottom:100%!important;left:50%!important;right:auto!important}.is-tooltip-top-widescreen.is-tooltip-active:not(.is-loading)::after,.is-tooltip-top-widescreen:focus:not(.is-loading)::after,.is-tooltip-top-widescreen:hover:not(.is-loading)::after{top:0!important;bottom:auto!important;left:50%!important;right:auto!important;border-color:rgba(74,74,74,.9) transparent transparent transparent!important}.is-tooltip-top-widescreen.is-tooltip-active::before,.is-tooltip-top-widescreen:focus::before,.is-tooltip-top-widescreen:hover::before{-webkit-transform:translate(-50%,-.5rem)!important;transform:translate(-50%,-.5rem)!important}}@media screen and (min-width:1280px) and (max-width:1471px){.is-tooltip-top-widescreen-only::before{top:auto!important;bottom:100%!important;left:50%!important;right:auto!important}.is-tooltip-top-widescreen-only.is-tooltip-active:not(.is-loading)::after,.is-tooltip-top-widescreen-only:focus:not(.is-loading)::after,.is-tooltip-top-widescreen-only:hover:not(.is-loading)::after{top:0!important;bottom:auto!important;left:50%!important;right:auto!important;border-color:rgba(74,74,74,.9) transparent transparent transparent!important}.is-tooltip-top-widescreen-only.is-tooltip-active::before,.is-tooltip-top-widescreen-only:focus::before,.is-tooltip-top-widescreen-only:hover::before{-webkit-transform:translate(-50%,-.5rem)!important;transform:translate(-50%,-.5rem)!important}}@media screen and (min-width:1472px){.is-tooltip-top-fullhd::before{top:auto!important;bottom:100%!important;left:50%!important;right:auto!important}.is-tooltip-top-fullhd.is-tooltip-active:not(.is-loading)::after,.is-tooltip-top-fullhd:focus:not(.is-loading)::after,.is-tooltip-top-fullhd:hover:not(.is-loading)::after{top:0!important;bottom:auto!important;left:50%!important;right:auto!important;border-color:rgba(74,74,74,.9) transparent transparent transparent!important}.is-tooltip-top-fullhd.is-tooltip-active::before,.is-tooltip-top-fullhd:focus::before,.is-tooltip-top-fullhd:hover::before{-webkit-transform:translate(-50%,-.5rem)!important;transform:translate(-50%,-.5rem)!important}}@media screen and (max-width:768px){.is-tooltip-right-mobile::before{top:auto!important;bottom:50%!important;left:100%!important;right:auto!important;-webkit-transform:translate(-1rem,50%)!important;transform:translate(-1rem,50%)!important}.is-tooltip-right-mobile.is-tooltip-active:not(.is-loading)::after,.is-tooltip-right-mobile:focus:not(.is-loading)::after,.is-tooltip-right-mobile:hover:not(.is-loading)::after{top:50%!important;left:100%!important;right:auto!important;border-color:transparent rgba(74,74,74,.9) transparent transparent!important}.is-tooltip-right-mobile.is-tooltip-active::before,.is-tooltip-right-mobile:focus::before,.is-tooltip-right-mobile:hover::before{-webkit-transform:translate(.5rem,50%)!important;transform:translate(.5rem,50%)!important}}@media screen and (min-width:769px),print{.is-tooltip-right-tablet::before{top:auto!important;bottom:50%!important;left:100%!important;right:auto!important;-webkit-transform:translate(-1rem,50%)!important;transform:translate(-1rem,50%)!important}.is-tooltip-right-tablet.is-tooltip-active:not(.is-loading)::after,.is-tooltip-right-tablet:focus:not(.is-loading)::after,.is-tooltip-right-tablet:hover:not(.is-loading)::after{top:50%!important;left:100%!important;right:auto!important;border-color:transparent rgba(74,74,74,.9) transparent transparent!important}.is-tooltip-right-tablet.is-tooltip-active::before,.is-tooltip-right-tablet:focus::before,.is-tooltip-right-tablet:hover::before{-webkit-transform:translate(.5rem,50%)!important;transform:translate(.5rem,50%)!important}}@media screen and (min-width:769px) and (max-width:1087px){.is-tooltip-right-tablet-only::before{top:auto!important;bottom:50%!important;left:100%!important;right:auto!important;-webkit-transform:translate(-1rem,50%)!important;transform:translate(-1rem,50%)!important}.is-tooltip-right-tablet-only.is-tooltip-active:not(.is-loading)::after,.is-tooltip-right-tablet-only:focus:not(.is-loading)::after,.is-tooltip-right-tablet-only:hover:not(.is-loading)::after{top:50%!important;left:100%!important;right:auto!important;border-color:transparent rgba(74,74,74,.9) transparent transparent!important}.is-tooltip-right-tablet-only.is-tooltip-active::before,.is-tooltip-right-tablet-only:focus::before,.is-tooltip-right-tablet-only:hover::before{-webkit-transform:translate(.5rem,50%)!important;transform:translate(.5rem,50%)!important}}@media screen and (max-width:1087px){.is-tooltip-right-touch::before{top:auto!important;bottom:50%!important;left:100%!important;right:auto!important;-webkit-transform:translate(-1rem,50%)!important;transform:translate(-1rem,50%)!important}.is-tooltip-right-touch.is-tooltip-active:not(.is-loading)::after,.is-tooltip-right-touch:focus:not(.is-loading)::after,.is-tooltip-right-touch:hover:not(.is-loading)::after{top:50%!important;left:100%!important;right:auto!important;border-color:transparent rgba(74,74,74,.9) transparent transparent!important}.is-tooltip-right-touch.is-tooltip-active::before,.is-tooltip-right-touch:focus::before,.is-tooltip-right-touch:hover::before{-webkit-transform:translate(.5rem,50%)!important;transform:translate(.5rem,50%)!important}}@media screen and (min-width:1088px){.is-tooltip-right-desktop::before{top:auto!important;bottom:50%!important;left:100%!important;right:auto!important;-webkit-transform:translate(-1rem,50%)!important;transform:translate(-1rem,50%)!important}.is-tooltip-right-desktop.is-tooltip-active:not(.is-loading)::after,.is-tooltip-right-desktop:focus:not(.is-loading)::after,.is-tooltip-right-desktop:hover:not(.is-loading)::after{top:50%!important;left:100%!important;right:auto!important;border-color:transparent rgba(74,74,74,.9) transparent transparent!important}.is-tooltip-right-desktop.is-tooltip-active::before,.is-tooltip-right-desktop:focus::before,.is-tooltip-right-desktop:hover::before{-webkit-transform:translate(.5rem,50%)!important;transform:translate(.5rem,50%)!important}}@media screen and (min-width:1088px) and (max-width:1279px){.is-tooltip-right-desktop-only::before{top:auto!important;bottom:50%!important;left:100%!important;right:auto!important;-webkit-transform:translate(-1rem,50%)!important;transform:translate(-1rem,50%)!important}.is-tooltip-right-desktop-only.is-tooltip-active:not(.is-loading)::after,.is-tooltip-right-desktop-only:focus:not(.is-loading)::after,.is-tooltip-right-desktop-only:hover:not(.is-loading)::after{top:50%!important;left:100%!important;right:auto!important;border-color:transparent rgba(74,74,74,.9) transparent transparent!important}.is-tooltip-right-desktop-only.is-tooltip-active::before,.is-tooltip-right-desktop-only:focus::before,.is-tooltip-right-desktop-only:hover::before{-webkit-transform:translate(.5rem,50%)!important;transform:translate(.5rem,50%)!important}}@media screen and (min-width:1280px){.is-tooltip-right-widescreen::before{top:auto!important;bottom:50%!important;left:100%!important;right:auto!important;-webkit-transform:translate(-1rem,50%)!important;transform:translate(-1rem,50%)!important}.is-tooltip-right-widescreen.is-tooltip-active:not(.is-loading)::after,.is-tooltip-right-widescreen:focus:not(.is-loading)::after,.is-tooltip-right-widescreen:hover:not(.is-loading)::after{top:50%!important;left:100%!important;right:auto!important;border-color:transparent rgba(74,74,74,.9) transparent transparent!important}.is-tooltip-right-widescreen.is-tooltip-active::before,.is-tooltip-right-widescreen:focus::before,.is-tooltip-right-widescreen:hover::before{-webkit-transform:translate(.5rem,50%)!important;transform:translate(.5rem,50%)!important}}@media screen and (min-width:1280px) and (max-width:1471px){.is-tooltip-right-widescreen-only::before{top:auto!important;bottom:50%!important;left:100%!important;right:auto!important;-webkit-transform:translate(-1rem,50%)!important;transform:translate(-1rem,50%)!important}.is-tooltip-right-widescreen-only.is-tooltip-active:not(.is-loading)::after,.is-tooltip-right-widescreen-only:focus:not(.is-loading)::after,.is-tooltip-right-widescreen-only:hover:not(.is-loading)::after{top:50%!important;left:100%!important;right:auto!important;border-color:transparent rgba(74,74,74,.9) transparent transparent!important}.is-tooltip-right-widescreen-only.is-tooltip-active::before,.is-tooltip-right-widescreen-only:focus::before,.is-tooltip-right-widescreen-only:hover::before{-webkit-transform:translate(.5rem,50%)!important;transform:translate(.5rem,50%)!important}}@media screen and (min-width:1472px){.is-tooltip-right-fullhd::before{top:auto!important;bottom:50%!important;left:100%!important;right:auto!important;-webkit-transform:translate(-1rem,50%)!important;transform:translate(-1rem,50%)!important}.is-tooltip-right-fullhd.is-tooltip-active:not(.is-loading)::after,.is-tooltip-right-fullhd:focus:not(.is-loading)::after,.is-tooltip-right-fullhd:hover:not(.is-loading)::after{top:50%!important;left:100%!important;right:auto!important;border-color:transparent rgba(74,74,74,.9) transparent transparent!important}.is-tooltip-right-fullhd.is-tooltip-active::before,.is-tooltip-right-fullhd:focus::before,.is-tooltip-right-fullhd:hover::before{-webkit-transform:translate(.5rem,50%)!important;transform:translate(.5rem,50%)!important}}@media screen and (max-width:768px){.is-tooltip-bottom-mobile::before{top:100%!important;bottom:auto!important;left:50%!important;right:auto!important;-webkit-transform:translate(-50%,-1rem)!important;transform:translate(-50%,-1rem)!important}.is-tooltip-bottom-mobile.is-tooltip-active:not(.is-loading)::after,.is-tooltip-bottom-mobile:focus:not(.is-loading)::after,.is-tooltip-bottom-mobile:hover:not(.is-loading)::after{top:100%!important;bottom:auto!important;left:50%!important;right:auto!important;border-color:transparent transparent rgba(74,74,74,.9) transparent!important}.is-tooltip-bottom-mobile.is-tooltip-active::before,.is-tooltip-bottom-mobile:focus::before,.is-tooltip-bottom-mobile:hover::before{-webkit-transform:translate(-50%,.5rem)!important;transform:translate(-50%,.5rem)!important}}@media screen and (min-width:769px),print{.is-tooltip-bottom-tablet::before{top:100%!important;bottom:auto!important;left:50%!important;right:auto!important;-webkit-transform:translate(-50%,-1rem)!important;transform:translate(-50%,-1rem)!important}.is-tooltip-bottom-tablet.is-tooltip-active:not(.is-loading)::after,.is-tooltip-bottom-tablet:focus:not(.is-loading)::after,.is-tooltip-bottom-tablet:hover:not(.is-loading)::after{top:100%!important;bottom:auto!important;left:50%!important;right:auto!important;border-color:transparent transparent rgba(74,74,74,.9) transparent!important}.is-tooltip-bottom-tablet.is-tooltip-active::before,.is-tooltip-bottom-tablet:focus::before,.is-tooltip-bottom-tablet:hover::before{-webkit-transform:translate(-50%,.5rem)!important;transform:translate(-50%,.5rem)!important}}@media screen and (min-width:769px) and (max-width:1087px){.is-tooltip-bottom-tablet-only::before{top:100%!important;bottom:auto!important;left:50%!important;right:auto!important;-webkit-transform:translate(-50%,-1rem)!important;transform:translate(-50%,-1rem)!important}.is-tooltip-bottom-tablet-only.is-tooltip-active:not(.is-loading)::after,.is-tooltip-bottom-tablet-only:focus:not(.is-loading)::after,.is-tooltip-bottom-tablet-only:hover:not(.is-loading)::after{top:100%!important;bottom:auto!important;left:50%!important;right:auto!important;border-color:transparent transparent rgba(74,74,74,.9) transparent!important}.is-tooltip-bottom-tablet-only.is-tooltip-active::before,.is-tooltip-bottom-tablet-only:focus::before,.is-tooltip-bottom-tablet-only:hover::before{-webkit-transform:translate(-50%,.5rem)!important;transform:translate(-50%,.5rem)!important}}@media screen and (max-width:1087px){.is-tooltip-bottom-touch::before{top:100%!important;bottom:auto!important;left:50%!important;right:auto!important;-webkit-transform:translate(-50%,-1rem)!important;transform:translate(-50%,-1rem)!important}.is-tooltip-bottom-touch.is-tooltip-active:not(.is-loading)::after,.is-tooltip-bottom-touch:focus:not(.is-loading)::after,.is-tooltip-bottom-touch:hover:not(.is-loading)::after{top:100%!important;bottom:auto!important;left:50%!important;right:auto!important;border-color:transparent transparent rgba(74,74,74,.9) transparent!important}.is-tooltip-bottom-touch.is-tooltip-active::before,.is-tooltip-bottom-touch:focus::before,.is-tooltip-bottom-touch:hover::before{-webkit-transform:translate(-50%,.5rem)!important;transform:translate(-50%,.5rem)!important}}@media screen and (min-width:1088px){.is-tooltip-bottom-desktop::before{top:100%!important;bottom:auto!important;left:50%!important;right:auto!important;-webkit-transform:translate(-50%,-1rem)!important;transform:translate(-50%,-1rem)!important}.is-tooltip-bottom-desktop.is-tooltip-active:not(.is-loading)::after,.is-tooltip-bottom-desktop:focus:not(.is-loading)::after,.is-tooltip-bottom-desktop:hover:not(.is-loading)::after{top:100%!important;bottom:auto!important;left:50%!important;right:auto!important;border-color:transparent transparent rgba(74,74,74,.9) transparent!important}.is-tooltip-bottom-desktop.is-tooltip-active::before,.is-tooltip-bottom-desktop:focus::before,.is-tooltip-bottom-desktop:hover::before{-webkit-transform:translate(-50%,.5rem)!important;transform:translate(-50%,.5rem)!important}}@media screen and (min-width:1088px) and (max-width:1279px){.is-tooltip-bottom-desktop-only::before{top:100%!important;bottom:auto!important;left:50%!important;right:auto!important;-webkit-transform:translate(-50%,-1rem)!important;transform:translate(-50%,-1rem)!important}.is-tooltip-bottom-desktop-only.is-tooltip-active:not(.is-loading)::after,.is-tooltip-bottom-desktop-only:focus:not(.is-loading)::after,.is-tooltip-bottom-desktop-only:hover:not(.is-loading)::after{top:100%!important;bottom:auto!important;left:50%!important;right:auto!important;border-color:transparent transparent rgba(74,74,74,.9) transparent!important}.is-tooltip-bottom-desktop-only.is-tooltip-active::before,.is-tooltip-bottom-desktop-only:focus::before,.is-tooltip-bottom-desktop-only:hover::before{-webkit-transform:translate(-50%,.5rem)!important;transform:translate(-50%,.5rem)!important}}@media screen and (min-width:1280px){.is-tooltip-bottom-widescreen::before{top:100%!important;bottom:auto!important;left:50%!important;right:auto!important;-webkit-transform:translate(-50%,-1rem)!important;transform:translate(-50%,-1rem)!important}.is-tooltip-bottom-widescreen.is-tooltip-active:not(.is-loading)::after,.is-tooltip-bottom-widescreen:focus:not(.is-loading)::after,.is-tooltip-bottom-widescreen:hover:not(.is-loading)::after{top:100%!important;bottom:auto!important;left:50%!important;right:auto!important;border-color:transparent transparent rgba(74,74,74,.9) transparent!important}.is-tooltip-bottom-widescreen.is-tooltip-active::before,.is-tooltip-bottom-widescreen:focus::before,.is-tooltip-bottom-widescreen:hover::before{-webkit-transform:translate(-50%,.5rem)!important;transform:translate(-50%,.5rem)!important}}@media screen and (min-width:1280px) and (max-width:1471px){.is-tooltip-bottom-widescreen-only::before{top:100%!important;bottom:auto!important;left:50%!important;right:auto!important;-webkit-transform:translate(-50%,-1rem)!important;transform:translate(-50%,-1rem)!important}.is-tooltip-bottom-widescreen-only.is-tooltip-active:not(.is-loading)::after,.is-tooltip-bottom-widescreen-only:focus:not(.is-loading)::after,.is-tooltip-bottom-widescreen-only:hover:not(.is-loading)::after{top:100%!important;bottom:auto!important;left:50%!important;right:auto!important;border-color:transparent transparent rgba(74,74,74,.9) transparent!important}.is-tooltip-bottom-widescreen-only.is-tooltip-active::before,.is-tooltip-bottom-widescreen-only:focus::before,.is-tooltip-bottom-widescreen-only:hover::before{-webkit-transform:translate(-50%,.5rem)!important;transform:translate(-50%,.5rem)!important}}@media screen and (min-width:1472px){.is-tooltip-bottom-fullhd::before{top:100%!important;bottom:auto!important;left:50%!important;right:auto!important;-webkit-transform:translate(-50%,-1rem)!important;transform:translate(-50%,-1rem)!important}.is-tooltip-bottom-fullhd.is-tooltip-active:not(.is-loading)::after,.is-tooltip-bottom-fullhd:focus:not(.is-loading)::after,.is-tooltip-bottom-fullhd:hover:not(.is-loading)::after{top:100%!important;bottom:auto!important;left:50%!important;right:auto!important;border-color:transparent transparent rgba(74,74,74,.9) transparent!important}.is-tooltip-bottom-fullhd.is-tooltip-active::before,.is-tooltip-bottom-fullhd:focus::before,.is-tooltip-bottom-fullhd:hover::before{-webkit-transform:translate(-50%,.5rem)!important;transform:translate(-50%,.5rem)!important}}@media screen and (max-width:768px){.is-tooltip-left-mobile::before{top:auto!important;bottom:50%!important;left:auto!important;right:100%!important;-webkit-transform:translate(1rem,50%)!important;transform:translate(1rem,50%)!important}.is-tooltip-left-mobile.is-tooltip-active:not(.is-loading)::after,.is-tooltip-left-mobile:focus:not(.is-loading)::after,.is-tooltip-left-mobile:hover:not(.is-loading)::after{top:50%!important;bottom:auto!important;left:auto!important;right:calc(100% - .5rem)!important;border-color:transparent transparent transparent rgba(74,74,74,.9)!important}.is-tooltip-left-mobile.is-tooltip-active::before,.is-tooltip-left-mobile:focus::before,.is-tooltip-left-mobile:hover::before{-webkit-transform:translate(-.5rem,50%)!important;transform:translate(-.5rem,50%)!important}}@media screen and (min-width:769px),print{.is-tooltip-left-tablet::before{top:auto!important;bottom:50%!important;left:auto!important;right:100%!important;-webkit-transform:translate(1rem,50%)!important;transform:translate(1rem,50%)!important}.is-tooltip-left-tablet.is-tooltip-active:not(.is-loading)::after,.is-tooltip-left-tablet:focus:not(.is-loading)::after,.is-tooltip-left-tablet:hover:not(.is-loading)::after{top:50%!important;bottom:auto!important;left:auto!important;right:calc(100% - .5rem)!important;border-color:transparent transparent transparent rgba(74,74,74,.9)!important}.is-tooltip-left-tablet.is-tooltip-active::before,.is-tooltip-left-tablet:focus::before,.is-tooltip-left-tablet:hover::before{-webkit-transform:translate(-.5rem,50%)!important;transform:translate(-.5rem,50%)!important}}@media screen and (min-width:769px) and (max-width:1087px){.is-tooltip-left-tablet-only::before{top:auto!important;bottom:50%!important;left:auto!important;right:100%!important;-webkit-transform:translate(1rem,50%)!important;transform:translate(1rem,50%)!important}.is-tooltip-left-tablet-only.is-tooltip-active:not(.is-loading)::after,.is-tooltip-left-tablet-only:focus:not(.is-loading)::after,.is-tooltip-left-tablet-only:hover:not(.is-loading)::after{top:50%!important;bottom:auto!important;left:auto!important;right:calc(100% - .5rem)!important;border-color:transparent transparent transparent rgba(74,74,74,.9)!important}.is-tooltip-left-tablet-only.is-tooltip-active::before,.is-tooltip-left-tablet-only:focus::before,.is-tooltip-left-tablet-only:hover::before{-webkit-transform:translate(-.5rem,50%)!important;transform:translate(-.5rem,50%)!important}}@media screen and (max-width:1087px){.is-tooltip-left-touch::before{top:auto!important;bottom:50%!important;left:auto!important;right:100%!important;-webkit-transform:translate(1rem,50%)!important;transform:translate(1rem,50%)!important}.is-tooltip-left-touch.is-tooltip-active:not(.is-loading)::after,.is-tooltip-left-touch:focus:not(.is-loading)::after,.is-tooltip-left-touch:hover:not(.is-loading)::after{top:50%!important;bottom:auto!important;left:auto!important;right:calc(100% - .5rem)!important;border-color:transparent transparent transparent rgba(74,74,74,.9)!important}.is-tooltip-left-touch.is-tooltip-active::before,.is-tooltip-left-touch:focus::before,.is-tooltip-left-touch:hover::before{-webkit-transform:translate(-.5rem,50%)!important;transform:translate(-.5rem,50%)!important}}@media screen and (min-width:1088px){.is-tooltip-left-desktop::before{top:auto!important;bottom:50%!important;left:auto!important;right:100%!important;-webkit-transform:translate(1rem,50%)!important;transform:translate(1rem,50%)!important}.is-tooltip-left-desktop.is-tooltip-active:not(.is-loading)::after,.is-tooltip-left-desktop:focus:not(.is-loading)::after,.is-tooltip-left-desktop:hover:not(.is-loading)::after{top:50%!important;bottom:auto!important;left:auto!important;right:calc(100% - .5rem)!important;border-color:transparent transparent transparent rgba(74,74,74,.9)!important}.is-tooltip-left-desktop.is-tooltip-active::before,.is-tooltip-left-desktop:focus::before,.is-tooltip-left-desktop:hover::before{-webkit-transform:translate(-.5rem,50%)!important;transform:translate(-.5rem,50%)!important}}@media screen and (min-width:1088px) and (max-width:1279px){.is-tooltip-left-desktop-only::before{top:auto!important;bottom:50%!important;left:auto!important;right:100%!important;-webkit-transform:translate(1rem,50%)!important;transform:translate(1rem,50%)!important}.is-tooltip-left-desktop-only.is-tooltip-active:not(.is-loading)::after,.is-tooltip-left-desktop-only:focus:not(.is-loading)::after,.is-tooltip-left-desktop-only:hover:not(.is-loading)::after{top:50%!important;bottom:auto!important;left:auto!important;right:calc(100% - .5rem)!important;border-color:transparent transparent transparent rgba(74,74,74,.9)!important}.is-tooltip-left-desktop-only.is-tooltip-active::before,.is-tooltip-left-desktop-only:focus::before,.is-tooltip-left-desktop-only:hover::before{-webkit-transform:translate(-.5rem,50%)!important;transform:translate(-.5rem,50%)!important}}@media screen and (min-width:1280px){.is-tooltip-left-widescreen::before{top:auto!important;bottom:50%!important;left:auto!important;right:100%!important;-webkit-transform:translate(1rem,50%)!important;transform:translate(1rem,50%)!important}.is-tooltip-left-widescreen.is-tooltip-active:not(.is-loading)::after,.is-tooltip-left-widescreen:focus:not(.is-loading)::after,.is-tooltip-left-widescreen:hover:not(.is-loading)::after{top:50%!important;bottom:auto!important;left:auto!important;right:calc(100% - .5rem)!important;border-color:transparent transparent transparent rgba(74,74,74,.9)!important}.is-tooltip-left-widescreen.is-tooltip-active::before,.is-tooltip-left-widescreen:focus::before,.is-tooltip-left-widescreen:hover::before{-webkit-transform:translate(-.5rem,50%)!important;transform:translate(-.5rem,50%)!important}}@media screen and (min-width:1280px) and (max-width:1471px){.is-tooltip-left-widescreen-only::before{top:auto!important;bottom:50%!important;left:auto!important;right:100%!important;-webkit-transform:translate(1rem,50%)!important;transform:translate(1rem,50%)!important}.is-tooltip-left-widescreen-only.is-tooltip-active:not(.is-loading)::after,.is-tooltip-left-widescreen-only:focus:not(.is-loading)::after,.is-tooltip-left-widescreen-only:hover:not(.is-loading)::after{top:50%!important;bottom:auto!important;left:auto!important;right:calc(100% - .5rem)!important;border-color:transparent transparent transparent rgba(74,74,74,.9)!important}.is-tooltip-left-widescreen-only.is-tooltip-active::before,.is-tooltip-left-widescreen-only:focus::before,.is-tooltip-left-widescreen-only:hover::before{-webkit-transform:translate(-.5rem,50%)!important;transform:translate(-.5rem,50%)!important}}@media screen and (min-width:1472px){.is-tooltip-left-fullhd::before{top:auto!important;bottom:50%!important;left:auto!important;right:100%!important;-webkit-transform:translate(1rem,50%)!important;transform:translate(1rem,50%)!important}.is-tooltip-left-fullhd.is-tooltip-active:not(.is-loading)::after,.is-tooltip-left-fullhd:focus:not(.is-loading)::after,.is-tooltip-left-fullhd:hover:not(.is-loading)::after{top:50%!important;bottom:auto!important;left:auto!important;right:calc(100% - .5rem)!important;border-color:transparent transparent transparent rgba(74,74,74,.9)!important}.is-tooltip-left-fullhd.is-tooltip-active::before,.is-tooltip-left-fullhd:focus::before,.is-tooltip-left-fullhd:hover::before{-webkit-transform:translate(-.5rem,50%)!important;transform:translate(-.5rem,50%)!important}} \ No newline at end of file diff --git a/cmd/txqr-tester/css/bulma.css b/cmd/txqr-tester/css/bulma.css new file mode 100644 index 0000000..9b2532e --- /dev/null +++ b/cmd/txqr-tester/css/bulma.css @@ -0,0 +1,10289 @@ +/*! bulma.io v0.7.2 | MIT License | github.com/jgthms/bulma */ +@-webkit-keyframes spinAround { + from { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + to { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +@keyframes spinAround { + from { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + to { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} + +.delete, .modal-close, .is-unselectable, .button, .file, .breadcrumb, .pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis, .tabs { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.select:not(.is-multiple):not(.is-loading)::after, .navbar-link:not(.is-arrowless)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); + -webkit-transform-origin: center; + transform-origin: center; + width: 0.625em; +} + +.box:not(:last-child), .content:not(:last-child), .notification:not(:last-child), .progress:not(:last-child), .table:not(:last-child), .table-container:not(:last-child), .title:not(:last-child), +.subtitle:not(:last-child), .block:not(:last-child), .highlight:not(:last-child), .breadcrumb:not(:last-child), .level:not(:last-child), .list:not(:last-child), .message:not(:last-child), .tabs:not(:last-child) { + margin-bottom: 1.5rem; +} + +.delete, .modal-close { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; +} + +.delete::before, .modal-close::before, .delete::after, .modal-close::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + -webkit-transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform: translateX(-50%) translateY(-50%) rotate(45deg); + -webkit-transform-origin: center center; + transform-origin: center center; +} + +.delete::before, .modal-close::before { + height: 2px; + width: 50%; +} + +.delete::after, .modal-close::after { + height: 50%; + width: 2px; +} + +.delete:hover, .modal-close:hover, .delete:focus, .modal-close:focus { + background-color: rgba(10, 10, 10, 0.3); +} + +.delete:active, .modal-close:active { + background-color: rgba(10, 10, 10, 0.4); +} + +.is-small.delete, .is-small.modal-close { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; +} + +.is-medium.delete, .is-medium.modal-close { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; +} + +.is-large.delete, .is-large.modal-close { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; +} + +.button.is-loading::after, .select.is-loading::after, .control.is-loading::after, .loader { + -webkit-animation: spinAround 500ms infinite linear; + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdbdb; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; +} + +.is-overlay, .image.is-square img, .image.is-1by1 img, .image.is-5by4 img, .image.is-4by3 img, .image.is-3by2 img, .image.is-5by3 img, .image.is-16by9 img, .image.is-2by1 img, .image.is-3by1 img, .image.is-4by5 img, .image.is-3by4 img, .image.is-2by3 img, .image.is-3by5 img, .image.is-9by16 img, .image.is-1by2 img, .image.is-1by3 img, .modal, .modal-background, .hero-video { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; +} + +.button, .input, +.textarea, .select select, .file-cta, +.file-name, .pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 4px; + box-shadow: none; + display: inline-flex; + font-size: 1rem; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; +} + +.button:focus, .input:focus, +.textarea:focus, .select select:focus, .file-cta:focus, +.file-name:focus, .pagination-previous:focus, +.pagination-next:focus, +.pagination-link:focus, +.pagination-ellipsis:focus, .is-focused.button, .is-focused.input, +.is-focused.textarea, .select select.is-focused, .is-focused.file-cta, +.is-focused.file-name, .is-focused.pagination-previous, +.is-focused.pagination-next, +.is-focused.pagination-link, +.is-focused.pagination-ellipsis, .button:active, .input:active, +.textarea:active, .select select:active, .file-cta:active, +.file-name:active, .pagination-previous:active, +.pagination-next:active, +.pagination-link:active, +.pagination-ellipsis:active, .is-active.button, .is-active.input, +.is-active.textarea, .select select.is-active, .is-active.file-cta, +.is-active.file-name, .is-active.pagination-previous, +.is-active.pagination-next, +.is-active.pagination-link, +.is-active.pagination-ellipsis { + outline: none; +} + +.button[disabled], .input[disabled], +.textarea[disabled], .select select[disabled], .file-cta[disabled], +.file-name[disabled], .pagination-previous[disabled], +.pagination-next[disabled], +.pagination-link[disabled], +.pagination-ellipsis[disabled] { + cursor: not-allowed; +} + +/*! minireset.css v0.0.3 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; +} + +ul { + list-style: none; +} + +button, +input, +select, +textarea { + margin: 0; +} + +html { + box-sizing: border-box; +} + +*, *::before, *::after { + box-sizing: inherit; +} + +img, +audio, +video { + height: auto; + max-width: 100%; +} + +iframe { + border: 0; +} + +table { + border-collapse: collapse; + border-spacing: 0; +} + +td, +th { + padding: 0; + text-align: left; +} + +html { + background-color: white; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: hidden; + overflow-y: scroll; + text-rendering: optimizeLegibility; + -webkit-text-size-adjust: 100%; + -moz-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; + text-size-adjust: 100%; +} + +article, +aside, +figure, +footer, +header, +hgroup, +section { + display: block; +} + +body, +button, +input, +select, +textarea { + font-family: BlinkMacSystemFont, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif; +} + +code, +pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: monospace; +} + +body { + color: #4a4a4a; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; +} + +a { + color: #3273dc; + cursor: pointer; + text-decoration: none; +} + +a strong { + color: currentColor; +} + +a:hover { + color: #363636; +} + +code { + background-color: whitesmoke; + color: #ff3860; + font-size: 0.875em; + font-weight: normal; + padding: 0.25em 0.5em 0.25em; +} + +hr { + background-color: whitesmoke; + border: none; + display: block; + height: 2px; + margin: 1.5rem 0; +} + +img { + height: auto; + max-width: 100%; +} + +input[type="checkbox"], +input[type="radio"] { + vertical-align: baseline; +} + +small { + font-size: 0.875em; +} + +span { + font-style: inherit; + font-weight: inherit; +} + +strong { + color: #363636; + font-weight: 700; +} + +pre { + -webkit-overflow-scrolling: touch; + background-color: whitesmoke; + color: #4a4a4a; + font-size: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; +} + +pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; +} + +table td, +table th { + text-align: left; + vertical-align: top; +} + +table th { + color: #363636; +} + +.is-clearfix::after { + clear: both; + content: " "; + display: table; +} + +.is-pulled-left { + float: left !important; +} + +.is-pulled-right { + float: right !important; +} + +.is-clipped { + overflow: hidden !important; +} + +.is-size-1 { + font-size: 3rem !important; +} + +.is-size-2 { + font-size: 2.5rem !important; +} + +.is-size-3 { + font-size: 2rem !important; +} + +.is-size-4 { + font-size: 1.5rem !important; +} + +.is-size-5 { + font-size: 1.25rem !important; +} + +.is-size-6 { + font-size: 1rem !important; +} + +.is-size-7 { + font-size: 0.75rem !important; +} + +@media screen and (max-width: 768px) { + .is-size-1-mobile { + font-size: 3rem !important; + } + .is-size-2-mobile { + font-size: 2.5rem !important; + } + .is-size-3-mobile { + font-size: 2rem !important; + } + .is-size-4-mobile { + font-size: 1.5rem !important; + } + .is-size-5-mobile { + font-size: 1.25rem !important; + } + .is-size-6-mobile { + font-size: 1rem !important; + } + .is-size-7-mobile { + font-size: 0.75rem !important; + } +} + +@media screen and (min-width: 769px), print { + .is-size-1-tablet { + font-size: 3rem !important; + } + .is-size-2-tablet { + font-size: 2.5rem !important; + } + .is-size-3-tablet { + font-size: 2rem !important; + } + .is-size-4-tablet { + font-size: 1.5rem !important; + } + .is-size-5-tablet { + font-size: 1.25rem !important; + } + .is-size-6-tablet { + font-size: 1rem !important; + } + .is-size-7-tablet { + font-size: 0.75rem !important; + } +} + +@media screen and (max-width: 1087px) { + .is-size-1-touch { + font-size: 3rem !important; + } + .is-size-2-touch { + font-size: 2.5rem !important; + } + .is-size-3-touch { + font-size: 2rem !important; + } + .is-size-4-touch { + font-size: 1.5rem !important; + } + .is-size-5-touch { + font-size: 1.25rem !important; + } + .is-size-6-touch { + font-size: 1rem !important; + } + .is-size-7-touch { + font-size: 0.75rem !important; + } +} + +@media screen and (min-width: 1088px) { + .is-size-1-desktop { + font-size: 3rem !important; + } + .is-size-2-desktop { + font-size: 2.5rem !important; + } + .is-size-3-desktop { + font-size: 2rem !important; + } + .is-size-4-desktop { + font-size: 1.5rem !important; + } + .is-size-5-desktop { + font-size: 1.25rem !important; + } + .is-size-6-desktop { + font-size: 1rem !important; + } + .is-size-7-desktop { + font-size: 0.75rem !important; + } +} + +@media screen and (min-width: 1280px) { + .is-size-1-widescreen { + font-size: 3rem !important; + } + .is-size-2-widescreen { + font-size: 2.5rem !important; + } + .is-size-3-widescreen { + font-size: 2rem !important; + } + .is-size-4-widescreen { + font-size: 1.5rem !important; + } + .is-size-5-widescreen { + font-size: 1.25rem !important; + } + .is-size-6-widescreen { + font-size: 1rem !important; + } + .is-size-7-widescreen { + font-size: 0.75rem !important; + } +} + +@media screen and (min-width: 1472px) { + .is-size-1-fullhd { + font-size: 3rem !important; + } + .is-size-2-fullhd { + font-size: 2.5rem !important; + } + .is-size-3-fullhd { + font-size: 2rem !important; + } + .is-size-4-fullhd { + font-size: 1.5rem !important; + } + .is-size-5-fullhd { + font-size: 1.25rem !important; + } + .is-size-6-fullhd { + font-size: 1rem !important; + } + .is-size-7-fullhd { + font-size: 0.75rem !important; + } +} + +.has-text-centered { + text-align: center !important; +} + +.has-text-justified { + text-align: justify !important; +} + +.has-text-left { + text-align: left !important; +} + +.has-text-right { + text-align: right !important; +} + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; + } +} + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; + } +} + +@media screen and (min-width: 769px) and (max-width: 1087px) { + .has-text-centered-tablet-only { + text-align: center !important; + } +} + +@media screen and (max-width: 1087px) { + .has-text-centered-touch { + text-align: center !important; + } +} + +@media screen and (min-width: 1088px) { + .has-text-centered-desktop { + text-align: center !important; + } +} + +@media screen and (min-width: 1088px) and (max-width: 1279px) { + .has-text-centered-desktop-only { + text-align: center !important; + } +} + +@media screen and (min-width: 1280px) { + .has-text-centered-widescreen { + text-align: center !important; + } +} + +@media screen and (min-width: 1280px) and (max-width: 1471px) { + .has-text-centered-widescreen-only { + text-align: center !important; + } +} + +@media screen and (min-width: 1472px) { + .has-text-centered-fullhd { + text-align: center !important; + } +} + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; + } +} + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; + } +} + +@media screen and (min-width: 769px) and (max-width: 1087px) { + .has-text-justified-tablet-only { + text-align: justify !important; + } +} + +@media screen and (max-width: 1087px) { + .has-text-justified-touch { + text-align: justify !important; + } +} + +@media screen and (min-width: 1088px) { + .has-text-justified-desktop { + text-align: justify !important; + } +} + +@media screen and (min-width: 1088px) and (max-width: 1279px) { + .has-text-justified-desktop-only { + text-align: justify !important; + } +} + +@media screen and (min-width: 1280px) { + .has-text-justified-widescreen { + text-align: justify !important; + } +} + +@media screen and (min-width: 1280px) and (max-width: 1471px) { + .has-text-justified-widescreen-only { + text-align: justify !important; + } +} + +@media screen and (min-width: 1472px) { + .has-text-justified-fullhd { + text-align: justify !important; + } +} + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; + } +} + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; + } +} + +@media screen and (min-width: 769px) and (max-width: 1087px) { + .has-text-left-tablet-only { + text-align: left !important; + } +} + +@media screen and (max-width: 1087px) { + .has-text-left-touch { + text-align: left !important; + } +} + +@media screen and (min-width: 1088px) { + .has-text-left-desktop { + text-align: left !important; + } +} + +@media screen and (min-width: 1088px) and (max-width: 1279px) { + .has-text-left-desktop-only { + text-align: left !important; + } +} + +@media screen and (min-width: 1280px) { + .has-text-left-widescreen { + text-align: left !important; + } +} + +@media screen and (min-width: 1280px) and (max-width: 1471px) { + .has-text-left-widescreen-only { + text-align: left !important; + } +} + +@media screen and (min-width: 1472px) { + .has-text-left-fullhd { + text-align: left !important; + } +} + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; + } +} + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; + } +} + +@media screen and (min-width: 769px) and (max-width: 1087px) { + .has-text-right-tablet-only { + text-align: right !important; + } +} + +@media screen and (max-width: 1087px) { + .has-text-right-touch { + text-align: right !important; + } +} + +@media screen and (min-width: 1088px) { + .has-text-right-desktop { + text-align: right !important; + } +} + +@media screen and (min-width: 1088px) and (max-width: 1279px) { + .has-text-right-desktop-only { + text-align: right !important; + } +} + +@media screen and (min-width: 1280px) { + .has-text-right-widescreen { + text-align: right !important; + } +} + +@media screen and (min-width: 1280px) and (max-width: 1471px) { + .has-text-right-widescreen-only { + text-align: right !important; + } +} + +@media screen and (min-width: 1472px) { + .has-text-right-fullhd { + text-align: right !important; + } +} + +.is-capitalized { + text-transform: capitalize !important; +} + +.is-lowercase { + text-transform: lowercase !important; +} + +.is-uppercase { + text-transform: uppercase !important; +} + +.is-italic { + font-style: italic !important; +} + +.has-text-white { + color: white !important; +} + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; +} + +.has-background-white { + background-color: white !important; +} + +.has-text-black { + color: #0a0a0a !important; +} + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; +} + +.has-background-black { + background-color: #0a0a0a !important; +} + +.has-text-light { + color: whitesmoke !important; +} + +a.has-text-light:hover, a.has-text-light:focus { + color: #dbdbdb !important; +} + +.has-background-light { + background-color: whitesmoke !important; +} + +.has-text-dark { + color: #363636 !important; +} + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #1c1c1c !important; +} + +.has-background-dark { + background-color: #363636 !important; +} + +.has-text-primary { + color: #00d1b2 !important; +} + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #009e86 !important; +} + +.has-background-primary { + background-color: #00d1b2 !important; +} + +.has-text-link { + color: #3273dc !important; +} + +a.has-text-link:hover, a.has-text-link:focus { + color: #205bbc !important; +} + +.has-background-link { + background-color: #3273dc !important; +} + +.has-text-info { + color: #209cee !important; +} + +a.has-text-info:hover, a.has-text-info:focus { + color: #0f81cc !important; +} + +.has-background-info { + background-color: #209cee !important; +} + +.has-text-success { + color: #23d160 !important; +} + +a.has-text-success:hover, a.has-text-success:focus { + color: #1ca64c !important; +} + +.has-background-success { + background-color: #23d160 !important; +} + +.has-text-warning { + color: #ffdd57 !important; +} + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #ffd324 !important; +} + +.has-background-warning { + background-color: #ffdd57 !important; +} + +.has-text-danger { + color: #ff3860 !important; +} + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #ff0537 !important; +} + +.has-background-danger { + background-color: #ff3860 !important; +} + +.has-text-black-bis { + color: #121212 !important; +} + +.has-background-black-bis { + background-color: #121212 !important; +} + +.has-text-black-ter { + color: #242424 !important; +} + +.has-background-black-ter { + background-color: #242424 !important; +} + +.has-text-grey-darker { + color: #363636 !important; +} + +.has-background-grey-darker { + background-color: #363636 !important; +} + +.has-text-grey-dark { + color: #4a4a4a !important; +} + +.has-background-grey-dark { + background-color: #4a4a4a !important; +} + +.has-text-grey { + color: #7a7a7a !important; +} + +.has-background-grey { + background-color: #7a7a7a !important; +} + +.has-text-grey-light { + color: #b5b5b5 !important; +} + +.has-background-grey-light { + background-color: #b5b5b5 !important; +} + +.has-text-grey-lighter { + color: #dbdbdb !important; +} + +.has-background-grey-lighter { + background-color: #dbdbdb !important; +} + +.has-text-white-ter { + color: whitesmoke !important; +} + +.has-background-white-ter { + background-color: whitesmoke !important; +} + +.has-text-white-bis { + color: #fafafa !important; +} + +.has-background-white-bis { + background-color: #fafafa !important; +} + +.has-text-weight-light { + font-weight: 300 !important; +} + +.has-text-weight-normal { + font-weight: 400 !important; +} + +.has-text-weight-semibold { + font-weight: 600 !important; +} + +.has-text-weight-bold { + font-weight: 700 !important; +} + +.is-block { + display: block !important; +} + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; + } +} + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; + } +} + +@media screen and (min-width: 769px) and (max-width: 1087px) { + .is-block-tablet-only { + display: block !important; + } +} + +@media screen and (max-width: 1087px) { + .is-block-touch { + display: block !important; + } +} + +@media screen and (min-width: 1088px) { + .is-block-desktop { + display: block !important; + } +} + +@media screen and (min-width: 1088px) and (max-width: 1279px) { + .is-block-desktop-only { + display: block !important; + } +} + +@media screen and (min-width: 1280px) { + .is-block-widescreen { + display: block !important; + } +} + +@media screen and (min-width: 1280px) and (max-width: 1471px) { + .is-block-widescreen-only { + display: block !important; + } +} + +@media screen and (min-width: 1472px) { + .is-block-fullhd { + display: block !important; + } +} + +.is-flex { + display: flex !important; +} + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; + } +} + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; + } +} + +@media screen and (min-width: 769px) and (max-width: 1087px) { + .is-flex-tablet-only { + display: flex !important; + } +} + +@media screen and (max-width: 1087px) { + .is-flex-touch { + display: flex !important; + } +} + +@media screen and (min-width: 1088px) { + .is-flex-desktop { + display: flex !important; + } +} + +@media screen and (min-width: 1088px) and (max-width: 1279px) { + .is-flex-desktop-only { + display: flex !important; + } +} + +@media screen and (min-width: 1280px) { + .is-flex-widescreen { + display: flex !important; + } +} + +@media screen and (min-width: 1280px) and (max-width: 1471px) { + .is-flex-widescreen-only { + display: flex !important; + } +} + +@media screen and (min-width: 1472px) { + .is-flex-fullhd { + display: flex !important; + } +} + +.is-inline { + display: inline !important; +} + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; + } +} + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; + } +} + +@media screen and (min-width: 769px) and (max-width: 1087px) { + .is-inline-tablet-only { + display: inline !important; + } +} + +@media screen and (max-width: 1087px) { + .is-inline-touch { + display: inline !important; + } +} + +@media screen and (min-width: 1088px) { + .is-inline-desktop { + display: inline !important; + } +} + +@media screen and (min-width: 1088px) and (max-width: 1279px) { + .is-inline-desktop-only { + display: inline !important; + } +} + +@media screen and (min-width: 1280px) { + .is-inline-widescreen { + display: inline !important; + } +} + +@media screen and (min-width: 1280px) and (max-width: 1471px) { + .is-inline-widescreen-only { + display: inline !important; + } +} + +@media screen and (min-width: 1472px) { + .is-inline-fullhd { + display: inline !important; + } +} + +.is-inline-block { + display: inline-block !important; +} + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; + } +} + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; + } +} + +@media screen and (min-width: 769px) and (max-width: 1087px) { + .is-inline-block-tablet-only { + display: inline-block !important; + } +} + +@media screen and (max-width: 1087px) { + .is-inline-block-touch { + display: inline-block !important; + } +} + +@media screen and (min-width: 1088px) { + .is-inline-block-desktop { + display: inline-block !important; + } +} + +@media screen and (min-width: 1088px) and (max-width: 1279px) { + .is-inline-block-desktop-only { + display: inline-block !important; + } +} + +@media screen and (min-width: 1280px) { + .is-inline-block-widescreen { + display: inline-block !important; + } +} + +@media screen and (min-width: 1280px) and (max-width: 1471px) { + .is-inline-block-widescreen-only { + display: inline-block !important; + } +} + +@media screen and (min-width: 1472px) { + .is-inline-block-fullhd { + display: inline-block !important; + } +} + +.is-inline-flex { + display: inline-flex !important; +} + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; + } +} + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; + } +} + +@media screen and (min-width: 769px) and (max-width: 1087px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; + } +} + +@media screen and (max-width: 1087px) { + .is-inline-flex-touch { + display: inline-flex !important; + } +} + +@media screen and (min-width: 1088px) { + .is-inline-flex-desktop { + display: inline-flex !important; + } +} + +@media screen and (min-width: 1088px) and (max-width: 1279px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; + } +} + +@media screen and (min-width: 1280px) { + .is-inline-flex-widescreen { + display: inline-flex !important; + } +} + +@media screen and (min-width: 1280px) and (max-width: 1471px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; + } +} + +@media screen and (min-width: 1472px) { + .is-inline-flex-fullhd { + display: inline-flex !important; + } +} + +.is-hidden { + display: none !important; +} + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; +} + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; + } +} + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; + } +} + +@media screen and (min-width: 769px) and (max-width: 1087px) { + .is-hidden-tablet-only { + display: none !important; + } +} + +@media screen and (max-width: 1087px) { + .is-hidden-touch { + display: none !important; + } +} + +@media screen and (min-width: 1088px) { + .is-hidden-desktop { + display: none !important; + } +} + +@media screen and (min-width: 1088px) and (max-width: 1279px) { + .is-hidden-desktop-only { + display: none !important; + } +} + +@media screen and (min-width: 1280px) { + .is-hidden-widescreen { + display: none !important; + } +} + +@media screen and (min-width: 1280px) and (max-width: 1471px) { + .is-hidden-widescreen-only { + display: none !important; + } +} + +@media screen and (min-width: 1472px) { + .is-hidden-fullhd { + display: none !important; + } +} + +.is-invisible { + visibility: hidden !important; +} + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; + } +} + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; + } +} + +@media screen and (min-width: 769px) and (max-width: 1087px) { + .is-invisible-tablet-only { + visibility: hidden !important; + } +} + +@media screen and (max-width: 1087px) { + .is-invisible-touch { + visibility: hidden !important; + } +} + +@media screen and (min-width: 1088px) { + .is-invisible-desktop { + visibility: hidden !important; + } +} + +@media screen and (min-width: 1088px) and (max-width: 1279px) { + .is-invisible-desktop-only { + visibility: hidden !important; + } +} + +@media screen and (min-width: 1280px) { + .is-invisible-widescreen { + visibility: hidden !important; + } +} + +@media screen and (min-width: 1280px) and (max-width: 1471px) { + .is-invisible-widescreen-only { + visibility: hidden !important; + } +} + +@media screen and (min-width: 1472px) { + .is-invisible-fullhd { + visibility: hidden !important; + } +} + +.is-marginless { + margin: 0 !important; +} + +.is-paddingless { + padding: 0 !important; +} + +.is-radiusless { + border-radius: 0 !important; +} + +.is-shadowless { + box-shadow: none !important; +} + +.box { + background-color: white; + border-radius: 6px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #4a4a4a; + display: block; + padding: 1.25rem; +} + +a.box:hover, a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #3273dc; +} + +a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #3273dc; +} + +.button { + background-color: white; + border-color: #dbdbdb; + border-width: 1px; + color: #363636; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; +} + +.button strong { + color: inherit; +} + +.button .icon, .button .icon.is-small, .button .icon.is-medium, .button .icon.is-large { + height: 1.5em; + width: 1.5em; +} + +.button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; +} + +.button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); +} + +.button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); +} + +.button:hover, .button.is-hovered { + border-color: #b5b5b5; + color: #363636; +} + +.button:focus, .button.is-focused { + border-color: #3273dc; + color: #363636; +} + +.button:focus:not(:active), .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(50, 115, 220, 0.25); +} + +.button:active, .button.is-active { + border-color: #4a4a4a; + color: #363636; +} + +.button.is-text { + background-color: transparent; + border-color: transparent; + color: #4a4a4a; + text-decoration: underline; +} + +.button.is-text:hover, .button.is-text.is-hovered, .button.is-text:focus, .button.is-text.is-focused { + background-color: whitesmoke; + color: #363636; +} + +.button.is-text:active, .button.is-text.is-active { + background-color: #e8e8e8; + color: #363636; +} + +.button.is-text[disabled] { + background-color: transparent; + border-color: transparent; + box-shadow: none; +} + +.button.is-white { + background-color: white; + border-color: transparent; + color: #0a0a0a; +} + +.button.is-white:hover, .button.is-white.is-hovered { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; +} + +.button.is-white:focus, .button.is-white.is-focused { + border-color: transparent; + color: #0a0a0a; +} + +.button.is-white:focus:not(:active), .button.is-white.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); +} + +.button.is-white:active, .button.is-white.is-active { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; +} + +.button.is-white[disabled] { + background-color: white; + border-color: transparent; + box-shadow: none; +} + +.button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; +} + +.button.is-white.is-inverted:hover { + background-color: black; +} + +.button.is-white.is-inverted[disabled] { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; + color: white; +} + +.button.is-white.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; +} + +.button.is-white.is-outlined { + background-color: transparent; + border-color: white; + color: white; +} + +.button.is-white.is-outlined:hover, .button.is-white.is-outlined:focus { + background-color: white; + border-color: white; + color: #0a0a0a; +} + +.button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !important; +} + +.button.is-white.is-outlined[disabled] { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; +} + +.button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; +} + +.button.is-white.is-inverted.is-outlined:hover, .button.is-white.is-inverted.is-outlined:focus { + background-color: #0a0a0a; + color: white; +} + +.button.is-white.is-inverted.is-outlined[disabled] { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; +} + +.button.is-black { + background-color: #0a0a0a; + border-color: transparent; + color: white; +} + +.button.is-black:hover, .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; +} + +.button.is-black:focus, .button.is-black.is-focused { + border-color: transparent; + color: white; +} + +.button.is-black:focus:not(:active), .button.is-black.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); +} + +.button.is-black:active, .button.is-black.is-active { + background-color: black; + border-color: transparent; + color: white; +} + +.button.is-black[disabled] { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; +} + +.button.is-black.is-inverted { + background-color: white; + color: #0a0a0a; +} + +.button.is-black.is-inverted:hover { + background-color: #f2f2f2; +} + +.button.is-black.is-inverted[disabled] { + background-color: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; +} + +.button.is-black.is-loading::after { + border-color: transparent transparent white white !important; +} + +.button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; +} + +.button.is-black.is-outlined:hover, .button.is-black.is-outlined:focus { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; +} + +.button.is-black.is-outlined.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; +} + +.button.is-black.is-outlined[disabled] { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; +} + +.button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + color: white; +} + +.button.is-black.is-inverted.is-outlined:hover, .button.is-black.is-inverted.is-outlined:focus { + background-color: white; + color: #0a0a0a; +} + +.button.is-black.is-inverted.is-outlined[disabled] { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; +} + +.button.is-light { + background-color: whitesmoke; + border-color: transparent; + color: #363636; +} + +.button.is-light:hover, .button.is-light.is-hovered { + background-color: #eeeeee; + border-color: transparent; + color: #363636; +} + +.button.is-light:focus, .button.is-light.is-focused { + border-color: transparent; + color: #363636; +} + +.button.is-light:focus:not(:active), .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); +} + +.button.is-light:active, .button.is-light.is-active { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; +} + +.button.is-light[disabled] { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; +} + +.button.is-light.is-inverted { + background-color: #363636; + color: whitesmoke; +} + +.button.is-light.is-inverted:hover { + background-color: #292929; +} + +.button.is-light.is-inverted[disabled] { + background-color: #363636; + border-color: transparent; + box-shadow: none; + color: whitesmoke; +} + +.button.is-light.is-loading::after { + border-color: transparent transparent #363636 #363636 !important; +} + +.button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + color: whitesmoke; +} + +.button.is-light.is-outlined:hover, .button.is-light.is-outlined:focus { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; +} + +.button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !important; +} + +.button.is-light.is-outlined[disabled] { + background-color: transparent; + border-color: whitesmoke; + box-shadow: none; + color: whitesmoke; +} + +.button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + color: #363636; +} + +.button.is-light.is-inverted.is-outlined:hover, .button.is-light.is-inverted.is-outlined:focus { + background-color: #363636; + color: whitesmoke; +} + +.button.is-light.is-inverted.is-outlined[disabled] { + background-color: transparent; + border-color: #363636; + box-shadow: none; + color: #363636; +} + +.button.is-dark { + background-color: #363636; + border-color: transparent; + color: whitesmoke; +} + +.button.is-dark:hover, .button.is-dark.is-hovered { + background-color: #2f2f2f; + border-color: transparent; + color: whitesmoke; +} + +.button.is-dark:focus, .button.is-dark.is-focused { + border-color: transparent; + color: whitesmoke; +} + +.button.is-dark:focus:not(:active), .button.is-dark.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); +} + +.button.is-dark:active, .button.is-dark.is-active { + background-color: #292929; + border-color: transparent; + color: whitesmoke; +} + +.button.is-dark[disabled] { + background-color: #363636; + border-color: transparent; + box-shadow: none; +} + +.button.is-dark.is-inverted { + background-color: whitesmoke; + color: #363636; +} + +.button.is-dark.is-inverted:hover { + background-color: #e8e8e8; +} + +.button.is-dark.is-inverted[disabled] { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; + color: #363636; +} + +.button.is-dark.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !important; +} + +.button.is-dark.is-outlined { + background-color: transparent; + border-color: #363636; + color: #363636; +} + +.button.is-dark.is-outlined:hover, .button.is-dark.is-outlined:focus { + background-color: #363636; + border-color: #363636; + color: whitesmoke; +} + +.button.is-dark.is-outlined.is-loading::after { + border-color: transparent transparent #363636 #363636 !important; +} + +.button.is-dark.is-outlined[disabled] { + background-color: transparent; + border-color: #363636; + box-shadow: none; + color: #363636; +} + +.button.is-dark.is-inverted.is-outlined { + background-color: transparent; + border-color: whitesmoke; + color: whitesmoke; +} + +.button.is-dark.is-inverted.is-outlined:hover, .button.is-dark.is-inverted.is-outlined:focus { + background-color: whitesmoke; + color: #363636; +} + +.button.is-dark.is-inverted.is-outlined[disabled] { + background-color: transparent; + border-color: whitesmoke; + box-shadow: none; + color: whitesmoke; +} + +.button.is-primary { + background-color: #00d1b2; + border-color: transparent; + color: #fff; +} + +.button.is-primary:hover, .button.is-primary.is-hovered { + background-color: #00c4a7; + border-color: transparent; + color: #fff; +} + +.button.is-primary:focus, .button.is-primary.is-focused { + border-color: transparent; + color: #fff; +} + +.button.is-primary:focus:not(:active), .button.is-primary.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(0, 209, 178, 0.25); +} + +.button.is-primary:active, .button.is-primary.is-active { + background-color: #00b89c; + border-color: transparent; + color: #fff; +} + +.button.is-primary[disabled] { + background-color: #00d1b2; + border-color: transparent; + box-shadow: none; +} + +.button.is-primary.is-inverted { + background-color: #fff; + color: #00d1b2; +} + +.button.is-primary.is-inverted:hover { + background-color: #f2f2f2; +} + +.button.is-primary.is-inverted[disabled] { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #00d1b2; +} + +.button.is-primary.is-loading::after { + border-color: transparent transparent #fff #fff !important; +} + +.button.is-primary.is-outlined { + background-color: transparent; + border-color: #00d1b2; + color: #00d1b2; +} + +.button.is-primary.is-outlined:hover, .button.is-primary.is-outlined:focus { + background-color: #00d1b2; + border-color: #00d1b2; + color: #fff; +} + +.button.is-primary.is-outlined.is-loading::after { + border-color: transparent transparent #00d1b2 #00d1b2 !important; +} + +.button.is-primary.is-outlined[disabled] { + background-color: transparent; + border-color: #00d1b2; + box-shadow: none; + color: #00d1b2; +} + +.button.is-primary.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; +} + +.button.is-primary.is-inverted.is-outlined:hover, .button.is-primary.is-inverted.is-outlined:focus { + background-color: #fff; + color: #00d1b2; +} + +.button.is-primary.is-inverted.is-outlined[disabled] { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; +} + +.button.is-link { + background-color: #3273dc; + border-color: transparent; + color: #fff; +} + +.button.is-link:hover, .button.is-link.is-hovered { + background-color: #276cda; + border-color: transparent; + color: #fff; +} + +.button.is-link:focus, .button.is-link.is-focused { + border-color: transparent; + color: #fff; +} + +.button.is-link:focus:not(:active), .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(50, 115, 220, 0.25); +} + +.button.is-link:active, .button.is-link.is-active { + background-color: #2366d1; + border-color: transparent; + color: #fff; +} + +.button.is-link[disabled] { + background-color: #3273dc; + border-color: transparent; + box-shadow: none; +} + +.button.is-link.is-inverted { + background-color: #fff; + color: #3273dc; +} + +.button.is-link.is-inverted:hover { + background-color: #f2f2f2; +} + +.button.is-link.is-inverted[disabled] { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #3273dc; +} + +.button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; +} + +.button.is-link.is-outlined { + background-color: transparent; + border-color: #3273dc; + color: #3273dc; +} + +.button.is-link.is-outlined:hover, .button.is-link.is-outlined:focus { + background-color: #3273dc; + border-color: #3273dc; + color: #fff; +} + +.button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #3273dc #3273dc !important; +} + +.button.is-link.is-outlined[disabled] { + background-color: transparent; + border-color: #3273dc; + box-shadow: none; + color: #3273dc; +} + +.button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; +} + +.button.is-link.is-inverted.is-outlined:hover, .button.is-link.is-inverted.is-outlined:focus { + background-color: #fff; + color: #3273dc; +} + +.button.is-link.is-inverted.is-outlined[disabled] { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; +} + +.button.is-info { + background-color: #209cee; + border-color: transparent; + color: #fff; +} + +.button.is-info:hover, .button.is-info.is-hovered { + background-color: #1496ed; + border-color: transparent; + color: #fff; +} + +.button.is-info:focus, .button.is-info.is-focused { + border-color: transparent; + color: #fff; +} + +.button.is-info:focus:not(:active), .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); +} + +.button.is-info:active, .button.is-info.is-active { + background-color: #118fe4; + border-color: transparent; + color: #fff; +} + +.button.is-info[disabled] { + background-color: #209cee; + border-color: transparent; + box-shadow: none; +} + +.button.is-info.is-inverted { + background-color: #fff; + color: #209cee; +} + +.button.is-info.is-inverted:hover { + background-color: #f2f2f2; +} + +.button.is-info.is-inverted[disabled] { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #209cee; +} + +.button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; +} + +.button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + color: #209cee; +} + +.button.is-info.is-outlined:hover, .button.is-info.is-outlined:focus { + background-color: #209cee; + border-color: #209cee; + color: #fff; +} + +.button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #209cee #209cee !important; +} + +.button.is-info.is-outlined[disabled] { + background-color: transparent; + border-color: #209cee; + box-shadow: none; + color: #209cee; +} + +.button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; +} + +.button.is-info.is-inverted.is-outlined:hover, .button.is-info.is-inverted.is-outlined:focus { + background-color: #fff; + color: #209cee; +} + +.button.is-info.is-inverted.is-outlined[disabled] { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; +} + +.button.is-success { + background-color: #23d160; + border-color: transparent; + color: #fff; +} + +.button.is-success:hover, .button.is-success.is-hovered { + background-color: #22c65b; + border-color: transparent; + color: #fff; +} + +.button.is-success:focus, .button.is-success.is-focused { + border-color: transparent; + color: #fff; +} + +.button.is-success:focus:not(:active), .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(35, 209, 96, 0.25); +} + +.button.is-success:active, .button.is-success.is-active { + background-color: #20bc56; + border-color: transparent; + color: #fff; +} + +.button.is-success[disabled] { + background-color: #23d160; + border-color: transparent; + box-shadow: none; +} + +.button.is-success.is-inverted { + background-color: #fff; + color: #23d160; +} + +.button.is-success.is-inverted:hover { + background-color: #f2f2f2; +} + +.button.is-success.is-inverted[disabled] { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #23d160; +} + +.button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; +} + +.button.is-success.is-outlined { + background-color: transparent; + border-color: #23d160; + color: #23d160; +} + +.button.is-success.is-outlined:hover, .button.is-success.is-outlined:focus { + background-color: #23d160; + border-color: #23d160; + color: #fff; +} + +.button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #23d160 #23d160 !important; +} + +.button.is-success.is-outlined[disabled] { + background-color: transparent; + border-color: #23d160; + box-shadow: none; + color: #23d160; +} + +.button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; +} + +.button.is-success.is-inverted.is-outlined:hover, .button.is-success.is-inverted.is-outlined:focus { + background-color: #fff; + color: #23d160; +} + +.button.is-success.is-inverted.is-outlined[disabled] { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; +} + +.button.is-warning { + background-color: #ffdd57; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); +} + +.button.is-warning:hover, .button.is-warning.is-hovered { + background-color: #ffdb4a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); +} + +.button.is-warning:focus, .button.is-warning.is-focused { + border-color: transparent; + color: rgba(0, 0, 0, 0.7); +} + +.button.is-warning:focus:not(:active), .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); +} + +.button.is-warning:active, .button.is-warning.is-active { + background-color: #ffd83d; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); +} + +.button.is-warning[disabled] { + background-color: #ffdd57; + border-color: transparent; + box-shadow: none; +} + +.button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; +} + +.button.is-warning.is-inverted:hover { + background-color: rgba(0, 0, 0, 0.7); +} + +.button.is-warning.is-inverted[disabled] { + background-color: rgba(0, 0, 0, 0.7); + border-color: transparent; + box-shadow: none; + color: #ffdd57; +} + +.button.is-warning.is-loading::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; +} + +.button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + color: #ffdd57; +} + +.button.is-warning.is-outlined:hover, .button.is-warning.is-outlined:focus { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); +} + +.button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; +} + +.button.is-warning.is-outlined[disabled] { + background-color: transparent; + border-color: #ffdd57; + box-shadow: none; + color: #ffdd57; +} + +.button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + color: rgba(0, 0, 0, 0.7); +} + +.button.is-warning.is-inverted.is-outlined:hover, .button.is-warning.is-inverted.is-outlined:focus { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; +} + +.button.is-warning.is-inverted.is-outlined[disabled] { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + box-shadow: none; + color: rgba(0, 0, 0, 0.7); +} + +.button.is-danger { + background-color: #ff3860; + border-color: transparent; + color: #fff; +} + +.button.is-danger:hover, .button.is-danger.is-hovered { + background-color: #ff2b56; + border-color: transparent; + color: #fff; +} + +.button.is-danger:focus, .button.is-danger.is-focused { + border-color: transparent; + color: #fff; +} + +.button.is-danger:focus:not(:active), .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 56, 96, 0.25); +} + +.button.is-danger:active, .button.is-danger.is-active { + background-color: #ff1f4b; + border-color: transparent; + color: #fff; +} + +.button.is-danger[disabled] { + background-color: #ff3860; + border-color: transparent; + box-shadow: none; +} + +.button.is-danger.is-inverted { + background-color: #fff; + color: #ff3860; +} + +.button.is-danger.is-inverted:hover { + background-color: #f2f2f2; +} + +.button.is-danger.is-inverted[disabled] { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #ff3860; +} + +.button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; +} + +.button.is-danger.is-outlined { + background-color: transparent; + border-color: #ff3860; + color: #ff3860; +} + +.button.is-danger.is-outlined:hover, .button.is-danger.is-outlined:focus { + background-color: #ff3860; + border-color: #ff3860; + color: #fff; +} + +.button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #ff3860 #ff3860 !important; +} + +.button.is-danger.is-outlined[disabled] { + background-color: transparent; + border-color: #ff3860; + box-shadow: none; + color: #ff3860; +} + +.button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; +} + +.button.is-danger.is-inverted.is-outlined:hover, .button.is-danger.is-inverted.is-outlined:focus { + background-color: #fff; + color: #ff3860; +} + +.button.is-danger.is-inverted.is-outlined[disabled] { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; +} + +.button.is-small { + border-radius: 2px; + font-size: 0.75rem; +} + +.button.is-medium { + font-size: 1.25rem; +} + +.button.is-large { + font-size: 1.5rem; +} + +.button[disabled] { + background-color: white; + border-color: #dbdbdb; + box-shadow: none; + opacity: 0.5; +} + +.button.is-fullwidth { + display: flex; + width: 100%; +} + +.button.is-loading { + color: transparent !important; + pointer-events: none; +} + +.button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; +} + +.button.is-static { + background-color: whitesmoke; + border-color: #dbdbdb; + color: #7a7a7a; + box-shadow: none; + pointer-events: none; +} + +.button.is-rounded { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; +} + +.buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; +} + +.buttons .button { + margin-bottom: 0.5rem; +} + +.buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; +} + +.buttons:last-child { + margin-bottom: -0.5rem; +} + +.buttons:not(:last-child) { + margin-bottom: 1rem; +} + +.buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} + +.buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; +} + +.buttons.has-addons .button:last-child { + margin-right: 0; +} + +.buttons.has-addons .button:hover, .buttons.has-addons .button.is-hovered { + z-index: 2; +} + +.buttons.has-addons .button:focus, .buttons.has-addons .button.is-focused, .buttons.has-addons .button:active, .buttons.has-addons .button.is-active, .buttons.has-addons .button.is-selected { + z-index: 3; +} + +.buttons.has-addons .button:focus:hover, .buttons.has-addons .button.is-focused:hover, .buttons.has-addons .button:active:hover, .buttons.has-addons .button.is-active:hover, .buttons.has-addons .button.is-selected:hover { + z-index: 4; +} + +.buttons.has-addons .button.is-expanded { + flex-grow: 1; +} + +.buttons.is-centered { + justify-content: center; +} + +.buttons.is-right { + justify-content: flex-end; +} + +.container { + margin: 0 auto; + position: relative; +} + +@media screen and (min-width: 1088px) { + .container { + max-width: 960px; + width: 960px; + } + .container.is-fluid { + margin-left: 64px; + margin-right: 64px; + max-width: none; + width: auto; + } +} + +@media screen and (max-width: 1279px) { + .container.is-widescreen { + max-width: 1152px; + width: auto; + } +} + +@media screen and (max-width: 1471px) { + .container.is-fullhd { + max-width: 1344px; + width: auto; + } +} + +@media screen and (min-width: 1280px) { + .container { + max-width: 1152px; + width: 1152px; + } +} + +@media screen and (min-width: 1472px) { + .container { + max-width: 1344px; + width: 1344px; + } +} + +.content li + li { + margin-top: 0.25em; +} + +.content p:not(:last-child), +.content dl:not(:last-child), +.content ol:not(:last-child), +.content ul:not(:last-child), +.content blockquote:not(:last-child), +.content pre:not(:last-child), +.content table:not(:last-child) { + margin-bottom: 1em; +} + +.content h1, +.content h2, +.content h3, +.content h4, +.content h5, +.content h6 { + color: #363636; + font-weight: 600; + line-height: 1.125; +} + +.content h1 { + font-size: 2em; + margin-bottom: 0.5em; +} + +.content h1:not(:first-child) { + margin-top: 1em; +} + +.content h2 { + font-size: 1.75em; + margin-bottom: 0.5714em; +} + +.content h2:not(:first-child) { + margin-top: 1.1428em; +} + +.content h3 { + font-size: 1.5em; + margin-bottom: 0.6666em; +} + +.content h3:not(:first-child) { + margin-top: 1.3333em; +} + +.content h4 { + font-size: 1.25em; + margin-bottom: 0.8em; +} + +.content h5 { + font-size: 1.125em; + margin-bottom: 0.8888em; +} + +.content h6 { + font-size: 1em; + margin-bottom: 1em; +} + +.content blockquote { + background-color: whitesmoke; + border-left: 5px solid #dbdbdb; + padding: 1.25em 1.5em; +} + +.content ol { + list-style-position: outside; + margin-left: 2em; + margin-top: 1em; +} + +.content ol:not([type]) { + list-style-type: decimal; +} + +.content ol:not([type]).is-lower-alpha { + list-style-type: lower-alpha; +} + +.content ol:not([type]).is-lower-roman { + list-style-type: lower-roman; +} + +.content ol:not([type]).is-upper-alpha { + list-style-type: upper-alpha; +} + +.content ol:not([type]).is-upper-roman { + list-style-type: upper-roman; +} + +.content ul { + list-style: disc outside; + margin-left: 2em; + margin-top: 1em; +} + +.content ul ul { + list-style-type: circle; + margin-top: 0.5em; +} + +.content ul ul ul { + list-style-type: square; +} + +.content dd { + margin-left: 2em; +} + +.content figure { + margin-left: 2em; + margin-right: 2em; + text-align: center; +} + +.content figure:not(:first-child) { + margin-top: 2em; +} + +.content figure:not(:last-child) { + margin-bottom: 2em; +} + +.content figure img { + display: inline-block; +} + +.content figure figcaption { + font-style: italic; +} + +.content pre { + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding: 1.25em 1.5em; + white-space: pre; + word-wrap: normal; +} + +.content sup, +.content sub { + font-size: 75%; +} + +.content table { + width: 100%; +} + +.content table td, +.content table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; +} + +.content table th { + color: #363636; + text-align: left; +} + +.content table thead td, +.content table thead th { + border-width: 0 0 2px; + color: #363636; +} + +.content table tfoot td, +.content table tfoot th { + border-width: 2px 0 0; + color: #363636; +} + +.content table tbody tr:last-child td, +.content table tbody tr:last-child th { + border-bottom-width: 0; +} + +.content.is-small { + font-size: 0.75rem; +} + +.content.is-medium { + font-size: 1.25rem; +} + +.content.is-large { + font-size: 1.5rem; +} + +.input, +.textarea { + background-color: white; + border-color: #dbdbdb; + color: #363636; + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; +} + +.input::-moz-placeholder, +.textarea::-moz-placeholder { + color: rgba(54, 54, 54, 0.3); +} + +.input::-webkit-input-placeholder, +.textarea::-webkit-input-placeholder { + color: rgba(54, 54, 54, 0.3); +} + +.input:-moz-placeholder, +.textarea:-moz-placeholder { + color: rgba(54, 54, 54, 0.3); +} + +.input:-ms-input-placeholder, +.textarea:-ms-input-placeholder { + color: rgba(54, 54, 54, 0.3); +} + +.input:hover, .input.is-hovered, +.textarea:hover, +.textarea.is-hovered { + border-color: #b5b5b5; +} + +.input:focus, .input.is-focused, .input:active, .input.is-active, +.textarea:focus, +.textarea.is-focused, +.textarea:active, +.textarea.is-active { + border-color: #3273dc; + box-shadow: 0 0 0 0.125em rgba(50, 115, 220, 0.25); +} + +.input[disabled], +.textarea[disabled] { + background-color: whitesmoke; + border-color: whitesmoke; + box-shadow: none; + color: #7a7a7a; +} + +.input[disabled]::-moz-placeholder, +.textarea[disabled]::-moz-placeholder { + color: rgba(122, 122, 122, 0.3); +} + +.input[disabled]::-webkit-input-placeholder, +.textarea[disabled]::-webkit-input-placeholder { + color: rgba(122, 122, 122, 0.3); +} + +.input[disabled]:-moz-placeholder, +.textarea[disabled]:-moz-placeholder { + color: rgba(122, 122, 122, 0.3); +} + +.input[disabled]:-ms-input-placeholder, +.textarea[disabled]:-ms-input-placeholder { + color: rgba(122, 122, 122, 0.3); +} + +.input[readonly], +.textarea[readonly] { + box-shadow: none; +} + +.input.is-white, +.textarea.is-white { + border-color: white; +} + +.input.is-white:focus, .input.is-white.is-focused, .input.is-white:active, .input.is-white.is-active, +.textarea.is-white:focus, +.textarea.is-white.is-focused, +.textarea.is-white:active, +.textarea.is-white.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); +} + +.input.is-black, +.textarea.is-black { + border-color: #0a0a0a; +} + +.input.is-black:focus, .input.is-black.is-focused, .input.is-black:active, .input.is-black.is-active, +.textarea.is-black:focus, +.textarea.is-black.is-focused, +.textarea.is-black:active, +.textarea.is-black.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); +} + +.input.is-light, +.textarea.is-light { + border-color: whitesmoke; +} + +.input.is-light:focus, .input.is-light.is-focused, .input.is-light:active, .input.is-light.is-active, +.textarea.is-light:focus, +.textarea.is-light.is-focused, +.textarea.is-light:active, +.textarea.is-light.is-active { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); +} + +.input.is-dark, +.textarea.is-dark { + border-color: #363636; +} + +.input.is-dark:focus, .input.is-dark.is-focused, .input.is-dark:active, .input.is-dark.is-active, +.textarea.is-dark:focus, +.textarea.is-dark.is-focused, +.textarea.is-dark:active, +.textarea.is-dark.is-active { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); +} + +.input.is-primary, +.textarea.is-primary { + border-color: #00d1b2; +} + +.input.is-primary:focus, .input.is-primary.is-focused, .input.is-primary:active, .input.is-primary.is-active, +.textarea.is-primary:focus, +.textarea.is-primary.is-focused, +.textarea.is-primary:active, +.textarea.is-primary.is-active { + box-shadow: 0 0 0 0.125em rgba(0, 209, 178, 0.25); +} + +.input.is-link, +.textarea.is-link { + border-color: #3273dc; +} + +.input.is-link:focus, .input.is-link.is-focused, .input.is-link:active, .input.is-link.is-active, +.textarea.is-link:focus, +.textarea.is-link.is-focused, +.textarea.is-link:active, +.textarea.is-link.is-active { + box-shadow: 0 0 0 0.125em rgba(50, 115, 220, 0.25); +} + +.input.is-info, +.textarea.is-info { + border-color: #209cee; +} + +.input.is-info:focus, .input.is-info.is-focused, .input.is-info:active, .input.is-info.is-active, +.textarea.is-info:focus, +.textarea.is-info.is-focused, +.textarea.is-info:active, +.textarea.is-info.is-active { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); +} + +.input.is-success, +.textarea.is-success { + border-color: #23d160; +} + +.input.is-success:focus, .input.is-success.is-focused, .input.is-success:active, .input.is-success.is-active, +.textarea.is-success:focus, +.textarea.is-success.is-focused, +.textarea.is-success:active, +.textarea.is-success.is-active { + box-shadow: 0 0 0 0.125em rgba(35, 209, 96, 0.25); +} + +.input.is-warning, +.textarea.is-warning { + border-color: #ffdd57; +} + +.input.is-warning:focus, .input.is-warning.is-focused, .input.is-warning:active, .input.is-warning.is-active, +.textarea.is-warning:focus, +.textarea.is-warning.is-focused, +.textarea.is-warning:active, +.textarea.is-warning.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); +} + +.input.is-danger, +.textarea.is-danger { + border-color: #ff3860; +} + +.input.is-danger:focus, .input.is-danger.is-focused, .input.is-danger:active, .input.is-danger.is-active, +.textarea.is-danger:focus, +.textarea.is-danger.is-focused, +.textarea.is-danger:active, +.textarea.is-danger.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 56, 96, 0.25); +} + +.input.is-small, +.textarea.is-small { + border-radius: 2px; + font-size: 0.75rem; +} + +.input.is-medium, +.textarea.is-medium { + font-size: 1.25rem; +} + +.input.is-large, +.textarea.is-large { + font-size: 1.5rem; +} + +.input.is-fullwidth, +.textarea.is-fullwidth { + display: block; + width: 100%; +} + +.input.is-inline, +.textarea.is-inline { + display: inline; + width: auto; +} + +.input.is-rounded { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; +} + +.input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; +} + +.textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; +} + +.textarea:not([rows]) { + max-height: 600px; + min-height: 120px; +} + +.textarea[rows] { + height: initial; +} + +.textarea.has-fixed-size { + resize: none; +} + +.checkbox, +.radio { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; +} + +.checkbox input, +.radio input { + cursor: pointer; +} + +.checkbox:hover, +.radio:hover { + color: #363636; +} + +.checkbox[disabled], +.radio[disabled] { + color: #7a7a7a; + cursor: not-allowed; +} + +.radio + .radio { + margin-left: 0.5em; +} + +.select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; +} + +.select:not(.is-multiple) { + height: 2.25em; +} + +.select:not(.is-multiple):not(.is-loading)::after { + border-color: #3273dc; + right: 1.125em; + z-index: 4; +} + +.select.is-rounded select { + border-radius: 290486px; + padding-left: 1em; +} + +.select select { + background-color: white; + border-color: #dbdbdb; + color: #363636; + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; +} + +.select select::-moz-placeholder { + color: rgba(54, 54, 54, 0.3); +} + +.select select::-webkit-input-placeholder { + color: rgba(54, 54, 54, 0.3); +} + +.select select:-moz-placeholder { + color: rgba(54, 54, 54, 0.3); +} + +.select select:-ms-input-placeholder { + color: rgba(54, 54, 54, 0.3); +} + +.select select:hover, .select select.is-hovered { + border-color: #b5b5b5; +} + +.select select:focus, .select select.is-focused, .select select:active, .select select.is-active { + border-color: #3273dc; + box-shadow: 0 0 0 0.125em rgba(50, 115, 220, 0.25); +} + +.select select[disabled] { + background-color: whitesmoke; + border-color: whitesmoke; + box-shadow: none; + color: #7a7a7a; +} + +.select select[disabled]::-moz-placeholder { + color: rgba(122, 122, 122, 0.3); +} + +.select select[disabled]::-webkit-input-placeholder { + color: rgba(122, 122, 122, 0.3); +} + +.select select[disabled]:-moz-placeholder { + color: rgba(122, 122, 122, 0.3); +} + +.select select[disabled]:-ms-input-placeholder { + color: rgba(122, 122, 122, 0.3); +} + +.select select::-ms-expand { + display: none; +} + +.select select[disabled]:hover { + border-color: whitesmoke; +} + +.select select:not([multiple]) { + padding-right: 2.5em; +} + +.select select[multiple] { + height: auto; + padding: 0; +} + +.select select[multiple] option { + padding: 0.5em 1em; +} + +.select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #363636; +} + +.select.is-white:not(:hover)::after { + border-color: white; +} + +.select.is-white select { + border-color: white; +} + +.select.is-white select:hover, .select.is-white select.is-hovered { + border-color: #f2f2f2; +} + +.select.is-white select:focus, .select.is-white select.is-focused, .select.is-white select:active, .select.is-white select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); +} + +.select.is-black:not(:hover)::after { + border-color: #0a0a0a; +} + +.select.is-black select { + border-color: #0a0a0a; +} + +.select.is-black select:hover, .select.is-black select.is-hovered { + border-color: black; +} + +.select.is-black select:focus, .select.is-black select.is-focused, .select.is-black select:active, .select.is-black select.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); +} + +.select.is-light:not(:hover)::after { + border-color: whitesmoke; +} + +.select.is-light select { + border-color: whitesmoke; +} + +.select.is-light select:hover, .select.is-light select.is-hovered { + border-color: #e8e8e8; +} + +.select.is-light select:focus, .select.is-light select.is-focused, .select.is-light select:active, .select.is-light select.is-active { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); +} + +.select.is-dark:not(:hover)::after { + border-color: #363636; +} + +.select.is-dark select { + border-color: #363636; +} + +.select.is-dark select:hover, .select.is-dark select.is-hovered { + border-color: #292929; +} + +.select.is-dark select:focus, .select.is-dark select.is-focused, .select.is-dark select:active, .select.is-dark select.is-active { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); +} + +.select.is-primary:not(:hover)::after { + border-color: #00d1b2; +} + +.select.is-primary select { + border-color: #00d1b2; +} + +.select.is-primary select:hover, .select.is-primary select.is-hovered { + border-color: #00b89c; +} + +.select.is-primary select:focus, .select.is-primary select.is-focused, .select.is-primary select:active, .select.is-primary select.is-active { + box-shadow: 0 0 0 0.125em rgba(0, 209, 178, 0.25); +} + +.select.is-link:not(:hover)::after { + border-color: #3273dc; +} + +.select.is-link select { + border-color: #3273dc; +} + +.select.is-link select:hover, .select.is-link select.is-hovered { + border-color: #2366d1; +} + +.select.is-link select:focus, .select.is-link select.is-focused, .select.is-link select:active, .select.is-link select.is-active { + box-shadow: 0 0 0 0.125em rgba(50, 115, 220, 0.25); +} + +.select.is-info:not(:hover)::after { + border-color: #209cee; +} + +.select.is-info select { + border-color: #209cee; +} + +.select.is-info select:hover, .select.is-info select.is-hovered { + border-color: #118fe4; +} + +.select.is-info select:focus, .select.is-info select.is-focused, .select.is-info select:active, .select.is-info select.is-active { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); +} + +.select.is-success:not(:hover)::after { + border-color: #23d160; +} + +.select.is-success select { + border-color: #23d160; +} + +.select.is-success select:hover, .select.is-success select.is-hovered { + border-color: #20bc56; +} + +.select.is-success select:focus, .select.is-success select.is-focused, .select.is-success select:active, .select.is-success select.is-active { + box-shadow: 0 0 0 0.125em rgba(35, 209, 96, 0.25); +} + +.select.is-warning:not(:hover)::after { + border-color: #ffdd57; +} + +.select.is-warning select { + border-color: #ffdd57; +} + +.select.is-warning select:hover, .select.is-warning select.is-hovered { + border-color: #ffd83d; +} + +.select.is-warning select:focus, .select.is-warning select.is-focused, .select.is-warning select:active, .select.is-warning select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); +} + +.select.is-danger:not(:hover)::after { + border-color: #ff3860; +} + +.select.is-danger select { + border-color: #ff3860; +} + +.select.is-danger select:hover, .select.is-danger select.is-hovered { + border-color: #ff1f4b; +} + +.select.is-danger select:focus, .select.is-danger select.is-focused, .select.is-danger select:active, .select.is-danger select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 56, 96, 0.25); +} + +.select.is-small { + border-radius: 2px; + font-size: 0.75rem; +} + +.select.is-medium { + font-size: 1.25rem; +} + +.select.is-large { + font-size: 1.5rem; +} + +.select.is-disabled::after { + border-color: #7a7a7a; +} + +.select.is-fullwidth { + width: 100%; +} + +.select.is-fullwidth select { + width: 100%; +} + +.select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + -webkit-transform: none; + transform: none; +} + +.select.is-loading.is-small:after { + font-size: 0.75rem; +} + +.select.is-loading.is-medium:after { + font-size: 1.25rem; +} + +.select.is-loading.is-large:after { + font-size: 1.5rem; +} + +.file { + align-items: stretch; + display: flex; + justify-content: flex-start; + position: relative; +} + +.file.is-white .file-cta { + background-color: white; + border-color: transparent; + color: #0a0a0a; +} + +.file.is-white:hover .file-cta, .file.is-white.is-hovered .file-cta { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; +} + +.file.is-white:focus .file-cta, .file.is-white.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25); + color: #0a0a0a; +} + +.file.is-white:active .file-cta, .file.is-white.is-active .file-cta { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; +} + +.file.is-black .file-cta { + background-color: #0a0a0a; + border-color: transparent; + color: white; +} + +.file.is-black:hover .file-cta, .file.is-black.is-hovered .file-cta { + background-color: #040404; + border-color: transparent; + color: white; +} + +.file.is-black:focus .file-cta, .file.is-black.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25); + color: white; +} + +.file.is-black:active .file-cta, .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; +} + +.file.is-light .file-cta { + background-color: whitesmoke; + border-color: transparent; + color: #363636; +} + +.file.is-light:hover .file-cta, .file.is-light.is-hovered .file-cta { + background-color: #eeeeee; + border-color: transparent; + color: #363636; +} + +.file.is-light:focus .file-cta, .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(245, 245, 245, 0.25); + color: #363636; +} + +.file.is-light:active .file-cta, .file.is-light.is-active .file-cta { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; +} + +.file.is-dark .file-cta { + background-color: #363636; + border-color: transparent; + color: whitesmoke; +} + +.file.is-dark:hover .file-cta, .file.is-dark.is-hovered .file-cta { + background-color: #2f2f2f; + border-color: transparent; + color: whitesmoke; +} + +.file.is-dark:focus .file-cta, .file.is-dark.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(54, 54, 54, 0.25); + color: whitesmoke; +} + +.file.is-dark:active .file-cta, .file.is-dark.is-active .file-cta { + background-color: #292929; + border-color: transparent; + color: whitesmoke; +} + +.file.is-primary .file-cta { + background-color: #00d1b2; + border-color: transparent; + color: #fff; +} + +.file.is-primary:hover .file-cta, .file.is-primary.is-hovered .file-cta { + background-color: #00c4a7; + border-color: transparent; + color: #fff; +} + +.file.is-primary:focus .file-cta, .file.is-primary.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(0, 209, 178, 0.25); + color: #fff; +} + +.file.is-primary:active .file-cta, .file.is-primary.is-active .file-cta { + background-color: #00b89c; + border-color: transparent; + color: #fff; +} + +.file.is-link .file-cta { + background-color: #3273dc; + border-color: transparent; + color: #fff; +} + +.file.is-link:hover .file-cta, .file.is-link.is-hovered .file-cta { + background-color: #276cda; + border-color: transparent; + color: #fff; +} + +.file.is-link:focus .file-cta, .file.is-link.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(50, 115, 220, 0.25); + color: #fff; +} + +.file.is-link:active .file-cta, .file.is-link.is-active .file-cta { + background-color: #2366d1; + border-color: transparent; + color: #fff; +} + +.file.is-info .file-cta { + background-color: #209cee; + border-color: transparent; + color: #fff; +} + +.file.is-info:hover .file-cta, .file.is-info.is-hovered .file-cta { + background-color: #1496ed; + border-color: transparent; + color: #fff; +} + +.file.is-info:focus .file-cta, .file.is-info.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(32, 156, 238, 0.25); + color: #fff; +} + +.file.is-info:active .file-cta, .file.is-info.is-active .file-cta { + background-color: #118fe4; + border-color: transparent; + color: #fff; +} + +.file.is-success .file-cta { + background-color: #23d160; + border-color: transparent; + color: #fff; +} + +.file.is-success:hover .file-cta, .file.is-success.is-hovered .file-cta { + background-color: #22c65b; + border-color: transparent; + color: #fff; +} + +.file.is-success:focus .file-cta, .file.is-success.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(35, 209, 96, 0.25); + color: #fff; +} + +.file.is-success:active .file-cta, .file.is-success.is-active .file-cta { + background-color: #20bc56; + border-color: transparent; + color: #fff; +} + +.file.is-warning .file-cta { + background-color: #ffdd57; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); +} + +.file.is-warning:hover .file-cta, .file.is-warning.is-hovered .file-cta { + background-color: #ffdb4a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); +} + +.file.is-warning:focus .file-cta, .file.is-warning.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 221, 87, 0.25); + color: rgba(0, 0, 0, 0.7); +} + +.file.is-warning:active .file-cta, .file.is-warning.is-active .file-cta { + background-color: #ffd83d; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); +} + +.file.is-danger .file-cta { + background-color: #ff3860; + border-color: transparent; + color: #fff; +} + +.file.is-danger:hover .file-cta, .file.is-danger.is-hovered .file-cta { + background-color: #ff2b56; + border-color: transparent; + color: #fff; +} + +.file.is-danger:focus .file-cta, .file.is-danger.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 56, 96, 0.25); + color: #fff; +} + +.file.is-danger:active .file-cta, .file.is-danger.is-active .file-cta { + background-color: #ff1f4b; + border-color: transparent; + color: #fff; +} + +.file.is-small { + font-size: 0.75rem; +} + +.file.is-medium { + font-size: 1.25rem; +} + +.file.is-medium .file-icon .fa { + font-size: 21px; +} + +.file.is-large { + font-size: 1.5rem; +} + +.file.is-large .file-icon .fa { + font-size: 28px; +} + +.file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} + +.file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} + +.file.has-name.is-empty .file-cta { + border-radius: 4px; +} + +.file.has-name.is-empty .file-name { + display: none; +} + +.file.is-boxed .file-label { + flex-direction: column; +} + +.file.is-boxed .file-cta { + flex-direction: column; + height: auto; + padding: 1em 3em; +} + +.file.is-boxed .file-name { + border-width: 0 1px 1px; +} + +.file.is-boxed .file-icon { + height: 1.5em; + width: 1.5em; +} + +.file.is-boxed .file-icon .fa { + font-size: 21px; +} + +.file.is-boxed.is-small .file-icon .fa { + font-size: 14px; +} + +.file.is-boxed.is-medium .file-icon .fa { + font-size: 28px; +} + +.file.is-boxed.is-large .file-icon .fa { + font-size: 35px; +} + +.file.is-boxed.has-name .file-cta { + border-radius: 4px 4px 0 0; +} + +.file.is-boxed.has-name .file-name { + border-radius: 0 0 4px 4px; + border-width: 0 1px 1px; +} + +.file.is-centered { + justify-content: center; +} + +.file.is-fullwidth .file-label { + width: 100%; +} + +.file.is-fullwidth .file-name { + flex-grow: 1; + max-width: none; +} + +.file.is-right { + justify-content: flex-end; +} + +.file.is-right .file-cta { + border-radius: 0 4px 4px 0; +} + +.file.is-right .file-name { + border-radius: 4px 0 0 4px; + border-width: 1px 0 1px 1px; + order: -1; +} + +.file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; +} + +.file-label:hover .file-cta { + background-color: #eeeeee; + color: #363636; +} + +.file-label:hover .file-name { + border-color: #d5d5d5; +} + +.file-label:active .file-cta { + background-color: #e8e8e8; + color: #363636; +} + +.file-label:active .file-name { + border-color: #cfcfcf; +} + +.file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; +} + +.file-cta, +.file-name { + border-color: #dbdbdb; + border-radius: 4px; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; +} + +.file-cta { + background-color: whitesmoke; + color: #4a4a4a; +} + +.file-name { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; +} + +.file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; +} + +.file-icon .fa { + font-size: 14px; +} + +.label { + color: #363636; + display: block; + font-size: 1rem; + font-weight: 700; +} + +.label:not(:last-child) { + margin-bottom: 0.5em; +} + +.label.is-small { + font-size: 0.75rem; +} + +.label.is-medium { + font-size: 1.25rem; +} + +.label.is-large { + font-size: 1.5rem; +} + +.help { + display: block; + font-size: 0.75rem; + margin-top: 0.25rem; +} + +.help.is-white { + color: white; +} + +.help.is-black { + color: #0a0a0a; +} + +.help.is-light { + color: whitesmoke; +} + +.help.is-dark { + color: #363636; +} + +.help.is-primary { + color: #00d1b2; +} + +.help.is-link { + color: #3273dc; +} + +.help.is-info { + color: #209cee; +} + +.help.is-success { + color: #23d160; +} + +.help.is-warning { + color: #ffdd57; +} + +.help.is-danger { + color: #ff3860; +} + +.field:not(:last-child) { + margin-bottom: 0.75rem; +} + +.field.has-addons { + display: flex; + justify-content: flex-start; +} + +.field.has-addons .control:not(:last-child) { + margin-right: -1px; +} + +.field.has-addons .control:not(:first-child):not(:last-child) .button, +.field.has-addons .control:not(:first-child):not(:last-child) .input, +.field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; +} + +.field.has-addons .control:first-child .button, +.field.has-addons .control:first-child .input, +.field.has-addons .control:first-child .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} + +.field.has-addons .control:last-child .button, +.field.has-addons .control:last-child .input, +.field.has-addons .control:last-child .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} + +.field.has-addons .control .button:not([disabled]):hover, .field.has-addons .control .button:not([disabled]).is-hovered, +.field.has-addons .control .input:not([disabled]):hover, +.field.has-addons .control .input:not([disabled]).is-hovered, +.field.has-addons .control .select select:not([disabled]):hover, +.field.has-addons .control .select select:not([disabled]).is-hovered { + z-index: 2; +} + +.field.has-addons .control .button:not([disabled]):focus, .field.has-addons .control .button:not([disabled]).is-focused, .field.has-addons .control .button:not([disabled]):active, .field.has-addons .control .button:not([disabled]).is-active, +.field.has-addons .control .input:not([disabled]):focus, +.field.has-addons .control .input:not([disabled]).is-focused, +.field.has-addons .control .input:not([disabled]):active, +.field.has-addons .control .input:not([disabled]).is-active, +.field.has-addons .control .select select:not([disabled]):focus, +.field.has-addons .control .select select:not([disabled]).is-focused, +.field.has-addons .control .select select:not([disabled]):active, +.field.has-addons .control .select select:not([disabled]).is-active { + z-index: 3; +} + +.field.has-addons .control .button:not([disabled]):focus:hover, .field.has-addons .control .button:not([disabled]).is-focused:hover, .field.has-addons .control .button:not([disabled]):active:hover, .field.has-addons .control .button:not([disabled]).is-active:hover, +.field.has-addons .control .input:not([disabled]):focus:hover, +.field.has-addons .control .input:not([disabled]).is-focused:hover, +.field.has-addons .control .input:not([disabled]):active:hover, +.field.has-addons .control .input:not([disabled]).is-active:hover, +.field.has-addons .control .select select:not([disabled]):focus:hover, +.field.has-addons .control .select select:not([disabled]).is-focused:hover, +.field.has-addons .control .select select:not([disabled]):active:hover, +.field.has-addons .control .select select:not([disabled]).is-active:hover { + z-index: 4; +} + +.field.has-addons .control.is-expanded { + flex-grow: 1; +} + +.field.has-addons.has-addons-centered { + justify-content: center; +} + +.field.has-addons.has-addons-right { + justify-content: flex-end; +} + +.field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; +} + +.field.is-grouped { + display: flex; + justify-content: flex-start; +} + +.field.is-grouped > .control { + flex-shrink: 0; +} + +.field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; +} + +.field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; +} + +.field.is-grouped.is-grouped-centered { + justify-content: center; +} + +.field.is-grouped.is-grouped-right { + justify-content: flex-end; +} + +.field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; +} + +.field.is-grouped.is-grouped-multiline > .control:last-child, .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; +} + +.field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; +} + +.field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; +} + +@media screen and (min-width: 769px), print { + .field.is-horizontal { + display: flex; + } +} + +.field-label .label { + font-size: inherit; +} + +@media screen and (max-width: 768px) { + .field-label { + margin-bottom: 0.5rem; + } +} + +@media screen and (min-width: 769px), print { + .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; + } + .field-label.is-small { + font-size: 0.75rem; + padding-top: 0.375em; + } + .field-label.is-normal { + padding-top: 0.375em; + } + .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; + } + .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; + } +} + +.field-body .field .field { + margin-bottom: 0; +} + +@media screen and (min-width: 769px), print { + .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; + } + .field-body .field { + margin-bottom: 0; + } + .field-body > .field { + flex-shrink: 1; + } + .field-body > .field:not(.is-narrow) { + flex-grow: 1; + } + .field-body > .field:not(:last-child) { + margin-right: 0.75rem; + } +} + +.control { + clear: both; + font-size: 1rem; + position: relative; + text-align: left; +} + +.control.has-icon .icon { + color: #dbdbdb; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; +} + +.control.has-icon .input:focus + .icon { + color: #7a7a7a; +} + +.control.has-icon .input.is-small + .icon { + font-size: 0.75rem; +} + +.control.has-icon .input.is-medium + .icon { + font-size: 1.25rem; +} + +.control.has-icon .input.is-large + .icon { + font-size: 1.5rem; +} + +.control.has-icon:not(.has-icon-right) .icon { + left: 0; +} + +.control.has-icon:not(.has-icon-right) .input { + padding-left: 2.25em; +} + +.control.has-icon.has-icon-right .icon { + right: 0; +} + +.control.has-icon.has-icon-right .input { + padding-right: 2.25em; +} + +.control.has-icons-left .input:focus ~ .icon, +.control.has-icons-left .select:focus ~ .icon, .control.has-icons-right .input:focus ~ .icon, +.control.has-icons-right .select:focus ~ .icon { + color: #7a7a7a; +} + +.control.has-icons-left .input.is-small ~ .icon, +.control.has-icons-left .select.is-small ~ .icon, .control.has-icons-right .input.is-small ~ .icon, +.control.has-icons-right .select.is-small ~ .icon { + font-size: 0.75rem; +} + +.control.has-icons-left .input.is-medium ~ .icon, +.control.has-icons-left .select.is-medium ~ .icon, .control.has-icons-right .input.is-medium ~ .icon, +.control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; +} + +.control.has-icons-left .input.is-large ~ .icon, +.control.has-icons-left .select.is-large ~ .icon, .control.has-icons-right .input.is-large ~ .icon, +.control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; +} + +.control.has-icons-left .icon, .control.has-icons-right .icon { + color: #dbdbdb; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; +} + +.control.has-icons-left .input, +.control.has-icons-left .select select { + padding-left: 2.25em; +} + +.control.has-icons-left .icon.is-left { + left: 0; +} + +.control.has-icons-right .input, +.control.has-icons-right .select select { + padding-right: 2.25em; +} + +.control.has-icons-right .icon.is-right { + right: 0; +} + +.control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; +} + +.control.is-loading.is-small:after { + font-size: 0.75rem; +} + +.control.is-loading.is-medium:after { + font-size: 1.25rem; +} + +.control.is-loading.is-large:after { + font-size: 1.5rem; +} + +.icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; +} + +.icon.is-small { + height: 1rem; + width: 1rem; +} + +.icon.is-medium { + height: 2rem; + width: 2rem; +} + +.icon.is-large { + height: 3rem; + width: 3rem; +} + +.image { + display: block; + position: relative; +} + +.image img { + display: block; + height: auto; + width: 100%; +} + +.image img.is-rounded { + border-radius: 290486px; +} + +.image.is-square img, .image.is-1by1 img, .image.is-5by4 img, .image.is-4by3 img, .image.is-3by2 img, .image.is-5by3 img, .image.is-16by9 img, .image.is-2by1 img, .image.is-3by1 img, .image.is-4by5 img, .image.is-3by4 img, .image.is-2by3 img, .image.is-3by5 img, .image.is-9by16 img, .image.is-1by2 img, .image.is-1by3 img { + height: 100%; + width: 100%; +} + +.image.is-square, .image.is-1by1 { + padding-top: 100%; +} + +.image.is-5by4 { + padding-top: 80%; +} + +.image.is-4by3 { + padding-top: 75%; +} + +.image.is-3by2 { + padding-top: 66.6666%; +} + +.image.is-5by3 { + padding-top: 60%; +} + +.image.is-16by9 { + padding-top: 56.25%; +} + +.image.is-2by1 { + padding-top: 50%; +} + +.image.is-3by1 { + padding-top: 33.3333%; +} + +.image.is-4by5 { + padding-top: 125%; +} + +.image.is-3by4 { + padding-top: 133.3333%; +} + +.image.is-2by3 { + padding-top: 150%; +} + +.image.is-3by5 { + padding-top: 166.6666%; +} + +.image.is-9by16 { + padding-top: 177.7777%; +} + +.image.is-1by2 { + padding-top: 200%; +} + +.image.is-1by3 { + padding-top: 300%; +} + +.image.is-16x16 { + height: 16px; + width: 16px; +} + +.image.is-24x24 { + height: 24px; + width: 24px; +} + +.image.is-32x32 { + height: 32px; + width: 32px; +} + +.image.is-48x48 { + height: 48px; + width: 48px; +} + +.image.is-64x64 { + height: 64px; + width: 64px; +} + +.image.is-96x96 { + height: 96px; + width: 96px; +} + +.image.is-128x128 { + height: 128px; + width: 128px; +} + +.notification { + background-color: whitesmoke; + border-radius: 4px; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; +} + +.notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; +} + +.notification strong { + color: currentColor; +} + +.notification code, +.notification pre { + background: white; +} + +.notification pre code { + background: transparent; +} + +.notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; +} + +.notification .title, +.notification .subtitle, +.notification .content { + color: currentColor; +} + +.notification.is-white { + background-color: white; + color: #0a0a0a; +} + +.notification.is-black { + background-color: #0a0a0a; + color: white; +} + +.notification.is-light { + background-color: whitesmoke; + color: #363636; +} + +.notification.is-dark { + background-color: #363636; + color: whitesmoke; +} + +.notification.is-primary { + background-color: #00d1b2; + color: #fff; +} + +.notification.is-link { + background-color: #3273dc; + color: #fff; +} + +.notification.is-info { + background-color: #209cee; + color: #fff; +} + +.notification.is-success { + background-color: #23d160; + color: #fff; +} + +.notification.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); +} + +.notification.is-danger { + background-color: #ff3860; + color: #fff; +} + +.progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 1rem; + overflow: hidden; + padding: 0; + width: 100%; +} + +.progress::-webkit-progress-bar { + background-color: #dbdbdb; +} + +.progress::-webkit-progress-value { + background-color: #4a4a4a; +} + +.progress::-moz-progress-bar { + background-color: #4a4a4a; +} + +.progress::-ms-fill { + background-color: #4a4a4a; + border: none; +} + +.progress.is-white::-webkit-progress-value { + background-color: white; +} + +.progress.is-white::-moz-progress-bar { + background-color: white; +} + +.progress.is-white::-ms-fill { + background-color: white; +} + +.progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; +} + +.progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; +} + +.progress.is-black::-ms-fill { + background-color: #0a0a0a; +} + +.progress.is-light::-webkit-progress-value { + background-color: whitesmoke; +} + +.progress.is-light::-moz-progress-bar { + background-color: whitesmoke; +} + +.progress.is-light::-ms-fill { + background-color: whitesmoke; +} + +.progress.is-dark::-webkit-progress-value { + background-color: #363636; +} + +.progress.is-dark::-moz-progress-bar { + background-color: #363636; +} + +.progress.is-dark::-ms-fill { + background-color: #363636; +} + +.progress.is-primary::-webkit-progress-value { + background-color: #00d1b2; +} + +.progress.is-primary::-moz-progress-bar { + background-color: #00d1b2; +} + +.progress.is-primary::-ms-fill { + background-color: #00d1b2; +} + +.progress.is-link::-webkit-progress-value { + background-color: #3273dc; +} + +.progress.is-link::-moz-progress-bar { + background-color: #3273dc; +} + +.progress.is-link::-ms-fill { + background-color: #3273dc; +} + +.progress.is-info::-webkit-progress-value { + background-color: #209cee; +} + +.progress.is-info::-moz-progress-bar { + background-color: #209cee; +} + +.progress.is-info::-ms-fill { + background-color: #209cee; +} + +.progress.is-success::-webkit-progress-value { + background-color: #23d160; +} + +.progress.is-success::-moz-progress-bar { + background-color: #23d160; +} + +.progress.is-success::-ms-fill { + background-color: #23d160; +} + +.progress.is-warning::-webkit-progress-value { + background-color: #ffdd57; +} + +.progress.is-warning::-moz-progress-bar { + background-color: #ffdd57; +} + +.progress.is-warning::-ms-fill { + background-color: #ffdd57; +} + +.progress.is-danger::-webkit-progress-value { + background-color: #ff3860; +} + +.progress.is-danger::-moz-progress-bar { + background-color: #ff3860; +} + +.progress.is-danger::-ms-fill { + background-color: #ff3860; +} + +.progress.is-small { + height: 0.75rem; +} + +.progress.is-medium { + height: 1.25rem; +} + +.progress.is-large { + height: 1.5rem; +} + +.table { + background-color: white; + color: #363636; +} + +.table td, +.table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; +} + +.table td.is-white, +.table th.is-white { + background-color: white; + border-color: white; + color: #0a0a0a; +} + +.table td.is-black, +.table th.is-black { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; +} + +.table td.is-light, +.table th.is-light { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; +} + +.table td.is-dark, +.table th.is-dark { + background-color: #363636; + border-color: #363636; + color: whitesmoke; +} + +.table td.is-primary, +.table th.is-primary { + background-color: #00d1b2; + border-color: #00d1b2; + color: #fff; +} + +.table td.is-link, +.table th.is-link { + background-color: #3273dc; + border-color: #3273dc; + color: #fff; +} + +.table td.is-info, +.table th.is-info { + background-color: #209cee; + border-color: #209cee; + color: #fff; +} + +.table td.is-success, +.table th.is-success { + background-color: #23d160; + border-color: #23d160; + color: #fff; +} + +.table td.is-warning, +.table th.is-warning { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); +} + +.table td.is-danger, +.table th.is-danger { + background-color: #ff3860; + border-color: #ff3860; + color: #fff; +} + +.table td.is-narrow, +.table th.is-narrow { + white-space: nowrap; + width: 1%; +} + +.table td.is-selected, +.table th.is-selected { + background-color: #00d1b2; + color: #fff; +} + +.table td.is-selected a, +.table td.is-selected strong, +.table th.is-selected a, +.table th.is-selected strong { + color: currentColor; +} + +.table th { + color: #363636; + text-align: left; +} + +.table tr.is-selected { + background-color: #00d1b2; + color: #fff; +} + +.table tr.is-selected a, +.table tr.is-selected strong { + color: currentColor; +} + +.table tr.is-selected td, +.table tr.is-selected th { + border-color: #fff; + color: currentColor; +} + +.table thead td, +.table thead th { + border-width: 0 0 2px; + color: #363636; +} + +.table tfoot td, +.table tfoot th { + border-width: 2px 0 0; + color: #363636; +} + +.table tbody tr:last-child td, +.table tbody tr:last-child th { + border-bottom-width: 0; +} + +.table.is-bordered td, +.table.is-bordered th { + border-width: 1px; +} + +.table.is-bordered tr:last-child td, +.table.is-bordered tr:last-child th { + border-bottom-width: 1px; +} + +.table.is-fullwidth { + width: 100%; +} + +.table.is-hoverable tbody tr:not(.is-selected):hover { + background-color: #fafafa; +} + +.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover { + background-color: #fafafa; +} + +.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) { + background-color: whitesmoke; +} + +.table.is-narrow td, +.table.is-narrow th { + padding: 0.25em 0.5em; +} + +.table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #fafafa; +} + +.table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; +} + +.tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; +} + +.tags .tag { + margin-bottom: 0.5rem; +} + +.tags .tag:not(:last-child) { + margin-right: 0.5rem; +} + +.tags:last-child { + margin-bottom: -0.5rem; +} + +.tags:not(:last-child) { + margin-bottom: 1rem; +} + +.tags.has-addons .tag { + margin-right: 0; +} + +.tags.has-addons .tag:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} + +.tags.has-addons .tag:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} + +.tags.is-centered { + justify-content: center; +} + +.tags.is-centered .tag { + margin-right: 0.25rem; + margin-left: 0.25rem; +} + +.tags.is-right { + justify-content: flex-end; +} + +.tags.is-right .tag:not(:first-child) { + margin-left: 0.5rem; +} + +.tags.is-right .tag:not(:last-child) { + margin-right: 0; +} + +.tag:not(body) { + align-items: center; + background-color: whitesmoke; + border-radius: 4px; + color: #4a4a4a; + display: inline-flex; + font-size: 0.75rem; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; +} + +.tag:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; +} + +.tag:not(body).is-white { + background-color: white; + color: #0a0a0a; +} + +.tag:not(body).is-black { + background-color: #0a0a0a; + color: white; +} + +.tag:not(body).is-light { + background-color: whitesmoke; + color: #363636; +} + +.tag:not(body).is-dark { + background-color: #363636; + color: whitesmoke; +} + +.tag:not(body).is-primary { + background-color: #00d1b2; + color: #fff; +} + +.tag:not(body).is-link { + background-color: #3273dc; + color: #fff; +} + +.tag:not(body).is-info { + background-color: #209cee; + color: #fff; +} + +.tag:not(body).is-success { + background-color: #23d160; + color: #fff; +} + +.tag:not(body).is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); +} + +.tag:not(body).is-danger { + background-color: #ff3860; + color: #fff; +} + +.tag:not(body).is-medium { + font-size: 1rem; +} + +.tag:not(body).is-large { + font-size: 1.25rem; +} + +.tag:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; +} + +.tag:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; +} + +.tag:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; +} + +.tag:not(body).is-delete { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; +} + +.tag:not(body).is-delete::before, .tag:not(body).is-delete::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + -webkit-transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform: translateX(-50%) translateY(-50%) rotate(45deg); + -webkit-transform-origin: center center; + transform-origin: center center; +} + +.tag:not(body).is-delete::before { + height: 1px; + width: 50%; +} + +.tag:not(body).is-delete::after { + height: 50%; + width: 1px; +} + +.tag:not(body).is-delete:hover, .tag:not(body).is-delete:focus { + background-color: #e8e8e8; +} + +.tag:not(body).is-delete:active { + background-color: #dbdbdb; +} + +.tag:not(body).is-rounded { + border-radius: 290486px; +} + +a.tag:hover { + text-decoration: underline; +} + +.title, +.subtitle { + word-break: break-word; +} + +.title em, +.title span, +.subtitle em, +.subtitle span { + font-weight: inherit; +} + +.title sub, +.subtitle sub { + font-size: 0.75em; +} + +.title sup, +.subtitle sup { + font-size: 0.75em; +} + +.title .tag, +.subtitle .tag { + vertical-align: middle; +} + +.title { + color: #363636; + font-size: 2rem; + font-weight: 600; + line-height: 1.125; +} + +.title strong { + color: inherit; + font-weight: inherit; +} + +.title + .highlight { + margin-top: -0.75rem; +} + +.title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; +} + +.title.is-1 { + font-size: 3rem; +} + +.title.is-2 { + font-size: 2.5rem; +} + +.title.is-3 { + font-size: 2rem; +} + +.title.is-4 { + font-size: 1.5rem; +} + +.title.is-5 { + font-size: 1.25rem; +} + +.title.is-6 { + font-size: 1rem; +} + +.title.is-7 { + font-size: 0.75rem; +} + +.subtitle { + color: #4a4a4a; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; +} + +.subtitle strong { + color: #363636; + font-weight: 600; +} + +.subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; +} + +.subtitle.is-1 { + font-size: 3rem; +} + +.subtitle.is-2 { + font-size: 2.5rem; +} + +.subtitle.is-3 { + font-size: 2rem; +} + +.subtitle.is-4 { + font-size: 1.5rem; +} + +.subtitle.is-5 { + font-size: 1.25rem; +} + +.subtitle.is-6 { + font-size: 1rem; +} + +.subtitle.is-7 { + font-size: 0.75rem; +} + +.heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; +} + +.highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; +} + +.highlight pre { + overflow: auto; + max-width: 100%; +} + +.number { + align-items: center; + background-color: whitesmoke; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; +} + +.breadcrumb { + font-size: 1rem; + white-space: nowrap; +} + +.breadcrumb a { + align-items: center; + color: #3273dc; + display: flex; + justify-content: center; + padding: 0 0.75em; +} + +.breadcrumb a:hover { + color: #363636; +} + +.breadcrumb li { + align-items: center; + display: flex; +} + +.breadcrumb li:first-child a { + padding-left: 0; +} + +.breadcrumb li.is-active a { + color: #363636; + cursor: default; + pointer-events: none; +} + +.breadcrumb li + li::before { + color: #b5b5b5; + content: "\0002f"; +} + +.breadcrumb ul, +.breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; +} + +.breadcrumb .icon:first-child { + margin-right: 0.5em; +} + +.breadcrumb .icon:last-child { + margin-left: 0.5em; +} + +.breadcrumb.is-centered ol, +.breadcrumb.is-centered ul { + justify-content: center; +} + +.breadcrumb.is-right ol, +.breadcrumb.is-right ul { + justify-content: flex-end; +} + +.breadcrumb.is-small { + font-size: 0.75rem; +} + +.breadcrumb.is-medium { + font-size: 1.25rem; +} + +.breadcrumb.is-large { + font-size: 1.5rem; +} + +.breadcrumb.has-arrow-separator li + li::before { + content: "\02192"; +} + +.breadcrumb.has-bullet-separator li + li::before { + content: "\02022"; +} + +.breadcrumb.has-dot-separator li + li::before { + content: "\000b7"; +} + +.breadcrumb.has-succeeds-separator li + li::before { + content: "\0227B"; +} + +.card { + background-color: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #4a4a4a; + max-width: 100%; + position: relative; +} + +.card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; +} + +.card-header-title { + align-items: center; + color: #363636; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; +} + +.card-header-title.is-centered { + justify-content: center; +} + +.card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; +} + +.card-image { + display: block; + position: relative; +} + +.card-content { + background-color: transparent; + padding: 1.5rem; +} + +.card-footer { + background-color: transparent; + border-top: 1px solid #dbdbdb; + align-items: stretch; + display: flex; +} + +.card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; +} + +.card-footer-item:not(:last-child) { + border-right: 1px solid #dbdbdb; +} + +.card .media:not(:last-child) { + margin-bottom: 0.75rem; +} + +.dropdown { + display: inline-flex; + position: relative; + vertical-align: top; +} + +.dropdown.is-active .dropdown-menu, .dropdown.is-hoverable:hover .dropdown-menu { + display: block; +} + +.dropdown.is-right .dropdown-menu { + left: auto; + right: 0; +} + +.dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; +} + +.dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; +} + +.dropdown-content { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; +} + +.dropdown-item { + color: #4a4a4a; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; +} + +a.dropdown-item, +button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; +} + +a.dropdown-item:hover, +button.dropdown-item:hover { + background-color: whitesmoke; + color: #0a0a0a; +} + +a.dropdown-item.is-active, +button.dropdown-item.is-active { + background-color: #3273dc; + color: #fff; +} + +.dropdown-divider { + background-color: #dbdbdb; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; +} + +.level { + align-items: center; + justify-content: space-between; +} + +.level code { + border-radius: 4px; +} + +.level img { + display: inline-block; + vertical-align: top; +} + +.level.is-mobile { + display: flex; +} + +.level.is-mobile .level-left, +.level.is-mobile .level-right { + display: flex; +} + +.level.is-mobile .level-left + .level-right { + margin-top: 0; +} + +.level.is-mobile .level-item:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; +} + +.level.is-mobile .level-item:not(.is-narrow) { + flex-grow: 1; +} + +@media screen and (min-width: 769px), print { + .level { + display: flex; + } + .level > .level-item:not(.is-narrow) { + flex-grow: 1; + } +} + +.level-item { + align-items: center; + display: flex; + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; + justify-content: center; +} + +.level-item .title, +.level-item .subtitle { + margin-bottom: 0; +} + +@media screen and (max-width: 768px) { + .level-item:not(:last-child) { + margin-bottom: 0.75rem; + } +} + +.level-left, +.level-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; +} + +.level-left .level-item.is-flexible, +.level-right .level-item.is-flexible { + flex-grow: 1; +} + +@media screen and (min-width: 769px), print { + .level-left .level-item:not(:last-child), + .level-right .level-item:not(:last-child) { + margin-right: 0.75rem; + } +} + +.level-left { + align-items: center; + justify-content: flex-start; +} + +@media screen and (max-width: 768px) { + .level-left + .level-right { + margin-top: 1.5rem; + } +} + +@media screen and (min-width: 769px), print { + .level-left { + display: flex; + } +} + +.level-right { + align-items: center; + justify-content: flex-end; +} + +@media screen and (min-width: 769px), print { + .level-right { + display: flex; + } +} + +.list { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); +} + +.list-item { + display: block; + padding: 0.5em 1em; +} + +.list-item:not(a) { + color: #4a4a4a; +} + +.list-item:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} + +.list-item:last-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} + +.list-item:not(:last-child) { + border-bottom: 1px solid #dbdbdb; +} + +.list-item.is-active { + background-color: #3273dc; + color: #fff; +} + +a.list-item { + background-color: whitesmoke; + cursor: pointer; +} + +.media { + align-items: flex-start; + display: flex; + text-align: left; +} + +.media .content:not(:last-child) { + margin-bottom: 0.75rem; +} + +.media .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + display: flex; + padding-top: 0.75rem; +} + +.media .media .content:not(:last-child), +.media .media .control:not(:last-child) { + margin-bottom: 0.5rem; +} + +.media .media .media { + padding-top: 0.5rem; +} + +.media .media .media + .media { + margin-top: 0.5rem; +} + +.media + .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + margin-top: 1rem; + padding-top: 1rem; +} + +.media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; +} + +.media-left, +.media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; +} + +.media-left { + margin-right: 1rem; +} + +.media-right { + margin-left: 1rem; +} + +.media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; +} + +@media screen and (max-width: 768px) { + .media-content { + overflow-x: auto; + } +} + +.menu { + font-size: 1rem; +} + +.menu.is-small { + font-size: 0.75rem; +} + +.menu.is-medium { + font-size: 1.25rem; +} + +.menu.is-large { + font-size: 1.5rem; +} + +.menu-list { + line-height: 1.25; +} + +.menu-list a { + border-radius: 2px; + color: #4a4a4a; + display: block; + padding: 0.5em 0.75em; +} + +.menu-list a:hover { + background-color: whitesmoke; + color: #363636; +} + +.menu-list a.is-active { + background-color: #3273dc; + color: #fff; +} + +.menu-list li ul { + border-left: 1px solid #dbdbdb; + margin: 0.75em; + padding-left: 0.75em; +} + +.menu-label { + color: #7a7a7a; + font-size: 0.75em; + letter-spacing: 0.1em; + text-transform: uppercase; +} + +.menu-label:not(:first-child) { + margin-top: 1em; +} + +.menu-label:not(:last-child) { + margin-bottom: 1em; +} + +.message { + background-color: whitesmoke; + border-radius: 4px; + font-size: 1rem; +} + +.message strong { + color: currentColor; +} + +.message a:not(.button):not(.tag) { + color: currentColor; + text-decoration: underline; +} + +.message.is-small { + font-size: 0.75rem; +} + +.message.is-medium { + font-size: 1.25rem; +} + +.message.is-large { + font-size: 1.5rem; +} + +.message.is-white { + background-color: white; +} + +.message.is-white .message-header { + background-color: white; + color: #0a0a0a; +} + +.message.is-white .message-body { + border-color: white; + color: #4d4d4d; +} + +.message.is-black { + background-color: #fafafa; +} + +.message.is-black .message-header { + background-color: #0a0a0a; + color: white; +} + +.message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; +} + +.message.is-light { + background-color: #fafafa; +} + +.message.is-light .message-header { + background-color: whitesmoke; + color: #363636; +} + +.message.is-light .message-body { + border-color: whitesmoke; + color: #505050; +} + +.message.is-dark { + background-color: #fafafa; +} + +.message.is-dark .message-header { + background-color: #363636; + color: whitesmoke; +} + +.message.is-dark .message-body { + border-color: #363636; + color: #2a2a2a; +} + +.message.is-primary { + background-color: #f5fffd; +} + +.message.is-primary .message-header { + background-color: #00d1b2; + color: #fff; +} + +.message.is-primary .message-body { + border-color: #00d1b2; + color: #021310; +} + +.message.is-link { + background-color: #f6f9fe; +} + +.message.is-link .message-header { + background-color: #3273dc; + color: #fff; +} + +.message.is-link .message-body { + border-color: #3273dc; + color: #22509a; +} + +.message.is-info { + background-color: #f6fbfe; +} + +.message.is-info .message-header { + background-color: #209cee; + color: #fff; +} + +.message.is-info .message-body { + border-color: #209cee; + color: #12537e; +} + +.message.is-success { + background-color: #f6fef9; +} + +.message.is-success .message-header { + background-color: #23d160; + color: #fff; +} + +.message.is-success .message-body { + border-color: #23d160; + color: #0e301a; +} + +.message.is-warning { + background-color: #fffdf5; +} + +.message.is-warning .message-header { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); +} + +.message.is-warning .message-body { + border-color: #ffdd57; + color: #3b3108; +} + +.message.is-danger { + background-color: #fff5f7; +} + +.message.is-danger .message-header { + background-color: #ff3860; + color: #fff; +} + +.message.is-danger .message-body { + border-color: #ff3860; + color: #cd0930; +} + +.message-header { + align-items: center; + background-color: #4a4a4a; + border-radius: 4px 4px 0 0; + color: #fff; + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em 1em; + position: relative; +} + +.message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; +} + +.message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.message-body { + border-color: #dbdbdb; + border-radius: 4px; + border-style: solid; + border-width: 0 0 0 4px; + color: #4a4a4a; + padding: 1.25em 1.5em; +} + +.message-body code, +.message-body pre { + background-color: white; +} + +.message-body pre code { + background-color: transparent; +} + +.modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; +} + +.modal.is-active { + display: flex; +} + +.modal-background { + background-color: rgba(10, 10, 10, 0.86); +} + +.modal-content, +.modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; +} + +@media screen and (min-width: 769px), print { + .modal-content, + .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; + } +} + +.modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; +} + +.modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; +} + +.modal-card-head, +.modal-card-foot { + align-items: center; + background-color: whitesmoke; + display: flex; + flex-shrink: 0; + justify-content: flex-start; + padding: 20px; + position: relative; +} + +.modal-card-head { + border-bottom: 1px solid #dbdbdb; + border-top-left-radius: 6px; + border-top-right-radius: 6px; +} + +.modal-card-title { + color: #363636; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; +} + +.modal-card-foot { + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 1px solid #dbdbdb; +} + +.modal-card-foot .button:not(:last-child) { + margin-right: 10px; +} + +.modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + flex-grow: 1; + flex-shrink: 1; + overflow: auto; + padding: 20px; +} + +.navbar { + background-color: white; + min-height: 3.25rem; + position: relative; + z-index: 30; +} + +.navbar.is-white { + background-color: white; + color: #0a0a0a; +} + +.navbar.is-white .navbar-brand > .navbar-item, +.navbar.is-white .navbar-brand .navbar-link { + color: #0a0a0a; +} + +.navbar.is-white .navbar-brand > a.navbar-item:hover, .navbar.is-white .navbar-brand > a.navbar-item.is-active, +.navbar.is-white .navbar-brand .navbar-link:hover, +.navbar.is-white .navbar-brand .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; +} + +.navbar.is-white .navbar-brand .navbar-link::after { + border-color: #0a0a0a; +} + +.navbar.is-white .navbar-burger { + color: #0a0a0a; +} + +@media screen and (min-width: 1088px) { + .navbar.is-white .navbar-start > .navbar-item, + .navbar.is-white .navbar-start .navbar-link, + .navbar.is-white .navbar-end > .navbar-item, + .navbar.is-white .navbar-end .navbar-link { + color: #0a0a0a; + } + .navbar.is-white .navbar-start > a.navbar-item:hover, .navbar.is-white .navbar-start > a.navbar-item.is-active, + .navbar.is-white .navbar-start .navbar-link:hover, + .navbar.is-white .navbar-start .navbar-link.is-active, + .navbar.is-white .navbar-end > a.navbar-item:hover, + .navbar.is-white .navbar-end > a.navbar-item.is-active, + .navbar.is-white .navbar-end .navbar-link:hover, + .navbar.is-white .navbar-end .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; + } + .navbar.is-white .navbar-start .navbar-link::after, + .navbar.is-white .navbar-end .navbar-link::after { + border-color: #0a0a0a; + } + .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #f2f2f2; + color: #0a0a0a; + } + .navbar.is-white .navbar-dropdown a.navbar-item.is-active { + background-color: white; + color: #0a0a0a; + } +} + +.navbar.is-black { + background-color: #0a0a0a; + color: white; +} + +.navbar.is-black .navbar-brand > .navbar-item, +.navbar.is-black .navbar-brand .navbar-link { + color: white; +} + +.navbar.is-black .navbar-brand > a.navbar-item:hover, .navbar.is-black .navbar-brand > a.navbar-item.is-active, +.navbar.is-black .navbar-brand .navbar-link:hover, +.navbar.is-black .navbar-brand .navbar-link.is-active { + background-color: black; + color: white; +} + +.navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; +} + +.navbar.is-black .navbar-burger { + color: white; +} + +@media screen and (min-width: 1088px) { + .navbar.is-black .navbar-start > .navbar-item, + .navbar.is-black .navbar-start .navbar-link, + .navbar.is-black .navbar-end > .navbar-item, + .navbar.is-black .navbar-end .navbar-link { + color: white; + } + .navbar.is-black .navbar-start > a.navbar-item:hover, .navbar.is-black .navbar-start > a.navbar-item.is-active, + .navbar.is-black .navbar-start .navbar-link:hover, + .navbar.is-black .navbar-start .navbar-link.is-active, + .navbar.is-black .navbar-end > a.navbar-item:hover, + .navbar.is-black .navbar-end > a.navbar-item.is-active, + .navbar.is-black .navbar-end .navbar-link:hover, + .navbar.is-black .navbar-end .navbar-link.is-active { + background-color: black; + color: white; + } + .navbar.is-black .navbar-start .navbar-link::after, + .navbar.is-black .navbar-end .navbar-link::after { + border-color: white; + } + .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link { + background-color: black; + color: white; + } + .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; + } +} + +.navbar.is-light { + background-color: whitesmoke; + color: #363636; +} + +.navbar.is-light .navbar-brand > .navbar-item, +.navbar.is-light .navbar-brand .navbar-link { + color: #363636; +} + +.navbar.is-light .navbar-brand > a.navbar-item:hover, .navbar.is-light .navbar-brand > a.navbar-item.is-active, +.navbar.is-light .navbar-brand .navbar-link:hover, +.navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; +} + +.navbar.is-light .navbar-brand .navbar-link::after { + border-color: #363636; +} + +.navbar.is-light .navbar-burger { + color: #363636; +} + +@media screen and (min-width: 1088px) { + .navbar.is-light .navbar-start > .navbar-item, + .navbar.is-light .navbar-start .navbar-link, + .navbar.is-light .navbar-end > .navbar-item, + .navbar.is-light .navbar-end .navbar-link { + color: #363636; + } + .navbar.is-light .navbar-start > a.navbar-item:hover, .navbar.is-light .navbar-start > a.navbar-item.is-active, + .navbar.is-light .navbar-start .navbar-link:hover, + .navbar.is-light .navbar-start .navbar-link.is-active, + .navbar.is-light .navbar-end > a.navbar-item:hover, + .navbar.is-light .navbar-end > a.navbar-item.is-active, + .navbar.is-light .navbar-end .navbar-link:hover, + .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; + } + .navbar.is-light .navbar-start .navbar-link::after, + .navbar.is-light .navbar-end .navbar-link::after { + border-color: #363636; + } + .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #e8e8e8; + color: #363636; + } + .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #363636; + } +} + +.navbar.is-dark { + background-color: #363636; + color: whitesmoke; +} + +.navbar.is-dark .navbar-brand > .navbar-item, +.navbar.is-dark .navbar-brand .navbar-link { + color: whitesmoke; +} + +.navbar.is-dark .navbar-brand > a.navbar-item:hover, .navbar.is-dark .navbar-brand > a.navbar-item.is-active, +.navbar.is-dark .navbar-brand .navbar-link:hover, +.navbar.is-dark .navbar-brand .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; +} + +.navbar.is-dark .navbar-brand .navbar-link::after { + border-color: whitesmoke; +} + +.navbar.is-dark .navbar-burger { + color: whitesmoke; +} + +@media screen and (min-width: 1088px) { + .navbar.is-dark .navbar-start > .navbar-item, + .navbar.is-dark .navbar-start .navbar-link, + .navbar.is-dark .navbar-end > .navbar-item, + .navbar.is-dark .navbar-end .navbar-link { + color: whitesmoke; + } + .navbar.is-dark .navbar-start > a.navbar-item:hover, .navbar.is-dark .navbar-start > a.navbar-item.is-active, + .navbar.is-dark .navbar-start .navbar-link:hover, + .navbar.is-dark .navbar-start .navbar-link.is-active, + .navbar.is-dark .navbar-end > a.navbar-item:hover, + .navbar.is-dark .navbar-end > a.navbar-item.is-active, + .navbar.is-dark .navbar-end .navbar-link:hover, + .navbar.is-dark .navbar-end .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; + } + .navbar.is-dark .navbar-start .navbar-link::after, + .navbar.is-dark .navbar-end .navbar-link::after { + border-color: whitesmoke; + } + .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #292929; + color: whitesmoke; + } + .navbar.is-dark .navbar-dropdown a.navbar-item.is-active { + background-color: #363636; + color: whitesmoke; + } +} + +.navbar.is-primary { + background-color: #00d1b2; + color: #fff; +} + +.navbar.is-primary .navbar-brand > .navbar-item, +.navbar.is-primary .navbar-brand .navbar-link { + color: #fff; +} + +.navbar.is-primary .navbar-brand > a.navbar-item:hover, .navbar.is-primary .navbar-brand > a.navbar-item.is-active, +.navbar.is-primary .navbar-brand .navbar-link:hover, +.navbar.is-primary .navbar-brand .navbar-link.is-active { + background-color: #00b89c; + color: #fff; +} + +.navbar.is-primary .navbar-brand .navbar-link::after { + border-color: #fff; +} + +.navbar.is-primary .navbar-burger { + color: #fff; +} + +@media screen and (min-width: 1088px) { + .navbar.is-primary .navbar-start > .navbar-item, + .navbar.is-primary .navbar-start .navbar-link, + .navbar.is-primary .navbar-end > .navbar-item, + .navbar.is-primary .navbar-end .navbar-link { + color: #fff; + } + .navbar.is-primary .navbar-start > a.navbar-item:hover, .navbar.is-primary .navbar-start > a.navbar-item.is-active, + .navbar.is-primary .navbar-start .navbar-link:hover, + .navbar.is-primary .navbar-start .navbar-link.is-active, + .navbar.is-primary .navbar-end > a.navbar-item:hover, + .navbar.is-primary .navbar-end > a.navbar-item.is-active, + .navbar.is-primary .navbar-end .navbar-link:hover, + .navbar.is-primary .navbar-end .navbar-link.is-active { + background-color: #00b89c; + color: #fff; + } + .navbar.is-primary .navbar-start .navbar-link::after, + .navbar.is-primary .navbar-end .navbar-link::after { + border-color: #fff; + } + .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #00b89c; + color: #fff; + } + .navbar.is-primary .navbar-dropdown a.navbar-item.is-active { + background-color: #00d1b2; + color: #fff; + } +} + +.navbar.is-link { + background-color: #3273dc; + color: #fff; +} + +.navbar.is-link .navbar-brand > .navbar-item, +.navbar.is-link .navbar-brand .navbar-link { + color: #fff; +} + +.navbar.is-link .navbar-brand > a.navbar-item:hover, .navbar.is-link .navbar-brand > a.navbar-item.is-active, +.navbar.is-link .navbar-brand .navbar-link:hover, +.navbar.is-link .navbar-brand .navbar-link.is-active { + background-color: #2366d1; + color: #fff; +} + +.navbar.is-link .navbar-brand .navbar-link::after { + border-color: #fff; +} + +.navbar.is-link .navbar-burger { + color: #fff; +} + +@media screen and (min-width: 1088px) { + .navbar.is-link .navbar-start > .navbar-item, + .navbar.is-link .navbar-start .navbar-link, + .navbar.is-link .navbar-end > .navbar-item, + .navbar.is-link .navbar-end .navbar-link { + color: #fff; + } + .navbar.is-link .navbar-start > a.navbar-item:hover, .navbar.is-link .navbar-start > a.navbar-item.is-active, + .navbar.is-link .navbar-start .navbar-link:hover, + .navbar.is-link .navbar-start .navbar-link.is-active, + .navbar.is-link .navbar-end > a.navbar-item:hover, + .navbar.is-link .navbar-end > a.navbar-item.is-active, + .navbar.is-link .navbar-end .navbar-link:hover, + .navbar.is-link .navbar-end .navbar-link.is-active { + background-color: #2366d1; + color: #fff; + } + .navbar.is-link .navbar-start .navbar-link::after, + .navbar.is-link .navbar-end .navbar-link::after { + border-color: #fff; + } + .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #2366d1; + color: #fff; + } + .navbar.is-link .navbar-dropdown a.navbar-item.is-active { + background-color: #3273dc; + color: #fff; + } +} + +.navbar.is-info { + background-color: #209cee; + color: #fff; +} + +.navbar.is-info .navbar-brand > .navbar-item, +.navbar.is-info .navbar-brand .navbar-link { + color: #fff; +} + +.navbar.is-info .navbar-brand > a.navbar-item:hover, .navbar.is-info .navbar-brand > a.navbar-item.is-active, +.navbar.is-info .navbar-brand .navbar-link:hover, +.navbar.is-info .navbar-brand .navbar-link.is-active { + background-color: #118fe4; + color: #fff; +} + +.navbar.is-info .navbar-brand .navbar-link::after { + border-color: #fff; +} + +.navbar.is-info .navbar-burger { + color: #fff; +} + +@media screen and (min-width: 1088px) { + .navbar.is-info .navbar-start > .navbar-item, + .navbar.is-info .navbar-start .navbar-link, + .navbar.is-info .navbar-end > .navbar-item, + .navbar.is-info .navbar-end .navbar-link { + color: #fff; + } + .navbar.is-info .navbar-start > a.navbar-item:hover, .navbar.is-info .navbar-start > a.navbar-item.is-active, + .navbar.is-info .navbar-start .navbar-link:hover, + .navbar.is-info .navbar-start .navbar-link.is-active, + .navbar.is-info .navbar-end > a.navbar-item:hover, + .navbar.is-info .navbar-end > a.navbar-item.is-active, + .navbar.is-info .navbar-end .navbar-link:hover, + .navbar.is-info .navbar-end .navbar-link.is-active { + background-color: #118fe4; + color: #fff; + } + .navbar.is-info .navbar-start .navbar-link::after, + .navbar.is-info .navbar-end .navbar-link::after { + border-color: #fff; + } + .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #118fe4; + color: #fff; + } + .navbar.is-info .navbar-dropdown a.navbar-item.is-active { + background-color: #209cee; + color: #fff; + } +} + +.navbar.is-success { + background-color: #23d160; + color: #fff; +} + +.navbar.is-success .navbar-brand > .navbar-item, +.navbar.is-success .navbar-brand .navbar-link { + color: #fff; +} + +.navbar.is-success .navbar-brand > a.navbar-item:hover, .navbar.is-success .navbar-brand > a.navbar-item.is-active, +.navbar.is-success .navbar-brand .navbar-link:hover, +.navbar.is-success .navbar-brand .navbar-link.is-active { + background-color: #20bc56; + color: #fff; +} + +.navbar.is-success .navbar-brand .navbar-link::after { + border-color: #fff; +} + +.navbar.is-success .navbar-burger { + color: #fff; +} + +@media screen and (min-width: 1088px) { + .navbar.is-success .navbar-start > .navbar-item, + .navbar.is-success .navbar-start .navbar-link, + .navbar.is-success .navbar-end > .navbar-item, + .navbar.is-success .navbar-end .navbar-link { + color: #fff; + } + .navbar.is-success .navbar-start > a.navbar-item:hover, .navbar.is-success .navbar-start > a.navbar-item.is-active, + .navbar.is-success .navbar-start .navbar-link:hover, + .navbar.is-success .navbar-start .navbar-link.is-active, + .navbar.is-success .navbar-end > a.navbar-item:hover, + .navbar.is-success .navbar-end > a.navbar-item.is-active, + .navbar.is-success .navbar-end .navbar-link:hover, + .navbar.is-success .navbar-end .navbar-link.is-active { + background-color: #20bc56; + color: #fff; + } + .navbar.is-success .navbar-start .navbar-link::after, + .navbar.is-success .navbar-end .navbar-link::after { + border-color: #fff; + } + .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #20bc56; + color: #fff; + } + .navbar.is-success .navbar-dropdown a.navbar-item.is-active { + background-color: #23d160; + color: #fff; + } +} + +.navbar.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); +} + +.navbar.is-warning .navbar-brand > .navbar-item, +.navbar.is-warning .navbar-brand .navbar-link { + color: rgba(0, 0, 0, 0.7); +} + +.navbar.is-warning .navbar-brand > a.navbar-item:hover, .navbar.is-warning .navbar-brand > a.navbar-item.is-active, +.navbar.is-warning .navbar-brand .navbar-link:hover, +.navbar.is-warning .navbar-brand .navbar-link.is-active { + background-color: #ffd83d; + color: rgba(0, 0, 0, 0.7); +} + +.navbar.is-warning .navbar-brand .navbar-link::after { + border-color: rgba(0, 0, 0, 0.7); +} + +.navbar.is-warning .navbar-burger { + color: rgba(0, 0, 0, 0.7); +} + +@media screen and (min-width: 1088px) { + .navbar.is-warning .navbar-start > .navbar-item, + .navbar.is-warning .navbar-start .navbar-link, + .navbar.is-warning .navbar-end > .navbar-item, + .navbar.is-warning .navbar-end .navbar-link { + color: rgba(0, 0, 0, 0.7); + } + .navbar.is-warning .navbar-start > a.navbar-item:hover, .navbar.is-warning .navbar-start > a.navbar-item.is-active, + .navbar.is-warning .navbar-start .navbar-link:hover, + .navbar.is-warning .navbar-start .navbar-link.is-active, + .navbar.is-warning .navbar-end > a.navbar-item:hover, + .navbar.is-warning .navbar-end > a.navbar-item.is-active, + .navbar.is-warning .navbar-end .navbar-link:hover, + .navbar.is-warning .navbar-end .navbar-link.is-active { + background-color: #ffd83d; + color: rgba(0, 0, 0, 0.7); + } + .navbar.is-warning .navbar-start .navbar-link::after, + .navbar.is-warning .navbar-end .navbar-link::after { + border-color: rgba(0, 0, 0, 0.7); + } + .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #ffd83d; + color: rgba(0, 0, 0, 0.7); + } + .navbar.is-warning .navbar-dropdown a.navbar-item.is-active { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); + } +} + +.navbar.is-danger { + background-color: #ff3860; + color: #fff; +} + +.navbar.is-danger .navbar-brand > .navbar-item, +.navbar.is-danger .navbar-brand .navbar-link { + color: #fff; +} + +.navbar.is-danger .navbar-brand > a.navbar-item:hover, .navbar.is-danger .navbar-brand > a.navbar-item.is-active, +.navbar.is-danger .navbar-brand .navbar-link:hover, +.navbar.is-danger .navbar-brand .navbar-link.is-active { + background-color: #ff1f4b; + color: #fff; +} + +.navbar.is-danger .navbar-brand .navbar-link::after { + border-color: #fff; +} + +.navbar.is-danger .navbar-burger { + color: #fff; +} + +@media screen and (min-width: 1088px) { + .navbar.is-danger .navbar-start > .navbar-item, + .navbar.is-danger .navbar-start .navbar-link, + .navbar.is-danger .navbar-end > .navbar-item, + .navbar.is-danger .navbar-end .navbar-link { + color: #fff; + } + .navbar.is-danger .navbar-start > a.navbar-item:hover, .navbar.is-danger .navbar-start > a.navbar-item.is-active, + .navbar.is-danger .navbar-start .navbar-link:hover, + .navbar.is-danger .navbar-start .navbar-link.is-active, + .navbar.is-danger .navbar-end > a.navbar-item:hover, + .navbar.is-danger .navbar-end > a.navbar-item.is-active, + .navbar.is-danger .navbar-end .navbar-link:hover, + .navbar.is-danger .navbar-end .navbar-link.is-active { + background-color: #ff1f4b; + color: #fff; + } + .navbar.is-danger .navbar-start .navbar-link::after, + .navbar.is-danger .navbar-end .navbar-link::after { + border-color: #fff; + } + .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #ff1f4b; + color: #fff; + } + .navbar.is-danger .navbar-dropdown a.navbar-item.is-active { + background-color: #ff3860; + color: #fff; + } +} + +.navbar > .container { + align-items: stretch; + display: flex; + min-height: 3.25rem; + width: 100%; +} + +.navbar.has-shadow { + box-shadow: 0 2px 0 0 whitesmoke; +} + +.navbar.is-fixed-bottom, .navbar.is-fixed-top { + left: 0; + position: fixed; + right: 0; + z-index: 30; +} + +.navbar.is-fixed-bottom { + bottom: 0; +} + +.navbar.is-fixed-bottom.has-shadow { + box-shadow: 0 -2px 0 0 whitesmoke; +} + +.navbar.is-fixed-top { + top: 0; +} + +html.has-navbar-fixed-top, +body.has-navbar-fixed-top { + padding-top: 3.25rem; +} + +html.has-navbar-fixed-bottom, +body.has-navbar-fixed-bottom { + padding-bottom: 3.25rem; +} + +.navbar-brand, +.navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 3.25rem; +} + +.navbar-brand a.navbar-item:hover { + background-color: transparent; +} + +.navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; +} + +.navbar-burger { + color: #4a4a4a; + cursor: pointer; + display: block; + height: 3.25rem; + position: relative; + width: 3.25rem; + margin-left: auto; +} + +.navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + -webkit-transform-origin: center; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, -webkit-transform; + transition-property: background-color, opacity, transform; + transition-property: background-color, opacity, transform, -webkit-transform; + transition-timing-function: ease-out; + width: 16px; +} + +.navbar-burger span:nth-child(1) { + top: calc(50% - 6px); +} + +.navbar-burger span:nth-child(2) { + top: calc(50% - 1px); +} + +.navbar-burger span:nth-child(3) { + top: calc(50% + 4px); +} + +.navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); +} + +.navbar-burger.is-active span:nth-child(1) { + -webkit-transform: translateY(5px) rotate(45deg); + transform: translateY(5px) rotate(45deg); +} + +.navbar-burger.is-active span:nth-child(2) { + opacity: 0; +} + +.navbar-burger.is-active span:nth-child(3) { + -webkit-transform: translateY(-5px) rotate(-45deg); + transform: translateY(-5px) rotate(-45deg); +} + +.navbar-menu { + display: none; +} + +.navbar-item, +.navbar-link { + color: #4a4a4a; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; +} + +.navbar-item .icon:only-child, +.navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; +} + +a.navbar-item, +.navbar-link { + cursor: pointer; +} + +a.navbar-item:hover, a.navbar-item.is-active, +.navbar-link:hover, +.navbar-link.is-active { + background-color: #fafafa; + color: #3273dc; +} + +.navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; +} + +.navbar-item img { + max-height: 1.75rem; +} + +.navbar-item.has-dropdown { + padding: 0; +} + +.navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; +} + +.navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 3.25rem; + padding-bottom: calc(0.5rem - 1px); +} + +.navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #3273dc; +} + +.navbar-item.is-tab.is-active { + background-color: transparent; + border-bottom-color: #3273dc; + border-bottom-style: solid; + border-bottom-width: 3px; + color: #3273dc; + padding-bottom: calc(0.5rem - 3px); +} + +.navbar-content { + flex-grow: 1; + flex-shrink: 1; +} + +.navbar-link:not(.is-arrowless) { + padding-right: 2.5em; +} + +.navbar-link:not(.is-arrowless)::after { + border-color: #3273dc; + margin-top: -0.375em; + right: 1.125em; +} + +.navbar-dropdown { + font-size: 0.875rem; + padding-bottom: 0.5rem; + padding-top: 0.5rem; +} + +.navbar-dropdown .navbar-item { + padding-left: 1.5rem; + padding-right: 1.5rem; +} + +.navbar-divider { + background-color: whitesmoke; + border: none; + display: none; + height: 2px; + margin: 0.5rem 0; +} + +@media screen and (max-width: 1087px) { + .navbar > .container { + display: block; + } + .navbar-brand .navbar-item, + .navbar-tabs .navbar-item { + align-items: center; + display: flex; + } + .navbar-link::after { + display: none; + } + .navbar-menu { + background-color: white; + box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1); + padding: 0.5rem 0; + } + .navbar-menu.is-active { + display: block; + } + .navbar.is-fixed-bottom-touch, .navbar.is-fixed-top-touch { + left: 0; + position: fixed; + right: 0; + z-index: 30; + } + .navbar.is-fixed-bottom-touch { + bottom: 0; + } + .navbar.is-fixed-bottom-touch.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); + } + .navbar.is-fixed-top-touch { + top: 0; + } + .navbar.is-fixed-top .navbar-menu, .navbar.is-fixed-top-touch .navbar-menu { + -webkit-overflow-scrolling: touch; + max-height: calc(100vh - 3.25rem); + overflow: auto; + } + html.has-navbar-fixed-top-touch, + body.has-navbar-fixed-top-touch { + padding-top: 3.25rem; + } + html.has-navbar-fixed-bottom-touch, + body.has-navbar-fixed-bottom-touch { + padding-bottom: 3.25rem; + } +} + +@media screen and (min-width: 1088px) { + .navbar, + .navbar-menu, + .navbar-start, + .navbar-end { + align-items: stretch; + display: flex; + } + .navbar { + min-height: 3.25rem; + } + .navbar.is-spaced { + padding: 1rem 2rem; + } + .navbar.is-spaced .navbar-start, + .navbar.is-spaced .navbar-end { + align-items: center; + } + .navbar.is-spaced a.navbar-item, + .navbar.is-spaced .navbar-link { + border-radius: 4px; + } + .navbar.is-transparent a.navbar-item:hover, .navbar.is-transparent a.navbar-item.is-active, + .navbar.is-transparent .navbar-link:hover, + .navbar.is-transparent .navbar-link.is-active { + background-color: transparent !important; + } + .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link { + background-color: transparent !important; + } + .navbar.is-transparent .navbar-dropdown a.navbar-item:hover { + background-color: whitesmoke; + color: #0a0a0a; + } + .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #3273dc; + } + .navbar-burger { + display: none; + } + .navbar-item, + .navbar-link { + align-items: center; + display: flex; + } + .navbar-item { + display: flex; + } + .navbar-item.has-dropdown { + align-items: stretch; + } + .navbar-item.has-dropdown-up .navbar-link::after { + -webkit-transform: rotate(135deg) translate(0.25em, -0.25em); + transform: rotate(135deg) translate(0.25em, -0.25em); + } + .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 2px solid #dbdbdb; + border-radius: 6px 6px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; + } + .navbar-item.is-active .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; + } + .navbar.is-spaced .navbar-item.is-active .navbar-dropdown, .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + -webkit-transform: translateY(0); + transform: translateY(0); + } + .navbar-menu { + flex-grow: 1; + flex-shrink: 0; + } + .navbar-start { + justify-content: flex-start; + margin-right: auto; + } + .navbar-end { + justify-content: flex-end; + margin-left: auto; + } + .navbar-dropdown { + background-color: white; + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 2px solid #dbdbdb; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); + display: none; + font-size: 0.875rem; + left: 0; + min-width: 100%; + position: absolute; + top: 100%; + z-index: 20; + } + .navbar-dropdown .navbar-item { + padding: 0.375rem 1rem; + white-space: nowrap; + } + .navbar-dropdown a.navbar-item { + padding-right: 3rem; + } + .navbar-dropdown a.navbar-item:hover { + background-color: whitesmoke; + color: #0a0a0a; + } + .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #3273dc; + } + .navbar.is-spaced .navbar-dropdown, .navbar-dropdown.is-boxed { + border-radius: 6px; + border-top: none; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + display: block; + opacity: 0; + pointer-events: none; + top: calc(100% + (-4px)); + -webkit-transform: translateY(-5px); + transform: translateY(-5px); + transition-duration: 86ms; + transition-property: opacity, -webkit-transform; + transition-property: opacity, transform; + transition-property: opacity, transform, -webkit-transform; + } + .navbar-dropdown.is-right { + left: auto; + right: 0; + } + .navbar-divider { + display: block; + } + .navbar > .container .navbar-brand, + .container > .navbar .navbar-brand { + margin-left: -.75rem; + } + .navbar > .container .navbar-menu, + .container > .navbar .navbar-menu { + margin-right: -.75rem; + } + .navbar.is-fixed-bottom-desktop, .navbar.is-fixed-top-desktop { + left: 0; + position: fixed; + right: 0; + z-index: 30; + } + .navbar.is-fixed-bottom-desktop { + bottom: 0; + } + .navbar.is-fixed-bottom-desktop.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); + } + .navbar.is-fixed-top-desktop { + top: 0; + } + html.has-navbar-fixed-top-desktop, + body.has-navbar-fixed-top-desktop { + padding-top: 3.25rem; + } + html.has-navbar-fixed-bottom-desktop, + body.has-navbar-fixed-bottom-desktop { + padding-bottom: 3.25rem; + } + html.has-spaced-navbar-fixed-top, + body.has-spaced-navbar-fixed-top { + padding-top: 5.25rem; + } + html.has-spaced-navbar-fixed-bottom, + body.has-spaced-navbar-fixed-bottom { + padding-bottom: 5.25rem; + } + a.navbar-item.is-active, + .navbar-link.is-active { + color: #0a0a0a; + } + a.navbar-item.is-active:not(:hover), + .navbar-link.is-active:not(:hover) { + background-color: transparent; + } + .navbar-item.has-dropdown:hover .navbar-link, .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #fafafa; + } +} + +.pagination { + font-size: 1rem; + margin: -0.25rem; +} + +.pagination.is-small { + font-size: 0.75rem; +} + +.pagination.is-medium { + font-size: 1.25rem; +} + +.pagination.is-large { + font-size: 1.5rem; +} + +.pagination.is-rounded .pagination-previous, +.pagination.is-rounded .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; +} + +.pagination.is-rounded .pagination-link { + border-radius: 290486px; +} + +.pagination, +.pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; +} + +.pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis { + font-size: 1em; + padding-left: 0.5em; + padding-right: 0.5em; + justify-content: center; + margin: 0.25rem; + text-align: center; +} + +.pagination-previous, +.pagination-next, +.pagination-link { + border-color: #dbdbdb; + color: #363636; + min-width: 2.25em; +} + +.pagination-previous:hover, +.pagination-next:hover, +.pagination-link:hover { + border-color: #b5b5b5; + color: #363636; +} + +.pagination-previous:focus, +.pagination-next:focus, +.pagination-link:focus { + border-color: #3273dc; +} + +.pagination-previous:active, +.pagination-next:active, +.pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); +} + +.pagination-previous[disabled], +.pagination-next[disabled], +.pagination-link[disabled] { + background-color: #dbdbdb; + border-color: #dbdbdb; + box-shadow: none; + color: #7a7a7a; + opacity: 0.5; +} + +.pagination-previous, +.pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; +} + +.pagination-link.is-current { + background-color: #3273dc; + border-color: #3273dc; + color: #fff; +} + +.pagination-ellipsis { + color: #b5b5b5; + pointer-events: none; +} + +.pagination-list { + flex-wrap: wrap; +} + +@media screen and (max-width: 768px) { + .pagination { + flex-wrap: wrap; + } + .pagination-previous, + .pagination-next { + flex-grow: 1; + flex-shrink: 1; + } + .pagination-list li { + flex-grow: 1; + flex-shrink: 1; + } +} + +@media screen and (min-width: 769px), print { + .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; + } + .pagination-previous { + order: 2; + } + .pagination-next { + order: 3; + } + .pagination { + justify-content: space-between; + } + .pagination.is-centered .pagination-previous { + order: 1; + } + .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; + } + .pagination.is-centered .pagination-next { + order: 3; + } + .pagination.is-right .pagination-previous { + order: 1; + } + .pagination.is-right .pagination-next { + order: 2; + } + .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; + } +} + +.panel { + font-size: 1rem; +} + +.panel:not(:last-child) { + margin-bottom: 1.5rem; +} + +.panel-heading, +.panel-tabs, +.panel-block { + border-bottom: 1px solid #dbdbdb; + border-left: 1px solid #dbdbdb; + border-right: 1px solid #dbdbdb; +} + +.panel-heading:first-child, +.panel-tabs:first-child, +.panel-block:first-child { + border-top: 1px solid #dbdbdb; +} + +.panel-heading { + background-color: whitesmoke; + border-radius: 4px 4px 0 0; + color: #363636; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; +} + +.panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.875em; + justify-content: center; +} + +.panel-tabs a { + border-bottom: 1px solid #dbdbdb; + margin-bottom: -1px; + padding: 0.5em; +} + +.panel-tabs a.is-active { + border-bottom-color: #4a4a4a; + color: #363636; +} + +.panel-list a { + color: #4a4a4a; +} + +.panel-list a:hover { + color: #3273dc; +} + +.panel-block { + align-items: center; + color: #363636; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; +} + +.panel-block input[type="checkbox"] { + margin-right: 0.75em; +} + +.panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; +} + +.panel-block.is-wrapped { + flex-wrap: wrap; +} + +.panel-block.is-active { + border-left-color: #3273dc; + color: #363636; +} + +.panel-block.is-active .panel-icon { + color: #3273dc; +} + +a.panel-block, +label.panel-block { + cursor: pointer; +} + +a.panel-block:hover, +label.panel-block:hover { + background-color: whitesmoke; +} + +.panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: #7a7a7a; + margin-right: 0.75em; +} + +.panel-icon .fa { + font-size: inherit; + line-height: inherit; +} + +.tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 1rem; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; +} + +.tabs a { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #4a4a4a; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; +} + +.tabs a:hover { + border-bottom-color: #363636; + color: #363636; +} + +.tabs li { + display: block; +} + +.tabs li.is-active a { + border-bottom-color: #3273dc; + color: #3273dc; +} + +.tabs ul { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; +} + +.tabs ul.is-left { + padding-right: 0.75em; +} + +.tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; +} + +.tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; +} + +.tabs .icon:first-child { + margin-right: 0.5em; +} + +.tabs .icon:last-child { + margin-left: 0.5em; +} + +.tabs.is-centered ul { + justify-content: center; +} + +.tabs.is-right ul { + justify-content: flex-end; +} + +.tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 4px 4px 0 0; +} + +.tabs.is-boxed a:hover { + background-color: whitesmoke; + border-bottom-color: #dbdbdb; +} + +.tabs.is-boxed li.is-active a { + background-color: white; + border-color: #dbdbdb; + border-bottom-color: transparent !important; +} + +.tabs.is-fullwidth li { + flex-grow: 1; + flex-shrink: 0; +} + +.tabs.is-toggle a { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px; + margin-bottom: 0; + position: relative; +} + +.tabs.is-toggle a:hover { + background-color: whitesmoke; + border-color: #b5b5b5; + z-index: 2; +} + +.tabs.is-toggle li + li { + margin-left: -1px; +} + +.tabs.is-toggle li:first-child a { + border-radius: 4px 0 0 4px; +} + +.tabs.is-toggle li:last-child a { + border-radius: 0 4px 4px 0; +} + +.tabs.is-toggle li.is-active a { + background-color: #3273dc; + border-color: #3273dc; + color: #fff; + z-index: 1; +} + +.tabs.is-toggle ul { + border-bottom: none; +} + +.tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; +} + +.tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; +} + +.tabs.is-small { + font-size: 0.75rem; +} + +.tabs.is-medium { + font-size: 1.25rem; +} + +.tabs.is-large { + font-size: 1.5rem; +} + +.column { + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + padding: 0.75rem; +} + +.columns.is-mobile > .column.is-narrow { + flex: none; +} + +.columns.is-mobile > .column.is-full { + flex: none; + width: 100%; +} + +.columns.is-mobile > .column.is-three-quarters { + flex: none; + width: 75%; +} + +.columns.is-mobile > .column.is-two-thirds { + flex: none; + width: 66.6666%; +} + +.columns.is-mobile > .column.is-half { + flex: none; + width: 50%; +} + +.columns.is-mobile > .column.is-one-third { + flex: none; + width: 33.3333%; +} + +.columns.is-mobile > .column.is-one-quarter { + flex: none; + width: 25%; +} + +.columns.is-mobile > .column.is-one-fifth { + flex: none; + width: 20%; +} + +.columns.is-mobile > .column.is-two-fifths { + flex: none; + width: 40%; +} + +.columns.is-mobile > .column.is-three-fifths { + flex: none; + width: 60%; +} + +.columns.is-mobile > .column.is-four-fifths { + flex: none; + width: 80%; +} + +.columns.is-mobile > .column.is-offset-three-quarters { + margin-left: 75%; +} + +.columns.is-mobile > .column.is-offset-two-thirds { + margin-left: 66.6666%; +} + +.columns.is-mobile > .column.is-offset-half { + margin-left: 50%; +} + +.columns.is-mobile > .column.is-offset-one-third { + margin-left: 33.3333%; +} + +.columns.is-mobile > .column.is-offset-one-quarter { + margin-left: 25%; +} + +.columns.is-mobile > .column.is-offset-one-fifth { + margin-left: 20%; +} + +.columns.is-mobile > .column.is-offset-two-fifths { + margin-left: 40%; +} + +.columns.is-mobile > .column.is-offset-three-fifths { + margin-left: 60%; +} + +.columns.is-mobile > .column.is-offset-four-fifths { + margin-left: 80%; +} + +.columns.is-mobile > .column.is-1 { + flex: none; + width: 8.33333%; +} + +.columns.is-mobile > .column.is-offset-1 { + margin-left: 8.33333%; +} + +.columns.is-mobile > .column.is-2 { + flex: none; + width: 16.66667%; +} + +.columns.is-mobile > .column.is-offset-2 { + margin-left: 16.66667%; +} + +.columns.is-mobile > .column.is-3 { + flex: none; + width: 25%; +} + +.columns.is-mobile > .column.is-offset-3 { + margin-left: 25%; +} + +.columns.is-mobile > .column.is-4 { + flex: none; + width: 33.33333%; +} + +.columns.is-mobile > .column.is-offset-4 { + margin-left: 33.33333%; +} + +.columns.is-mobile > .column.is-5 { + flex: none; + width: 41.66667%; +} + +.columns.is-mobile > .column.is-offset-5 { + margin-left: 41.66667%; +} + +.columns.is-mobile > .column.is-6 { + flex: none; + width: 50%; +} + +.columns.is-mobile > .column.is-offset-6 { + margin-left: 50%; +} + +.columns.is-mobile > .column.is-7 { + flex: none; + width: 58.33333%; +} + +.columns.is-mobile > .column.is-offset-7 { + margin-left: 58.33333%; +} + +.columns.is-mobile > .column.is-8 { + flex: none; + width: 66.66667%; +} + +.columns.is-mobile > .column.is-offset-8 { + margin-left: 66.66667%; +} + +.columns.is-mobile > .column.is-9 { + flex: none; + width: 75%; +} + +.columns.is-mobile > .column.is-offset-9 { + margin-left: 75%; +} + +.columns.is-mobile > .column.is-10 { + flex: none; + width: 83.33333%; +} + +.columns.is-mobile > .column.is-offset-10 { + margin-left: 83.33333%; +} + +.columns.is-mobile > .column.is-11 { + flex: none; + width: 91.66667%; +} + +.columns.is-mobile > .column.is-offset-11 { + margin-left: 91.66667%; +} + +.columns.is-mobile > .column.is-12 { + flex: none; + width: 100%; +} + +.columns.is-mobile > .column.is-offset-12 { + margin-left: 100%; +} + +@media screen and (max-width: 768px) { + .column.is-narrow-mobile { + flex: none; + } + .column.is-full-mobile { + flex: none; + width: 100%; + } + .column.is-three-quarters-mobile { + flex: none; + width: 75%; + } + .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; + } + .column.is-half-mobile { + flex: none; + width: 50%; + } + .column.is-one-third-mobile { + flex: none; + width: 33.3333%; + } + .column.is-one-quarter-mobile { + flex: none; + width: 25%; + } + .column.is-one-fifth-mobile { + flex: none; + width: 20%; + } + .column.is-two-fifths-mobile { + flex: none; + width: 40%; + } + .column.is-three-fifths-mobile { + flex: none; + width: 60%; + } + .column.is-four-fifths-mobile { + flex: none; + width: 80%; + } + .column.is-offset-three-quarters-mobile { + margin-left: 75%; + } + .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; + } + .column.is-offset-half-mobile { + margin-left: 50%; + } + .column.is-offset-one-third-mobile { + margin-left: 33.3333%; + } + .column.is-offset-one-quarter-mobile { + margin-left: 25%; + } + .column.is-offset-one-fifth-mobile { + margin-left: 20%; + } + .column.is-offset-two-fifths-mobile { + margin-left: 40%; + } + .column.is-offset-three-fifths-mobile { + margin-left: 60%; + } + .column.is-offset-four-fifths-mobile { + margin-left: 80%; + } + .column.is-1-mobile { + flex: none; + width: 8.33333%; + } + .column.is-offset-1-mobile { + margin-left: 8.33333%; + } + .column.is-2-mobile { + flex: none; + width: 16.66667%; + } + .column.is-offset-2-mobile { + margin-left: 16.66667%; + } + .column.is-3-mobile { + flex: none; + width: 25%; + } + .column.is-offset-3-mobile { + margin-left: 25%; + } + .column.is-4-mobile { + flex: none; + width: 33.33333%; + } + .column.is-offset-4-mobile { + margin-left: 33.33333%; + } + .column.is-5-mobile { + flex: none; + width: 41.66667%; + } + .column.is-offset-5-mobile { + margin-left: 41.66667%; + } + .column.is-6-mobile { + flex: none; + width: 50%; + } + .column.is-offset-6-mobile { + margin-left: 50%; + } + .column.is-7-mobile { + flex: none; + width: 58.33333%; + } + .column.is-offset-7-mobile { + margin-left: 58.33333%; + } + .column.is-8-mobile { + flex: none; + width: 66.66667%; + } + .column.is-offset-8-mobile { + margin-left: 66.66667%; + } + .column.is-9-mobile { + flex: none; + width: 75%; + } + .column.is-offset-9-mobile { + margin-left: 75%; + } + .column.is-10-mobile { + flex: none; + width: 83.33333%; + } + .column.is-offset-10-mobile { + margin-left: 83.33333%; + } + .column.is-11-mobile { + flex: none; + width: 91.66667%; + } + .column.is-offset-11-mobile { + margin-left: 91.66667%; + } + .column.is-12-mobile { + flex: none; + width: 100%; + } + .column.is-offset-12-mobile { + margin-left: 100%; + } +} + +@media screen and (min-width: 769px), print { + .column.is-narrow, .column.is-narrow-tablet { + flex: none; + } + .column.is-full, .column.is-full-tablet { + flex: none; + width: 100%; + } + .column.is-three-quarters, .column.is-three-quarters-tablet { + flex: none; + width: 75%; + } + .column.is-two-thirds, .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; + } + .column.is-half, .column.is-half-tablet { + flex: none; + width: 50%; + } + .column.is-one-third, .column.is-one-third-tablet { + flex: none; + width: 33.3333%; + } + .column.is-one-quarter, .column.is-one-quarter-tablet { + flex: none; + width: 25%; + } + .column.is-one-fifth, .column.is-one-fifth-tablet { + flex: none; + width: 20%; + } + .column.is-two-fifths, .column.is-two-fifths-tablet { + flex: none; + width: 40%; + } + .column.is-three-fifths, .column.is-three-fifths-tablet { + flex: none; + width: 60%; + } + .column.is-four-fifths, .column.is-four-fifths-tablet { + flex: none; + width: 80%; + } + .column.is-offset-three-quarters, .column.is-offset-three-quarters-tablet { + margin-left: 75%; + } + .column.is-offset-two-thirds, .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; + } + .column.is-offset-half, .column.is-offset-half-tablet { + margin-left: 50%; + } + .column.is-offset-one-third, .column.is-offset-one-third-tablet { + margin-left: 33.3333%; + } + .column.is-offset-one-quarter, .column.is-offset-one-quarter-tablet { + margin-left: 25%; + } + .column.is-offset-one-fifth, .column.is-offset-one-fifth-tablet { + margin-left: 20%; + } + .column.is-offset-two-fifths, .column.is-offset-two-fifths-tablet { + margin-left: 40%; + } + .column.is-offset-three-fifths, .column.is-offset-three-fifths-tablet { + margin-left: 60%; + } + .column.is-offset-four-fifths, .column.is-offset-four-fifths-tablet { + margin-left: 80%; + } + .column.is-1, .column.is-1-tablet { + flex: none; + width: 8.33333%; + } + .column.is-offset-1, .column.is-offset-1-tablet { + margin-left: 8.33333%; + } + .column.is-2, .column.is-2-tablet { + flex: none; + width: 16.66667%; + } + .column.is-offset-2, .column.is-offset-2-tablet { + margin-left: 16.66667%; + } + .column.is-3, .column.is-3-tablet { + flex: none; + width: 25%; + } + .column.is-offset-3, .column.is-offset-3-tablet { + margin-left: 25%; + } + .column.is-4, .column.is-4-tablet { + flex: none; + width: 33.33333%; + } + .column.is-offset-4, .column.is-offset-4-tablet { + margin-left: 33.33333%; + } + .column.is-5, .column.is-5-tablet { + flex: none; + width: 41.66667%; + } + .column.is-offset-5, .column.is-offset-5-tablet { + margin-left: 41.66667%; + } + .column.is-6, .column.is-6-tablet { + flex: none; + width: 50%; + } + .column.is-offset-6, .column.is-offset-6-tablet { + margin-left: 50%; + } + .column.is-7, .column.is-7-tablet { + flex: none; + width: 58.33333%; + } + .column.is-offset-7, .column.is-offset-7-tablet { + margin-left: 58.33333%; + } + .column.is-8, .column.is-8-tablet { + flex: none; + width: 66.66667%; + } + .column.is-offset-8, .column.is-offset-8-tablet { + margin-left: 66.66667%; + } + .column.is-9, .column.is-9-tablet { + flex: none; + width: 75%; + } + .column.is-offset-9, .column.is-offset-9-tablet { + margin-left: 75%; + } + .column.is-10, .column.is-10-tablet { + flex: none; + width: 83.33333%; + } + .column.is-offset-10, .column.is-offset-10-tablet { + margin-left: 83.33333%; + } + .column.is-11, .column.is-11-tablet { + flex: none; + width: 91.66667%; + } + .column.is-offset-11, .column.is-offset-11-tablet { + margin-left: 91.66667%; + } + .column.is-12, .column.is-12-tablet { + flex: none; + width: 100%; + } + .column.is-offset-12, .column.is-offset-12-tablet { + margin-left: 100%; + } +} + +@media screen and (max-width: 1087px) { + .column.is-narrow-touch { + flex: none; + } + .column.is-full-touch { + flex: none; + width: 100%; + } + .column.is-three-quarters-touch { + flex: none; + width: 75%; + } + .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; + } + .column.is-half-touch { + flex: none; + width: 50%; + } + .column.is-one-third-touch { + flex: none; + width: 33.3333%; + } + .column.is-one-quarter-touch { + flex: none; + width: 25%; + } + .column.is-one-fifth-touch { + flex: none; + width: 20%; + } + .column.is-two-fifths-touch { + flex: none; + width: 40%; + } + .column.is-three-fifths-touch { + flex: none; + width: 60%; + } + .column.is-four-fifths-touch { + flex: none; + width: 80%; + } + .column.is-offset-three-quarters-touch { + margin-left: 75%; + } + .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; + } + .column.is-offset-half-touch { + margin-left: 50%; + } + .column.is-offset-one-third-touch { + margin-left: 33.3333%; + } + .column.is-offset-one-quarter-touch { + margin-left: 25%; + } + .column.is-offset-one-fifth-touch { + margin-left: 20%; + } + .column.is-offset-two-fifths-touch { + margin-left: 40%; + } + .column.is-offset-three-fifths-touch { + margin-left: 60%; + } + .column.is-offset-four-fifths-touch { + margin-left: 80%; + } + .column.is-1-touch { + flex: none; + width: 8.33333%; + } + .column.is-offset-1-touch { + margin-left: 8.33333%; + } + .column.is-2-touch { + flex: none; + width: 16.66667%; + } + .column.is-offset-2-touch { + margin-left: 16.66667%; + } + .column.is-3-touch { + flex: none; + width: 25%; + } + .column.is-offset-3-touch { + margin-left: 25%; + } + .column.is-4-touch { + flex: none; + width: 33.33333%; + } + .column.is-offset-4-touch { + margin-left: 33.33333%; + } + .column.is-5-touch { + flex: none; + width: 41.66667%; + } + .column.is-offset-5-touch { + margin-left: 41.66667%; + } + .column.is-6-touch { + flex: none; + width: 50%; + } + .column.is-offset-6-touch { + margin-left: 50%; + } + .column.is-7-touch { + flex: none; + width: 58.33333%; + } + .column.is-offset-7-touch { + margin-left: 58.33333%; + } + .column.is-8-touch { + flex: none; + width: 66.66667%; + } + .column.is-offset-8-touch { + margin-left: 66.66667%; + } + .column.is-9-touch { + flex: none; + width: 75%; + } + .column.is-offset-9-touch { + margin-left: 75%; + } + .column.is-10-touch { + flex: none; + width: 83.33333%; + } + .column.is-offset-10-touch { + margin-left: 83.33333%; + } + .column.is-11-touch { + flex: none; + width: 91.66667%; + } + .column.is-offset-11-touch { + margin-left: 91.66667%; + } + .column.is-12-touch { + flex: none; + width: 100%; + } + .column.is-offset-12-touch { + margin-left: 100%; + } +} + +@media screen and (min-width: 1088px) { + .column.is-narrow-desktop { + flex: none; + } + .column.is-full-desktop { + flex: none; + width: 100%; + } + .column.is-three-quarters-desktop { + flex: none; + width: 75%; + } + .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; + } + .column.is-half-desktop { + flex: none; + width: 50%; + } + .column.is-one-third-desktop { + flex: none; + width: 33.3333%; + } + .column.is-one-quarter-desktop { + flex: none; + width: 25%; + } + .column.is-one-fifth-desktop { + flex: none; + width: 20%; + } + .column.is-two-fifths-desktop { + flex: none; + width: 40%; + } + .column.is-three-fifths-desktop { + flex: none; + width: 60%; + } + .column.is-four-fifths-desktop { + flex: none; + width: 80%; + } + .column.is-offset-three-quarters-desktop { + margin-left: 75%; + } + .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; + } + .column.is-offset-half-desktop { + margin-left: 50%; + } + .column.is-offset-one-third-desktop { + margin-left: 33.3333%; + } + .column.is-offset-one-quarter-desktop { + margin-left: 25%; + } + .column.is-offset-one-fifth-desktop { + margin-left: 20%; + } + .column.is-offset-two-fifths-desktop { + margin-left: 40%; + } + .column.is-offset-three-fifths-desktop { + margin-left: 60%; + } + .column.is-offset-four-fifths-desktop { + margin-left: 80%; + } + .column.is-1-desktop { + flex: none; + width: 8.33333%; + } + .column.is-offset-1-desktop { + margin-left: 8.33333%; + } + .column.is-2-desktop { + flex: none; + width: 16.66667%; + } + .column.is-offset-2-desktop { + margin-left: 16.66667%; + } + .column.is-3-desktop { + flex: none; + width: 25%; + } + .column.is-offset-3-desktop { + margin-left: 25%; + } + .column.is-4-desktop { + flex: none; + width: 33.33333%; + } + .column.is-offset-4-desktop { + margin-left: 33.33333%; + } + .column.is-5-desktop { + flex: none; + width: 41.66667%; + } + .column.is-offset-5-desktop { + margin-left: 41.66667%; + } + .column.is-6-desktop { + flex: none; + width: 50%; + } + .column.is-offset-6-desktop { + margin-left: 50%; + } + .column.is-7-desktop { + flex: none; + width: 58.33333%; + } + .column.is-offset-7-desktop { + margin-left: 58.33333%; + } + .column.is-8-desktop { + flex: none; + width: 66.66667%; + } + .column.is-offset-8-desktop { + margin-left: 66.66667%; + } + .column.is-9-desktop { + flex: none; + width: 75%; + } + .column.is-offset-9-desktop { + margin-left: 75%; + } + .column.is-10-desktop { + flex: none; + width: 83.33333%; + } + .column.is-offset-10-desktop { + margin-left: 83.33333%; + } + .column.is-11-desktop { + flex: none; + width: 91.66667%; + } + .column.is-offset-11-desktop { + margin-left: 91.66667%; + } + .column.is-12-desktop { + flex: none; + width: 100%; + } + .column.is-offset-12-desktop { + margin-left: 100%; + } +} + +@media screen and (min-width: 1280px) { + .column.is-narrow-widescreen { + flex: none; + } + .column.is-full-widescreen { + flex: none; + width: 100%; + } + .column.is-three-quarters-widescreen { + flex: none; + width: 75%; + } + .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; + } + .column.is-half-widescreen { + flex: none; + width: 50%; + } + .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; + } + .column.is-one-quarter-widescreen { + flex: none; + width: 25%; + } + .column.is-one-fifth-widescreen { + flex: none; + width: 20%; + } + .column.is-two-fifths-widescreen { + flex: none; + width: 40%; + } + .column.is-three-fifths-widescreen { + flex: none; + width: 60%; + } + .column.is-four-fifths-widescreen { + flex: none; + width: 80%; + } + .column.is-offset-three-quarters-widescreen { + margin-left: 75%; + } + .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; + } + .column.is-offset-half-widescreen { + margin-left: 50%; + } + .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; + } + .column.is-offset-one-quarter-widescreen { + margin-left: 25%; + } + .column.is-offset-one-fifth-widescreen { + margin-left: 20%; + } + .column.is-offset-two-fifths-widescreen { + margin-left: 40%; + } + .column.is-offset-three-fifths-widescreen { + margin-left: 60%; + } + .column.is-offset-four-fifths-widescreen { + margin-left: 80%; + } + .column.is-1-widescreen { + flex: none; + width: 8.33333%; + } + .column.is-offset-1-widescreen { + margin-left: 8.33333%; + } + .column.is-2-widescreen { + flex: none; + width: 16.66667%; + } + .column.is-offset-2-widescreen { + margin-left: 16.66667%; + } + .column.is-3-widescreen { + flex: none; + width: 25%; + } + .column.is-offset-3-widescreen { + margin-left: 25%; + } + .column.is-4-widescreen { + flex: none; + width: 33.33333%; + } + .column.is-offset-4-widescreen { + margin-left: 33.33333%; + } + .column.is-5-widescreen { + flex: none; + width: 41.66667%; + } + .column.is-offset-5-widescreen { + margin-left: 41.66667%; + } + .column.is-6-widescreen { + flex: none; + width: 50%; + } + .column.is-offset-6-widescreen { + margin-left: 50%; + } + .column.is-7-widescreen { + flex: none; + width: 58.33333%; + } + .column.is-offset-7-widescreen { + margin-left: 58.33333%; + } + .column.is-8-widescreen { + flex: none; + width: 66.66667%; + } + .column.is-offset-8-widescreen { + margin-left: 66.66667%; + } + .column.is-9-widescreen { + flex: none; + width: 75%; + } + .column.is-offset-9-widescreen { + margin-left: 75%; + } + .column.is-10-widescreen { + flex: none; + width: 83.33333%; + } + .column.is-offset-10-widescreen { + margin-left: 83.33333%; + } + .column.is-11-widescreen { + flex: none; + width: 91.66667%; + } + .column.is-offset-11-widescreen { + margin-left: 91.66667%; + } + .column.is-12-widescreen { + flex: none; + width: 100%; + } + .column.is-offset-12-widescreen { + margin-left: 100%; + } +} + +@media screen and (min-width: 1472px) { + .column.is-narrow-fullhd { + flex: none; + } + .column.is-full-fullhd { + flex: none; + width: 100%; + } + .column.is-three-quarters-fullhd { + flex: none; + width: 75%; + } + .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; + } + .column.is-half-fullhd { + flex: none; + width: 50%; + } + .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; + } + .column.is-one-quarter-fullhd { + flex: none; + width: 25%; + } + .column.is-one-fifth-fullhd { + flex: none; + width: 20%; + } + .column.is-two-fifths-fullhd { + flex: none; + width: 40%; + } + .column.is-three-fifths-fullhd { + flex: none; + width: 60%; + } + .column.is-four-fifths-fullhd { + flex: none; + width: 80%; + } + .column.is-offset-three-quarters-fullhd { + margin-left: 75%; + } + .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; + } + .column.is-offset-half-fullhd { + margin-left: 50%; + } + .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; + } + .column.is-offset-one-quarter-fullhd { + margin-left: 25%; + } + .column.is-offset-one-fifth-fullhd { + margin-left: 20%; + } + .column.is-offset-two-fifths-fullhd { + margin-left: 40%; + } + .column.is-offset-three-fifths-fullhd { + margin-left: 60%; + } + .column.is-offset-four-fifths-fullhd { + margin-left: 80%; + } + .column.is-1-fullhd { + flex: none; + width: 8.33333%; + } + .column.is-offset-1-fullhd { + margin-left: 8.33333%; + } + .column.is-2-fullhd { + flex: none; + width: 16.66667%; + } + .column.is-offset-2-fullhd { + margin-left: 16.66667%; + } + .column.is-3-fullhd { + flex: none; + width: 25%; + } + .column.is-offset-3-fullhd { + margin-left: 25%; + } + .column.is-4-fullhd { + flex: none; + width: 33.33333%; + } + .column.is-offset-4-fullhd { + margin-left: 33.33333%; + } + .column.is-5-fullhd { + flex: none; + width: 41.66667%; + } + .column.is-offset-5-fullhd { + margin-left: 41.66667%; + } + .column.is-6-fullhd { + flex: none; + width: 50%; + } + .column.is-offset-6-fullhd { + margin-left: 50%; + } + .column.is-7-fullhd { + flex: none; + width: 58.33333%; + } + .column.is-offset-7-fullhd { + margin-left: 58.33333%; + } + .column.is-8-fullhd { + flex: none; + width: 66.66667%; + } + .column.is-offset-8-fullhd { + margin-left: 66.66667%; + } + .column.is-9-fullhd { + flex: none; + width: 75%; + } + .column.is-offset-9-fullhd { + margin-left: 75%; + } + .column.is-10-fullhd { + flex: none; + width: 83.33333%; + } + .column.is-offset-10-fullhd { + margin-left: 83.33333%; + } + .column.is-11-fullhd { + flex: none; + width: 91.66667%; + } + .column.is-offset-11-fullhd { + margin-left: 91.66667%; + } + .column.is-12-fullhd { + flex: none; + width: 100%; + } + .column.is-offset-12-fullhd { + margin-left: 100%; + } +} + +.columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; +} + +.columns:last-child { + margin-bottom: -0.75rem; +} + +.columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.75rem); +} + +.columns.is-centered { + justify-content: center; +} + +.columns.is-gapless { + margin-left: 0; + margin-right: 0; + margin-top: 0; +} + +.columns.is-gapless > .column { + margin: 0; + padding: 0 !important; +} + +.columns.is-gapless:not(:last-child) { + margin-bottom: 1.5rem; +} + +.columns.is-gapless:last-child { + margin-bottom: 0; +} + +.columns.is-mobile { + display: flex; +} + +.columns.is-multiline { + flex-wrap: wrap; +} + +.columns.is-vcentered { + align-items: center; +} + +@media screen and (min-width: 769px), print { + .columns:not(.is-desktop) { + display: flex; + } +} + +@media screen and (min-width: 1088px) { + .columns.is-desktop { + display: flex; + } +} + +.columns.is-variable { + --columnGap: 0.75rem; + margin-left: calc(-1 * var(--columnGap)); + margin-right: calc(-1 * var(--columnGap)); +} + +.columns.is-variable .column { + padding-left: var(--columnGap); + padding-right: var(--columnGap); +} + +.columns.is-variable.is-0 { + --columnGap: 0rem; +} + +@media screen and (max-width: 768px) { + .columns.is-variable.is-0-mobile { + --columnGap: 0rem; + } +} + +@media screen and (min-width: 769px), print { + .columns.is-variable.is-0-tablet { + --columnGap: 0rem; + } +} + +@media screen and (min-width: 769px) and (max-width: 1087px) { + .columns.is-variable.is-0-tablet-only { + --columnGap: 0rem; + } +} + +@media screen and (max-width: 1087px) { + .columns.is-variable.is-0-touch { + --columnGap: 0rem; + } +} + +@media screen and (min-width: 1088px) { + .columns.is-variable.is-0-desktop { + --columnGap: 0rem; + } +} + +@media screen and (min-width: 1088px) and (max-width: 1279px) { + .columns.is-variable.is-0-desktop-only { + --columnGap: 0rem; + } +} + +@media screen and (min-width: 1280px) { + .columns.is-variable.is-0-widescreen { + --columnGap: 0rem; + } +} + +@media screen and (min-width: 1280px) and (max-width: 1471px) { + .columns.is-variable.is-0-widescreen-only { + --columnGap: 0rem; + } +} + +@media screen and (min-width: 1472px) { + .columns.is-variable.is-0-fullhd { + --columnGap: 0rem; + } +} + +.columns.is-variable.is-1 { + --columnGap: 0.25rem; +} + +@media screen and (max-width: 768px) { + .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; + } +} + +@media screen and (min-width: 769px), print { + .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; + } +} + +@media screen and (min-width: 769px) and (max-width: 1087px) { + .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; + } +} + +@media screen and (max-width: 1087px) { + .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; + } +} + +@media screen and (min-width: 1088px) { + .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; + } +} + +@media screen and (min-width: 1088px) and (max-width: 1279px) { + .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; + } +} + +@media screen and (min-width: 1280px) { + .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; + } +} + +@media screen and (min-width: 1280px) and (max-width: 1471px) { + .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; + } +} + +@media screen and (min-width: 1472px) { + .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; + } +} + +.columns.is-variable.is-2 { + --columnGap: 0.5rem; +} + +@media screen and (max-width: 768px) { + .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; + } +} + +@media screen and (min-width: 769px), print { + .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; + } +} + +@media screen and (min-width: 769px) and (max-width: 1087px) { + .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; + } +} + +@media screen and (max-width: 1087px) { + .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; + } +} + +@media screen and (min-width: 1088px) { + .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; + } +} + +@media screen and (min-width: 1088px) and (max-width: 1279px) { + .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; + } +} + +@media screen and (min-width: 1280px) { + .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; + } +} + +@media screen and (min-width: 1280px) and (max-width: 1471px) { + .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; + } +} + +@media screen and (min-width: 1472px) { + .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; + } +} + +.columns.is-variable.is-3 { + --columnGap: 0.75rem; +} + +@media screen and (max-width: 768px) { + .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; + } +} + +@media screen and (min-width: 769px), print { + .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; + } +} + +@media screen and (min-width: 769px) and (max-width: 1087px) { + .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; + } +} + +@media screen and (max-width: 1087px) { + .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; + } +} + +@media screen and (min-width: 1088px) { + .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; + } +} + +@media screen and (min-width: 1088px) and (max-width: 1279px) { + .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; + } +} + +@media screen and (min-width: 1280px) { + .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; + } +} + +@media screen and (min-width: 1280px) and (max-width: 1471px) { + .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; + } +} + +@media screen and (min-width: 1472px) { + .columns.is-variable.is-3-fullhd { + --columnGap: 0.75rem; + } +} + +.columns.is-variable.is-4 { + --columnGap: 1rem; +} + +@media screen and (max-width: 768px) { + .columns.is-variable.is-4-mobile { + --columnGap: 1rem; + } +} + +@media screen and (min-width: 769px), print { + .columns.is-variable.is-4-tablet { + --columnGap: 1rem; + } +} + +@media screen and (min-width: 769px) and (max-width: 1087px) { + .columns.is-variable.is-4-tablet-only { + --columnGap: 1rem; + } +} + +@media screen and (max-width: 1087px) { + .columns.is-variable.is-4-touch { + --columnGap: 1rem; + } +} + +@media screen and (min-width: 1088px) { + .columns.is-variable.is-4-desktop { + --columnGap: 1rem; + } +} + +@media screen and (min-width: 1088px) and (max-width: 1279px) { + .columns.is-variable.is-4-desktop-only { + --columnGap: 1rem; + } +} + +@media screen and (min-width: 1280px) { + .columns.is-variable.is-4-widescreen { + --columnGap: 1rem; + } +} + +@media screen and (min-width: 1280px) and (max-width: 1471px) { + .columns.is-variable.is-4-widescreen-only { + --columnGap: 1rem; + } +} + +@media screen and (min-width: 1472px) { + .columns.is-variable.is-4-fullhd { + --columnGap: 1rem; + } +} + +.columns.is-variable.is-5 { + --columnGap: 1.25rem; +} + +@media screen and (max-width: 768px) { + .columns.is-variable.is-5-mobile { + --columnGap: 1.25rem; + } +} + +@media screen and (min-width: 769px), print { + .columns.is-variable.is-5-tablet { + --columnGap: 1.25rem; + } +} + +@media screen and (min-width: 769px) and (max-width: 1087px) { + .columns.is-variable.is-5-tablet-only { + --columnGap: 1.25rem; + } +} + +@media screen and (max-width: 1087px) { + .columns.is-variable.is-5-touch { + --columnGap: 1.25rem; + } +} + +@media screen and (min-width: 1088px) { + .columns.is-variable.is-5-desktop { + --columnGap: 1.25rem; + } +} + +@media screen and (min-width: 1088px) and (max-width: 1279px) { + .columns.is-variable.is-5-desktop-only { + --columnGap: 1.25rem; + } +} + +@media screen and (min-width: 1280px) { + .columns.is-variable.is-5-widescreen { + --columnGap: 1.25rem; + } +} + +@media screen and (min-width: 1280px) and (max-width: 1471px) { + .columns.is-variable.is-5-widescreen-only { + --columnGap: 1.25rem; + } +} + +@media screen and (min-width: 1472px) { + .columns.is-variable.is-5-fullhd { + --columnGap: 1.25rem; + } +} + +.columns.is-variable.is-6 { + --columnGap: 1.5rem; +} + +@media screen and (max-width: 768px) { + .columns.is-variable.is-6-mobile { + --columnGap: 1.5rem; + } +} + +@media screen and (min-width: 769px), print { + .columns.is-variable.is-6-tablet { + --columnGap: 1.5rem; + } +} + +@media screen and (min-width: 769px) and (max-width: 1087px) { + .columns.is-variable.is-6-tablet-only { + --columnGap: 1.5rem; + } +} + +@media screen and (max-width: 1087px) { + .columns.is-variable.is-6-touch { + --columnGap: 1.5rem; + } +} + +@media screen and (min-width: 1088px) { + .columns.is-variable.is-6-desktop { + --columnGap: 1.5rem; + } +} + +@media screen and (min-width: 1088px) and (max-width: 1279px) { + .columns.is-variable.is-6-desktop-only { + --columnGap: 1.5rem; + } +} + +@media screen and (min-width: 1280px) { + .columns.is-variable.is-6-widescreen { + --columnGap: 1.5rem; + } +} + +@media screen and (min-width: 1280px) and (max-width: 1471px) { + .columns.is-variable.is-6-widescreen-only { + --columnGap: 1.5rem; + } +} + +@media screen and (min-width: 1472px) { + .columns.is-variable.is-6-fullhd { + --columnGap: 1.5rem; + } +} + +.columns.is-variable.is-7 { + --columnGap: 1.75rem; +} + +@media screen and (max-width: 768px) { + .columns.is-variable.is-7-mobile { + --columnGap: 1.75rem; + } +} + +@media screen and (min-width: 769px), print { + .columns.is-variable.is-7-tablet { + --columnGap: 1.75rem; + } +} + +@media screen and (min-width: 769px) and (max-width: 1087px) { + .columns.is-variable.is-7-tablet-only { + --columnGap: 1.75rem; + } +} + +@media screen and (max-width: 1087px) { + .columns.is-variable.is-7-touch { + --columnGap: 1.75rem; + } +} + +@media screen and (min-width: 1088px) { + .columns.is-variable.is-7-desktop { + --columnGap: 1.75rem; + } +} + +@media screen and (min-width: 1088px) and (max-width: 1279px) { + .columns.is-variable.is-7-desktop-only { + --columnGap: 1.75rem; + } +} + +@media screen and (min-width: 1280px) { + .columns.is-variable.is-7-widescreen { + --columnGap: 1.75rem; + } +} + +@media screen and (min-width: 1280px) and (max-width: 1471px) { + .columns.is-variable.is-7-widescreen-only { + --columnGap: 1.75rem; + } +} + +@media screen and (min-width: 1472px) { + .columns.is-variable.is-7-fullhd { + --columnGap: 1.75rem; + } +} + +.columns.is-variable.is-8 { + --columnGap: 2rem; +} + +@media screen and (max-width: 768px) { + .columns.is-variable.is-8-mobile { + --columnGap: 2rem; + } +} + +@media screen and (min-width: 769px), print { + .columns.is-variable.is-8-tablet { + --columnGap: 2rem; + } +} + +@media screen and (min-width: 769px) and (max-width: 1087px) { + .columns.is-variable.is-8-tablet-only { + --columnGap: 2rem; + } +} + +@media screen and (max-width: 1087px) { + .columns.is-variable.is-8-touch { + --columnGap: 2rem; + } +} + +@media screen and (min-width: 1088px) { + .columns.is-variable.is-8-desktop { + --columnGap: 2rem; + } +} + +@media screen and (min-width: 1088px) and (max-width: 1279px) { + .columns.is-variable.is-8-desktop-only { + --columnGap: 2rem; + } +} + +@media screen and (min-width: 1280px) { + .columns.is-variable.is-8-widescreen { + --columnGap: 2rem; + } +} + +@media screen and (min-width: 1280px) and (max-width: 1471px) { + .columns.is-variable.is-8-widescreen-only { + --columnGap: 2rem; + } +} + +@media screen and (min-width: 1472px) { + .columns.is-variable.is-8-fullhd { + --columnGap: 2rem; + } +} + +.tile { + align-items: stretch; + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + min-height: -webkit-min-content; + min-height: -moz-min-content; + min-height: min-content; +} + +.tile.is-ancestor { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; +} + +.tile.is-ancestor:last-child { + margin-bottom: -0.75rem; +} + +.tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; +} + +.tile.is-child { + margin: 0 !important; +} + +.tile.is-parent { + padding: 0.75rem; +} + +.tile.is-vertical { + flex-direction: column; +} + +.tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; +} + +@media screen and (min-width: 769px), print { + .tile:not(.is-child) { + display: flex; + } + .tile.is-1 { + flex: none; + width: 8.33333%; + } + .tile.is-2 { + flex: none; + width: 16.66667%; + } + .tile.is-3 { + flex: none; + width: 25%; + } + .tile.is-4 { + flex: none; + width: 33.33333%; + } + .tile.is-5 { + flex: none; + width: 41.66667%; + } + .tile.is-6 { + flex: none; + width: 50%; + } + .tile.is-7 { + flex: none; + width: 58.33333%; + } + .tile.is-8 { + flex: none; + width: 66.66667%; + } + .tile.is-9 { + flex: none; + width: 75%; + } + .tile.is-10 { + flex: none; + width: 83.33333%; + } + .tile.is-11 { + flex: none; + width: 91.66667%; + } + .tile.is-12 { + flex: none; + width: 100%; + } +} + +.hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; +} + +.hero .navbar { + background: none; +} + +.hero .tabs ul { + border-bottom: none; +} + +.hero.is-white { + background-color: white; + color: #0a0a0a; +} + +.hero.is-white a:not(.button):not(.dropdown-item):not(.tag), +.hero.is-white strong { + color: inherit; +} + +.hero.is-white .title { + color: #0a0a0a; +} + +.hero.is-white .subtitle { + color: rgba(10, 10, 10, 0.9); +} + +.hero.is-white .subtitle a:not(.button), +.hero.is-white .subtitle strong { + color: #0a0a0a; +} + +@media screen and (max-width: 1087px) { + .hero.is-white .navbar-menu { + background-color: white; + } +} + +.hero.is-white .navbar-item, +.hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); +} + +.hero.is-white a.navbar-item:hover, .hero.is-white a.navbar-item.is-active, +.hero.is-white .navbar-link:hover, +.hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; +} + +.hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; +} + +.hero.is-white .tabs a:hover { + opacity: 1; +} + +.hero.is-white .tabs li.is-active a { + opacity: 1; +} + +.hero.is-white .tabs.is-boxed a, .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; +} + +.hero.is-white .tabs.is-boxed a:hover, .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); +} + +.hero.is-white .tabs.is-boxed li.is-active a, .hero.is-white .tabs.is-boxed li.is-active a:hover, .hero.is-white .tabs.is-toggle li.is-active a, .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; +} + +.hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e6e6e6 0%, white 71%, white 100%); +} + +@media screen and (max-width: 768px) { + .hero.is-white.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #e6e6e6 0%, white 71%, white 100%); + } +} + +.hero.is-black { + background-color: #0a0a0a; + color: white; +} + +.hero.is-black a:not(.button):not(.dropdown-item):not(.tag), +.hero.is-black strong { + color: inherit; +} + +.hero.is-black .title { + color: white; +} + +.hero.is-black .subtitle { + color: rgba(255, 255, 255, 0.9); +} + +.hero.is-black .subtitle a:not(.button), +.hero.is-black .subtitle strong { + color: white; +} + +@media screen and (max-width: 1087px) { + .hero.is-black .navbar-menu { + background-color: #0a0a0a; + } +} + +.hero.is-black .navbar-item, +.hero.is-black .navbar-link { + color: rgba(255, 255, 255, 0.7); +} + +.hero.is-black a.navbar-item:hover, .hero.is-black a.navbar-item.is-active, +.hero.is-black .navbar-link:hover, +.hero.is-black .navbar-link.is-active { + background-color: black; + color: white; +} + +.hero.is-black .tabs a { + color: white; + opacity: 0.9; +} + +.hero.is-black .tabs a:hover { + opacity: 1; +} + +.hero.is-black .tabs li.is-active a { + opacity: 1; +} + +.hero.is-black .tabs.is-boxed a, .hero.is-black .tabs.is-toggle a { + color: white; +} + +.hero.is-black .tabs.is-boxed a:hover, .hero.is-black .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); +} + +.hero.is-black .tabs.is-boxed li.is-active a, .hero.is-black .tabs.is-boxed li.is-active a:hover, .hero.is-black .tabs.is-toggle li.is-active a, .hero.is-black .tabs.is-toggle li.is-active a:hover { + background-color: white; + border-color: white; + color: #0a0a0a; +} + +.hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); +} + +@media screen and (max-width: 768px) { + .hero.is-black.is-bold .navbar-menu { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); + } +} + +.hero.is-light { + background-color: whitesmoke; + color: #363636; +} + +.hero.is-light a:not(.button):not(.dropdown-item):not(.tag), +.hero.is-light strong { + color: inherit; +} + +.hero.is-light .title { + color: #363636; +} + +.hero.is-light .subtitle { + color: rgba(54, 54, 54, 0.9); +} + +.hero.is-light .subtitle a:not(.button), +.hero.is-light .subtitle strong { + color: #363636; +} + +@media screen and (max-width: 1087px) { + .hero.is-light .navbar-menu { + background-color: whitesmoke; + } +} + +.hero.is-light .navbar-item, +.hero.is-light .navbar-link { + color: rgba(54, 54, 54, 0.7); +} + +.hero.is-light a.navbar-item:hover, .hero.is-light a.navbar-item.is-active, +.hero.is-light .navbar-link:hover, +.hero.is-light .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; +} + +.hero.is-light .tabs a { + color: #363636; + opacity: 0.9; +} + +.hero.is-light .tabs a:hover { + opacity: 1; +} + +.hero.is-light .tabs li.is-active a { + opacity: 1; +} + +.hero.is-light .tabs.is-boxed a, .hero.is-light .tabs.is-toggle a { + color: #363636; +} + +.hero.is-light .tabs.is-boxed a:hover, .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); +} + +.hero.is-light .tabs.is-boxed li.is-active a, .hero.is-light .tabs.is-boxed li.is-active a:hover, .hero.is-light .tabs.is-toggle li.is-active a, .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #363636; + border-color: #363636; + color: whitesmoke; +} + +.hero.is-light.is-bold { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); +} + +@media screen and (max-width: 768px) { + .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); + } +} + +.hero.is-dark { + background-color: #363636; + color: whitesmoke; +} + +.hero.is-dark a:not(.button):not(.dropdown-item):not(.tag), +.hero.is-dark strong { + color: inherit; +} + +.hero.is-dark .title { + color: whitesmoke; +} + +.hero.is-dark .subtitle { + color: rgba(245, 245, 245, 0.9); +} + +.hero.is-dark .subtitle a:not(.button), +.hero.is-dark .subtitle strong { + color: whitesmoke; +} + +@media screen and (max-width: 1087px) { + .hero.is-dark .navbar-menu { + background-color: #363636; + } +} + +.hero.is-dark .navbar-item, +.hero.is-dark .navbar-link { + color: rgba(245, 245, 245, 0.7); +} + +.hero.is-dark a.navbar-item:hover, .hero.is-dark a.navbar-item.is-active, +.hero.is-dark .navbar-link:hover, +.hero.is-dark .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; +} + +.hero.is-dark .tabs a { + color: whitesmoke; + opacity: 0.9; +} + +.hero.is-dark .tabs a:hover { + opacity: 1; +} + +.hero.is-dark .tabs li.is-active a { + opacity: 1; +} + +.hero.is-dark .tabs.is-boxed a, .hero.is-dark .tabs.is-toggle a { + color: whitesmoke; +} + +.hero.is-dark .tabs.is-boxed a:hover, .hero.is-dark .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); +} + +.hero.is-dark .tabs.is-boxed li.is-active a, .hero.is-dark .tabs.is-boxed li.is-active a:hover, .hero.is-dark .tabs.is-toggle li.is-active a, .hero.is-dark .tabs.is-toggle li.is-active a:hover { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; +} + +.hero.is-dark.is-bold { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); +} + +@media screen and (max-width: 768px) { + .hero.is-dark.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); + } +} + +.hero.is-primary { + background-color: #00d1b2; + color: #fff; +} + +.hero.is-primary a:not(.button):not(.dropdown-item):not(.tag), +.hero.is-primary strong { + color: inherit; +} + +.hero.is-primary .title { + color: #fff; +} + +.hero.is-primary .subtitle { + color: rgba(255, 255, 255, 0.9); +} + +.hero.is-primary .subtitle a:not(.button), +.hero.is-primary .subtitle strong { + color: #fff; +} + +@media screen and (max-width: 1087px) { + .hero.is-primary .navbar-menu { + background-color: #00d1b2; + } +} + +.hero.is-primary .navbar-item, +.hero.is-primary .navbar-link { + color: rgba(255, 255, 255, 0.7); +} + +.hero.is-primary a.navbar-item:hover, .hero.is-primary a.navbar-item.is-active, +.hero.is-primary .navbar-link:hover, +.hero.is-primary .navbar-link.is-active { + background-color: #00b89c; + color: #fff; +} + +.hero.is-primary .tabs a { + color: #fff; + opacity: 0.9; +} + +.hero.is-primary .tabs a:hover { + opacity: 1; +} + +.hero.is-primary .tabs li.is-active a { + opacity: 1; +} + +.hero.is-primary .tabs.is-boxed a, .hero.is-primary .tabs.is-toggle a { + color: #fff; +} + +.hero.is-primary .tabs.is-boxed a:hover, .hero.is-primary .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); +} + +.hero.is-primary .tabs.is-boxed li.is-active a, .hero.is-primary .tabs.is-boxed li.is-active a:hover, .hero.is-primary .tabs.is-toggle li.is-active a, .hero.is-primary .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #00d1b2; +} + +.hero.is-primary.is-bold { + background-image: linear-gradient(141deg, #009e6c 0%, #00d1b2 71%, #00e7eb 100%); +} + +@media screen and (max-width: 768px) { + .hero.is-primary.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #009e6c 0%, #00d1b2 71%, #00e7eb 100%); + } +} + +.hero.is-link { + background-color: #3273dc; + color: #fff; +} + +.hero.is-link a:not(.button):not(.dropdown-item):not(.tag), +.hero.is-link strong { + color: inherit; +} + +.hero.is-link .title { + color: #fff; +} + +.hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); +} + +.hero.is-link .subtitle a:not(.button), +.hero.is-link .subtitle strong { + color: #fff; +} + +@media screen and (max-width: 1087px) { + .hero.is-link .navbar-menu { + background-color: #3273dc; + } +} + +.hero.is-link .navbar-item, +.hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); +} + +.hero.is-link a.navbar-item:hover, .hero.is-link a.navbar-item.is-active, +.hero.is-link .navbar-link:hover, +.hero.is-link .navbar-link.is-active { + background-color: #2366d1; + color: #fff; +} + +.hero.is-link .tabs a { + color: #fff; + opacity: 0.9; +} + +.hero.is-link .tabs a:hover { + opacity: 1; +} + +.hero.is-link .tabs li.is-active a { + opacity: 1; +} + +.hero.is-link .tabs.is-boxed a, .hero.is-link .tabs.is-toggle a { + color: #fff; +} + +.hero.is-link .tabs.is-boxed a:hover, .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); +} + +.hero.is-link .tabs.is-boxed li.is-active a, .hero.is-link .tabs.is-boxed li.is-active a:hover, .hero.is-link .tabs.is-toggle li.is-active a, .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #3273dc; +} + +.hero.is-link.is-bold { + background-image: linear-gradient(141deg, #1577c6 0%, #3273dc 71%, #4366e5 100%); +} + +@media screen and (max-width: 768px) { + .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1577c6 0%, #3273dc 71%, #4366e5 100%); + } +} + +.hero.is-info { + background-color: #209cee; + color: #fff; +} + +.hero.is-info a:not(.button):not(.dropdown-item):not(.tag), +.hero.is-info strong { + color: inherit; +} + +.hero.is-info .title { + color: #fff; +} + +.hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); +} + +.hero.is-info .subtitle a:not(.button), +.hero.is-info .subtitle strong { + color: #fff; +} + +@media screen and (max-width: 1087px) { + .hero.is-info .navbar-menu { + background-color: #209cee; + } +} + +.hero.is-info .navbar-item, +.hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); +} + +.hero.is-info a.navbar-item:hover, .hero.is-info a.navbar-item.is-active, +.hero.is-info .navbar-link:hover, +.hero.is-info .navbar-link.is-active { + background-color: #118fe4; + color: #fff; +} + +.hero.is-info .tabs a { + color: #fff; + opacity: 0.9; +} + +.hero.is-info .tabs a:hover { + opacity: 1; +} + +.hero.is-info .tabs li.is-active a { + opacity: 1; +} + +.hero.is-info .tabs.is-boxed a, .hero.is-info .tabs.is-toggle a { + color: #fff; +} + +.hero.is-info .tabs.is-boxed a:hover, .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); +} + +.hero.is-info .tabs.is-boxed li.is-active a, .hero.is-info .tabs.is-boxed li.is-active a:hover, .hero.is-info .tabs.is-toggle li.is-active a, .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #209cee; +} + +.hero.is-info.is-bold { + background-image: linear-gradient(141deg, #04a6d7 0%, #209cee 71%, #3287f5 100%); +} + +@media screen and (max-width: 768px) { + .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #04a6d7 0%, #209cee 71%, #3287f5 100%); + } +} + +.hero.is-success { + background-color: #23d160; + color: #fff; +} + +.hero.is-success a:not(.button):not(.dropdown-item):not(.tag), +.hero.is-success strong { + color: inherit; +} + +.hero.is-success .title { + color: #fff; +} + +.hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); +} + +.hero.is-success .subtitle a:not(.button), +.hero.is-success .subtitle strong { + color: #fff; +} + +@media screen and (max-width: 1087px) { + .hero.is-success .navbar-menu { + background-color: #23d160; + } +} + +.hero.is-success .navbar-item, +.hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); +} + +.hero.is-success a.navbar-item:hover, .hero.is-success a.navbar-item.is-active, +.hero.is-success .navbar-link:hover, +.hero.is-success .navbar-link.is-active { + background-color: #20bc56; + color: #fff; +} + +.hero.is-success .tabs a { + color: #fff; + opacity: 0.9; +} + +.hero.is-success .tabs a:hover { + opacity: 1; +} + +.hero.is-success .tabs li.is-active a { + opacity: 1; +} + +.hero.is-success .tabs.is-boxed a, .hero.is-success .tabs.is-toggle a { + color: #fff; +} + +.hero.is-success .tabs.is-boxed a:hover, .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); +} + +.hero.is-success .tabs.is-boxed li.is-active a, .hero.is-success .tabs.is-boxed li.is-active a:hover, .hero.is-success .tabs.is-toggle li.is-active a, .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #23d160; +} + +.hero.is-success.is-bold { + background-image: linear-gradient(141deg, #12af2f 0%, #23d160 71%, #2ce28a 100%); +} + +@media screen and (max-width: 768px) { + .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #12af2f 0%, #23d160 71%, #2ce28a 100%); + } +} + +.hero.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); +} + +.hero.is-warning a:not(.button):not(.dropdown-item):not(.tag), +.hero.is-warning strong { + color: inherit; +} + +.hero.is-warning .title { + color: rgba(0, 0, 0, 0.7); +} + +.hero.is-warning .subtitle { + color: rgba(0, 0, 0, 0.9); +} + +.hero.is-warning .subtitle a:not(.button), +.hero.is-warning .subtitle strong { + color: rgba(0, 0, 0, 0.7); +} + +@media screen and (max-width: 1087px) { + .hero.is-warning .navbar-menu { + background-color: #ffdd57; + } +} + +.hero.is-warning .navbar-item, +.hero.is-warning .navbar-link { + color: rgba(0, 0, 0, 0.7); +} + +.hero.is-warning a.navbar-item:hover, .hero.is-warning a.navbar-item.is-active, +.hero.is-warning .navbar-link:hover, +.hero.is-warning .navbar-link.is-active { + background-color: #ffd83d; + color: rgba(0, 0, 0, 0.7); +} + +.hero.is-warning .tabs a { + color: rgba(0, 0, 0, 0.7); + opacity: 0.9; +} + +.hero.is-warning .tabs a:hover { + opacity: 1; +} + +.hero.is-warning .tabs li.is-active a { + opacity: 1; +} + +.hero.is-warning .tabs.is-boxed a, .hero.is-warning .tabs.is-toggle a { + color: rgba(0, 0, 0, 0.7); +} + +.hero.is-warning .tabs.is-boxed a:hover, .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); +} + +.hero.is-warning .tabs.is-boxed li.is-active a, .hero.is-warning .tabs.is-boxed li.is-active a:hover, .hero.is-warning .tabs.is-toggle li.is-active a, .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: rgba(0, 0, 0, 0.7); + border-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; +} + +.hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #ffaf24 0%, #ffdd57 71%, #fffa70 100%); +} + +@media screen and (max-width: 768px) { + .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #ffaf24 0%, #ffdd57 71%, #fffa70 100%); + } +} + +.hero.is-danger { + background-color: #ff3860; + color: #fff; +} + +.hero.is-danger a:not(.button):not(.dropdown-item):not(.tag), +.hero.is-danger strong { + color: inherit; +} + +.hero.is-danger .title { + color: #fff; +} + +.hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); +} + +.hero.is-danger .subtitle a:not(.button), +.hero.is-danger .subtitle strong { + color: #fff; +} + +@media screen and (max-width: 1087px) { + .hero.is-danger .navbar-menu { + background-color: #ff3860; + } +} + +.hero.is-danger .navbar-item, +.hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); +} + +.hero.is-danger a.navbar-item:hover, .hero.is-danger a.navbar-item.is-active, +.hero.is-danger .navbar-link:hover, +.hero.is-danger .navbar-link.is-active { + background-color: #ff1f4b; + color: #fff; +} + +.hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; +} + +.hero.is-danger .tabs a:hover { + opacity: 1; +} + +.hero.is-danger .tabs li.is-active a { + opacity: 1; +} + +.hero.is-danger .tabs.is-boxed a, .hero.is-danger .tabs.is-toggle a { + color: #fff; +} + +.hero.is-danger .tabs.is-boxed a:hover, .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); +} + +.hero.is-danger .tabs.is-boxed li.is-active a, .hero.is-danger .tabs.is-boxed li.is-active a:hover, .hero.is-danger .tabs.is-toggle li.is-active a, .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #ff3860; +} + +.hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #ff0561 0%, #ff3860 71%, #ff5257 100%); +} + +@media screen and (max-width: 768px) { + .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #ff0561 0%, #ff3860 71%, #ff5257 100%); + } +} + +.hero.is-small .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; +} + +@media screen and (min-width: 769px), print { + .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; + } +} + +@media screen and (min-width: 769px), print { + .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; + } +} + +.hero.is-halfheight .hero-body, .hero.is-fullheight .hero-body, .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; +} + +.hero.is-halfheight .hero-body > .container, .hero.is-fullheight .hero-body > .container, .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; +} + +.hero.is-halfheight { + min-height: 50vh; +} + +.hero.is-fullheight { + min-height: 100vh; +} + +.hero.is-fullheight-with-navbar { + min-height: calc(100vh - 3.25rem); +} + +.hero-video { + overflow: hidden; +} + +.hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + -webkit-transform: translate3d(-50%, -50%, 0); + transform: translate3d(-50%, -50%, 0); +} + +.hero-video.is-transparent { + opacity: 0.3; +} + +@media screen and (max-width: 768px) { + .hero-video { + display: none; + } +} + +.hero-buttons { + margin-top: 1.5rem; +} + +@media screen and (max-width: 768px) { + .hero-buttons .button { + display: flex; + } + .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; + } +} + +@media screen and (min-width: 769px), print { + .hero-buttons { + display: flex; + justify-content: center; + } + .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; + } +} + +.hero-head, +.hero-foot { + flex-grow: 0; + flex-shrink: 0; +} + +.hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; +} + +.section { + padding: 3rem 1.5rem; +} + +@media screen and (min-width: 1088px) { + .section.is-medium { + padding: 9rem 1.5rem; + } + .section.is-large { + padding: 18rem 1.5rem; + } +} + +.footer { + background-color: #fafafa; + padding: 3rem 1.5rem 6rem; +} +/*# sourceMappingURL=bulma.css.map */ \ No newline at end of file diff --git a/cmd/txqr-tester/css/custom.css b/cmd/txqr-tester/css/custom.css new file mode 100644 index 0000000..761850a --- /dev/null +++ b/cmd/txqr-tester/css/custom.css @@ -0,0 +1,25 @@ +body { + padding-left: 10px; + padding-right: 10px; +} + +h1 { + font-family: "Helvetica Neue"; + font-weight: 300; +} + + +/* Dark mode */ +@media (prefers-color-scheme: dark) { + body { + background: #101010 -webkit-gradient(linear, left top, left bottom, from(#050505), to(#101010)) no-repeat; + color: white; + } +} + +/* Light mode */ +@media (prefers-color-scheme: light) { + body { + background: #c0c0c0 -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#f0f0f0)) no-repeat; + } +} diff --git a/cmd/txqr-tester/image.go b/cmd/txqr-tester/image.go new file mode 100644 index 0000000..2fa5222 --- /dev/null +++ b/cmd/txqr-tester/image.go @@ -0,0 +1,31 @@ +package main + +import ( + "bytes" + "encoding/base64" + "fmt" + "image" + "image/png" + + "github.com/gopherjs/vecty" + "github.com/gopherjs/vecty/elem" + "github.com/gopherjs/vecty/prop" +) + +// renderImage is a helper for converting image.Image into vecty-compatible +// component displaying this image. +func renderImage(img image.Image) vecty.ComponentOrHTML { + var buf bytes.Buffer + err := png.Encode(&buf, img) + if err != nil { + // TODO(divan): display the error nicely (why this can even happen?) + return elem.Div(vecty.Text(fmt.Sprintf("png error: %v", err))) + } + src := base64.StdEncoding.EncodeToString(buf.Bytes()) + src = "data:image/png;base64," + src // prepare to be used as data object in src property + return elem.Image( + vecty.Markup( + prop.Src(src), + ), + ) +} diff --git a/cmd/txqr-tester/index.html b/cmd/txqr-tester/index.html new file mode 100644 index 0000000..7f2bff9 --- /dev/null +++ b/cmd/txqr-tester/index.html @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/cmd/txqr-tester/keys.go b/cmd/txqr-tester/keys.go new file mode 100644 index 0000000..ce3afe3 --- /dev/null +++ b/cmd/txqr-tester/keys.go @@ -0,0 +1,16 @@ +package main + +import ( + "fmt" + + "github.com/gopherjs/vecty" +) + +// KeyListener implements listener for keydown events. +func (a *App) KeyListener(e *vecty.Event) { + key := e.Get("key").String() + switch key { + case " ": + fmt.Println("Space") + } +} diff --git a/cmd/txqr-tester/main.go b/cmd/txqr-tester/main.go new file mode 100644 index 0000000..8f4c268 --- /dev/null +++ b/cmd/txqr-tester/main.go @@ -0,0 +1,15 @@ +package main + +import ( + "github.com/gopherjs/vecty" +) + +func main() { + app := NewApp() + + vecty.SetTitle("TXQR Automated Tester") + vecty.AddStylesheet("css/bulma.css") + vecty.AddStylesheet("css/bulma-extensions.min.css") + vecty.AddStylesheet("css/custom.css") + vecty.RenderBody(app) +} diff --git a/cmd/txqr-tester/session.go b/cmd/txqr-tester/session.go new file mode 100644 index 0000000..6632c96 --- /dev/null +++ b/cmd/txqr-tester/session.go @@ -0,0 +1,23 @@ +package main + +// SessionState defines test session state. +type SessionState int + +const ( + StateNew SessionState = iota // default state + StateStarted + StatePaused + StateFinished + StateFailed +) + +// Session represents a single test session. +type Session struct { + state SessionState +} + +// NewSession inits new test session. +// Default State is StateNew. +func NewSession() *Session { + return &Session{} +} diff --git a/cmd/txqr-tester/start_qr.go b/cmd/txqr-tester/start_qr.go new file mode 100644 index 0000000..f529f16 --- /dev/null +++ b/cmd/txqr-tester/start_qr.go @@ -0,0 +1,46 @@ +package main + +import ( + "fmt" + + "github.com/divan/txqr/qr" + "github.com/gopherjs/vecty" + "github.com/gopherjs/vecty/elem" +) + +// StartQR renders the QR code with information needed to start +// a new testing from smartphone. +func (a *App) StartQR() vecty.ComponentOrHTML { + img, err := qr.Encode("test", 500, qr.Medium) + if err != nil { + // TODO(divan): display the error nicely (why this can even happen?) + return elem.Div(vecty.Text(fmt.Sprintf("qr error: %v", err))) + } + return elem.Div( + vecty.Markup( + vecty.Class("card"), + ), + elem.Div( + vecty.Markup( + vecty.Class("card-header"), + ), + elem.Div( + vecty.Markup( + vecty.Class("card-header-title", "is-centered"), + ), + elem.Heading1( + vecty.Markup( + vecty.Class("has-text-weight-bold"), + ), + vecty.Text("Scan QR code to start testing"), + ), + ), + ), + elem.Div( + vecty.Markup( + vecty.Class("card-image", "has-text-centered"), + ), + renderImage(img), + ), + ) +} diff --git a/cmd/txqr-tester/txqr-tester.js b/cmd/txqr-tester/txqr-tester.js new file mode 100644 index 0000000..8b4b15f --- /dev/null +++ b/cmd/txqr-tester/txqr-tester.js @@ -0,0 +1,41652 @@ +"use strict"; +(function() { + +Error.stackTraceLimit = Infinity; + +var $global, $module; +if (typeof window !== "undefined") { /* web page */ + $global = window; +} else if (typeof self !== "undefined") { /* web worker */ + $global = self; +} else if (typeof global !== "undefined") { /* Node.js */ + $global = global; + $global.require = require; +} else { /* others (e.g. Nashorn) */ + $global = this; +} + +if ($global === undefined || $global.Array === undefined) { + throw new Error("no global object found"); +} +if (typeof module !== "undefined") { + $module = module; +} + +var $packages = {}, $idCounter = 0; +var $keys = function(m) { return m ? Object.keys(m) : []; }; +var $flushConsole = function() {}; +var $throwRuntimeError; /* set by package "runtime" */ +var $throwNilPointerError = function() { $throwRuntimeError("invalid memory address or nil pointer dereference"); }; +var $call = function(fn, rcvr, args) { return fn.apply(rcvr, args); }; +var $makeFunc = function(fn) { return function() { return $externalize(fn(this, new ($sliceType($jsObjectPtr))($global.Array.prototype.slice.call(arguments, []))), $emptyInterface); }; }; +var $unused = function(v) {}; + +var $mapArray = function(array, f) { + var newArray = new array.constructor(array.length); + for (var i = 0; i < array.length; i++) { + newArray[i] = f(array[i]); + } + return newArray; +}; + +var $methodVal = function(recv, name) { + var vals = recv.$methodVals || {}; + recv.$methodVals = vals; /* noop for primitives */ + var f = vals[name]; + if (f !== undefined) { + return f; + } + var method = recv[name]; + f = function() { + $stackDepthOffset--; + try { + return method.apply(recv, arguments); + } finally { + $stackDepthOffset++; + } + }; + vals[name] = f; + return f; +}; + +var $methodExpr = function(typ, name) { + var method = typ.prototype[name]; + if (method.$expr === undefined) { + method.$expr = function() { + $stackDepthOffset--; + try { + if (typ.wrapped) { + arguments[0] = new typ(arguments[0]); + } + return Function.call.apply(method, arguments); + } finally { + $stackDepthOffset++; + } + }; + } + return method.$expr; +}; + +var $ifaceMethodExprs = {}; +var $ifaceMethodExpr = function(name) { + var expr = $ifaceMethodExprs["$" + name]; + if (expr === undefined) { + expr = $ifaceMethodExprs["$" + name] = function() { + $stackDepthOffset--; + try { + return Function.call.apply(arguments[0][name], arguments); + } finally { + $stackDepthOffset++; + } + }; + } + return expr; +}; + +var $subslice = function(slice, low, high, max) { + if (high === undefined) { + high = slice.$length; + } + if (max === undefined) { + max = slice.$capacity; + } + if (low < 0 || high < low || max < high || high > slice.$capacity || max > slice.$capacity) { + $throwRuntimeError("slice bounds out of range"); + } + if (slice === slice.constructor.nil) { + return slice; + } + var s = new slice.constructor(slice.$array); + s.$offset = slice.$offset + low; + s.$length = high - low; + s.$capacity = max - low; + return s; +}; + +var $substring = function(str, low, high) { + if (low < 0 || high < low || high > str.length) { + $throwRuntimeError("slice bounds out of range"); + } + return str.substring(low, high); +}; + +var $sliceToArray = function(slice) { + if (slice.$array.constructor !== Array) { + return slice.$array.subarray(slice.$offset, slice.$offset + slice.$length); + } + return slice.$array.slice(slice.$offset, slice.$offset + slice.$length); +}; + +var $decodeRune = function(str, pos) { + var c0 = str.charCodeAt(pos); + + if (c0 < 0x80) { + return [c0, 1]; + } + + if (c0 !== c0 || c0 < 0xC0) { + return [0xFFFD, 1]; + } + + var c1 = str.charCodeAt(pos + 1); + if (c1 !== c1 || c1 < 0x80 || 0xC0 <= c1) { + return [0xFFFD, 1]; + } + + if (c0 < 0xE0) { + var r = (c0 & 0x1F) << 6 | (c1 & 0x3F); + if (r <= 0x7F) { + return [0xFFFD, 1]; + } + return [r, 2]; + } + + var c2 = str.charCodeAt(pos + 2); + if (c2 !== c2 || c2 < 0x80 || 0xC0 <= c2) { + return [0xFFFD, 1]; + } + + if (c0 < 0xF0) { + var r = (c0 & 0x0F) << 12 | (c1 & 0x3F) << 6 | (c2 & 0x3F); + if (r <= 0x7FF) { + return [0xFFFD, 1]; + } + if (0xD800 <= r && r <= 0xDFFF) { + return [0xFFFD, 1]; + } + return [r, 3]; + } + + var c3 = str.charCodeAt(pos + 3); + if (c3 !== c3 || c3 < 0x80 || 0xC0 <= c3) { + return [0xFFFD, 1]; + } + + if (c0 < 0xF8) { + var r = (c0 & 0x07) << 18 | (c1 & 0x3F) << 12 | (c2 & 0x3F) << 6 | (c3 & 0x3F); + if (r <= 0xFFFF || 0x10FFFF < r) { + return [0xFFFD, 1]; + } + return [r, 4]; + } + + return [0xFFFD, 1]; +}; + +var $encodeRune = function(r) { + if (r < 0 || r > 0x10FFFF || (0xD800 <= r && r <= 0xDFFF)) { + r = 0xFFFD; + } + if (r <= 0x7F) { + return String.fromCharCode(r); + } + if (r <= 0x7FF) { + return String.fromCharCode(0xC0 | r >> 6, 0x80 | (r & 0x3F)); + } + if (r <= 0xFFFF) { + return String.fromCharCode(0xE0 | r >> 12, 0x80 | (r >> 6 & 0x3F), 0x80 | (r & 0x3F)); + } + return String.fromCharCode(0xF0 | r >> 18, 0x80 | (r >> 12 & 0x3F), 0x80 | (r >> 6 & 0x3F), 0x80 | (r & 0x3F)); +}; + +var $stringToBytes = function(str) { + var array = new Uint8Array(str.length); + for (var i = 0; i < str.length; i++) { + array[i] = str.charCodeAt(i); + } + return array; +}; + +var $bytesToString = function(slice) { + if (slice.$length === 0) { + return ""; + } + var str = ""; + for (var i = 0; i < slice.$length; i += 10000) { + str += String.fromCharCode.apply(undefined, slice.$array.subarray(slice.$offset + i, slice.$offset + Math.min(slice.$length, i + 10000))); + } + return str; +}; + +var $stringToRunes = function(str) { + var array = new Int32Array(str.length); + var rune, j = 0; + for (var i = 0; i < str.length; i += rune[1], j++) { + rune = $decodeRune(str, i); + array[j] = rune[0]; + } + return array.subarray(0, j); +}; + +var $runesToString = function(slice) { + if (slice.$length === 0) { + return ""; + } + var str = ""; + for (var i = 0; i < slice.$length; i++) { + str += $encodeRune(slice.$array[slice.$offset + i]); + } + return str; +}; + +var $copyString = function(dst, src) { + var n = Math.min(src.length, dst.$length); + for (var i = 0; i < n; i++) { + dst.$array[dst.$offset + i] = src.charCodeAt(i); + } + return n; +}; + +var $copySlice = function(dst, src) { + var n = Math.min(src.$length, dst.$length); + $copyArray(dst.$array, src.$array, dst.$offset, src.$offset, n, dst.constructor.elem); + return n; +}; + +var $copyArray = function(dst, src, dstOffset, srcOffset, n, elem) { + if (n === 0 || (dst === src && dstOffset === srcOffset)) { + return; + } + + if (src.subarray) { + dst.set(src.subarray(srcOffset, srcOffset + n), dstOffset); + return; + } + + switch (elem.kind) { + case $kindArray: + case $kindStruct: + if (dst === src && dstOffset > srcOffset) { + for (var i = n - 1; i >= 0; i--) { + elem.copy(dst[dstOffset + i], src[srcOffset + i]); + } + return; + } + for (var i = 0; i < n; i++) { + elem.copy(dst[dstOffset + i], src[srcOffset + i]); + } + return; + } + + if (dst === src && dstOffset > srcOffset) { + for (var i = n - 1; i >= 0; i--) { + dst[dstOffset + i] = src[srcOffset + i]; + } + return; + } + for (var i = 0; i < n; i++) { + dst[dstOffset + i] = src[srcOffset + i]; + } +}; + +var $clone = function(src, type) { + var clone = type.zero(); + type.copy(clone, src); + return clone; +}; + +var $pointerOfStructConversion = function(obj, type) { + if(obj.$proxies === undefined) { + obj.$proxies = {}; + obj.$proxies[obj.constructor.string] = obj; + } + var proxy = obj.$proxies[type.string]; + if (proxy === undefined) { + var properties = {}; + for (var i = 0; i < type.elem.fields.length; i++) { + (function(fieldProp) { + properties[fieldProp] = { + get: function() { return obj[fieldProp]; }, + set: function(value) { obj[fieldProp] = value; } + }; + })(type.elem.fields[i].prop); + } + proxy = Object.create(type.prototype, properties); + proxy.$val = proxy; + obj.$proxies[type.string] = proxy; + proxy.$proxies = obj.$proxies; + } + return proxy; +}; + +var $append = function(slice) { + return $internalAppend(slice, arguments, 1, arguments.length - 1); +}; + +var $appendSlice = function(slice, toAppend) { + if (toAppend.constructor === String) { + var bytes = $stringToBytes(toAppend); + return $internalAppend(slice, bytes, 0, bytes.length); + } + return $internalAppend(slice, toAppend.$array, toAppend.$offset, toAppend.$length); +}; + +var $internalAppend = function(slice, array, offset, length) { + if (length === 0) { + return slice; + } + + var newArray = slice.$array; + var newOffset = slice.$offset; + var newLength = slice.$length + length; + var newCapacity = slice.$capacity; + + if (newLength > newCapacity) { + newOffset = 0; + newCapacity = Math.max(newLength, slice.$capacity < 1024 ? slice.$capacity * 2 : Math.floor(slice.$capacity * 5 / 4)); + + if (slice.$array.constructor === Array) { + newArray = slice.$array.slice(slice.$offset, slice.$offset + slice.$length); + newArray.length = newCapacity; + var zero = slice.constructor.elem.zero; + for (var i = slice.$length; i < newCapacity; i++) { + newArray[i] = zero(); + } + } else { + newArray = new slice.$array.constructor(newCapacity); + newArray.set(slice.$array.subarray(slice.$offset, slice.$offset + slice.$length)); + } + } + + $copyArray(newArray, array, newOffset + slice.$length, offset, length, slice.constructor.elem); + + var newSlice = new slice.constructor(newArray); + newSlice.$offset = newOffset; + newSlice.$length = newLength; + newSlice.$capacity = newCapacity; + return newSlice; +}; + +var $equal = function(a, b, type) { + if (type === $jsObjectPtr) { + return a === b; + } + switch (type.kind) { + case $kindComplex64: + case $kindComplex128: + return a.$real === b.$real && a.$imag === b.$imag; + case $kindInt64: + case $kindUint64: + return a.$high === b.$high && a.$low === b.$low; + case $kindArray: + if (a.length !== b.length) { + return false; + } + for (var i = 0; i < a.length; i++) { + if (!$equal(a[i], b[i], type.elem)) { + return false; + } + } + return true; + case $kindStruct: + for (var i = 0; i < type.fields.length; i++) { + var f = type.fields[i]; + if (!$equal(a[f.prop], b[f.prop], f.typ)) { + return false; + } + } + return true; + case $kindInterface: + return $interfaceIsEqual(a, b); + default: + return a === b; + } +}; + +var $interfaceIsEqual = function(a, b) { + if (a === $ifaceNil || b === $ifaceNil) { + return a === b; + } + if (a.constructor !== b.constructor) { + return false; + } + if (a.constructor === $jsObjectPtr) { + return a.object === b.object; + } + if (!a.constructor.comparable) { + $throwRuntimeError("comparing uncomparable type " + a.constructor.string); + } + return $equal(a.$val, b.$val, a.constructor); +}; + +var $min = Math.min; +var $mod = function(x, y) { return x % y; }; +var $parseInt = parseInt; +var $parseFloat = function(f) { + if (f !== undefined && f !== null && f.constructor === Number) { + return f; + } + return parseFloat(f); +}; + +var $froundBuf = new Float32Array(1); +var $fround = Math.fround || function(f) { + $froundBuf[0] = f; + return $froundBuf[0]; +}; + +var $imul = Math.imul || function(a, b) { + var ah = (a >>> 16) & 0xffff; + var al = a & 0xffff; + var bh = (b >>> 16) & 0xffff; + var bl = b & 0xffff; + return ((al * bl) + (((ah * bl + al * bh) << 16) >>> 0) >> 0); +}; + +var $floatKey = function(f) { + if (f !== f) { + $idCounter++; + return "NaN$" + $idCounter; + } + return String(f); +}; + +var $flatten64 = function(x) { + return x.$high * 4294967296 + x.$low; +}; + +var $shiftLeft64 = function(x, y) { + if (y === 0) { + return x; + } + if (y < 32) { + return new x.constructor(x.$high << y | x.$low >>> (32 - y), (x.$low << y) >>> 0); + } + if (y < 64) { + return new x.constructor(x.$low << (y - 32), 0); + } + return new x.constructor(0, 0); +}; + +var $shiftRightInt64 = function(x, y) { + if (y === 0) { + return x; + } + if (y < 32) { + return new x.constructor(x.$high >> y, (x.$low >>> y | x.$high << (32 - y)) >>> 0); + } + if (y < 64) { + return new x.constructor(x.$high >> 31, (x.$high >> (y - 32)) >>> 0); + } + if (x.$high < 0) { + return new x.constructor(-1, 4294967295); + } + return new x.constructor(0, 0); +}; + +var $shiftRightUint64 = function(x, y) { + if (y === 0) { + return x; + } + if (y < 32) { + return new x.constructor(x.$high >>> y, (x.$low >>> y | x.$high << (32 - y)) >>> 0); + } + if (y < 64) { + return new x.constructor(0, x.$high >>> (y - 32)); + } + return new x.constructor(0, 0); +}; + +var $mul64 = function(x, y) { + var high = 0, low = 0; + if ((y.$low & 1) !== 0) { + high = x.$high; + low = x.$low; + } + for (var i = 1; i < 32; i++) { + if ((y.$low & 1<>> (32 - i); + low += (x.$low << i) >>> 0; + } + } + for (var i = 0; i < 32; i++) { + if ((y.$high & 1< yHigh) || (xHigh === yHigh && xLow > yLow))) { + yHigh = (yHigh << 1 | yLow >>> 31) >>> 0; + yLow = (yLow << 1) >>> 0; + n++; + } + for (var i = 0; i <= n; i++) { + high = high << 1 | low >>> 31; + low = (low << 1) >>> 0; + if ((xHigh > yHigh) || (xHigh === yHigh && xLow >= yLow)) { + xHigh = xHigh - yHigh; + xLow = xLow - yLow; + if (xLow < 0) { + xHigh--; + xLow += 4294967296; + } + low++; + if (low === 4294967296) { + high++; + low = 0; + } + } + yLow = (yLow >>> 1 | yHigh << (32 - 1)) >>> 0; + yHigh = yHigh >>> 1; + } + + if (returnRemainder) { + return new x.constructor(xHigh * rs, xLow * rs); + } + return new x.constructor(high * s, low * s); +}; + +var $divComplex = function(n, d) { + var ninf = n.$real === Infinity || n.$real === -Infinity || n.$imag === Infinity || n.$imag === -Infinity; + var dinf = d.$real === Infinity || d.$real === -Infinity || d.$imag === Infinity || d.$imag === -Infinity; + var nnan = !ninf && (n.$real !== n.$real || n.$imag !== n.$imag); + var dnan = !dinf && (d.$real !== d.$real || d.$imag !== d.$imag); + if(nnan || dnan) { + return new n.constructor(NaN, NaN); + } + if (ninf && !dinf) { + return new n.constructor(Infinity, Infinity); + } + if (!ninf && dinf) { + return new n.constructor(0, 0); + } + if (d.$real === 0 && d.$imag === 0) { + if (n.$real === 0 && n.$imag === 0) { + return new n.constructor(NaN, NaN); + } + return new n.constructor(Infinity, Infinity); + } + var a = Math.abs(d.$real); + var b = Math.abs(d.$imag); + if (a <= b) { + var ratio = d.$real / d.$imag; + var denom = d.$real * ratio + d.$imag; + return new n.constructor((n.$real * ratio + n.$imag) / denom, (n.$imag * ratio - n.$real) / denom); + } + var ratio = d.$imag / d.$real; + var denom = d.$imag * ratio + d.$real; + return new n.constructor((n.$imag * ratio + n.$real) / denom, (n.$imag - n.$real * ratio) / denom); +}; + +var $kindBool = 1; +var $kindInt = 2; +var $kindInt8 = 3; +var $kindInt16 = 4; +var $kindInt32 = 5; +var $kindInt64 = 6; +var $kindUint = 7; +var $kindUint8 = 8; +var $kindUint16 = 9; +var $kindUint32 = 10; +var $kindUint64 = 11; +var $kindUintptr = 12; +var $kindFloat32 = 13; +var $kindFloat64 = 14; +var $kindComplex64 = 15; +var $kindComplex128 = 16; +var $kindArray = 17; +var $kindChan = 18; +var $kindFunc = 19; +var $kindInterface = 20; +var $kindMap = 21; +var $kindPtr = 22; +var $kindSlice = 23; +var $kindString = 24; +var $kindStruct = 25; +var $kindUnsafePointer = 26; + +var $methodSynthesizers = []; +var $addMethodSynthesizer = function(f) { + if ($methodSynthesizers === null) { + f(); + return; + } + $methodSynthesizers.push(f); +}; +var $synthesizeMethods = function() { + $methodSynthesizers.forEach(function(f) { f(); }); + $methodSynthesizers = null; +}; + +var $ifaceKeyFor = function(x) { + if (x === $ifaceNil) { + return 'nil'; + } + var c = x.constructor; + return c.string + '$' + c.keyFor(x.$val); +}; + +var $identity = function(x) { return x; }; + +var $typeIDCounter = 0; + +var $idKey = function(x) { + if (x.$id === undefined) { + $idCounter++; + x.$id = $idCounter; + } + return String(x.$id); +}; + +var $newType = function(size, kind, string, named, pkg, exported, constructor) { + var typ; + switch(kind) { + case $kindBool: + case $kindInt: + case $kindInt8: + case $kindInt16: + case $kindInt32: + case $kindUint: + case $kindUint8: + case $kindUint16: + case $kindUint32: + case $kindUintptr: + case $kindUnsafePointer: + typ = function(v) { this.$val = v; }; + typ.wrapped = true; + typ.keyFor = $identity; + break; + + case $kindString: + typ = function(v) { this.$val = v; }; + typ.wrapped = true; + typ.keyFor = function(x) { return "$" + x; }; + break; + + case $kindFloat32: + case $kindFloat64: + typ = function(v) { this.$val = v; }; + typ.wrapped = true; + typ.keyFor = function(x) { return $floatKey(x); }; + break; + + case $kindInt64: + typ = function(high, low) { + this.$high = (high + Math.floor(Math.ceil(low) / 4294967296)) >> 0; + this.$low = low >>> 0; + this.$val = this; + }; + typ.keyFor = function(x) { return x.$high + "$" + x.$low; }; + break; + + case $kindUint64: + typ = function(high, low) { + this.$high = (high + Math.floor(Math.ceil(low) / 4294967296)) >>> 0; + this.$low = low >>> 0; + this.$val = this; + }; + typ.keyFor = function(x) { return x.$high + "$" + x.$low; }; + break; + + case $kindComplex64: + typ = function(real, imag) { + this.$real = $fround(real); + this.$imag = $fround(imag); + this.$val = this; + }; + typ.keyFor = function(x) { return x.$real + "$" + x.$imag; }; + break; + + case $kindComplex128: + typ = function(real, imag) { + this.$real = real; + this.$imag = imag; + this.$val = this; + }; + typ.keyFor = function(x) { return x.$real + "$" + x.$imag; }; + break; + + case $kindArray: + typ = function(v) { this.$val = v; }; + typ.wrapped = true; + typ.ptr = $newType(4, $kindPtr, "*" + string, false, "", false, function(array) { + this.$get = function() { return array; }; + this.$set = function(v) { typ.copy(this, v); }; + this.$val = array; + }); + typ.init = function(elem, len) { + typ.elem = elem; + typ.len = len; + typ.comparable = elem.comparable; + typ.keyFor = function(x) { + return Array.prototype.join.call($mapArray(x, function(e) { + return String(elem.keyFor(e)).replace(/\\/g, "\\\\").replace(/\$/g, "\\$"); + }), "$"); + }; + typ.copy = function(dst, src) { + $copyArray(dst, src, 0, 0, src.length, elem); + }; + typ.ptr.init(typ); + Object.defineProperty(typ.ptr.nil, "nilCheck", { get: $throwNilPointerError }); + }; + break; + + case $kindChan: + typ = function(v) { this.$val = v; }; + typ.wrapped = true; + typ.keyFor = $idKey; + typ.init = function(elem, sendOnly, recvOnly) { + typ.elem = elem; + typ.sendOnly = sendOnly; + typ.recvOnly = recvOnly; + }; + break; + + case $kindFunc: + typ = function(v) { this.$val = v; }; + typ.wrapped = true; + typ.init = function(params, results, variadic) { + typ.params = params; + typ.results = results; + typ.variadic = variadic; + typ.comparable = false; + }; + break; + + case $kindInterface: + typ = { implementedBy: {}, missingMethodFor: {} }; + typ.keyFor = $ifaceKeyFor; + typ.init = function(methods) { + typ.methods = methods; + methods.forEach(function(m) { + $ifaceNil[m.prop] = $throwNilPointerError; + }); + }; + break; + + case $kindMap: + typ = function(v) { this.$val = v; }; + typ.wrapped = true; + typ.init = function(key, elem) { + typ.key = key; + typ.elem = elem; + typ.comparable = false; + }; + break; + + case $kindPtr: + typ = constructor || function(getter, setter, target) { + this.$get = getter; + this.$set = setter; + this.$target = target; + this.$val = this; + }; + typ.keyFor = $idKey; + typ.init = function(elem) { + typ.elem = elem; + typ.wrapped = (elem.kind === $kindArray); + typ.nil = new typ($throwNilPointerError, $throwNilPointerError); + }; + break; + + case $kindSlice: + typ = function(array) { + if (array.constructor !== typ.nativeArray) { + array = new typ.nativeArray(array); + } + this.$array = array; + this.$offset = 0; + this.$length = array.length; + this.$capacity = array.length; + this.$val = this; + }; + typ.init = function(elem) { + typ.elem = elem; + typ.comparable = false; + typ.nativeArray = $nativeArray(elem.kind); + typ.nil = new typ([]); + }; + break; + + case $kindStruct: + typ = function(v) { this.$val = v; }; + typ.wrapped = true; + typ.ptr = $newType(4, $kindPtr, "*" + string, false, pkg, exported, constructor); + typ.ptr.elem = typ; + typ.ptr.prototype.$get = function() { return this; }; + typ.ptr.prototype.$set = function(v) { typ.copy(this, v); }; + typ.init = function(pkgPath, fields) { + typ.pkgPath = pkgPath; + typ.fields = fields; + fields.forEach(function(f) { + if (!f.typ.comparable) { + typ.comparable = false; + } + }); + typ.keyFor = function(x) { + var val = x.$val; + return $mapArray(fields, function(f) { + return String(f.typ.keyFor(val[f.prop])).replace(/\\/g, "\\\\").replace(/\$/g, "\\$"); + }).join("$"); + }; + typ.copy = function(dst, src) { + for (var i = 0; i < fields.length; i++) { + var f = fields[i]; + switch (f.typ.kind) { + case $kindArray: + case $kindStruct: + f.typ.copy(dst[f.prop], src[f.prop]); + continue; + default: + dst[f.prop] = src[f.prop]; + continue; + } + } + }; + /* nil value */ + var properties = {}; + fields.forEach(function(f) { + properties[f.prop] = { get: $throwNilPointerError, set: $throwNilPointerError }; + }); + typ.ptr.nil = Object.create(constructor.prototype, properties); + typ.ptr.nil.$val = typ.ptr.nil; + /* methods for embedded fields */ + $addMethodSynthesizer(function() { + var synthesizeMethod = function(target, m, f) { + if (target.prototype[m.prop] !== undefined) { return; } + target.prototype[m.prop] = function() { + var v = this.$val[f.prop]; + if (f.typ === $jsObjectPtr) { + v = new $jsObjectPtr(v); + } + if (v.$val === undefined) { + v = new f.typ(v); + } + return v[m.prop].apply(v, arguments); + }; + }; + fields.forEach(function(f) { + if (f.embedded) { + $methodSet(f.typ).forEach(function(m) { + synthesizeMethod(typ, m, f); + synthesizeMethod(typ.ptr, m, f); + }); + $methodSet($ptrType(f.typ)).forEach(function(m) { + synthesizeMethod(typ.ptr, m, f); + }); + } + }); + }); + }; + break; + + default: + $panic(new $String("invalid kind: " + kind)); + } + + switch (kind) { + case $kindBool: + case $kindMap: + typ.zero = function() { return false; }; + break; + + case $kindInt: + case $kindInt8: + case $kindInt16: + case $kindInt32: + case $kindUint: + case $kindUint8 : + case $kindUint16: + case $kindUint32: + case $kindUintptr: + case $kindUnsafePointer: + case $kindFloat32: + case $kindFloat64: + typ.zero = function() { return 0; }; + break; + + case $kindString: + typ.zero = function() { return ""; }; + break; + + case $kindInt64: + case $kindUint64: + case $kindComplex64: + case $kindComplex128: + var zero = new typ(0, 0); + typ.zero = function() { return zero; }; + break; + + case $kindPtr: + case $kindSlice: + typ.zero = function() { return typ.nil; }; + break; + + case $kindChan: + typ.zero = function() { return $chanNil; }; + break; + + case $kindFunc: + typ.zero = function() { return $throwNilPointerError; }; + break; + + case $kindInterface: + typ.zero = function() { return $ifaceNil; }; + break; + + case $kindArray: + typ.zero = function() { + var arrayClass = $nativeArray(typ.elem.kind); + if (arrayClass !== Array) { + return new arrayClass(typ.len); + } + var array = new Array(typ.len); + for (var i = 0; i < typ.len; i++) { + array[i] = typ.elem.zero(); + } + return array; + }; + break; + + case $kindStruct: + typ.zero = function() { return new typ.ptr(); }; + break; + + default: + $panic(new $String("invalid kind: " + kind)); + } + + typ.id = $typeIDCounter; + $typeIDCounter++; + typ.size = size; + typ.kind = kind; + typ.string = string; + typ.named = named; + typ.pkg = pkg; + typ.exported = exported; + typ.methods = []; + typ.methodSetCache = null; + typ.comparable = true; + return typ; +}; + +var $methodSet = function(typ) { + if (typ.methodSetCache !== null) { + return typ.methodSetCache; + } + var base = {}; + + var isPtr = (typ.kind === $kindPtr); + if (isPtr && typ.elem.kind === $kindInterface) { + typ.methodSetCache = []; + return []; + } + + var current = [{typ: isPtr ? typ.elem : typ, indirect: isPtr}]; + + var seen = {}; + + while (current.length > 0) { + var next = []; + var mset = []; + + current.forEach(function(e) { + if (seen[e.typ.string]) { + return; + } + seen[e.typ.string] = true; + + if (e.typ.named) { + mset = mset.concat(e.typ.methods); + if (e.indirect) { + mset = mset.concat($ptrType(e.typ).methods); + } + } + + switch (e.typ.kind) { + case $kindStruct: + e.typ.fields.forEach(function(f) { + if (f.embedded) { + var fTyp = f.typ; + var fIsPtr = (fTyp.kind === $kindPtr); + next.push({typ: fIsPtr ? fTyp.elem : fTyp, indirect: e.indirect || fIsPtr}); + } + }); + break; + + case $kindInterface: + mset = mset.concat(e.typ.methods); + break; + } + }); + + mset.forEach(function(m) { + if (base[m.name] === undefined) { + base[m.name] = m; + } + }); + + current = next; + } + + typ.methodSetCache = []; + Object.keys(base).sort().forEach(function(name) { + typ.methodSetCache.push(base[name]); + }); + return typ.methodSetCache; +}; + +var $Bool = $newType( 1, $kindBool, "bool", true, "", false, null); +var $Int = $newType( 4, $kindInt, "int", true, "", false, null); +var $Int8 = $newType( 1, $kindInt8, "int8", true, "", false, null); +var $Int16 = $newType( 2, $kindInt16, "int16", true, "", false, null); +var $Int32 = $newType( 4, $kindInt32, "int32", true, "", false, null); +var $Int64 = $newType( 8, $kindInt64, "int64", true, "", false, null); +var $Uint = $newType( 4, $kindUint, "uint", true, "", false, null); +var $Uint8 = $newType( 1, $kindUint8, "uint8", true, "", false, null); +var $Uint16 = $newType( 2, $kindUint16, "uint16", true, "", false, null); +var $Uint32 = $newType( 4, $kindUint32, "uint32", true, "", false, null); +var $Uint64 = $newType( 8, $kindUint64, "uint64", true, "", false, null); +var $Uintptr = $newType( 4, $kindUintptr, "uintptr", true, "", false, null); +var $Float32 = $newType( 4, $kindFloat32, "float32", true, "", false, null); +var $Float64 = $newType( 8, $kindFloat64, "float64", true, "", false, null); +var $Complex64 = $newType( 8, $kindComplex64, "complex64", true, "", false, null); +var $Complex128 = $newType(16, $kindComplex128, "complex128", true, "", false, null); +var $String = $newType( 8, $kindString, "string", true, "", false, null); +var $UnsafePointer = $newType( 4, $kindUnsafePointer, "unsafe.Pointer", true, "", false, null); + +var $nativeArray = function(elemKind) { + switch (elemKind) { + case $kindInt: + return Int32Array; + case $kindInt8: + return Int8Array; + case $kindInt16: + return Int16Array; + case $kindInt32: + return Int32Array; + case $kindUint: + return Uint32Array; + case $kindUint8: + return Uint8Array; + case $kindUint16: + return Uint16Array; + case $kindUint32: + return Uint32Array; + case $kindUintptr: + return Uint32Array; + case $kindFloat32: + return Float32Array; + case $kindFloat64: + return Float64Array; + default: + return Array; + } +}; +var $toNativeArray = function(elemKind, array) { + var nativeArray = $nativeArray(elemKind); + if (nativeArray === Array) { + return array; + } + return new nativeArray(array); +}; +var $arrayTypes = {}; +var $arrayType = function(elem, len) { + var typeKey = elem.id + "$" + len; + var typ = $arrayTypes[typeKey]; + if (typ === undefined) { + typ = $newType(12, $kindArray, "[" + len + "]" + elem.string, false, "", false, null); + $arrayTypes[typeKey] = typ; + typ.init(elem, len); + } + return typ; +}; + +var $chanType = function(elem, sendOnly, recvOnly) { + var string = (recvOnly ? "<-" : "") + "chan" + (sendOnly ? "<- " : " ") + elem.string; + var field = sendOnly ? "SendChan" : (recvOnly ? "RecvChan" : "Chan"); + var typ = elem[field]; + if (typ === undefined) { + typ = $newType(4, $kindChan, string, false, "", false, null); + elem[field] = typ; + typ.init(elem, sendOnly, recvOnly); + } + return typ; +}; +var $Chan = function(elem, capacity) { + if (capacity < 0 || capacity > 2147483647) { + $throwRuntimeError("makechan: size out of range"); + } + this.$elem = elem; + this.$capacity = capacity; + this.$buffer = []; + this.$sendQueue = []; + this.$recvQueue = []; + this.$closed = false; +}; +var $chanNil = new $Chan(null, 0); +$chanNil.$sendQueue = $chanNil.$recvQueue = { length: 0, push: function() {}, shift: function() { return undefined; }, indexOf: function() { return -1; } }; + +var $funcTypes = {}; +var $funcType = function(params, results, variadic) { + var typeKey = $mapArray(params, function(p) { return p.id; }).join(",") + "$" + $mapArray(results, function(r) { return r.id; }).join(",") + "$" + variadic; + var typ = $funcTypes[typeKey]; + if (typ === undefined) { + var paramTypes = $mapArray(params, function(p) { return p.string; }); + if (variadic) { + paramTypes[paramTypes.length - 1] = "..." + paramTypes[paramTypes.length - 1].substr(2); + } + var string = "func(" + paramTypes.join(", ") + ")"; + if (results.length === 1) { + string += " " + results[0].string; + } else if (results.length > 1) { + string += " (" + $mapArray(results, function(r) { return r.string; }).join(", ") + ")"; + } + typ = $newType(4, $kindFunc, string, false, "", false, null); + $funcTypes[typeKey] = typ; + typ.init(params, results, variadic); + } + return typ; +}; + +var $interfaceTypes = {}; +var $interfaceType = function(methods) { + var typeKey = $mapArray(methods, function(m) { return m.pkg + "," + m.name + "," + m.typ.id; }).join("$"); + var typ = $interfaceTypes[typeKey]; + if (typ === undefined) { + var string = "interface {}"; + if (methods.length !== 0) { + string = "interface { " + $mapArray(methods, function(m) { + return (m.pkg !== "" ? m.pkg + "." : "") + m.name + m.typ.string.substr(4); + }).join("; ") + " }"; + } + typ = $newType(8, $kindInterface, string, false, "", false, null); + $interfaceTypes[typeKey] = typ; + typ.init(methods); + } + return typ; +}; +var $emptyInterface = $interfaceType([]); +var $ifaceNil = {}; +var $error = $newType(8, $kindInterface, "error", true, "", false, null); +$error.init([{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]); + +var $mapTypes = {}; +var $mapType = function(key, elem) { + var typeKey = key.id + "$" + elem.id; + var typ = $mapTypes[typeKey]; + if (typ === undefined) { + typ = $newType(4, $kindMap, "map[" + key.string + "]" + elem.string, false, "", false, null); + $mapTypes[typeKey] = typ; + typ.init(key, elem); + } + return typ; +}; +var $makeMap = function(keyForFunc, entries) { + var m = {}; + for (var i = 0; i < entries.length; i++) { + var e = entries[i]; + m[keyForFunc(e.k)] = e; + } + return m; +}; + +var $ptrType = function(elem) { + var typ = elem.ptr; + if (typ === undefined) { + typ = $newType(4, $kindPtr, "*" + elem.string, false, "", elem.exported, null); + elem.ptr = typ; + typ.init(elem); + } + return typ; +}; + +var $newDataPointer = function(data, constructor) { + if (constructor.elem.kind === $kindStruct) { + return data; + } + return new constructor(function() { return data; }, function(v) { data = v; }); +}; + +var $indexPtr = function(array, index, constructor) { + array.$ptr = array.$ptr || {}; + return array.$ptr[index] || (array.$ptr[index] = new constructor(function() { return array[index]; }, function(v) { array[index] = v; })); +}; + +var $sliceType = function(elem) { + var typ = elem.slice; + if (typ === undefined) { + typ = $newType(12, $kindSlice, "[]" + elem.string, false, "", false, null); + elem.slice = typ; + typ.init(elem); + } + return typ; +}; +var $makeSlice = function(typ, length, capacity) { + capacity = capacity || length; + if (length < 0 || length > 2147483647) { + $throwRuntimeError("makeslice: len out of range"); + } + if (capacity < 0 || capacity < length || capacity > 2147483647) { + $throwRuntimeError("makeslice: cap out of range"); + } + var array = new typ.nativeArray(capacity); + if (typ.nativeArray === Array) { + for (var i = 0; i < capacity; i++) { + array[i] = typ.elem.zero(); + } + } + var slice = new typ(array); + slice.$length = length; + return slice; +}; + +var $structTypes = {}; +var $structType = function(pkgPath, fields) { + var typeKey = $mapArray(fields, function(f) { return f.name + "," + f.typ.id + "," + f.tag; }).join("$"); + var typ = $structTypes[typeKey]; + if (typ === undefined) { + var string = "struct { " + $mapArray(fields, function(f) { + return f.name + " " + f.typ.string + (f.tag !== "" ? (" \"" + f.tag.replace(/\\/g, "\\\\").replace(/"/g, "\\\"") + "\"") : ""); + }).join("; ") + " }"; + if (fields.length === 0) { + string = "struct {}"; + } + typ = $newType(0, $kindStruct, string, false, "", false, function() { + this.$val = this; + for (var i = 0; i < fields.length; i++) { + var f = fields[i]; + var arg = arguments[i]; + this[f.prop] = arg !== undefined ? arg : f.typ.zero(); + } + }); + $structTypes[typeKey] = typ; + typ.init(pkgPath, fields); + } + return typ; +}; + +var $assertType = function(value, type, returnTuple) { + var isInterface = (type.kind === $kindInterface), ok, missingMethod = ""; + if (value === $ifaceNil) { + ok = false; + } else if (!isInterface) { + ok = value.constructor === type; + } else { + var valueTypeString = value.constructor.string; + ok = type.implementedBy[valueTypeString]; + if (ok === undefined) { + ok = true; + var valueMethodSet = $methodSet(value.constructor); + var interfaceMethods = type.methods; + for (var i = 0; i < interfaceMethods.length; i++) { + var tm = interfaceMethods[i]; + var found = false; + for (var j = 0; j < valueMethodSet.length; j++) { + var vm = valueMethodSet[j]; + if (vm.name === tm.name && vm.pkg === tm.pkg && vm.typ === tm.typ) { + found = true; + break; + } + } + if (!found) { + ok = false; + type.missingMethodFor[valueTypeString] = tm.name; + break; + } + } + type.implementedBy[valueTypeString] = ok; + } + if (!ok) { + missingMethod = type.missingMethodFor[valueTypeString]; + } + } + + if (!ok) { + if (returnTuple) { + return [type.zero(), false]; + } + $panic(new $packages["runtime"].TypeAssertionError.ptr( + $packages["runtime"]._type.ptr.nil, + (value === $ifaceNil ? $packages["runtime"]._type.ptr.nil : new $packages["runtime"]._type.ptr(value.constructor.string)), + new $packages["runtime"]._type.ptr(type.string), + missingMethod)); + } + + if (!isInterface) { + value = value.$val; + } + if (type === $jsObjectPtr) { + value = value.object; + } + return returnTuple ? [value, true] : value; +}; + +var $stackDepthOffset = 0; +var $getStackDepth = function() { + var err = new Error(); + if (err.stack === undefined) { + return undefined; + } + return $stackDepthOffset + err.stack.split("\n").length; +}; + +var $panicStackDepth = null, $panicValue; +var $callDeferred = function(deferred, jsErr, fromPanic) { + if (!fromPanic && deferred !== null && deferred.index >= $curGoroutine.deferStack.length) { + throw jsErr; + } + if (jsErr !== null) { + var newErr = null; + try { + $curGoroutine.deferStack.push(deferred); + $panic(new $jsErrorPtr(jsErr)); + } catch (err) { + newErr = err; + } + $curGoroutine.deferStack.pop(); + $callDeferred(deferred, newErr); + return; + } + if ($curGoroutine.asleep) { + return; + } + + $stackDepthOffset--; + var outerPanicStackDepth = $panicStackDepth; + var outerPanicValue = $panicValue; + + var localPanicValue = $curGoroutine.panicStack.pop(); + if (localPanicValue !== undefined) { + $panicStackDepth = $getStackDepth(); + $panicValue = localPanicValue; + } + + try { + while (true) { + if (deferred === null) { + deferred = $curGoroutine.deferStack[$curGoroutine.deferStack.length - 1]; + if (deferred === undefined) { + /* The panic reached the top of the stack. Clear it and throw it as a JavaScript error. */ + $panicStackDepth = null; + if (localPanicValue.Object instanceof Error) { + throw localPanicValue.Object; + } + var msg; + if (localPanicValue.constructor === $String) { + msg = localPanicValue.$val; + } else if (localPanicValue.Error !== undefined) { + msg = localPanicValue.Error(); + } else if (localPanicValue.String !== undefined) { + msg = localPanicValue.String(); + } else { + msg = localPanicValue; + } + throw new Error(msg); + } + } + var call = deferred.pop(); + if (call === undefined) { + $curGoroutine.deferStack.pop(); + if (localPanicValue !== undefined) { + deferred = null; + continue; + } + return; + } + var r = call[0].apply(call[2], call[1]); + if (r && r.$blk !== undefined) { + deferred.push([r.$blk, [], r]); + if (fromPanic) { + throw null; + } + return; + } + + if (localPanicValue !== undefined && $panicStackDepth === null) { + throw null; /* error was recovered */ + } + } + } finally { + if (localPanicValue !== undefined) { + if ($panicStackDepth !== null) { + $curGoroutine.panicStack.push(localPanicValue); + } + $panicStackDepth = outerPanicStackDepth; + $panicValue = outerPanicValue; + } + $stackDepthOffset++; + } +}; + +var $panic = function(value) { + $curGoroutine.panicStack.push(value); + $callDeferred(null, null, true); +}; +var $recover = function() { + if ($panicStackDepth === null || ($panicStackDepth !== undefined && $panicStackDepth !== $getStackDepth() - 2)) { + return $ifaceNil; + } + $panicStackDepth = null; + return $panicValue; +}; +var $throw = function(err) { throw err; }; + +var $noGoroutine = { asleep: false, exit: false, deferStack: [], panicStack: [] }; +var $curGoroutine = $noGoroutine, $totalGoroutines = 0, $awakeGoroutines = 0, $checkForDeadlock = true; +var $mainFinished = false; +var $go = function(fun, args) { + $totalGoroutines++; + $awakeGoroutines++; + var $goroutine = function() { + try { + $curGoroutine = $goroutine; + var r = fun.apply(undefined, args); + if (r && r.$blk !== undefined) { + fun = function() { return r.$blk(); }; + args = []; + return; + } + $goroutine.exit = true; + } catch (err) { + if (!$goroutine.exit) { + throw err; + } + } finally { + $curGoroutine = $noGoroutine; + if ($goroutine.exit) { /* also set by runtime.Goexit() */ + $totalGoroutines--; + $goroutine.asleep = true; + } + if ($goroutine.asleep) { + $awakeGoroutines--; + if (!$mainFinished && $awakeGoroutines === 0 && $checkForDeadlock) { + console.error("fatal error: all goroutines are asleep - deadlock!"); + if ($global.process !== undefined) { + $global.process.exit(2); + } + } + } + } + }; + $goroutine.asleep = false; + $goroutine.exit = false; + $goroutine.deferStack = []; + $goroutine.panicStack = []; + $schedule($goroutine); +}; + +var $scheduled = []; +var $runScheduled = function() { + try { + var r; + while ((r = $scheduled.shift()) !== undefined) { + r(); + } + } finally { + if ($scheduled.length > 0) { + setTimeout($runScheduled, 0); + } + } +}; + +var $schedule = function(goroutine) { + if (goroutine.asleep) { + goroutine.asleep = false; + $awakeGoroutines++; + } + $scheduled.push(goroutine); + if ($curGoroutine === $noGoroutine) { + $runScheduled(); + } +}; + +var $setTimeout = function(f, t) { + $awakeGoroutines++; + return setTimeout(function() { + $awakeGoroutines--; + f(); + }, t); +}; + +var $block = function() { + if ($curGoroutine === $noGoroutine) { + $throwRuntimeError("cannot block in JavaScript callback, fix by wrapping code in goroutine"); + } + $curGoroutine.asleep = true; +}; + +var $send = function(chan, value) { + if (chan.$closed) { + $throwRuntimeError("send on closed channel"); + } + var queuedRecv = chan.$recvQueue.shift(); + if (queuedRecv !== undefined) { + queuedRecv([value, true]); + return; + } + if (chan.$buffer.length < chan.$capacity) { + chan.$buffer.push(value); + return; + } + + var thisGoroutine = $curGoroutine; + var closedDuringSend; + chan.$sendQueue.push(function(closed) { + closedDuringSend = closed; + $schedule(thisGoroutine); + return value; + }); + $block(); + return { + $blk: function() { + if (closedDuringSend) { + $throwRuntimeError("send on closed channel"); + } + } + }; +}; +var $recv = function(chan) { + var queuedSend = chan.$sendQueue.shift(); + if (queuedSend !== undefined) { + chan.$buffer.push(queuedSend(false)); + } + var bufferedValue = chan.$buffer.shift(); + if (bufferedValue !== undefined) { + return [bufferedValue, true]; + } + if (chan.$closed) { + return [chan.$elem.zero(), false]; + } + + var thisGoroutine = $curGoroutine; + var f = { $blk: function() { return this.value; } }; + var queueEntry = function(v) { + f.value = v; + $schedule(thisGoroutine); + }; + chan.$recvQueue.push(queueEntry); + $block(); + return f; +}; +var $close = function(chan) { + if (chan.$closed) { + $throwRuntimeError("close of closed channel"); + } + chan.$closed = true; + while (true) { + var queuedSend = chan.$sendQueue.shift(); + if (queuedSend === undefined) { + break; + } + queuedSend(true); /* will panic */ + } + while (true) { + var queuedRecv = chan.$recvQueue.shift(); + if (queuedRecv === undefined) { + break; + } + queuedRecv([chan.$elem.zero(), false]); + } +}; +var $select = function(comms) { + var ready = []; + var selection = -1; + for (var i = 0; i < comms.length; i++) { + var comm = comms[i]; + var chan = comm[0]; + switch (comm.length) { + case 0: /* default */ + selection = i; + break; + case 1: /* recv */ + if (chan.$sendQueue.length !== 0 || chan.$buffer.length !== 0 || chan.$closed) { + ready.push(i); + } + break; + case 2: /* send */ + if (chan.$closed) { + $throwRuntimeError("send on closed channel"); + } + if (chan.$recvQueue.length !== 0 || chan.$buffer.length < chan.$capacity) { + ready.push(i); + } + break; + } + } + + if (ready.length !== 0) { + selection = ready[Math.floor(Math.random() * ready.length)]; + } + if (selection !== -1) { + var comm = comms[selection]; + switch (comm.length) { + case 0: /* default */ + return [selection]; + case 1: /* recv */ + return [selection, $recv(comm[0])]; + case 2: /* send */ + $send(comm[0], comm[1]); + return [selection]; + } + } + + var entries = []; + var thisGoroutine = $curGoroutine; + var f = { $blk: function() { return this.selection; } }; + var removeFromQueues = function() { + for (var i = 0; i < entries.length; i++) { + var entry = entries[i]; + var queue = entry[0]; + var index = queue.indexOf(entry[1]); + if (index !== -1) { + queue.splice(index, 1); + } + } + }; + for (var i = 0; i < comms.length; i++) { + (function(i) { + var comm = comms[i]; + switch (comm.length) { + case 1: /* recv */ + var queueEntry = function(value) { + f.selection = [i, value]; + removeFromQueues(); + $schedule(thisGoroutine); + }; + entries.push([comm[0].$recvQueue, queueEntry]); + comm[0].$recvQueue.push(queueEntry); + break; + case 2: /* send */ + var queueEntry = function() { + if (comm[0].$closed) { + $throwRuntimeError("send on closed channel"); + } + f.selection = [i]; + removeFromQueues(); + $schedule(thisGoroutine); + return comm[1]; + }; + entries.push([comm[0].$sendQueue, queueEntry]); + comm[0].$sendQueue.push(queueEntry); + break; + } + })(i); + } + $block(); + return f; +}; + +var $jsObjectPtr, $jsErrorPtr; + +var $needsExternalization = function(t) { + switch (t.kind) { + case $kindBool: + case $kindInt: + case $kindInt8: + case $kindInt16: + case $kindInt32: + case $kindUint: + case $kindUint8: + case $kindUint16: + case $kindUint32: + case $kindUintptr: + case $kindFloat32: + case $kindFloat64: + return false; + default: + return t !== $jsObjectPtr; + } +}; + +var $externalize = function(v, t) { + if (t === $jsObjectPtr) { + return v; + } + switch (t.kind) { + case $kindBool: + case $kindInt: + case $kindInt8: + case $kindInt16: + case $kindInt32: + case $kindUint: + case $kindUint8: + case $kindUint16: + case $kindUint32: + case $kindUintptr: + case $kindFloat32: + case $kindFloat64: + return v; + case $kindInt64: + case $kindUint64: + return $flatten64(v); + case $kindArray: + if ($needsExternalization(t.elem)) { + return $mapArray(v, function(e) { return $externalize(e, t.elem); }); + } + return v; + case $kindFunc: + return $externalizeFunction(v, t, false); + case $kindInterface: + if (v === $ifaceNil) { + return null; + } + if (v.constructor === $jsObjectPtr) { + return v.$val.object; + } + return $externalize(v.$val, v.constructor); + case $kindMap: + var m = {}; + var keys = $keys(v); + for (var i = 0; i < keys.length; i++) { + var entry = v[keys[i]]; + m[$externalize(entry.k, t.key)] = $externalize(entry.v, t.elem); + } + return m; + case $kindPtr: + if (v === t.nil) { + return null; + } + return $externalize(v.$get(), t.elem); + case $kindSlice: + if ($needsExternalization(t.elem)) { + return $mapArray($sliceToArray(v), function(e) { return $externalize(e, t.elem); }); + } + return $sliceToArray(v); + case $kindString: + if ($isASCII(v)) { + return v; + } + var s = "", r; + for (var i = 0; i < v.length; i += r[1]) { + r = $decodeRune(v, i); + var c = r[0]; + if (c > 0xFFFF) { + var h = Math.floor((c - 0x10000) / 0x400) + 0xD800; + var l = (c - 0x10000) % 0x400 + 0xDC00; + s += String.fromCharCode(h, l); + continue; + } + s += String.fromCharCode(c); + } + return s; + case $kindStruct: + var timePkg = $packages["time"]; + if (timePkg !== undefined && v.constructor === timePkg.Time.ptr) { + var milli = $div64(v.UnixNano(), new $Int64(0, 1000000)); + return new Date($flatten64(milli)); + } + + var noJsObject = {}; + var searchJsObject = function(v, t) { + if (t === $jsObjectPtr) { + return v; + } + switch (t.kind) { + case $kindPtr: + if (v === t.nil) { + return noJsObject; + } + return searchJsObject(v.$get(), t.elem); + case $kindStruct: + var f = t.fields[0]; + return searchJsObject(v[f.prop], f.typ); + case $kindInterface: + return searchJsObject(v.$val, v.constructor); + default: + return noJsObject; + } + }; + var o = searchJsObject(v, t); + if (o !== noJsObject) { + return o; + } + + o = {}; + for (var i = 0; i < t.fields.length; i++) { + var f = t.fields[i]; + if (!f.exported) { + continue; + } + o[f.name] = $externalize(v[f.prop], f.typ); + } + return o; + } + $throwRuntimeError("cannot externalize " + t.string); +}; + +var $externalizeFunction = function(v, t, passThis) { + if (v === $throwNilPointerError) { + return null; + } + if (v.$externalizeWrapper === undefined) { + $checkForDeadlock = false; + v.$externalizeWrapper = function() { + var args = []; + for (var i = 0; i < t.params.length; i++) { + if (t.variadic && i === t.params.length - 1) { + var vt = t.params[i].elem, varargs = []; + for (var j = i; j < arguments.length; j++) { + varargs.push($internalize(arguments[j], vt)); + } + args.push(new (t.params[i])(varargs)); + break; + } + args.push($internalize(arguments[i], t.params[i])); + } + var result = v.apply(passThis ? this : undefined, args); + switch (t.results.length) { + case 0: + return; + case 1: + return $externalize(result, t.results[0]); + default: + for (var i = 0; i < t.results.length; i++) { + result[i] = $externalize(result[i], t.results[i]); + } + return result; + } + }; + } + return v.$externalizeWrapper; +}; + +var $internalize = function(v, t, recv) { + if (t === $jsObjectPtr) { + return v; + } + if (t === $jsObjectPtr.elem) { + $throwRuntimeError("cannot internalize js.Object, use *js.Object instead"); + } + if (v && v.__internal_object__ !== undefined) { + return $assertType(v.__internal_object__, t, false); + } + var timePkg = $packages["time"]; + if (timePkg !== undefined && t === timePkg.Time) { + if (!(v !== null && v !== undefined && v.constructor === Date)) { + $throwRuntimeError("cannot internalize time.Time from " + typeof v + ", must be Date"); + } + return timePkg.Unix(new $Int64(0, 0), new $Int64(0, v.getTime() * 1000000)); + } + switch (t.kind) { + case $kindBool: + return !!v; + case $kindInt: + return parseInt(v); + case $kindInt8: + return parseInt(v) << 24 >> 24; + case $kindInt16: + return parseInt(v) << 16 >> 16; + case $kindInt32: + return parseInt(v) >> 0; + case $kindUint: + return parseInt(v); + case $kindUint8: + return parseInt(v) << 24 >>> 24; + case $kindUint16: + return parseInt(v) << 16 >>> 16; + case $kindUint32: + case $kindUintptr: + return parseInt(v) >>> 0; + case $kindInt64: + case $kindUint64: + return new t(0, v); + case $kindFloat32: + case $kindFloat64: + return parseFloat(v); + case $kindArray: + if (v.length !== t.len) { + $throwRuntimeError("got array with wrong size from JavaScript native"); + } + return $mapArray(v, function(e) { return $internalize(e, t.elem); }); + case $kindFunc: + return function() { + var args = []; + for (var i = 0; i < t.params.length; i++) { + if (t.variadic && i === t.params.length - 1) { + var vt = t.params[i].elem, varargs = arguments[i]; + for (var j = 0; j < varargs.$length; j++) { + args.push($externalize(varargs.$array[varargs.$offset + j], vt)); + } + break; + } + args.push($externalize(arguments[i], t.params[i])); + } + var result = v.apply(recv, args); + switch (t.results.length) { + case 0: + return; + case 1: + return $internalize(result, t.results[0]); + default: + for (var i = 0; i < t.results.length; i++) { + result[i] = $internalize(result[i], t.results[i]); + } + return result; + } + }; + case $kindInterface: + if (t.methods.length !== 0) { + $throwRuntimeError("cannot internalize " + t.string); + } + if (v === null) { + return $ifaceNil; + } + if (v === undefined) { + return new $jsObjectPtr(undefined); + } + switch (v.constructor) { + case Int8Array: + return new ($sliceType($Int8))(v); + case Int16Array: + return new ($sliceType($Int16))(v); + case Int32Array: + return new ($sliceType($Int))(v); + case Uint8Array: + return new ($sliceType($Uint8))(v); + case Uint16Array: + return new ($sliceType($Uint16))(v); + case Uint32Array: + return new ($sliceType($Uint))(v); + case Float32Array: + return new ($sliceType($Float32))(v); + case Float64Array: + return new ($sliceType($Float64))(v); + case Array: + return $internalize(v, $sliceType($emptyInterface)); + case Boolean: + return new $Bool(!!v); + case Date: + if (timePkg === undefined) { + /* time package is not present, internalize as &js.Object{Date} so it can be externalized into original Date. */ + return new $jsObjectPtr(v); + } + return new timePkg.Time($internalize(v, timePkg.Time)); + case Function: + var funcType = $funcType([$sliceType($emptyInterface)], [$jsObjectPtr], true); + return new funcType($internalize(v, funcType)); + case Number: + return new $Float64(parseFloat(v)); + case String: + return new $String($internalize(v, $String)); + default: + if ($global.Node && v instanceof $global.Node) { + return new $jsObjectPtr(v); + } + var mapType = $mapType($String, $emptyInterface); + return new mapType($internalize(v, mapType)); + } + case $kindMap: + var m = {}; + var keys = $keys(v); + for (var i = 0; i < keys.length; i++) { + var k = $internalize(keys[i], t.key); + m[t.key.keyFor(k)] = { k: k, v: $internalize(v[keys[i]], t.elem) }; + } + return m; + case $kindPtr: + if (t.elem.kind === $kindStruct) { + return $internalize(v, t.elem); + } + case $kindSlice: + return new t($mapArray(v, function(e) { return $internalize(e, t.elem); })); + case $kindString: + v = String(v); + if ($isASCII(v)) { + return v; + } + var s = ""; + var i = 0; + while (i < v.length) { + var h = v.charCodeAt(i); + if (0xD800 <= h && h <= 0xDBFF) { + var l = v.charCodeAt(i + 1); + var c = (h - 0xD800) * 0x400 + l - 0xDC00 + 0x10000; + s += $encodeRune(c); + i += 2; + continue; + } + s += $encodeRune(h); + i++; + } + return s; + case $kindStruct: + var noJsObject = {}; + var searchJsObject = function(t) { + if (t === $jsObjectPtr) { + return v; + } + if (t === $jsObjectPtr.elem) { + $throwRuntimeError("cannot internalize js.Object, use *js.Object instead"); + } + switch (t.kind) { + case $kindPtr: + return searchJsObject(t.elem); + case $kindStruct: + var f = t.fields[0]; + var o = searchJsObject(f.typ); + if (o !== noJsObject) { + var n = new t.ptr(); + n[f.prop] = o; + return n; + } + return noJsObject; + default: + return noJsObject; + } + }; + var o = searchJsObject(t); + if (o !== noJsObject) { + return o; + } + } + $throwRuntimeError("cannot internalize " + t.string); +}; + +/* $isASCII reports whether string s contains only ASCII characters. */ +var $isASCII = function(s) { + for (var i = 0; i < s.length; i++) { + if (s.charCodeAt(i) >= 128) { + return false; + } + } + return true; +}; + +$packages["github.com/gopherjs/gopherjs/js"] = (function() { + var $pkg = {}, $init, Object, Error, sliceType, ptrType, ptrType$1, MakeFunc, init; + Object = $pkg.Object = $newType(0, $kindStruct, "js.Object", true, "github.com/gopherjs/gopherjs/js", true, function(object_) { + this.$val = this; + if (arguments.length === 0) { + this.object = null; + return; + } + this.object = object_; + }); + Error = $pkg.Error = $newType(0, $kindStruct, "js.Error", true, "github.com/gopherjs/gopherjs/js", true, function(Object_) { + this.$val = this; + if (arguments.length === 0) { + this.Object = null; + return; + } + this.Object = Object_; + }); + sliceType = $sliceType($emptyInterface); + ptrType = $ptrType(Object); + ptrType$1 = $ptrType(Error); + Object.ptr.prototype.Get = function(key) { + var key, o; + o = this; + return o.object[$externalize(key, $String)]; + }; + Object.prototype.Get = function(key) { return this.$val.Get(key); }; + Object.ptr.prototype.Set = function(key, value) { + var key, o, value; + o = this; + o.object[$externalize(key, $String)] = $externalize(value, $emptyInterface); + }; + Object.prototype.Set = function(key, value) { return this.$val.Set(key, value); }; + Object.ptr.prototype.Delete = function(key) { + var key, o; + o = this; + delete o.object[$externalize(key, $String)]; + }; + Object.prototype.Delete = function(key) { return this.$val.Delete(key); }; + Object.ptr.prototype.Length = function() { + var o; + o = this; + return $parseInt(o.object.length); + }; + Object.prototype.Length = function() { return this.$val.Length(); }; + Object.ptr.prototype.Index = function(i) { + var i, o; + o = this; + return o.object[i]; + }; + Object.prototype.Index = function(i) { return this.$val.Index(i); }; + Object.ptr.prototype.SetIndex = function(i, value) { + var i, o, value; + o = this; + o.object[i] = $externalize(value, $emptyInterface); + }; + Object.prototype.SetIndex = function(i, value) { return this.$val.SetIndex(i, value); }; + Object.ptr.prototype.Call = function(name, args) { + var args, name, o, obj; + o = this; + return (obj = o.object, obj[$externalize(name, $String)].apply(obj, $externalize(args, sliceType))); + }; + Object.prototype.Call = function(name, args) { return this.$val.Call(name, args); }; + Object.ptr.prototype.Invoke = function(args) { + var args, o; + o = this; + return o.object.apply(undefined, $externalize(args, sliceType)); + }; + Object.prototype.Invoke = function(args) { return this.$val.Invoke(args); }; + Object.ptr.prototype.New = function(args) { + var args, o; + o = this; + return new ($global.Function.prototype.bind.apply(o.object, [undefined].concat($externalize(args, sliceType)))); + }; + Object.prototype.New = function(args) { return this.$val.New(args); }; + Object.ptr.prototype.Bool = function() { + var o; + o = this; + return !!(o.object); + }; + Object.prototype.Bool = function() { return this.$val.Bool(); }; + Object.ptr.prototype.String = function() { + var o; + o = this; + return $internalize(o.object, $String); + }; + Object.prototype.String = function() { return this.$val.String(); }; + Object.ptr.prototype.Int = function() { + var o; + o = this; + return $parseInt(o.object) >> 0; + }; + Object.prototype.Int = function() { return this.$val.Int(); }; + Object.ptr.prototype.Int64 = function() { + var o; + o = this; + return $internalize(o.object, $Int64); + }; + Object.prototype.Int64 = function() { return this.$val.Int64(); }; + Object.ptr.prototype.Uint64 = function() { + var o; + o = this; + return $internalize(o.object, $Uint64); + }; + Object.prototype.Uint64 = function() { return this.$val.Uint64(); }; + Object.ptr.prototype.Float = function() { + var o; + o = this; + return $parseFloat(o.object); + }; + Object.prototype.Float = function() { return this.$val.Float(); }; + Object.ptr.prototype.Interface = function() { + var o; + o = this; + return $internalize(o.object, $emptyInterface); + }; + Object.prototype.Interface = function() { return this.$val.Interface(); }; + Object.ptr.prototype.Unsafe = function() { + var o; + o = this; + return o.object; + }; + Object.prototype.Unsafe = function() { return this.$val.Unsafe(); }; + Error.ptr.prototype.Error = function() { + var err; + err = this; + return "JavaScript error: " + $internalize(err.Object.message, $String); + }; + Error.prototype.Error = function() { return this.$val.Error(); }; + Error.ptr.prototype.Stack = function() { + var err; + err = this; + return $internalize(err.Object.stack, $String); + }; + Error.prototype.Stack = function() { return this.$val.Stack(); }; + MakeFunc = function(fn) { + var fn; + return $makeFunc(fn); + }; + $pkg.MakeFunc = MakeFunc; + init = function() { + var e; + e = new Error.ptr(null); + $unused(e); + }; + ptrType.methods = [{prop: "Get", name: "Get", pkg: "", typ: $funcType([$String], [ptrType], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([$String, $emptyInterface], [], false)}, {prop: "Delete", name: "Delete", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Length", name: "Length", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Index", name: "Index", pkg: "", typ: $funcType([$Int], [ptrType], false)}, {prop: "SetIndex", name: "SetIndex", pkg: "", typ: $funcType([$Int, $emptyInterface], [], false)}, {prop: "Call", name: "Call", pkg: "", typ: $funcType([$String, sliceType], [ptrType], true)}, {prop: "Invoke", name: "Invoke", pkg: "", typ: $funcType([sliceType], [ptrType], true)}, {prop: "New", name: "New", pkg: "", typ: $funcType([sliceType], [ptrType], true)}, {prop: "Bool", name: "Bool", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Int", name: "Int", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Int64", name: "Int64", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Uint64", name: "Uint64", pkg: "", typ: $funcType([], [$Uint64], false)}, {prop: "Float", name: "Float", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "Interface", name: "Interface", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Unsafe", name: "Unsafe", pkg: "", typ: $funcType([], [$Uintptr], false)}]; + ptrType$1.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Stack", name: "Stack", pkg: "", typ: $funcType([], [$String], false)}]; + Object.init("github.com/gopherjs/gopherjs/js", [{prop: "object", name: "object", embedded: false, exported: false, typ: ptrType, tag: ""}]); + Error.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + init(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["internal/cpu"] = (function() { + var $pkg = {}, $init; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["internal/bytealg"] = (function() { + var $pkg = {}, $init, cpu; + cpu = $packages["internal/cpu"]; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = cpu.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["runtime/internal/sys"] = (function() { + var $pkg = {}, $init; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["runtime"] = (function() { + var $pkg = {}, $init, js, bytealg, sys, _type, TypeAssertionError, errorString, ptrType, ptrType$4, init, GOROOT, Caller, Goexit, SetFinalizer, KeepAlive, throw$1; + js = $packages["github.com/gopherjs/gopherjs/js"]; + bytealg = $packages["internal/bytealg"]; + sys = $packages["runtime/internal/sys"]; + _type = $pkg._type = $newType(0, $kindStruct, "runtime._type", true, "runtime", false, function(str_) { + this.$val = this; + if (arguments.length === 0) { + this.str = ""; + return; + } + this.str = str_; + }); + TypeAssertionError = $pkg.TypeAssertionError = $newType(0, $kindStruct, "runtime.TypeAssertionError", true, "runtime", true, function(_interface_, concrete_, asserted_, missingMethod_) { + this.$val = this; + if (arguments.length === 0) { + this._interface = ptrType.nil; + this.concrete = ptrType.nil; + this.asserted = ptrType.nil; + this.missingMethod = ""; + return; + } + this._interface = _interface_; + this.concrete = concrete_; + this.asserted = asserted_; + this.missingMethod = missingMethod_; + }); + errorString = $pkg.errorString = $newType(8, $kindString, "runtime.errorString", true, "runtime", false, null); + ptrType = $ptrType(_type); + ptrType$4 = $ptrType(TypeAssertionError); + _type.ptr.prototype.string = function() { + var t; + t = this; + return t.str; + }; + _type.prototype.string = function() { return this.$val.string(); }; + _type.ptr.prototype.pkgpath = function() { + var t; + t = this; + return ""; + }; + _type.prototype.pkgpath = function() { return this.$val.pkgpath(); }; + init = function() { + var e, jsPkg; + jsPkg = $packages[$externalize("github.com/gopherjs/gopherjs/js", $String)]; + $jsObjectPtr = jsPkg.Object.ptr; + $jsErrorPtr = jsPkg.Error.ptr; + $throwRuntimeError = throw$1; + e = $ifaceNil; + e = new TypeAssertionError.ptr(ptrType.nil, ptrType.nil, ptrType.nil, ""); + $unused(e); + }; + GOROOT = function() { + var goroot, process; + process = $global.process; + if (process === undefined) { + return "/"; + } + goroot = process.env.GOROOT; + if (!(goroot === undefined)) { + return $internalize(goroot, $String); + } + return "/usr/local/go"; + }; + $pkg.GOROOT = GOROOT; + Caller = function(skip) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, file, info, line, ok, parts, pc, skip; + pc = 0; + file = ""; + line = 0; + ok = false; + info = new ($global.Error)().stack.split($externalize("\n", $String))[(skip + 2 >> 0)]; + if (info === undefined) { + _tmp = 0; + _tmp$1 = ""; + _tmp$2 = 0; + _tmp$3 = false; + pc = _tmp; + file = _tmp$1; + line = _tmp$2; + ok = _tmp$3; + return [pc, file, line, ok]; + } + parts = info.substring(($parseInt(info.indexOf($externalize("(", $String))) >> 0) + 1 >> 0, $parseInt(info.indexOf($externalize(")", $String))) >> 0).split($externalize(":", $String)); + _tmp$4 = 0; + _tmp$5 = $internalize(parts[0], $String); + _tmp$6 = $parseInt(parts[1]) >> 0; + _tmp$7 = true; + pc = _tmp$4; + file = _tmp$5; + line = _tmp$6; + ok = _tmp$7; + return [pc, file, line, ok]; + }; + $pkg.Caller = Caller; + Goexit = function() { + $curGoroutine.exit = $externalize(true, $Bool); + $throw(null); + }; + $pkg.Goexit = Goexit; + SetFinalizer = function(x, f) { + var f, x; + }; + $pkg.SetFinalizer = SetFinalizer; + KeepAlive = function(param) { + var param; + }; + $pkg.KeepAlive = KeepAlive; + throw$1 = function(s) { + var s; + $panic(new errorString((s))); + }; + TypeAssertionError.ptr.prototype.RuntimeError = function() { + }; + TypeAssertionError.prototype.RuntimeError = function() { return this.$val.RuntimeError(); }; + TypeAssertionError.ptr.prototype.Error = function() { + var as, cs, e, inter, msg; + e = this; + inter = "interface"; + if (!(e._interface === ptrType.nil)) { + inter = e._interface.string(); + } + as = e.asserted.string(); + if (e.concrete === ptrType.nil) { + return "interface conversion: " + inter + " is nil, not " + as; + } + cs = e.concrete.string(); + if (e.missingMethod === "") { + msg = "interface conversion: " + inter + " is " + cs + ", not " + as; + if (cs === as) { + if (!(e.concrete.pkgpath() === e.asserted.pkgpath())) { + msg = msg + (" (types from different packages)"); + } else { + msg = msg + (" (types from different scopes)"); + } + } + return msg; + } + return "interface conversion: " + cs + " is not " + as + ": missing method " + e.missingMethod; + }; + TypeAssertionError.prototype.Error = function() { return this.$val.Error(); }; + errorString.prototype.RuntimeError = function() { + var e; + e = this.$val; + }; + $ptrType(errorString).prototype.RuntimeError = function() { return new errorString(this.$get()).RuntimeError(); }; + errorString.prototype.Error = function() { + var e; + e = this.$val; + return "runtime error: " + (e); + }; + $ptrType(errorString).prototype.Error = function() { return new errorString(this.$get()).Error(); }; + ptrType.methods = [{prop: "string", name: "string", pkg: "runtime", typ: $funcType([], [$String], false)}, {prop: "pkgpath", name: "pkgpath", pkg: "runtime", typ: $funcType([], [$String], false)}]; + ptrType$4.methods = [{prop: "RuntimeError", name: "RuntimeError", pkg: "", typ: $funcType([], [], false)}, {prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + errorString.methods = [{prop: "RuntimeError", name: "RuntimeError", pkg: "", typ: $funcType([], [], false)}, {prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + _type.init("runtime", [{prop: "str", name: "str", embedded: false, exported: false, typ: $String, tag: ""}]); + TypeAssertionError.init("runtime", [{prop: "_interface", name: "_interface", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "concrete", name: "concrete", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "asserted", name: "asserted", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "missingMethod", name: "missingMethod", embedded: false, exported: false, typ: $String, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = bytealg.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sys.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + init(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["errors"] = (function() { + var $pkg = {}, $init, errorString, ptrType, New; + errorString = $pkg.errorString = $newType(0, $kindStruct, "errors.errorString", true, "errors", false, function(s_) { + this.$val = this; + if (arguments.length === 0) { + this.s = ""; + return; + } + this.s = s_; + }); + ptrType = $ptrType(errorString); + New = function(text) { + var text; + return new errorString.ptr(text); + }; + $pkg.New = New; + errorString.ptr.prototype.Error = function() { + var e; + e = this; + return e.s; + }; + errorString.prototype.Error = function() { return this.$val.Error(); }; + ptrType.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + errorString.init("errors", [{prop: "s", name: "s", embedded: false, exported: false, typ: $String, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["internal/race"] = (function() { + var $pkg = {}, $init, Acquire, Release, ReleaseMerge, Disable, Enable, ReadRange, WriteRange; + Acquire = function(addr) { + var addr; + }; + $pkg.Acquire = Acquire; + Release = function(addr) { + var addr; + }; + $pkg.Release = Release; + ReleaseMerge = function(addr) { + var addr; + }; + $pkg.ReleaseMerge = ReleaseMerge; + Disable = function() { + }; + $pkg.Disable = Disable; + Enable = function() { + }; + $pkg.Enable = Enable; + ReadRange = function(addr, len) { + var addr, len; + }; + $pkg.ReadRange = ReadRange; + WriteRange = function(addr, len) { + var addr, len; + }; + $pkg.WriteRange = WriteRange; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["sync/atomic"] = (function() { + var $pkg = {}, $init, js, Value, ptrType, CompareAndSwapInt32, CompareAndSwapUint64, AddInt32, LoadInt32, LoadUint32, LoadUint64, StoreInt32, StoreUint32; + js = $packages["github.com/gopherjs/gopherjs/js"]; + Value = $pkg.Value = $newType(0, $kindStruct, "atomic.Value", true, "sync/atomic", true, function(v_) { + this.$val = this; + if (arguments.length === 0) { + this.v = $ifaceNil; + return; + } + this.v = v_; + }); + ptrType = $ptrType(Value); + CompareAndSwapInt32 = function(addr, old, new$1) { + var addr, new$1, old; + if (addr.$get() === old) { + addr.$set(new$1); + return true; + } + return false; + }; + $pkg.CompareAndSwapInt32 = CompareAndSwapInt32; + CompareAndSwapUint64 = function(addr, old, new$1) { + var addr, new$1, old, x; + if ((x = addr.$get(), (x.$high === old.$high && x.$low === old.$low))) { + addr.$set(new$1); + return true; + } + return false; + }; + $pkg.CompareAndSwapUint64 = CompareAndSwapUint64; + AddInt32 = function(addr, delta) { + var addr, delta, new$1; + new$1 = addr.$get() + delta >> 0; + addr.$set(new$1); + return new$1; + }; + $pkg.AddInt32 = AddInt32; + LoadInt32 = function(addr) { + var addr; + return addr.$get(); + }; + $pkg.LoadInt32 = LoadInt32; + LoadUint32 = function(addr) { + var addr; + return addr.$get(); + }; + $pkg.LoadUint32 = LoadUint32; + LoadUint64 = function(addr) { + var addr; + return addr.$get(); + }; + $pkg.LoadUint64 = LoadUint64; + StoreInt32 = function(addr, val) { + var addr, val; + addr.$set(val); + }; + $pkg.StoreInt32 = StoreInt32; + StoreUint32 = function(addr, val) { + var addr, val; + addr.$set(val); + }; + $pkg.StoreUint32 = StoreUint32; + Value.ptr.prototype.Load = function() { + var v, x; + x = $ifaceNil; + v = this; + x = v.v; + return x; + }; + Value.prototype.Load = function() { return this.$val.Load(); }; + Value.ptr.prototype.Store = function(x) { + var v, x; + v = this; + if ($interfaceIsEqual(x, $ifaceNil)) { + $panic(new $String("sync/atomic: store of nil value into Value")); + } + if (!($interfaceIsEqual(v.v, $ifaceNil)) && !(x.constructor === v.v.constructor)) { + $panic(new $String("sync/atomic: store of inconsistently typed value into Value")); + } + v.v = x; + }; + Value.prototype.Store = function(x) { return this.$val.Store(x); }; + ptrType.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([$emptyInterface], [], false)}]; + Value.init("sync/atomic", [{prop: "v", name: "v", embedded: false, exported: false, typ: $emptyInterface, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["sync"] = (function() { + var $pkg = {}, $init, js, race, runtime, atomic, Pool, Mutex, Locker, Once, poolLocalInternal, poolLocal, notifyList, RWMutex, rlocker, ptrType, sliceType, ptrType$1, chanType, sliceType$1, ptrType$6, ptrType$7, sliceType$4, ptrType$8, ptrType$9, funcType, ptrType$16, funcType$2, ptrType$17, arrayType$2, semWaiters, semAwoken, expunged, allPools, runtime_registerPoolCleanup, runtime_SemacquireMutex, runtime_Semrelease, runtime_notifyListCheck, runtime_canSpin, runtime_nanotime, throw$1, poolCleanup, init, indexLocal, init$1, runtime_doSpin; + js = $packages["github.com/gopherjs/gopherjs/js"]; + race = $packages["internal/race"]; + runtime = $packages["runtime"]; + atomic = $packages["sync/atomic"]; + Pool = $pkg.Pool = $newType(0, $kindStruct, "sync.Pool", true, "sync", true, function(local_, localSize_, store_, New_) { + this.$val = this; + if (arguments.length === 0) { + this.local = 0; + this.localSize = 0; + this.store = sliceType$4.nil; + this.New = $throwNilPointerError; + return; + } + this.local = local_; + this.localSize = localSize_; + this.store = store_; + this.New = New_; + }); + Mutex = $pkg.Mutex = $newType(0, $kindStruct, "sync.Mutex", true, "sync", true, function(state_, sema_) { + this.$val = this; + if (arguments.length === 0) { + this.state = 0; + this.sema = 0; + return; + } + this.state = state_; + this.sema = sema_; + }); + Locker = $pkg.Locker = $newType(8, $kindInterface, "sync.Locker", true, "sync", true, null); + Once = $pkg.Once = $newType(0, $kindStruct, "sync.Once", true, "sync", true, function(m_, done_) { + this.$val = this; + if (arguments.length === 0) { + this.m = new Mutex.ptr(0, 0); + this.done = 0; + return; + } + this.m = m_; + this.done = done_; + }); + poolLocalInternal = $pkg.poolLocalInternal = $newType(0, $kindStruct, "sync.poolLocalInternal", true, "sync", false, function(private$0_, shared_, Mutex_) { + this.$val = this; + if (arguments.length === 0) { + this.private$0 = $ifaceNil; + this.shared = sliceType$4.nil; + this.Mutex = new Mutex.ptr(0, 0); + return; + } + this.private$0 = private$0_; + this.shared = shared_; + this.Mutex = Mutex_; + }); + poolLocal = $pkg.poolLocal = $newType(0, $kindStruct, "sync.poolLocal", true, "sync", false, function(poolLocalInternal_, pad_) { + this.$val = this; + if (arguments.length === 0) { + this.poolLocalInternal = new poolLocalInternal.ptr($ifaceNil, sliceType$4.nil, new Mutex.ptr(0, 0)); + this.pad = arrayType$2.zero(); + return; + } + this.poolLocalInternal = poolLocalInternal_; + this.pad = pad_; + }); + notifyList = $pkg.notifyList = $newType(0, $kindStruct, "sync.notifyList", true, "sync", false, function(wait_, notify_, lock_, head_, tail_) { + this.$val = this; + if (arguments.length === 0) { + this.wait = 0; + this.notify = 0; + this.lock = 0; + this.head = 0; + this.tail = 0; + return; + } + this.wait = wait_; + this.notify = notify_; + this.lock = lock_; + this.head = head_; + this.tail = tail_; + }); + RWMutex = $pkg.RWMutex = $newType(0, $kindStruct, "sync.RWMutex", true, "sync", true, function(w_, writerSem_, readerSem_, readerCount_, readerWait_) { + this.$val = this; + if (arguments.length === 0) { + this.w = new Mutex.ptr(0, 0); + this.writerSem = 0; + this.readerSem = 0; + this.readerCount = 0; + this.readerWait = 0; + return; + } + this.w = w_; + this.writerSem = writerSem_; + this.readerSem = readerSem_; + this.readerCount = readerCount_; + this.readerWait = readerWait_; + }); + rlocker = $pkg.rlocker = $newType(0, $kindStruct, "sync.rlocker", true, "sync", false, function(w_, writerSem_, readerSem_, readerCount_, readerWait_) { + this.$val = this; + if (arguments.length === 0) { + this.w = new Mutex.ptr(0, 0); + this.writerSem = 0; + this.readerSem = 0; + this.readerCount = 0; + this.readerWait = 0; + return; + } + this.w = w_; + this.writerSem = writerSem_; + this.readerSem = readerSem_; + this.readerCount = readerCount_; + this.readerWait = readerWait_; + }); + ptrType = $ptrType(Pool); + sliceType = $sliceType(ptrType); + ptrType$1 = $ptrType($Uint32); + chanType = $chanType($Bool, false, false); + sliceType$1 = $sliceType(chanType); + ptrType$6 = $ptrType($Int32); + ptrType$7 = $ptrType(poolLocal); + sliceType$4 = $sliceType($emptyInterface); + ptrType$8 = $ptrType(rlocker); + ptrType$9 = $ptrType(RWMutex); + funcType = $funcType([], [$emptyInterface], false); + ptrType$16 = $ptrType(Mutex); + funcType$2 = $funcType([], [], false); + ptrType$17 = $ptrType(Once); + arrayType$2 = $arrayType($Uint8, 100); + Pool.ptr.prototype.Get = function() { + var _r, p, x, x$1, x$2, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; p = $f.p; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + /* */ if (p.store.$length === 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.store.$length === 0) { */ case 1: + /* */ if (!(p.New === $throwNilPointerError)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!(p.New === $throwNilPointerError)) { */ case 3: + _r = p.New(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* } */ case 4: + $s = -1; return $ifaceNil; + /* } */ case 2: + x$2 = (x = p.store, x$1 = p.store.$length - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + p.store = $subslice(p.store, 0, (p.store.$length - 1 >> 0)); + $s = -1; return x$2; + /* */ } return; } if ($f === undefined) { $f = { $blk: Pool.ptr.prototype.Get }; } $f._r = _r; $f.p = p; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$r = $r; return $f; + }; + Pool.prototype.Get = function() { return this.$val.Get(); }; + Pool.ptr.prototype.Put = function(x) { + var p, x; + p = this; + if ($interfaceIsEqual(x, $ifaceNil)) { + return; + } + p.store = $append(p.store, x); + }; + Pool.prototype.Put = function(x) { return this.$val.Put(x); }; + runtime_registerPoolCleanup = function(cleanup) { + var cleanup; + }; + runtime_SemacquireMutex = function(s, lifo) { + var _entry, _entry$1, _entry$2, _entry$3, _entry$4, _key, _key$1, _key$2, _r, ch, lifo, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _entry$1 = $f._entry$1; _entry$2 = $f._entry$2; _entry$3 = $f._entry$3; _entry$4 = $f._entry$4; _key = $f._key; _key$1 = $f._key$1; _key$2 = $f._key$2; _r = $f._r; ch = $f.ch; lifo = $f.lifo; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ if (((s.$get() - (_entry = semAwoken[ptrType$1.keyFor(s)], _entry !== undefined ? _entry.v : 0) >>> 0)) === 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (((s.$get() - (_entry = semAwoken[ptrType$1.keyFor(s)], _entry !== undefined ? _entry.v : 0) >>> 0)) === 0) { */ case 1: + ch = new $Chan($Bool, 0); + if (lifo) { + _key = s; (semWaiters || $throwRuntimeError("assignment to entry in nil map"))[ptrType$1.keyFor(_key)] = { k: _key, v: $appendSlice(new sliceType$1([ch]), (_entry$1 = semWaiters[ptrType$1.keyFor(s)], _entry$1 !== undefined ? _entry$1.v : sliceType$1.nil)) }; + } else { + _key$1 = s; (semWaiters || $throwRuntimeError("assignment to entry in nil map"))[ptrType$1.keyFor(_key$1)] = { k: _key$1, v: $append((_entry$2 = semWaiters[ptrType$1.keyFor(s)], _entry$2 !== undefined ? _entry$2.v : sliceType$1.nil), ch) }; + } + _r = $recv(ch); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r[0]; + _key$2 = s; (semAwoken || $throwRuntimeError("assignment to entry in nil map"))[ptrType$1.keyFor(_key$2)] = { k: _key$2, v: (_entry$3 = semAwoken[ptrType$1.keyFor(s)], _entry$3 !== undefined ? _entry$3.v : 0) - (1) >>> 0 }; + if ((_entry$4 = semAwoken[ptrType$1.keyFor(s)], _entry$4 !== undefined ? _entry$4.v : 0) === 0) { + delete semAwoken[ptrType$1.keyFor(s)]; + } + /* } */ case 2: + s.$set(s.$get() - (1) >>> 0); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: runtime_SemacquireMutex }; } $f._entry = _entry; $f._entry$1 = _entry$1; $f._entry$2 = _entry$2; $f._entry$3 = _entry$3; $f._entry$4 = _entry$4; $f._key = _key; $f._key$1 = _key$1; $f._key$2 = _key$2; $f._r = _r; $f.ch = ch; $f.lifo = lifo; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + runtime_Semrelease = function(s, handoff) { + var _entry, _entry$1, _key, _key$1, ch, handoff, s, w, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _entry$1 = $f._entry$1; _key = $f._key; _key$1 = $f._key$1; ch = $f.ch; handoff = $f.handoff; s = $f.s; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + s.$set(s.$get() + (1) >>> 0); + w = (_entry = semWaiters[ptrType$1.keyFor(s)], _entry !== undefined ? _entry.v : sliceType$1.nil); + if (w.$length === 0) { + $s = -1; return; + } + ch = (0 >= w.$length ? ($throwRuntimeError("index out of range"), undefined) : w.$array[w.$offset + 0]); + w = $subslice(w, 1); + _key = s; (semWaiters || $throwRuntimeError("assignment to entry in nil map"))[ptrType$1.keyFor(_key)] = { k: _key, v: w }; + if (w.$length === 0) { + delete semWaiters[ptrType$1.keyFor(s)]; + } + _key$1 = s; (semAwoken || $throwRuntimeError("assignment to entry in nil map"))[ptrType$1.keyFor(_key$1)] = { k: _key$1, v: (_entry$1 = semAwoken[ptrType$1.keyFor(s)], _entry$1 !== undefined ? _entry$1.v : 0) + (1) >>> 0 }; + $r = $send(ch, true); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: runtime_Semrelease }; } $f._entry = _entry; $f._entry$1 = _entry$1; $f._key = _key; $f._key$1 = _key$1; $f.ch = ch; $f.handoff = handoff; $f.s = s; $f.w = w; $f.$s = $s; $f.$r = $r; return $f; + }; + runtime_notifyListCheck = function(size) { + var size; + }; + runtime_canSpin = function(i) { + var i; + return false; + }; + runtime_nanotime = function() { + return $mul64($internalize(new ($global.Date)().getTime(), $Int64), new $Int64(0, 1000000)); + }; + throw$1 = function(s) { + var s; + $throwRuntimeError($externalize(s, $String)); + }; + Mutex.ptr.prototype.Lock = function() { + var awoke, delta, iter, m, new$1, old, queueLifo, starving, waitStartTime, x, x$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; awoke = $f.awoke; delta = $f.delta; iter = $f.iter; m = $f.m; new$1 = $f.new$1; old = $f.old; queueLifo = $f.queueLifo; starving = $f.starving; waitStartTime = $f.waitStartTime; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + m = this; + if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$6(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), 0, 1)) { + if (false) { + race.Acquire((m)); + } + $s = -1; return; + } + waitStartTime = new $Int64(0, 0); + starving = false; + awoke = false; + iter = 0; + old = m.state; + /* while (true) { */ case 1: + /* */ if (((old & 5) === 1) && runtime_canSpin(iter)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (((old & 5) === 1) && runtime_canSpin(iter)) { */ case 3: + if (!awoke && ((old & 2) === 0) && !(((old >> 3 >> 0) === 0)) && atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$6(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, old | 2)) { + awoke = true; + } + runtime_doSpin(); + iter = iter + (1) >> 0; + old = m.state; + /* continue; */ $s = 1; continue; + /* } */ case 4: + new$1 = old; + if ((old & 4) === 0) { + new$1 = new$1 | (1); + } + if (!(((old & 5) === 0))) { + new$1 = new$1 + (8) >> 0; + } + if (starving && !(((old & 1) === 0))) { + new$1 = new$1 | (4); + } + if (awoke) { + if ((new$1 & 2) === 0) { + throw$1("sync: inconsistent mutex state"); + } + new$1 = (new$1 & ~(2)) >> 0; + } + /* */ if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$6(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, new$1)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$6(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, new$1)) { */ case 5: + if ((old & 5) === 0) { + /* break; */ $s = 2; continue; + } + queueLifo = !((waitStartTime.$high === 0 && waitStartTime.$low === 0)); + if ((waitStartTime.$high === 0 && waitStartTime.$low === 0)) { + waitStartTime = runtime_nanotime(); + } + $r = runtime_SemacquireMutex((m.$ptr_sema || (m.$ptr_sema = new ptrType$1(function() { return this.$target.sema; }, function($v) { this.$target.sema = $v; }, m))), queueLifo); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + starving = starving || (x = (x$1 = runtime_nanotime(), new $Int64(x$1.$high - waitStartTime.$high, x$1.$low - waitStartTime.$low)), (x.$high > 0 || (x.$high === 0 && x.$low > 1000000))); + old = m.state; + if (!(((old & 4) === 0))) { + if (!(((old & 3) === 0)) || ((old >> 3 >> 0) === 0)) { + throw$1("sync: inconsistent mutex state"); + } + delta = -7; + if (!starving || ((old >> 3 >> 0) === 1)) { + delta = delta - (4) >> 0; + } + atomic.AddInt32((m.$ptr_state || (m.$ptr_state = new ptrType$6(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), delta); + /* break; */ $s = 2; continue; + } + awoke = true; + iter = 0; + $s = 7; continue; + /* } else { */ case 6: + old = m.state; + /* } */ case 7: + /* } */ $s = 1; continue; case 2: + if (false) { + race.Acquire((m)); + } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Mutex.ptr.prototype.Lock }; } $f.awoke = awoke; $f.delta = delta; $f.iter = iter; $f.m = m; $f.new$1 = new$1; $f.old = old; $f.queueLifo = queueLifo; $f.starving = starving; $f.waitStartTime = waitStartTime; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f; + }; + Mutex.prototype.Lock = function() { return this.$val.Lock(); }; + Mutex.ptr.prototype.Unlock = function() { + var m, new$1, old, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; m = $f.m; new$1 = $f.new$1; old = $f.old; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + m = this; + if (false) { + $unused(m.state); + race.Release((m)); + } + new$1 = atomic.AddInt32((m.$ptr_state || (m.$ptr_state = new ptrType$6(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), -1); + if ((((new$1 + 1 >> 0)) & 1) === 0) { + throw$1("sync: unlock of unlocked mutex"); + } + /* */ if ((new$1 & 4) === 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ((new$1 & 4) === 0) { */ case 1: + old = new$1; + /* while (true) { */ case 4: + if (((old >> 3 >> 0) === 0) || !(((old & 7) === 0))) { + $s = -1; return; + } + new$1 = ((old - 8 >> 0)) | 2; + /* */ if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$6(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, new$1)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$6(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, new$1)) { */ case 6: + $r = runtime_Semrelease((m.$ptr_sema || (m.$ptr_sema = new ptrType$1(function() { return this.$target.sema; }, function($v) { this.$target.sema = $v; }, m))), false); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 7: + old = m.state; + /* } */ $s = 4; continue; case 5: + $s = 3; continue; + /* } else { */ case 2: + $r = runtime_Semrelease((m.$ptr_sema || (m.$ptr_sema = new ptrType$1(function() { return this.$target.sema; }, function($v) { this.$target.sema = $v; }, m))), true); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 3: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Mutex.ptr.prototype.Unlock }; } $f.m = m; $f.new$1 = new$1; $f.old = old; $f.$s = $s; $f.$r = $r; return $f; + }; + Mutex.prototype.Unlock = function() { return this.$val.Unlock(); }; + Once.ptr.prototype.Do = function(f) { + var f, o, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; f = $f.f; o = $f.o; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + o = this; + if (atomic.LoadUint32((o.$ptr_done || (o.$ptr_done = new ptrType$1(function() { return this.$target.done; }, function($v) { this.$target.done = $v; }, o)))) === 1) { + $s = -1; return; + } + $r = o.m.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(o.m, "Unlock"), []]); + /* */ if (o.done === 0) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (o.done === 0) { */ case 2: + $deferred.push([atomic.StoreUint32, [(o.$ptr_done || (o.$ptr_done = new ptrType$1(function() { return this.$target.done; }, function($v) { this.$target.done = $v; }, o))), 1]]); + $r = f(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 3: + $s = -1; return; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: Once.ptr.prototype.Do }; } $f.f = f; $f.o = o; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + Once.prototype.Do = function(f) { return this.$val.Do(f); }; + poolCleanup = function() { + var _i, _i$1, _ref, _ref$1, i, i$1, j, l, p, x; + _ref = allPools; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + p = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + ((i < 0 || i >= allPools.$length) ? ($throwRuntimeError("index out of range"), undefined) : allPools.$array[allPools.$offset + i] = ptrType.nil); + i$1 = 0; + while (true) { + if (!(i$1 < ((p.localSize >> 0)))) { break; } + l = indexLocal(p.local, i$1); + l.poolLocalInternal.private$0 = $ifaceNil; + _ref$1 = l.poolLocalInternal.shared; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + j = _i$1; + (x = l.poolLocalInternal.shared, ((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + j] = $ifaceNil)); + _i$1++; + } + l.poolLocalInternal.shared = sliceType$4.nil; + i$1 = i$1 + (1) >> 0; + } + p.local = 0; + p.localSize = 0; + _i++; + } + allPools = new sliceType([]); + }; + init = function() { + runtime_registerPoolCleanup(poolCleanup); + }; + indexLocal = function(l, i) { + var i, l, lp; + lp = (((l) + ($imul(((i >>> 0)), 128) >>> 0) >>> 0)); + return ($pointerOfStructConversion(lp, ptrType$7)); + }; + init$1 = function() { + var n; + n = new notifyList.ptr(0, 0, 0, 0, 0); + runtime_notifyListCheck(20); + }; + runtime_doSpin = function() { + $throwRuntimeError("native function not implemented: sync.runtime_doSpin"); + }; + RWMutex.ptr.prototype.RLock = function() { + var rw, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; rw = $f.rw; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + rw = this; + if (false) { + $unused(rw.w.state); + race.Disable(); + } + /* */ if (atomic.AddInt32((rw.$ptr_readerCount || (rw.$ptr_readerCount = new ptrType$6(function() { return this.$target.readerCount; }, function($v) { this.$target.readerCount = $v; }, rw))), 1) < 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (atomic.AddInt32((rw.$ptr_readerCount || (rw.$ptr_readerCount = new ptrType$6(function() { return this.$target.readerCount; }, function($v) { this.$target.readerCount = $v; }, rw))), 1) < 0) { */ case 1: + $r = runtime_SemacquireMutex((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw))), false); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + if (false) { + race.Enable(); + race.Acquire(((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw))))); + } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: RWMutex.ptr.prototype.RLock }; } $f.rw = rw; $f.$s = $s; $f.$r = $r; return $f; + }; + RWMutex.prototype.RLock = function() { return this.$val.RLock(); }; + RWMutex.ptr.prototype.RUnlock = function() { + var r, rw, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; r = $f.r; rw = $f.rw; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + rw = this; + if (false) { + $unused(rw.w.state); + race.ReleaseMerge(((rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$1(function() { return this.$target.writerSem; }, function($v) { this.$target.writerSem = $v; }, rw))))); + race.Disable(); + } + r = atomic.AddInt32((rw.$ptr_readerCount || (rw.$ptr_readerCount = new ptrType$6(function() { return this.$target.readerCount; }, function($v) { this.$target.readerCount = $v; }, rw))), -1); + /* */ if (r < 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (r < 0) { */ case 1: + if (((r + 1 >> 0) === 0) || ((r + 1 >> 0) === -1073741824)) { + race.Enable(); + throw$1("sync: RUnlock of unlocked RWMutex"); + } + /* */ if (atomic.AddInt32((rw.$ptr_readerWait || (rw.$ptr_readerWait = new ptrType$6(function() { return this.$target.readerWait; }, function($v) { this.$target.readerWait = $v; }, rw))), -1) === 0) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (atomic.AddInt32((rw.$ptr_readerWait || (rw.$ptr_readerWait = new ptrType$6(function() { return this.$target.readerWait; }, function($v) { this.$target.readerWait = $v; }, rw))), -1) === 0) { */ case 3: + $r = runtime_Semrelease((rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$1(function() { return this.$target.writerSem; }, function($v) { this.$target.writerSem = $v; }, rw))), false); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 4: + /* } */ case 2: + if (false) { + race.Enable(); + } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: RWMutex.ptr.prototype.RUnlock }; } $f.r = r; $f.rw = rw; $f.$s = $s; $f.$r = $r; return $f; + }; + RWMutex.prototype.RUnlock = function() { return this.$val.RUnlock(); }; + RWMutex.ptr.prototype.Lock = function() { + var r, rw, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; r = $f.r; rw = $f.rw; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + rw = this; + if (false) { + $unused(rw.w.state); + race.Disable(); + } + $r = rw.w.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + r = atomic.AddInt32((rw.$ptr_readerCount || (rw.$ptr_readerCount = new ptrType$6(function() { return this.$target.readerCount; }, function($v) { this.$target.readerCount = $v; }, rw))), -1073741824) + 1073741824 >> 0; + /* */ if (!((r === 0)) && !((atomic.AddInt32((rw.$ptr_readerWait || (rw.$ptr_readerWait = new ptrType$6(function() { return this.$target.readerWait; }, function($v) { this.$target.readerWait = $v; }, rw))), r) === 0))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!((r === 0)) && !((atomic.AddInt32((rw.$ptr_readerWait || (rw.$ptr_readerWait = new ptrType$6(function() { return this.$target.readerWait; }, function($v) { this.$target.readerWait = $v; }, rw))), r) === 0))) { */ case 2: + $r = runtime_SemacquireMutex((rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$1(function() { return this.$target.writerSem; }, function($v) { this.$target.writerSem = $v; }, rw))), false); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 3: + if (false) { + race.Enable(); + race.Acquire(((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw))))); + race.Acquire(((rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$1(function() { return this.$target.writerSem; }, function($v) { this.$target.writerSem = $v; }, rw))))); + } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: RWMutex.ptr.prototype.Lock }; } $f.r = r; $f.rw = rw; $f.$s = $s; $f.$r = $r; return $f; + }; + RWMutex.prototype.Lock = function() { return this.$val.Lock(); }; + RWMutex.ptr.prototype.Unlock = function() { + var i, r, rw, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; i = $f.i; r = $f.r; rw = $f.rw; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + rw = this; + if (false) { + $unused(rw.w.state); + race.Release(((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw))))); + race.Disable(); + } + r = atomic.AddInt32((rw.$ptr_readerCount || (rw.$ptr_readerCount = new ptrType$6(function() { return this.$target.readerCount; }, function($v) { this.$target.readerCount = $v; }, rw))), 1073741824); + if (r >= 1073741824) { + race.Enable(); + throw$1("sync: Unlock of unlocked RWMutex"); + } + i = 0; + /* while (true) { */ case 1: + /* if (!(i < ((r >> 0)))) { break; } */ if(!(i < ((r >> 0)))) { $s = 2; continue; } + $r = runtime_Semrelease((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw))), false); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = i + (1) >> 0; + /* } */ $s = 1; continue; case 2: + $r = rw.w.Unlock(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (false) { + race.Enable(); + } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: RWMutex.ptr.prototype.Unlock }; } $f.i = i; $f.r = r; $f.rw = rw; $f.$s = $s; $f.$r = $r; return $f; + }; + RWMutex.prototype.Unlock = function() { return this.$val.Unlock(); }; + RWMutex.ptr.prototype.RLocker = function() { + var rw; + rw = this; + return ($pointerOfStructConversion(rw, ptrType$8)); + }; + RWMutex.prototype.RLocker = function() { return this.$val.RLocker(); }; + rlocker.ptr.prototype.Lock = function() { + var r, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; r = $f.r; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + r = this; + $r = ($pointerOfStructConversion(r, ptrType$9)).RLock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: rlocker.ptr.prototype.Lock }; } $f.r = r; $f.$s = $s; $f.$r = $r; return $f; + }; + rlocker.prototype.Lock = function() { return this.$val.Lock(); }; + rlocker.ptr.prototype.Unlock = function() { + var r, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; r = $f.r; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + r = this; + $r = ($pointerOfStructConversion(r, ptrType$9)).RUnlock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: rlocker.ptr.prototype.Unlock }; } $f.r = r; $f.$s = $s; $f.$r = $r; return $f; + }; + rlocker.prototype.Unlock = function() { return this.$val.Unlock(); }; + ptrType.methods = [{prop: "Get", name: "Get", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Put", name: "Put", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "getSlow", name: "getSlow", pkg: "sync", typ: $funcType([], [$emptyInterface], false)}, {prop: "pin", name: "pin", pkg: "sync", typ: $funcType([], [ptrType$7], false)}, {prop: "pinSlow", name: "pinSlow", pkg: "sync", typ: $funcType([], [ptrType$7], false)}]; + ptrType$16.methods = [{prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}]; + ptrType$17.methods = [{prop: "Do", name: "Do", pkg: "", typ: $funcType([funcType$2], [], false)}]; + ptrType$9.methods = [{prop: "RLock", name: "RLock", pkg: "", typ: $funcType([], [], false)}, {prop: "RUnlock", name: "RUnlock", pkg: "", typ: $funcType([], [], false)}, {prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}, {prop: "RLocker", name: "RLocker", pkg: "", typ: $funcType([], [Locker], false)}]; + ptrType$8.methods = [{prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}]; + Pool.init("sync", [{prop: "local", name: "local", embedded: false, exported: false, typ: $UnsafePointer, tag: ""}, {prop: "localSize", name: "localSize", embedded: false, exported: false, typ: $Uintptr, tag: ""}, {prop: "store", name: "store", embedded: false, exported: false, typ: sliceType$4, tag: ""}, {prop: "New", name: "New", embedded: false, exported: true, typ: funcType, tag: ""}]); + Mutex.init("sync", [{prop: "state", name: "state", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "sema", name: "sema", embedded: false, exported: false, typ: $Uint32, tag: ""}]); + Locker.init([{prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}]); + Once.init("sync", [{prop: "m", name: "m", embedded: false, exported: false, typ: Mutex, tag: ""}, {prop: "done", name: "done", embedded: false, exported: false, typ: $Uint32, tag: ""}]); + poolLocalInternal.init("sync", [{prop: "private$0", name: "private", embedded: false, exported: false, typ: $emptyInterface, tag: ""}, {prop: "shared", name: "shared", embedded: false, exported: false, typ: sliceType$4, tag: ""}, {prop: "Mutex", name: "Mutex", embedded: true, exported: true, typ: Mutex, tag: ""}]); + poolLocal.init("sync", [{prop: "poolLocalInternal", name: "poolLocalInternal", embedded: true, exported: false, typ: poolLocalInternal, tag: ""}, {prop: "pad", name: "pad", embedded: false, exported: false, typ: arrayType$2, tag: ""}]); + notifyList.init("sync", [{prop: "wait", name: "wait", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "notify", name: "notify", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "lock", name: "lock", embedded: false, exported: false, typ: $Uintptr, tag: ""}, {prop: "head", name: "head", embedded: false, exported: false, typ: $UnsafePointer, tag: ""}, {prop: "tail", name: "tail", embedded: false, exported: false, typ: $UnsafePointer, tag: ""}]); + RWMutex.init("sync", [{prop: "w", name: "w", embedded: false, exported: false, typ: Mutex, tag: ""}, {prop: "writerSem", name: "writerSem", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "readerSem", name: "readerSem", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "readerCount", name: "readerCount", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "readerWait", name: "readerWait", embedded: false, exported: false, typ: $Int32, tag: ""}]); + rlocker.init("sync", [{prop: "w", name: "w", embedded: false, exported: false, typ: Mutex, tag: ""}, {prop: "writerSem", name: "writerSem", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "readerSem", name: "readerSem", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "readerCount", name: "readerCount", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "readerWait", name: "readerWait", embedded: false, exported: false, typ: $Int32, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = race.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = atomic.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + allPools = sliceType.nil; + semWaiters = {}; + semAwoken = {}; + expunged = (new Uint8Array(8)); + init(); + init$1(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["io"] = (function() { + var $pkg = {}, $init, errors, sync, atomic, Reader, Writer, ReadCloser, ReaderFrom, WriterTo, RuneScanner, stringWriter, sliceType, errWhence, errOffset, WriteString, ReadAtLeast, ReadFull; + errors = $packages["errors"]; + sync = $packages["sync"]; + atomic = $packages["sync/atomic"]; + Reader = $pkg.Reader = $newType(8, $kindInterface, "io.Reader", true, "io", true, null); + Writer = $pkg.Writer = $newType(8, $kindInterface, "io.Writer", true, "io", true, null); + ReadCloser = $pkg.ReadCloser = $newType(8, $kindInterface, "io.ReadCloser", true, "io", true, null); + ReaderFrom = $pkg.ReaderFrom = $newType(8, $kindInterface, "io.ReaderFrom", true, "io", true, null); + WriterTo = $pkg.WriterTo = $newType(8, $kindInterface, "io.WriterTo", true, "io", true, null); + RuneScanner = $pkg.RuneScanner = $newType(8, $kindInterface, "io.RuneScanner", true, "io", true, null); + stringWriter = $pkg.stringWriter = $newType(8, $kindInterface, "io.stringWriter", true, "io", false, null); + sliceType = $sliceType($Uint8); + WriteString = function(w, s) { + var _r, _r$1, _tuple, _tuple$1, _tuple$2, err, n, ok, s, sw, w, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; err = $f.err; n = $f.n; ok = $f.ok; s = $f.s; sw = $f.sw; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + _tuple = $assertType(w, stringWriter, true); + sw = _tuple[0]; + ok = _tuple[1]; + /* */ if (ok) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (ok) { */ case 1: + _r = sw.WriteString(s); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple$1 = _r; + n = _tuple$1[0]; + err = _tuple$1[1]; + $s = -1; return [n, err]; + /* } */ case 2: + _r$1 = w.Write((new sliceType($stringToBytes(s)))); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$2 = _r$1; + n = _tuple$2[0]; + err = _tuple$2[1]; + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: WriteString }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.err = err; $f.n = n; $f.ok = ok; $f.s = s; $f.sw = sw; $f.w = w; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.WriteString = WriteString; + ReadAtLeast = function(r, buf, min) { + var _r, _tmp, _tmp$1, _tuple, buf, err, min, n, nn, r, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; buf = $f.buf; err = $f.err; min = $f.min; n = $f.n; nn = $f.nn; r = $f.r; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + if (buf.$length < min) { + _tmp = 0; + _tmp$1 = $pkg.ErrShortBuffer; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + } + /* while (true) { */ case 1: + /* if (!(n < min && $interfaceIsEqual(err, $ifaceNil))) { break; } */ if(!(n < min && $interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; } + nn = 0; + _r = r.Read($subslice(buf, n)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + nn = _tuple[0]; + err = _tuple[1]; + n = n + (nn) >> 0; + /* } */ $s = 1; continue; case 2: + if (n >= min) { + err = $ifaceNil; + } else if (n > 0 && $interfaceIsEqual(err, $pkg.EOF)) { + err = $pkg.ErrUnexpectedEOF; + } + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: ReadAtLeast }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.buf = buf; $f.err = err; $f.min = min; $f.n = n; $f.nn = nn; $f.r = r; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.ReadAtLeast = ReadAtLeast; + ReadFull = function(r, buf) { + var _r, _tuple, buf, err, n, r, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; buf = $f.buf; err = $f.err; n = $f.n; r = $f.r; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + _r = ReadAtLeast(r, buf, buf.$length); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + err = _tuple[1]; + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: ReadFull }; } $f._r = _r; $f._tuple = _tuple; $f.buf = buf; $f.err = err; $f.n = n; $f.r = r; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.ReadFull = ReadFull; + Reader.init([{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}]); + Writer.init([{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}]); + ReadCloser.init([{prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}]); + ReaderFrom.init([{prop: "ReadFrom", name: "ReadFrom", pkg: "", typ: $funcType([Reader], [$Int64, $error], false)}]); + WriterTo.init([{prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([Writer], [$Int64, $error], false)}]); + RuneScanner.init([{prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false)}, {prop: "UnreadRune", name: "UnreadRune", pkg: "", typ: $funcType([], [$error], false)}]); + stringWriter.init([{prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false)}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sync.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = atomic.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.ErrShortWrite = errors.New("short write"); + $pkg.ErrShortBuffer = errors.New("short buffer"); + $pkg.EOF = errors.New("EOF"); + $pkg.ErrUnexpectedEOF = errors.New("unexpected EOF"); + $pkg.ErrNoProgress = errors.New("multiple Read calls return no data or error"); + errWhence = errors.New("Seek: invalid whence"); + errOffset = errors.New("Seek: invalid offset"); + $pkg.ErrClosedPipe = errors.New("io: read/write on closed pipe"); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["unicode"] = (function() { + var $pkg = {}, $init; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["unicode/utf8"] = (function() { + var $pkg = {}, $init, acceptRange, first, acceptRanges, FullRune, DecodeRune, DecodeRuneInString, RuneLen, EncodeRune, RuneCount, RuneCountInString, ValidString, ValidRune; + acceptRange = $pkg.acceptRange = $newType(0, $kindStruct, "utf8.acceptRange", true, "unicode/utf8", false, function(lo_, hi_) { + this.$val = this; + if (arguments.length === 0) { + this.lo = 0; + this.hi = 0; + return; + } + this.lo = lo_; + this.hi = hi_; + }); + FullRune = function(p) { + var accept, n, p, x, x$1, x$2; + n = p.$length; + if (n === 0) { + return false; + } + x$1 = (x = (0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0]), ((x < 0 || x >= first.length) ? ($throwRuntimeError("index out of range"), undefined) : first[x])); + if (n >= ((((x$1 & 7) >>> 0) >> 0))) { + return true; + } + accept = $clone((x$2 = x$1 >>> 4 << 24 >>> 24, ((x$2 < 0 || x$2 >= acceptRanges.length) ? ($throwRuntimeError("index out of range"), undefined) : acceptRanges[x$2])), acceptRange); + if (n > 1 && ((1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1]) < accept.lo || accept.hi < (1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1]))) { + return true; + } else if (n > 2 && ((2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2]) < 128 || 191 < (2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2]))) { + return true; + } + return false; + }; + $pkg.FullRune = FullRune; + DecodeRune = function(p) { + var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, accept, b1, b2, b3, mask, n, p, p0, r, size, sz, x, x$1; + r = 0; + size = 0; + n = p.$length; + if (n < 1) { + _tmp = 65533; + _tmp$1 = 0; + r = _tmp; + size = _tmp$1; + return [r, size]; + } + p0 = (0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0]); + x = ((p0 < 0 || p0 >= first.length) ? ($throwRuntimeError("index out of range"), undefined) : first[p0]); + if (x >= 240) { + mask = (((x >> 0)) << 31 >> 0) >> 31 >> 0; + _tmp$2 = (((((0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0]) >> 0)) & ~mask) >> 0) | (65533 & mask); + _tmp$3 = 1; + r = _tmp$2; + size = _tmp$3; + return [r, size]; + } + sz = (x & 7) >>> 0; + accept = $clone((x$1 = x >>> 4 << 24 >>> 24, ((x$1 < 0 || x$1 >= acceptRanges.length) ? ($throwRuntimeError("index out of range"), undefined) : acceptRanges[x$1])), acceptRange); + if (n < ((sz >> 0))) { + _tmp$4 = 65533; + _tmp$5 = 1; + r = _tmp$4; + size = _tmp$5; + return [r, size]; + } + b1 = (1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1]); + if (b1 < accept.lo || accept.hi < b1) { + _tmp$6 = 65533; + _tmp$7 = 1; + r = _tmp$6; + size = _tmp$7; + return [r, size]; + } + if (sz === 2) { + _tmp$8 = (((((p0 & 31) >>> 0) >> 0)) << 6 >> 0) | ((((b1 & 63) >>> 0) >> 0)); + _tmp$9 = 2; + r = _tmp$8; + size = _tmp$9; + return [r, size]; + } + b2 = (2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2]); + if (b2 < 128 || 191 < b2) { + _tmp$10 = 65533; + _tmp$11 = 1; + r = _tmp$10; + size = _tmp$11; + return [r, size]; + } + if (sz === 3) { + _tmp$12 = ((((((p0 & 15) >>> 0) >> 0)) << 12 >> 0) | (((((b1 & 63) >>> 0) >> 0)) << 6 >> 0)) | ((((b2 & 63) >>> 0) >> 0)); + _tmp$13 = 3; + r = _tmp$12; + size = _tmp$13; + return [r, size]; + } + b3 = (3 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 3]); + if (b3 < 128 || 191 < b3) { + _tmp$14 = 65533; + _tmp$15 = 1; + r = _tmp$14; + size = _tmp$15; + return [r, size]; + } + _tmp$16 = (((((((p0 & 7) >>> 0) >> 0)) << 18 >> 0) | (((((b1 & 63) >>> 0) >> 0)) << 12 >> 0)) | (((((b2 & 63) >>> 0) >> 0)) << 6 >> 0)) | ((((b3 & 63) >>> 0) >> 0)); + _tmp$17 = 4; + r = _tmp$16; + size = _tmp$17; + return [r, size]; + }; + $pkg.DecodeRune = DecodeRune; + DecodeRuneInString = function(s) { + var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, accept, mask, n, r, s, s0, s1, s2, s3, size, sz, x, x$1; + r = 0; + size = 0; + n = s.length; + if (n < 1) { + _tmp = 65533; + _tmp$1 = 0; + r = _tmp; + size = _tmp$1; + return [r, size]; + } + s0 = s.charCodeAt(0); + x = ((s0 < 0 || s0 >= first.length) ? ($throwRuntimeError("index out of range"), undefined) : first[s0]); + if (x >= 240) { + mask = (((x >> 0)) << 31 >> 0) >> 31 >> 0; + _tmp$2 = ((((s.charCodeAt(0) >> 0)) & ~mask) >> 0) | (65533 & mask); + _tmp$3 = 1; + r = _tmp$2; + size = _tmp$3; + return [r, size]; + } + sz = (x & 7) >>> 0; + accept = $clone((x$1 = x >>> 4 << 24 >>> 24, ((x$1 < 0 || x$1 >= acceptRanges.length) ? ($throwRuntimeError("index out of range"), undefined) : acceptRanges[x$1])), acceptRange); + if (n < ((sz >> 0))) { + _tmp$4 = 65533; + _tmp$5 = 1; + r = _tmp$4; + size = _tmp$5; + return [r, size]; + } + s1 = s.charCodeAt(1); + if (s1 < accept.lo || accept.hi < s1) { + _tmp$6 = 65533; + _tmp$7 = 1; + r = _tmp$6; + size = _tmp$7; + return [r, size]; + } + if (sz === 2) { + _tmp$8 = (((((s0 & 31) >>> 0) >> 0)) << 6 >> 0) | ((((s1 & 63) >>> 0) >> 0)); + _tmp$9 = 2; + r = _tmp$8; + size = _tmp$9; + return [r, size]; + } + s2 = s.charCodeAt(2); + if (s2 < 128 || 191 < s2) { + _tmp$10 = 65533; + _tmp$11 = 1; + r = _tmp$10; + size = _tmp$11; + return [r, size]; + } + if (sz === 3) { + _tmp$12 = ((((((s0 & 15) >>> 0) >> 0)) << 12 >> 0) | (((((s1 & 63) >>> 0) >> 0)) << 6 >> 0)) | ((((s2 & 63) >>> 0) >> 0)); + _tmp$13 = 3; + r = _tmp$12; + size = _tmp$13; + return [r, size]; + } + s3 = s.charCodeAt(3); + if (s3 < 128 || 191 < s3) { + _tmp$14 = 65533; + _tmp$15 = 1; + r = _tmp$14; + size = _tmp$15; + return [r, size]; + } + _tmp$16 = (((((((s0 & 7) >>> 0) >> 0)) << 18 >> 0) | (((((s1 & 63) >>> 0) >> 0)) << 12 >> 0)) | (((((s2 & 63) >>> 0) >> 0)) << 6 >> 0)) | ((((s3 & 63) >>> 0) >> 0)); + _tmp$17 = 4; + r = _tmp$16; + size = _tmp$17; + return [r, size]; + }; + $pkg.DecodeRuneInString = DecodeRuneInString; + RuneLen = function(r) { + var r; + if (r < 0) { + return -1; + } else if (r <= 127) { + return 1; + } else if (r <= 2047) { + return 2; + } else if (55296 <= r && r <= 57343) { + return -1; + } else if (r <= 65535) { + return 3; + } else if (r <= 1114111) { + return 4; + } + return -1; + }; + $pkg.RuneLen = RuneLen; + EncodeRune = function(p, r) { + var i, p, r; + i = ((r >>> 0)); + if (i <= 127) { + (0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0] = ((r << 24 >>> 24))); + return 1; + } else if (i <= 2047) { + $unused((1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1])); + (0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0] = ((192 | (((r >> 6 >> 0) << 24 >>> 24))) >>> 0)); + (1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1] = ((128 | ((((r << 24 >>> 24)) & 63) >>> 0)) >>> 0)); + return 2; + } else if ((i > 1114111) || (55296 <= i && i <= 57343)) { + r = 65533; + $unused((2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2])); + (0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0] = ((224 | (((r >> 12 >> 0) << 24 >>> 24))) >>> 0)); + (1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1] = ((128 | (((((r >> 6 >> 0) << 24 >>> 24)) & 63) >>> 0)) >>> 0)); + (2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2] = ((128 | ((((r << 24 >>> 24)) & 63) >>> 0)) >>> 0)); + return 3; + } else if (i <= 65535) { + $unused((2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2])); + (0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0] = ((224 | (((r >> 12 >> 0) << 24 >>> 24))) >>> 0)); + (1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1] = ((128 | (((((r >> 6 >> 0) << 24 >>> 24)) & 63) >>> 0)) >>> 0)); + (2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2] = ((128 | ((((r << 24 >>> 24)) & 63) >>> 0)) >>> 0)); + return 3; + } else { + $unused((3 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 3])); + (0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0] = ((240 | (((r >> 18 >> 0) << 24 >>> 24))) >>> 0)); + (1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1] = ((128 | (((((r >> 12 >> 0) << 24 >>> 24)) & 63) >>> 0)) >>> 0)); + (2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2] = ((128 | (((((r >> 6 >> 0) << 24 >>> 24)) & 63) >>> 0)) >>> 0)); + (3 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 3] = ((128 | ((((r << 24 >>> 24)) & 63) >>> 0)) >>> 0)); + return 4; + } + }; + $pkg.EncodeRune = EncodeRune; + RuneCount = function(p) { + var accept, c, c$1, c$2, c$3, i, n, np, p, size, x, x$1, x$2, x$3, x$4; + np = p.$length; + n = 0; + i = 0; + while (true) { + if (!(i < np)) { break; } + n = n + (1) >> 0; + c = ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]); + if (c < 128) { + i = i + (1) >> 0; + continue; + } + x = ((c < 0 || c >= first.length) ? ($throwRuntimeError("index out of range"), undefined) : first[c]); + if (x === 241) { + i = i + (1) >> 0; + continue; + } + size = ((((x & 7) >>> 0) >> 0)); + if ((i + size >> 0) > np) { + i = i + (1) >> 0; + continue; + } + accept = $clone((x$1 = x >>> 4 << 24 >>> 24, ((x$1 < 0 || x$1 >= acceptRanges.length) ? ($throwRuntimeError("index out of range"), undefined) : acceptRanges[x$1])), acceptRange); + c$1 = (x$2 = i + 1 >> 0, ((x$2 < 0 || x$2 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$2])); + if (c$1 < accept.lo || accept.hi < c$1) { + size = 1; + } else if (size === 2) { + } else { + c$2 = (x$3 = i + 2 >> 0, ((x$3 < 0 || x$3 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$3])); + if (c$2 < 128 || 191 < c$2) { + size = 1; + } else if (size === 3) { + } else { + c$3 = (x$4 = i + 3 >> 0, ((x$4 < 0 || x$4 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$4])); + if (c$3 < 128 || 191 < c$3) { + size = 1; + } + } + } + i = i + (size) >> 0; + } + return n; + }; + $pkg.RuneCount = RuneCount; + RuneCountInString = function(s) { + var accept, c, c$1, c$2, c$3, i, n, ns, s, size, x, x$1; + n = 0; + ns = s.length; + i = 0; + while (true) { + if (!(i < ns)) { break; } + c = s.charCodeAt(i); + if (c < 128) { + i = i + (1) >> 0; + n = n + (1) >> 0; + continue; + } + x = ((c < 0 || c >= first.length) ? ($throwRuntimeError("index out of range"), undefined) : first[c]); + if (x === 241) { + i = i + (1) >> 0; + n = n + (1) >> 0; + continue; + } + size = ((((x & 7) >>> 0) >> 0)); + if ((i + size >> 0) > ns) { + i = i + (1) >> 0; + n = n + (1) >> 0; + continue; + } + accept = $clone((x$1 = x >>> 4 << 24 >>> 24, ((x$1 < 0 || x$1 >= acceptRanges.length) ? ($throwRuntimeError("index out of range"), undefined) : acceptRanges[x$1])), acceptRange); + c$1 = s.charCodeAt((i + 1 >> 0)); + if (c$1 < accept.lo || accept.hi < c$1) { + size = 1; + } else if (size === 2) { + } else { + c$2 = s.charCodeAt((i + 2 >> 0)); + if (c$2 < 128 || 191 < c$2) { + size = 1; + } else if (size === 3) { + } else { + c$3 = s.charCodeAt((i + 3 >> 0)); + if (c$3 < 128 || 191 < c$3) { + size = 1; + } + } + } + i = i + (size) >> 0; + n = n + (1) >> 0; + } + n = n; + return n; + }; + $pkg.RuneCountInString = RuneCountInString; + ValidString = function(s) { + var accept, c, c$1, c$2, i, n, s, si, size, x, x$1; + n = s.length; + i = 0; + while (true) { + if (!(i < n)) { break; } + si = s.charCodeAt(i); + if (si < 128) { + i = i + (1) >> 0; + continue; + } + x = ((si < 0 || si >= first.length) ? ($throwRuntimeError("index out of range"), undefined) : first[si]); + if (x === 241) { + return false; + } + size = ((((x & 7) >>> 0) >> 0)); + if ((i + size >> 0) > n) { + return false; + } + accept = $clone((x$1 = x >>> 4 << 24 >>> 24, ((x$1 < 0 || x$1 >= acceptRanges.length) ? ($throwRuntimeError("index out of range"), undefined) : acceptRanges[x$1])), acceptRange); + c = s.charCodeAt((i + 1 >> 0)); + if (c < accept.lo || accept.hi < c) { + return false; + } else if (size === 2) { + } else { + c$1 = s.charCodeAt((i + 2 >> 0)); + if (c$1 < 128 || 191 < c$1) { + return false; + } else if (size === 3) { + } else { + c$2 = s.charCodeAt((i + 3 >> 0)); + if (c$2 < 128 || 191 < c$2) { + return false; + } + } + } + i = i + (size) >> 0; + } + return true; + }; + $pkg.ValidString = ValidString; + ValidRune = function(r) { + var r; + if (0 <= r && r < 55296) { + return true; + } else if (57343 < r && r <= 1114111) { + return true; + } + return false; + }; + $pkg.ValidRune = ValidRune; + acceptRange.init("unicode/utf8", [{prop: "lo", name: "lo", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "hi", name: "hi", embedded: false, exported: false, typ: $Uint8, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + first = $toNativeArray($kindUint8, [240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 19, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 35, 3, 3, 52, 4, 4, 4, 68, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241]); + acceptRanges = $toNativeArray($kindStruct, [new acceptRange.ptr(128, 191), new acceptRange.ptr(160, 191), new acceptRange.ptr(128, 159), new acceptRange.ptr(144, 191), new acceptRange.ptr(128, 143)]); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["bytes"] = (function() { + var $pkg = {}, $init, errors, bytealg, io, unicode, utf8, Buffer, readOp, ptrType, sliceType, arrayType, errNegativeRead, IndexByte, Equal, makeSlice; + errors = $packages["errors"]; + bytealg = $packages["internal/bytealg"]; + io = $packages["io"]; + unicode = $packages["unicode"]; + utf8 = $packages["unicode/utf8"]; + Buffer = $pkg.Buffer = $newType(0, $kindStruct, "bytes.Buffer", true, "bytes", true, function(buf_, off_, bootstrap_, lastRead_) { + this.$val = this; + if (arguments.length === 0) { + this.buf = sliceType.nil; + this.off = 0; + this.bootstrap = arrayType.zero(); + this.lastRead = 0; + return; + } + this.buf = buf_; + this.off = off_; + this.bootstrap = bootstrap_; + this.lastRead = lastRead_; + }); + readOp = $pkg.readOp = $newType(1, $kindInt8, "bytes.readOp", true, "bytes", false, null); + ptrType = $ptrType(Buffer); + sliceType = $sliceType($Uint8); + arrayType = $arrayType($Uint8, 64); + IndexByte = function(s, c) { + var _i, _ref, b, c, i, s; + _ref = s; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + b = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (b === c) { + return i; + } + _i++; + } + return -1; + }; + $pkg.IndexByte = IndexByte; + Equal = function(a, b) { + var _i, _ref, a, b, c, i; + if (!((a.$length === b.$length))) { + return false; + } + _ref = a; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!((c === ((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i])))) { + return false; + } + _i++; + } + return true; + }; + $pkg.Equal = Equal; + Buffer.ptr.prototype.Bytes = function() { + var b; + b = this; + return $subslice(b.buf, b.off); + }; + Buffer.prototype.Bytes = function() { return this.$val.Bytes(); }; + Buffer.ptr.prototype.String = function() { + var b; + b = this; + if (b === ptrType.nil) { + return ""; + } + return ($bytesToString($subslice(b.buf, b.off))); + }; + Buffer.prototype.String = function() { return this.$val.String(); }; + Buffer.ptr.prototype.empty = function() { + var b; + b = this; + return b.buf.$length <= b.off; + }; + Buffer.prototype.empty = function() { return this.$val.empty(); }; + Buffer.ptr.prototype.Len = function() { + var b; + b = this; + return b.buf.$length - b.off >> 0; + }; + Buffer.prototype.Len = function() { return this.$val.Len(); }; + Buffer.ptr.prototype.Cap = function() { + var b; + b = this; + return b.buf.$capacity; + }; + Buffer.prototype.Cap = function() { return this.$val.Cap(); }; + Buffer.ptr.prototype.Truncate = function(n) { + var b, n; + b = this; + if (n === 0) { + b.Reset(); + return; + } + b.lastRead = 0; + if (n < 0 || n > b.Len()) { + $panic(new $String("bytes.Buffer: truncation out of range")); + } + b.buf = $subslice(b.buf, 0, (b.off + n >> 0)); + }; + Buffer.prototype.Truncate = function(n) { return this.$val.Truncate(n); }; + Buffer.ptr.prototype.Reset = function() { + var b; + b = this; + b.buf = $subslice(b.buf, 0, 0); + b.off = 0; + b.lastRead = 0; + }; + Buffer.prototype.Reset = function() { return this.$val.Reset(); }; + Buffer.ptr.prototype.tryGrowByReslice = function(n) { + var b, l, n; + b = this; + l = b.buf.$length; + if (n <= (b.buf.$capacity - l >> 0)) { + b.buf = $subslice(b.buf, 0, (l + n >> 0)); + return [l, true]; + } + return [0, false]; + }; + Buffer.prototype.tryGrowByReslice = function(n) { return this.$val.tryGrowByReslice(n); }; + Buffer.ptr.prototype.grow = function(n) { + var _q, _tuple, b, buf, c, i, m, n, ok; + b = this; + m = b.Len(); + if ((m === 0) && !((b.off === 0))) { + b.Reset(); + } + _tuple = b.tryGrowByReslice(n); + i = _tuple[0]; + ok = _tuple[1]; + if (ok) { + return i; + } + if (b.buf === sliceType.nil && n <= 64) { + b.buf = $subslice(new sliceType(b.bootstrap), 0, n); + return 0; + } + c = b.buf.$capacity; + if (n <= ((_q = c / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) - m >> 0)) { + $copySlice(b.buf, $subslice(b.buf, b.off)); + } else if (c > ((2147483647 - c >> 0) - n >> 0)) { + $panic($pkg.ErrTooLarge); + } else { + buf = makeSlice(($imul(2, c)) + n >> 0); + $copySlice(buf, $subslice(b.buf, b.off)); + b.buf = buf; + } + b.off = 0; + b.buf = $subslice(b.buf, 0, (m + n >> 0)); + return m; + }; + Buffer.prototype.grow = function(n) { return this.$val.grow(n); }; + Buffer.ptr.prototype.Grow = function(n) { + var b, m, n; + b = this; + if (n < 0) { + $panic(new $String("bytes.Buffer.Grow: negative count")); + } + m = b.grow(n); + b.buf = $subslice(b.buf, 0, m); + }; + Buffer.prototype.Grow = function(n) { return this.$val.Grow(n); }; + Buffer.ptr.prototype.Write = function(p) { + var _tmp, _tmp$1, _tuple, b, err, m, n, ok, p; + n = 0; + err = $ifaceNil; + b = this; + b.lastRead = 0; + _tuple = b.tryGrowByReslice(p.$length); + m = _tuple[0]; + ok = _tuple[1]; + if (!ok) { + m = b.grow(p.$length); + } + _tmp = $copySlice($subslice(b.buf, m), p); + _tmp$1 = $ifaceNil; + n = _tmp; + err = _tmp$1; + return [n, err]; + }; + Buffer.prototype.Write = function(p) { return this.$val.Write(p); }; + Buffer.ptr.prototype.WriteString = function(s) { + var _tmp, _tmp$1, _tuple, b, err, m, n, ok, s; + n = 0; + err = $ifaceNil; + b = this; + b.lastRead = 0; + _tuple = b.tryGrowByReslice(s.length); + m = _tuple[0]; + ok = _tuple[1]; + if (!ok) { + m = b.grow(s.length); + } + _tmp = $copyString($subslice(b.buf, m), s); + _tmp$1 = $ifaceNil; + n = _tmp; + err = _tmp$1; + return [n, err]; + }; + Buffer.prototype.WriteString = function(s) { return this.$val.WriteString(s); }; + Buffer.ptr.prototype.ReadFrom = function(r) { + var _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, i, m, n, r, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tuple = $f._tuple; b = $f.b; e = $f.e; err = $f.err; i = $f.i; m = $f.m; n = $f.n; r = $f.r; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = new $Int64(0, 0); + err = $ifaceNil; + b = this; + b.lastRead = 0; + /* while (true) { */ case 1: + i = b.grow(512); + b.buf = $subslice(b.buf, 0, i); + _r = r.Read($subslice(b.buf, i, b.buf.$capacity)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + m = _tuple[0]; + e = _tuple[1]; + if (m < 0) { + $panic(errNegativeRead); + } + b.buf = $subslice(b.buf, 0, (i + m >> 0)); + n = (x = (new $Int64(0, m)), new $Int64(n.$high + x.$high, n.$low + x.$low)); + if ($interfaceIsEqual(e, io.EOF)) { + _tmp = n; + _tmp$1 = $ifaceNil; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + } + if (!($interfaceIsEqual(e, $ifaceNil))) { + _tmp$2 = n; + _tmp$3 = e; + n = _tmp$2; + err = _tmp$3; + $s = -1; return [n, err]; + } + /* } */ $s = 1; continue; case 2: + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Buffer.ptr.prototype.ReadFrom }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tuple = _tuple; $f.b = b; $f.e = e; $f.err = err; $f.i = i; $f.m = m; $f.n = n; $f.r = r; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + Buffer.prototype.ReadFrom = function(r) { return this.$val.ReadFrom(r); }; + makeSlice = function(n) { + var n, $deferred; + /* */ var $err = null; try { $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + $deferred.push([(function() { + if (!($interfaceIsEqual($recover(), $ifaceNil))) { + $panic($pkg.ErrTooLarge); + } + }), []]); + return $makeSlice(sliceType, n); + /* */ } catch(err) { $err = err; return sliceType.nil; } finally { $callDeferred($deferred, $err); } + }; + Buffer.ptr.prototype.WriteTo = function(w) { + var _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, b, e, err, m, n, nBytes, w, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tuple = $f._tuple; b = $f.b; e = $f.e; err = $f.err; m = $f.m; n = $f.n; nBytes = $f.nBytes; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = new $Int64(0, 0); + err = $ifaceNil; + b = this; + b.lastRead = 0; + nBytes = b.Len(); + /* */ if (nBytes > 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (nBytes > 0) { */ case 1: + _r = w.Write($subslice(b.buf, b.off)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + m = _tuple[0]; + e = _tuple[1]; + if (m > nBytes) { + $panic(new $String("bytes.Buffer.WriteTo: invalid Write count")); + } + b.off = b.off + (m) >> 0; + n = (new $Int64(0, m)); + if (!($interfaceIsEqual(e, $ifaceNil))) { + _tmp = n; + _tmp$1 = e; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + } + if (!((m === nBytes))) { + _tmp$2 = n; + _tmp$3 = io.ErrShortWrite; + n = _tmp$2; + err = _tmp$3; + $s = -1; return [n, err]; + } + /* } */ case 2: + b.Reset(); + _tmp$4 = n; + _tmp$5 = $ifaceNil; + n = _tmp$4; + err = _tmp$5; + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Buffer.ptr.prototype.WriteTo }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tuple = _tuple; $f.b = b; $f.e = e; $f.err = err; $f.m = m; $f.n = n; $f.nBytes = nBytes; $f.w = w; $f.$s = $s; $f.$r = $r; return $f; + }; + Buffer.prototype.WriteTo = function(w) { return this.$val.WriteTo(w); }; + Buffer.ptr.prototype.WriteByte = function(c) { + var _tuple, b, c, m, ok, x; + b = this; + b.lastRead = 0; + _tuple = b.tryGrowByReslice(1); + m = _tuple[0]; + ok = _tuple[1]; + if (!ok) { + m = b.grow(1); + } + (x = b.buf, ((m < 0 || m >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + m] = c)); + return $ifaceNil; + }; + Buffer.prototype.WriteByte = function(c) { return this.$val.WriteByte(c); }; + Buffer.ptr.prototype.WriteRune = function(r) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, err, m, n, ok, r; + n = 0; + err = $ifaceNil; + b = this; + if (r < 128) { + b.WriteByte(((r << 24 >>> 24))); + _tmp = 1; + _tmp$1 = $ifaceNil; + n = _tmp; + err = _tmp$1; + return [n, err]; + } + b.lastRead = 0; + _tuple = b.tryGrowByReslice(4); + m = _tuple[0]; + ok = _tuple[1]; + if (!ok) { + m = b.grow(4); + } + n = utf8.EncodeRune($subslice(b.buf, m, (m + 4 >> 0)), r); + b.buf = $subslice(b.buf, 0, (m + n >> 0)); + _tmp$2 = n; + _tmp$3 = $ifaceNil; + n = _tmp$2; + err = _tmp$3; + return [n, err]; + }; + Buffer.prototype.WriteRune = function(r) { return this.$val.WriteRune(r); }; + Buffer.ptr.prototype.Read = function(p) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, b, err, n, p; + n = 0; + err = $ifaceNil; + b = this; + b.lastRead = 0; + if (b.empty()) { + b.Reset(); + if (p.$length === 0) { + _tmp = 0; + _tmp$1 = $ifaceNil; + n = _tmp; + err = _tmp$1; + return [n, err]; + } + _tmp$2 = 0; + _tmp$3 = io.EOF; + n = _tmp$2; + err = _tmp$3; + return [n, err]; + } + n = $copySlice(p, $subslice(b.buf, b.off)); + b.off = b.off + (n) >> 0; + if (n > 0) { + b.lastRead = -1; + } + _tmp$4 = n; + _tmp$5 = $ifaceNil; + n = _tmp$4; + err = _tmp$5; + return [n, err]; + }; + Buffer.prototype.Read = function(p) { return this.$val.Read(p); }; + Buffer.ptr.prototype.Next = function(n) { + var b, data, m, n; + b = this; + b.lastRead = 0; + m = b.Len(); + if (n > m) { + n = m; + } + data = $subslice(b.buf, b.off, (b.off + n >> 0)); + b.off = b.off + (n) >> 0; + if (n > 0) { + b.lastRead = -1; + } + return data; + }; + Buffer.prototype.Next = function(n) { return this.$val.Next(n); }; + Buffer.ptr.prototype.ReadByte = function() { + var b, c, x, x$1; + b = this; + if (b.empty()) { + b.Reset(); + return [0, io.EOF]; + } + c = (x = b.buf, x$1 = b.off, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + b.off = b.off + (1) >> 0; + b.lastRead = -1; + return [c, $ifaceNil]; + }; + Buffer.prototype.ReadByte = function() { return this.$val.ReadByte(); }; + Buffer.ptr.prototype.ReadRune = function() { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tuple, b, c, err, n, r, size, x, x$1; + r = 0; + size = 0; + err = $ifaceNil; + b = this; + if (b.empty()) { + b.Reset(); + _tmp = 0; + _tmp$1 = 0; + _tmp$2 = io.EOF; + r = _tmp; + size = _tmp$1; + err = _tmp$2; + return [r, size, err]; + } + c = (x = b.buf, x$1 = b.off, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + if (c < 128) { + b.off = b.off + (1) >> 0; + b.lastRead = 1; + _tmp$3 = ((c >> 0)); + _tmp$4 = 1; + _tmp$5 = $ifaceNil; + r = _tmp$3; + size = _tmp$4; + err = _tmp$5; + return [r, size, err]; + } + _tuple = utf8.DecodeRune($subslice(b.buf, b.off)); + r = _tuple[0]; + n = _tuple[1]; + b.off = b.off + (n) >> 0; + b.lastRead = ((n << 24 >> 24)); + _tmp$6 = r; + _tmp$7 = n; + _tmp$8 = $ifaceNil; + r = _tmp$6; + size = _tmp$7; + err = _tmp$8; + return [r, size, err]; + }; + Buffer.prototype.ReadRune = function() { return this.$val.ReadRune(); }; + Buffer.ptr.prototype.UnreadRune = function() { + var b; + b = this; + if (b.lastRead <= 0) { + return errors.New("bytes.Buffer: UnreadRune: previous operation was not a successful ReadRune"); + } + if (b.off >= ((b.lastRead >> 0))) { + b.off = b.off - (((b.lastRead >> 0))) >> 0; + } + b.lastRead = 0; + return $ifaceNil; + }; + Buffer.prototype.UnreadRune = function() { return this.$val.UnreadRune(); }; + Buffer.ptr.prototype.UnreadByte = function() { + var b; + b = this; + if (b.lastRead === 0) { + return errors.New("bytes.Buffer: UnreadByte: previous operation was not a successful read"); + } + b.lastRead = 0; + if (b.off > 0) { + b.off = b.off - (1) >> 0; + } + return $ifaceNil; + }; + Buffer.prototype.UnreadByte = function() { return this.$val.UnreadByte(); }; + Buffer.ptr.prototype.ReadBytes = function(delim) { + var _tmp, _tmp$1, _tuple, b, delim, err, line, slice; + line = sliceType.nil; + err = $ifaceNil; + b = this; + _tuple = b.readSlice(delim); + slice = _tuple[0]; + err = _tuple[1]; + line = $appendSlice(line, slice); + _tmp = line; + _tmp$1 = err; + line = _tmp; + err = _tmp$1; + return [line, err]; + }; + Buffer.prototype.ReadBytes = function(delim) { return this.$val.ReadBytes(delim); }; + Buffer.ptr.prototype.readSlice = function(delim) { + var _tmp, _tmp$1, b, delim, end, err, i, line; + line = sliceType.nil; + err = $ifaceNil; + b = this; + i = IndexByte($subslice(b.buf, b.off), delim); + end = (b.off + i >> 0) + 1 >> 0; + if (i < 0) { + end = b.buf.$length; + err = io.EOF; + } + line = $subslice(b.buf, b.off, end); + b.off = end; + b.lastRead = -1; + _tmp = line; + _tmp$1 = err; + line = _tmp; + err = _tmp$1; + return [line, err]; + }; + Buffer.prototype.readSlice = function(delim) { return this.$val.readSlice(delim); }; + Buffer.ptr.prototype.ReadString = function(delim) { + var _tmp, _tmp$1, _tuple, b, delim, err, line, slice; + line = ""; + err = $ifaceNil; + b = this; + _tuple = b.readSlice(delim); + slice = _tuple[0]; + err = _tuple[1]; + _tmp = ($bytesToString(slice)); + _tmp$1 = err; + line = _tmp; + err = _tmp$1; + return [line, err]; + }; + Buffer.prototype.ReadString = function(delim) { return this.$val.ReadString(delim); }; + ptrType.methods = [{prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "empty", name: "empty", pkg: "bytes", typ: $funcType([], [$Bool], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Cap", name: "Cap", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Truncate", name: "Truncate", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}, {prop: "tryGrowByReslice", name: "tryGrowByReslice", pkg: "bytes", typ: $funcType([$Int], [$Int, $Bool], false)}, {prop: "grow", name: "grow", pkg: "bytes", typ: $funcType([$Int], [$Int], false)}, {prop: "Grow", name: "Grow", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false)}, {prop: "ReadFrom", name: "ReadFrom", pkg: "", typ: $funcType([io.Reader], [$Int64, $error], false)}, {prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([io.Writer], [$Int64, $error], false)}, {prop: "WriteByte", name: "WriteByte", pkg: "", typ: $funcType([$Uint8], [$error], false)}, {prop: "WriteRune", name: "WriteRune", pkg: "", typ: $funcType([$Int32], [$Int, $error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "Next", name: "Next", pkg: "", typ: $funcType([$Int], [sliceType], false)}, {prop: "ReadByte", name: "ReadByte", pkg: "", typ: $funcType([], [$Uint8, $error], false)}, {prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false)}, {prop: "UnreadRune", name: "UnreadRune", pkg: "", typ: $funcType([], [$error], false)}, {prop: "UnreadByte", name: "UnreadByte", pkg: "", typ: $funcType([], [$error], false)}, {prop: "ReadBytes", name: "ReadBytes", pkg: "", typ: $funcType([$Uint8], [sliceType, $error], false)}, {prop: "readSlice", name: "readSlice", pkg: "bytes", typ: $funcType([$Uint8], [sliceType, $error], false)}, {prop: "ReadString", name: "ReadString", pkg: "", typ: $funcType([$Uint8], [$String, $error], false)}]; + Buffer.init("bytes", [{prop: "buf", name: "buf", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "off", name: "off", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "bootstrap", name: "bootstrap", embedded: false, exported: false, typ: arrayType, tag: ""}, {prop: "lastRead", name: "lastRead", embedded: false, exported: false, typ: readOp, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = bytealg.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = unicode.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.ErrTooLarge = errors.New("bytes.Buffer: too large"); + errNegativeRead = errors.New("bytes.Buffer: reader returned negative count from Read"); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["math"] = (function() { + var $pkg = {}, $init, js, arrayType, arrayType$1, arrayType$2, structType, math, buf, init, Float32bits, Float64bits; + js = $packages["github.com/gopherjs/gopherjs/js"]; + arrayType = $arrayType($Uint32, 2); + arrayType$1 = $arrayType($Float32, 2); + arrayType$2 = $arrayType($Float64, 1); + structType = $structType("math", [{prop: "uint32array", name: "uint32array", embedded: false, exported: false, typ: arrayType, tag: ""}, {prop: "float32array", name: "float32array", embedded: false, exported: false, typ: arrayType$1, tag: ""}, {prop: "float64array", name: "float64array", embedded: false, exported: false, typ: arrayType$2, tag: ""}]); + init = function() { + var ab; + ab = new ($global.ArrayBuffer)(8); + buf.uint32array = new ($global.Uint32Array)(ab); + buf.float32array = new ($global.Float32Array)(ab); + buf.float64array = new ($global.Float64Array)(ab); + }; + Float32bits = function(f) { + var f; + buf.float32array[0] = f; + return buf.uint32array[0]; + }; + $pkg.Float32bits = Float32bits; + Float64bits = function(f) { + var f, x, x$1; + buf.float64array[0] = f; + return (x = $shiftLeft64((new $Uint64(0, buf.uint32array[1])), 32), x$1 = (new $Uint64(0, buf.uint32array[0])), new $Uint64(x.$high + x$1.$high, x.$low + x$1.$low)); + }; + $pkg.Float64bits = Float64bits; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + buf = new structType.ptr(arrayType.zero(), arrayType$1.zero(), arrayType$2.zero()); + math = $global.Math; + init(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["math/bits"] = (function() { + var $pkg = {}, $init, deBruijn32tab, deBruijn64tab, rev8tab, len8tab, LeadingZeros64, TrailingZeros, TrailingZeros32, TrailingZeros64, Reverse8, Reverse16, Reverse32, Len64; + LeadingZeros64 = function(x) { + var x; + return 64 - Len64(x) >> 0; + }; + $pkg.LeadingZeros64 = LeadingZeros64; + TrailingZeros = function(x) { + var x; + if (true) { + return TrailingZeros32(((x >>> 0))); + } + return TrailingZeros64((new $Uint64(0, x))); + }; + $pkg.TrailingZeros = TrailingZeros; + TrailingZeros32 = function(x) { + var x, x$1; + if (x === 0) { + return 32; + } + return (((x$1 = ($imul((((x & (-x >>> 0)) >>> 0)), 125613361) >>> 0) >>> 27 >>> 0, ((x$1 < 0 || x$1 >= deBruijn32tab.length) ? ($throwRuntimeError("index out of range"), undefined) : deBruijn32tab[x$1])) >> 0)); + }; + $pkg.TrailingZeros32 = TrailingZeros32; + TrailingZeros64 = function(x) { + var x, x$1, x$2; + if ((x.$high === 0 && x.$low === 0)) { + return 64; + } + return (((x$1 = $shiftRightUint64($mul64(((x$2 = new $Uint64(-x.$high, -x.$low), new $Uint64(x.$high & x$2.$high, (x.$low & x$2.$low) >>> 0))), new $Uint64(66559345, 3033172745)), 58), (($flatten64(x$1) < 0 || $flatten64(x$1) >= deBruijn64tab.length) ? ($throwRuntimeError("index out of range"), undefined) : deBruijn64tab[$flatten64(x$1)])) >> 0)); + }; + $pkg.TrailingZeros64 = TrailingZeros64; + Reverse8 = function(x) { + var x; + return ((x < 0 || x >= rev8tab.length) ? ($throwRuntimeError("index out of range"), undefined) : rev8tab[x]); + }; + $pkg.Reverse8 = Reverse8; + Reverse16 = function(x) { + var x, x$1, x$2; + return ((((x$1 = x >>> 8 << 16 >>> 16, ((x$1 < 0 || x$1 >= rev8tab.length) ? ($throwRuntimeError("index out of range"), undefined) : rev8tab[x$1])) << 16 >>> 16)) | ((((x$2 = (x & 255) >>> 0, ((x$2 < 0 || x$2 >= rev8tab.length) ? ($throwRuntimeError("index out of range"), undefined) : rev8tab[x$2])) << 16 >>> 16)) << 8 << 16 >>> 16)) >>> 0; + }; + $pkg.Reverse16 = Reverse16; + Reverse32 = function(x) { + var x; + x = ((((x >>> 1 >>> 0) & 1431655765) >>> 0) | (((x & 1431655765) >>> 0) << 1 >>> 0)) >>> 0; + x = ((((x >>> 2 >>> 0) & 858993459) >>> 0) | (((x & 858993459) >>> 0) << 2 >>> 0)) >>> 0; + x = ((((x >>> 4 >>> 0) & 252645135) >>> 0) | (((x & 252645135) >>> 0) << 4 >>> 0)) >>> 0; + x = ((((x >>> 8 >>> 0) & 16711935) >>> 0) | (((x & 16711935) >>> 0) << 8 >>> 0)) >>> 0; + return ((x >>> 16 >>> 0) | (x << 16 >>> 0)) >>> 0; + }; + $pkg.Reverse32 = Reverse32; + Len64 = function(x) { + var n, x; + n = 0; + if ((x.$high > 1 || (x.$high === 1 && x.$low >= 0))) { + x = $shiftRightUint64(x, (32)); + n = 32; + } + if ((x.$high > 0 || (x.$high === 0 && x.$low >= 65536))) { + x = $shiftRightUint64(x, (16)); + n = n + (16) >> 0; + } + if ((x.$high > 0 || (x.$high === 0 && x.$low >= 256))) { + x = $shiftRightUint64(x, (8)); + n = n + (8) >> 0; + } + n = n + (((($flatten64(x) < 0 || $flatten64(x) >= len8tab.length) ? ($throwRuntimeError("index out of range"), undefined) : len8tab[$flatten64(x)]) >> 0)) >> 0; + return n; + }; + $pkg.Len64 = Len64; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + deBruijn32tab = $toNativeArray($kindUint8, [0, 1, 28, 2, 29, 14, 24, 3, 30, 22, 20, 15, 25, 17, 4, 8, 31, 27, 13, 23, 21, 19, 16, 7, 26, 12, 18, 6, 11, 5, 10, 9]); + deBruijn64tab = $toNativeArray($kindUint8, [0, 1, 56, 2, 57, 49, 28, 3, 61, 58, 42, 50, 38, 29, 17, 4, 62, 47, 59, 36, 45, 43, 51, 22, 53, 39, 33, 30, 24, 18, 12, 5, 63, 55, 48, 27, 60, 41, 37, 16, 46, 35, 44, 21, 52, 32, 23, 11, 54, 26, 40, 15, 34, 20, 31, 10, 25, 14, 19, 9, 13, 8, 7, 6]); + rev8tab = $toNativeArray($kindUint8, [0, 128, 64, 192, 32, 160, 96, 224, 16, 144, 80, 208, 48, 176, 112, 240, 8, 136, 72, 200, 40, 168, 104, 232, 24, 152, 88, 216, 56, 184, 120, 248, 4, 132, 68, 196, 36, 164, 100, 228, 20, 148, 84, 212, 52, 180, 116, 244, 12, 140, 76, 204, 44, 172, 108, 236, 28, 156, 92, 220, 60, 188, 124, 252, 2, 130, 66, 194, 34, 162, 98, 226, 18, 146, 82, 210, 50, 178, 114, 242, 10, 138, 74, 202, 42, 170, 106, 234, 26, 154, 90, 218, 58, 186, 122, 250, 6, 134, 70, 198, 38, 166, 102, 230, 22, 150, 86, 214, 54, 182, 118, 246, 14, 142, 78, 206, 46, 174, 110, 238, 30, 158, 94, 222, 62, 190, 126, 254, 1, 129, 65, 193, 33, 161, 97, 225, 17, 145, 81, 209, 49, 177, 113, 241, 9, 137, 73, 201, 41, 169, 105, 233, 25, 153, 89, 217, 57, 185, 121, 249, 5, 133, 69, 197, 37, 165, 101, 229, 21, 149, 85, 213, 53, 181, 117, 245, 13, 141, 77, 205, 45, 173, 109, 237, 29, 157, 93, 221, 61, 189, 125, 253, 3, 131, 67, 195, 35, 163, 99, 227, 19, 147, 83, 211, 51, 179, 115, 243, 11, 139, 75, 203, 43, 171, 107, 235, 27, 155, 91, 219, 59, 187, 123, 251, 7, 135, 71, 199, 39, 167, 103, 231, 23, 151, 87, 215, 55, 183, 119, 247, 15, 143, 79, 207, 47, 175, 111, 239, 31, 159, 95, 223, 63, 191, 127, 255]); + len8tab = $toNativeArray($kindUint8, [0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8]); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["strconv"] = (function() { + var $pkg = {}, $init, errors, math, bits, utf8, decimal, leftCheat, extFloat, floatInfo, decimalSlice, sliceType$3, sliceType$4, sliceType$5, arrayType, sliceType$6, arrayType$1, arrayType$2, ptrType$1, arrayType$3, arrayType$4, ptrType$2, ptrType$3, ptrType$4, optimize, leftcheats, smallPowersOfTen, powersOfTen, uint64pow10, float32info, float32info$24ptr, float64info, float64info$24ptr, isPrint16, isNotPrint16, isPrint32, isNotPrint32, isGraphic, digitZero, trim, rightShift, prefixIsLessThan, leftShift, shouldRoundUp, frexp10Many, adjustLastDigitFixed, adjustLastDigit, AppendFloat, genericFtoa, bigFtoa, formatDigits, roundShortest, fmtE, fmtF, fmtB, min, max, FormatInt, Itoa, small, formatBits, isPowerOfTwo, appendQuotedWith, appendQuotedRuneWith, appendEscapedRune, AppendQuote, AppendQuoteToASCII, AppendQuoteRune, AppendQuoteRuneToASCII, CanBackquote, unhex, UnquoteChar, Unquote, contains, bsearch16, bsearch32, IsPrint, isInGraphicList; + errors = $packages["errors"]; + math = $packages["math"]; + bits = $packages["math/bits"]; + utf8 = $packages["unicode/utf8"]; + decimal = $pkg.decimal = $newType(0, $kindStruct, "strconv.decimal", true, "strconv", false, function(d_, nd_, dp_, neg_, trunc_) { + this.$val = this; + if (arguments.length === 0) { + this.d = arrayType.zero(); + this.nd = 0; + this.dp = 0; + this.neg = false; + this.trunc = false; + return; + } + this.d = d_; + this.nd = nd_; + this.dp = dp_; + this.neg = neg_; + this.trunc = trunc_; + }); + leftCheat = $pkg.leftCheat = $newType(0, $kindStruct, "strconv.leftCheat", true, "strconv", false, function(delta_, cutoff_) { + this.$val = this; + if (arguments.length === 0) { + this.delta = 0; + this.cutoff = ""; + return; + } + this.delta = delta_; + this.cutoff = cutoff_; + }); + extFloat = $pkg.extFloat = $newType(0, $kindStruct, "strconv.extFloat", true, "strconv", false, function(mant_, exp_, neg_) { + this.$val = this; + if (arguments.length === 0) { + this.mant = new $Uint64(0, 0); + this.exp = 0; + this.neg = false; + return; + } + this.mant = mant_; + this.exp = exp_; + this.neg = neg_; + }); + floatInfo = $pkg.floatInfo = $newType(0, $kindStruct, "strconv.floatInfo", true, "strconv", false, function(mantbits_, expbits_, bias_) { + this.$val = this; + if (arguments.length === 0) { + this.mantbits = 0; + this.expbits = 0; + this.bias = 0; + return; + } + this.mantbits = mantbits_; + this.expbits = expbits_; + this.bias = bias_; + }); + decimalSlice = $pkg.decimalSlice = $newType(0, $kindStruct, "strconv.decimalSlice", true, "strconv", false, function(d_, nd_, dp_, neg_) { + this.$val = this; + if (arguments.length === 0) { + this.d = sliceType$6.nil; + this.nd = 0; + this.dp = 0; + this.neg = false; + return; + } + this.d = d_; + this.nd = nd_; + this.dp = dp_; + this.neg = neg_; + }); + sliceType$3 = $sliceType(leftCheat); + sliceType$4 = $sliceType($Uint16); + sliceType$5 = $sliceType($Uint32); + arrayType = $arrayType($Uint8, 800); + sliceType$6 = $sliceType($Uint8); + arrayType$1 = $arrayType($Uint8, 24); + arrayType$2 = $arrayType($Uint8, 32); + ptrType$1 = $ptrType(floatInfo); + arrayType$3 = $arrayType($Uint8, 65); + arrayType$4 = $arrayType($Uint8, 4); + ptrType$2 = $ptrType(decimal); + ptrType$3 = $ptrType(decimalSlice); + ptrType$4 = $ptrType(extFloat); + decimal.ptr.prototype.String = function() { + var a, buf, n, w; + a = this; + n = 10 + a.nd >> 0; + if (a.dp > 0) { + n = n + (a.dp) >> 0; + } + if (a.dp < 0) { + n = n + (-a.dp) >> 0; + } + buf = $makeSlice(sliceType$6, n); + w = 0; + if ((a.nd === 0)) { + return "0"; + } else if (a.dp <= 0) { + ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = 48); + w = w + (1) >> 0; + ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = 46); + w = w + (1) >> 0; + w = w + (digitZero($subslice(buf, w, (w + -a.dp >> 0)))) >> 0; + w = w + ($copySlice($subslice(buf, w), $subslice(new sliceType$6(a.d), 0, a.nd))) >> 0; + } else if (a.dp < a.nd) { + w = w + ($copySlice($subslice(buf, w), $subslice(new sliceType$6(a.d), 0, a.dp))) >> 0; + ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = 46); + w = w + (1) >> 0; + w = w + ($copySlice($subslice(buf, w), $subslice(new sliceType$6(a.d), a.dp, a.nd))) >> 0; + } else { + w = w + ($copySlice($subslice(buf, w), $subslice(new sliceType$6(a.d), 0, a.nd))) >> 0; + w = w + (digitZero($subslice(buf, w, ((w + a.dp >> 0) - a.nd >> 0)))) >> 0; + } + return ($bytesToString($subslice(buf, 0, w))); + }; + decimal.prototype.String = function() { return this.$val.String(); }; + digitZero = function(dst) { + var _i, _ref, dst, i; + _ref = dst; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + ((i < 0 || i >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + i] = 48); + _i++; + } + return dst.$length; + }; + trim = function(a) { + var a, x, x$1; + while (true) { + if (!(a.nd > 0 && ((x = a.d, x$1 = a.nd - 1 >> 0, ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])) === 48))) { break; } + a.nd = a.nd - (1) >> 0; + } + if (a.nd === 0) { + a.dp = 0; + } + }; + decimal.ptr.prototype.Assign = function(v) { + var a, buf, n, v, v1, x, x$1, x$2; + a = this; + buf = arrayType$1.zero(); + n = 0; + while (true) { + if (!((v.$high > 0 || (v.$high === 0 && v.$low > 0)))) { break; } + v1 = $div64(v, new $Uint64(0, 10), false); + v = (x = $mul64(new $Uint64(0, 10), v1), new $Uint64(v.$high - x.$high, v.$low - x.$low)); + ((n < 0 || n >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[n] = ((new $Uint64(v.$high + 0, v.$low + 48).$low << 24 >>> 24))); + n = n + (1) >> 0; + v = v1; + } + a.nd = 0; + n = n - (1) >> 0; + while (true) { + if (!(n >= 0)) { break; } + (x$1 = a.d, x$2 = a.nd, ((x$2 < 0 || x$2 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[x$2] = ((n < 0 || n >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[n]))); + a.nd = a.nd + (1) >> 0; + n = n - (1) >> 0; + } + a.dp = a.nd; + trim(a); + }; + decimal.prototype.Assign = function(v) { return this.$val.Assign(v); }; + rightShift = function(a, k) { + var a, c, c$1, dig, dig$1, k, mask, n, r, w, x, x$1, x$2, x$3, y, y$1, y$2, y$3, y$4; + r = 0; + w = 0; + n = 0; + while (true) { + if (!(((y = k, y < 32 ? (n >>> y) : 0) >>> 0) === 0)) { break; } + if (r >= a.nd) { + if (n === 0) { + a.nd = 0; + return; + } + while (true) { + if (!(((y$1 = k, y$1 < 32 ? (n >>> y$1) : 0) >>> 0) === 0)) { break; } + n = n * 10 >>> 0; + r = r + (1) >> 0; + } + break; + } + c = (((x = a.d, ((r < 0 || r >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[r])) >>> 0)); + n = ((n * 10 >>> 0) + c >>> 0) - 48 >>> 0; + r = r + (1) >> 0; + } + a.dp = a.dp - ((r - 1 >> 0)) >> 0; + mask = (((y$2 = k, y$2 < 32 ? (1 << y$2) : 0) >>> 0)) - 1 >>> 0; + while (true) { + if (!(r < a.nd)) { break; } + c$1 = (((x$1 = a.d, ((r < 0 || r >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[r])) >>> 0)); + dig = (y$3 = k, y$3 < 32 ? (n >>> y$3) : 0) >>> 0; + n = (n & (mask)) >>> 0; + (x$2 = a.d, ((w < 0 || w >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[w] = (((dig + 48 >>> 0) << 24 >>> 24)))); + w = w + (1) >> 0; + n = ((n * 10 >>> 0) + c$1 >>> 0) - 48 >>> 0; + r = r + (1) >> 0; + } + while (true) { + if (!(n > 0)) { break; } + dig$1 = (y$4 = k, y$4 < 32 ? (n >>> y$4) : 0) >>> 0; + n = (n & (mask)) >>> 0; + if (w < 800) { + (x$3 = a.d, ((w < 0 || w >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[w] = (((dig$1 + 48 >>> 0) << 24 >>> 24)))); + w = w + (1) >> 0; + } else if (dig$1 > 0) { + a.trunc = true; + } + n = n * 10 >>> 0; + } + a.nd = w; + trim(a); + }; + prefixIsLessThan = function(b, s) { + var b, i, s; + i = 0; + while (true) { + if (!(i < s.length)) { break; } + if (i >= b.$length) { + return true; + } + if (!((((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i]) === s.charCodeAt(i)))) { + return ((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i]) < s.charCodeAt(i); + } + i = i + (1) >> 0; + } + return false; + }; + leftShift = function(a, k) { + var _q, _q$1, a, delta, k, n, quo, quo$1, r, rem, rem$1, w, x, x$1, x$2, y; + delta = ((k < 0 || k >= leftcheats.$length) ? ($throwRuntimeError("index out of range"), undefined) : leftcheats.$array[leftcheats.$offset + k]).delta; + if (prefixIsLessThan($subslice(new sliceType$6(a.d), 0, a.nd), ((k < 0 || k >= leftcheats.$length) ? ($throwRuntimeError("index out of range"), undefined) : leftcheats.$array[leftcheats.$offset + k]).cutoff)) { + delta = delta - (1) >> 0; + } + r = a.nd; + w = a.nd + delta >> 0; + n = 0; + r = r - (1) >> 0; + while (true) { + if (!(r >= 0)) { break; } + n = n + (((y = k, y < 32 ? ((((((x = a.d, ((r < 0 || r >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[r])) >>> 0)) - 48 >>> 0)) << y) : 0) >>> 0)) >>> 0; + quo = (_q = n / 10, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + rem = n - (10 * quo >>> 0) >>> 0; + w = w - (1) >> 0; + if (w < 800) { + (x$1 = a.d, ((w < 0 || w >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[w] = (((rem + 48 >>> 0) << 24 >>> 24)))); + } else if (!((rem === 0))) { + a.trunc = true; + } + n = quo; + r = r - (1) >> 0; + } + while (true) { + if (!(n > 0)) { break; } + quo$1 = (_q$1 = n / 10, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >>> 0 : $throwRuntimeError("integer divide by zero")); + rem$1 = n - (10 * quo$1 >>> 0) >>> 0; + w = w - (1) >> 0; + if (w < 800) { + (x$2 = a.d, ((w < 0 || w >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[w] = (((rem$1 + 48 >>> 0) << 24 >>> 24)))); + } else if (!((rem$1 === 0))) { + a.trunc = true; + } + n = quo$1; + } + a.nd = a.nd + (delta) >> 0; + if (a.nd >= 800) { + a.nd = 800; + } + a.dp = a.dp + (delta) >> 0; + trim(a); + }; + decimal.ptr.prototype.Shift = function(k) { + var a, k; + a = this; + if ((a.nd === 0)) { + } else if (k > 0) { + while (true) { + if (!(k > 28)) { break; } + leftShift(a, 28); + k = k - (28) >> 0; + } + leftShift(a, ((k >>> 0))); + } else if (k < 0) { + while (true) { + if (!(k < -28)) { break; } + rightShift(a, 28); + k = k + (28) >> 0; + } + rightShift(a, ((-k >>> 0))); + } + }; + decimal.prototype.Shift = function(k) { return this.$val.Shift(k); }; + shouldRoundUp = function(a, nd) { + var _r, a, nd, x, x$1, x$2, x$3; + if (nd < 0 || nd >= a.nd) { + return false; + } + if (((x = a.d, ((nd < 0 || nd >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[nd])) === 53) && ((nd + 1 >> 0) === a.nd)) { + if (a.trunc) { + return true; + } + return nd > 0 && !(((_r = (((x$1 = a.d, x$2 = nd - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[x$2])) - 48 << 24 >>> 24)) % 2, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) === 0)); + } + return (x$3 = a.d, ((nd < 0 || nd >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[nd])) >= 53; + }; + decimal.ptr.prototype.Round = function(nd) { + var a, nd; + a = this; + if (nd < 0 || nd >= a.nd) { + return; + } + if (shouldRoundUp(a, nd)) { + a.RoundUp(nd); + } else { + a.RoundDown(nd); + } + }; + decimal.prototype.Round = function(nd) { return this.$val.Round(nd); }; + decimal.ptr.prototype.RoundDown = function(nd) { + var a, nd; + a = this; + if (nd < 0 || nd >= a.nd) { + return; + } + a.nd = nd; + trim(a); + }; + decimal.prototype.RoundDown = function(nd) { return this.$val.RoundDown(nd); }; + decimal.ptr.prototype.RoundUp = function(nd) { + var a, c, i, nd, x, x$1, x$2; + a = this; + if (nd < 0 || nd >= a.nd) { + return; + } + i = nd - 1 >> 0; + while (true) { + if (!(i >= 0)) { break; } + c = (x = a.d, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i])); + if (c < 57) { + (x$2 = a.d, ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i] = ((x$1 = a.d, ((i < 0 || i >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[i])) + (1) << 24 >>> 24))); + a.nd = i + 1 >> 0; + return; + } + i = i - (1) >> 0; + } + a.d[0] = 49; + a.nd = 1; + a.dp = a.dp + (1) >> 0; + }; + decimal.prototype.RoundUp = function(nd) { return this.$val.RoundUp(nd); }; + decimal.ptr.prototype.RoundedInteger = function() { + var a, i, n, x, x$1, x$2, x$3; + a = this; + if (a.dp > 20) { + return new $Uint64(4294967295, 4294967295); + } + i = 0; + n = new $Uint64(0, 0); + i = 0; + while (true) { + if (!(i < a.dp && i < a.nd)) { break; } + n = (x = $mul64(n, new $Uint64(0, 10)), x$1 = (new $Uint64(0, ((x$2 = a.d, ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i])) - 48 << 24 >>> 24))), new $Uint64(x.$high + x$1.$high, x.$low + x$1.$low)); + i = i + (1) >> 0; + } + while (true) { + if (!(i < a.dp)) { break; } + n = $mul64(n, (new $Uint64(0, 10))); + i = i + (1) >> 0; + } + if (shouldRoundUp(a, a.dp)) { + n = (x$3 = new $Uint64(0, 1), new $Uint64(n.$high + x$3.$high, n.$low + x$3.$low)); + } + return n; + }; + decimal.prototype.RoundedInteger = function() { return this.$val.RoundedInteger(); }; + extFloat.ptr.prototype.AssignComputeBounds = function(mant, exp, neg, flt) { + var _tmp, _tmp$1, exp, expBiased, f, flt, lower, mant, neg, upper, x, x$1, x$2, x$3, x$4; + lower = new extFloat.ptr(new $Uint64(0, 0), 0, false); + upper = new extFloat.ptr(new $Uint64(0, 0), 0, false); + f = this; + f.mant = mant; + f.exp = exp - ((flt.mantbits >> 0)) >> 0; + f.neg = neg; + if (f.exp <= 0 && (x = $shiftLeft64(($shiftRightUint64(mant, ((-f.exp >>> 0)))), ((-f.exp >>> 0))), (mant.$high === x.$high && mant.$low === x.$low))) { + f.mant = $shiftRightUint64(f.mant, (((-f.exp >>> 0)))); + f.exp = 0; + _tmp = $clone(f, extFloat); + _tmp$1 = $clone(f, extFloat); + extFloat.copy(lower, _tmp); + extFloat.copy(upper, _tmp$1); + return [lower, upper]; + } + expBiased = exp - flt.bias >> 0; + extFloat.copy(upper, new extFloat.ptr((x$1 = $mul64(new $Uint64(0, 2), f.mant), new $Uint64(x$1.$high + 0, x$1.$low + 1)), f.exp - 1 >> 0, f.neg)); + if (!((x$2 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), (mant.$high === x$2.$high && mant.$low === x$2.$low))) || (expBiased === 1)) { + extFloat.copy(lower, new extFloat.ptr((x$3 = $mul64(new $Uint64(0, 2), f.mant), new $Uint64(x$3.$high - 0, x$3.$low - 1)), f.exp - 1 >> 0, f.neg)); + } else { + extFloat.copy(lower, new extFloat.ptr((x$4 = $mul64(new $Uint64(0, 4), f.mant), new $Uint64(x$4.$high - 0, x$4.$low - 1)), f.exp - 2 >> 0, f.neg)); + } + return [lower, upper]; + }; + extFloat.prototype.AssignComputeBounds = function(mant, exp, neg, flt) { return this.$val.AssignComputeBounds(mant, exp, neg, flt); }; + extFloat.ptr.prototype.Normalize = function() { + var f, shift, x; + f = this; + if ((x = f.mant, (x.$high === 0 && x.$low === 0))) { + return 0; + } + shift = bits.LeadingZeros64(f.mant); + f.mant = $shiftLeft64(f.mant, (((shift >>> 0)))); + f.exp = f.exp - (shift) >> 0; + return ((shift >>> 0)); + }; + extFloat.prototype.Normalize = function() { return this.$val.Normalize(); }; + extFloat.ptr.prototype.Multiply = function(g) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, cross1, cross2, f, fhi, flo, g, ghi, glo, rem, x, x$1, x$10, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + f = this; + _tmp = $shiftRightUint64(f.mant, 32); + _tmp$1 = (new $Uint64(0, ((f.mant.$low >>> 0)))); + fhi = _tmp; + flo = _tmp$1; + _tmp$2 = $shiftRightUint64(g.mant, 32); + _tmp$3 = (new $Uint64(0, ((g.mant.$low >>> 0)))); + ghi = _tmp$2; + glo = _tmp$3; + cross1 = $mul64(fhi, glo); + cross2 = $mul64(flo, ghi); + f.mant = (x = (x$1 = $mul64(fhi, ghi), x$2 = $shiftRightUint64(cross1, 32), new $Uint64(x$1.$high + x$2.$high, x$1.$low + x$2.$low)), x$3 = $shiftRightUint64(cross2, 32), new $Uint64(x.$high + x$3.$high, x.$low + x$3.$low)); + rem = (x$4 = (x$5 = (new $Uint64(0, ((cross1.$low >>> 0)))), x$6 = (new $Uint64(0, ((cross2.$low >>> 0)))), new $Uint64(x$5.$high + x$6.$high, x$5.$low + x$6.$low)), x$7 = $shiftRightUint64(($mul64(flo, glo)), 32), new $Uint64(x$4.$high + x$7.$high, x$4.$low + x$7.$low)); + rem = (x$8 = new $Uint64(0, 2147483648), new $Uint64(rem.$high + x$8.$high, rem.$low + x$8.$low)); + f.mant = (x$9 = f.mant, x$10 = ($shiftRightUint64(rem, 32)), new $Uint64(x$9.$high + x$10.$high, x$9.$low + x$10.$low)); + f.exp = (f.exp + g.exp >> 0) + 64 >> 0; + }; + extFloat.prototype.Multiply = function(g) { return this.$val.Multiply(g); }; + extFloat.ptr.prototype.AssignDecimal = function(mantissa, exp10, neg, trunc, flt) { + var _q, _r, adjExp, denormalExp, errors$1, exp10, extrabits, f, flt, halfway, i, mant_extra, mantissa, neg, ok, shift, trunc, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, y; + ok = false; + f = this; + errors$1 = 0; + if (trunc) { + errors$1 = errors$1 + (4) >> 0; + } + f.mant = mantissa; + f.exp = 0; + f.neg = neg; + i = (_q = ((exp10 - -348 >> 0)) / 8, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + if (exp10 < -348 || i >= 87) { + ok = false; + return ok; + } + adjExp = (_r = ((exp10 - -348 >> 0)) % 8, _r === _r ? _r : $throwRuntimeError("integer divide by zero")); + if (adjExp < 19 && (x = (x$1 = 19 - adjExp >> 0, ((x$1 < 0 || x$1 >= uint64pow10.length) ? ($throwRuntimeError("index out of range"), undefined) : uint64pow10[x$1])), (mantissa.$high < x.$high || (mantissa.$high === x.$high && mantissa.$low < x.$low)))) { + f.mant = $mul64(f.mant, (((adjExp < 0 || adjExp >= uint64pow10.length) ? ($throwRuntimeError("index out of range"), undefined) : uint64pow10[adjExp]))); + f.Normalize(); + } else { + f.Normalize(); + f.Multiply($clone(((adjExp < 0 || adjExp >= smallPowersOfTen.length) ? ($throwRuntimeError("index out of range"), undefined) : smallPowersOfTen[adjExp]), extFloat)); + errors$1 = errors$1 + (4) >> 0; + } + f.Multiply($clone(((i < 0 || i >= powersOfTen.length) ? ($throwRuntimeError("index out of range"), undefined) : powersOfTen[i]), extFloat)); + if (errors$1 > 0) { + errors$1 = errors$1 + (1) >> 0; + } + errors$1 = errors$1 + (4) >> 0; + shift = f.Normalize(); + errors$1 = (y = (shift), y < 32 ? (errors$1 << y) : 0) >> 0; + denormalExp = flt.bias - 63 >> 0; + extrabits = 0; + if (f.exp <= denormalExp) { + extrabits = ((63 - flt.mantbits >>> 0) + 1 >>> 0) + (((denormalExp - f.exp >> 0) >>> 0)) >>> 0; + } else { + extrabits = 63 - flt.mantbits >>> 0; + } + halfway = $shiftLeft64(new $Uint64(0, 1), ((extrabits - 1 >>> 0))); + mant_extra = (x$2 = f.mant, x$3 = (x$4 = $shiftLeft64(new $Uint64(0, 1), extrabits), new $Uint64(x$4.$high - 0, x$4.$low - 1)), new $Uint64(x$2.$high & x$3.$high, (x$2.$low & x$3.$low) >>> 0)); + if ((x$5 = (x$6 = (new $Int64(halfway.$high, halfway.$low)), x$7 = (new $Int64(0, errors$1)), new $Int64(x$6.$high - x$7.$high, x$6.$low - x$7.$low)), x$8 = (new $Int64(mant_extra.$high, mant_extra.$low)), (x$5.$high < x$8.$high || (x$5.$high === x$8.$high && x$5.$low < x$8.$low))) && (x$9 = (new $Int64(mant_extra.$high, mant_extra.$low)), x$10 = (x$11 = (new $Int64(halfway.$high, halfway.$low)), x$12 = (new $Int64(0, errors$1)), new $Int64(x$11.$high + x$12.$high, x$11.$low + x$12.$low)), (x$9.$high < x$10.$high || (x$9.$high === x$10.$high && x$9.$low < x$10.$low)))) { + ok = false; + return ok; + } + ok = true; + return ok; + }; + extFloat.prototype.AssignDecimal = function(mantissa, exp10, neg, trunc, flt) { return this.$val.AssignDecimal(mantissa, exp10, neg, trunc, flt); }; + extFloat.ptr.prototype.frexp10 = function() { + var _q, _q$1, _tmp, _tmp$1, approxExp10, exp, exp10, f, i, index; + exp10 = 0; + index = 0; + f = this; + approxExp10 = (_q = ($imul(((-46 - f.exp >> 0)), 28)) / 93, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + i = (_q$1 = ((approxExp10 - -348 >> 0)) / 8, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")); + Loop: + while (true) { + exp = (f.exp + ((i < 0 || i >= powersOfTen.length) ? ($throwRuntimeError("index out of range"), undefined) : powersOfTen[i]).exp >> 0) + 64 >> 0; + if (exp < -60) { + i = i + (1) >> 0; + } else if (exp > -32) { + i = i - (1) >> 0; + } else { + break Loop; + } + } + f.Multiply($clone(((i < 0 || i >= powersOfTen.length) ? ($throwRuntimeError("index out of range"), undefined) : powersOfTen[i]), extFloat)); + _tmp = -((-348 + ($imul(i, 8)) >> 0)); + _tmp$1 = i; + exp10 = _tmp; + index = _tmp$1; + return [exp10, index]; + }; + extFloat.prototype.frexp10 = function() { return this.$val.frexp10(); }; + frexp10Many = function(a, b, c) { + var _tuple, a, b, c, exp10, i; + exp10 = 0; + _tuple = c.frexp10(); + exp10 = _tuple[0]; + i = _tuple[1]; + a.Multiply($clone(((i < 0 || i >= powersOfTen.length) ? ($throwRuntimeError("index out of range"), undefined) : powersOfTen[i]), extFloat)); + b.Multiply($clone(((i < 0 || i >= powersOfTen.length) ? ($throwRuntimeError("index out of range"), undefined) : powersOfTen[i]), extFloat)); + return exp10; + }; + extFloat.ptr.prototype.FixedDecimal = function(d, n) { + var $CE$B5, _q, _q$1, _tmp, _tmp$1, _tuple, buf, d, digit, exp10, f, fraction, i, i$1, i$2, integer, integerDigits, n, nd, needed, ok, pos, pow, pow10, rest, shift, v, v1, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + f = this; + if ((x = f.mant, (x.$high === 0 && x.$low === 0))) { + d.nd = 0; + d.dp = 0; + d.neg = f.neg; + return true; + } + if (n === 0) { + $panic(new $String("strconv: internal error: extFloat.FixedDecimal called with n == 0")); + } + f.Normalize(); + _tuple = f.frexp10(); + exp10 = _tuple[0]; + shift = ((-f.exp >>> 0)); + integer = (($shiftRightUint64(f.mant, shift).$low >>> 0)); + fraction = (x$1 = f.mant, x$2 = $shiftLeft64((new $Uint64(0, integer)), shift), new $Uint64(x$1.$high - x$2.$high, x$1.$low - x$2.$low)); + $CE$B5 = new $Uint64(0, 1); + needed = n; + integerDigits = 0; + pow10 = new $Uint64(0, 1); + _tmp = 0; + _tmp$1 = new $Uint64(0, 1); + i = _tmp; + pow = _tmp$1; + while (true) { + if (!(i < 20)) { break; } + if ((x$3 = (new $Uint64(0, integer)), (pow.$high > x$3.$high || (pow.$high === x$3.$high && pow.$low > x$3.$low)))) { + integerDigits = i; + break; + } + pow = $mul64(pow, (new $Uint64(0, 10))); + i = i + (1) >> 0; + } + rest = integer; + if (integerDigits > needed) { + pow10 = (x$4 = integerDigits - needed >> 0, ((x$4 < 0 || x$4 >= uint64pow10.length) ? ($throwRuntimeError("index out of range"), undefined) : uint64pow10[x$4])); + integer = (_q = integer / (((pow10.$low >>> 0))), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + rest = rest - (($imul(integer, ((pow10.$low >>> 0))) >>> 0)) >>> 0; + } else { + rest = 0; + } + buf = arrayType$2.zero(); + pos = 32; + v = integer; + while (true) { + if (!(v > 0)) { break; } + v1 = (_q$1 = v / 10, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >>> 0 : $throwRuntimeError("integer divide by zero")); + v = v - (($imul(10, v1) >>> 0)) >>> 0; + pos = pos - (1) >> 0; + ((pos < 0 || pos >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[pos] = (((v + 48 >>> 0) << 24 >>> 24))); + v = v1; + } + i$1 = pos; + while (true) { + if (!(i$1 < 32)) { break; } + (x$5 = d.d, x$6 = i$1 - pos >> 0, ((x$6 < 0 || x$6 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + x$6] = ((i$1 < 0 || i$1 >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i$1]))); + i$1 = i$1 + (1) >> 0; + } + nd = 32 - pos >> 0; + d.nd = nd; + d.dp = integerDigits + exp10 >> 0; + needed = needed - (nd) >> 0; + if (needed > 0) { + if (!((rest === 0)) || !((pow10.$high === 0 && pow10.$low === 1))) { + $panic(new $String("strconv: internal error, rest != 0 but needed > 0")); + } + while (true) { + if (!(needed > 0)) { break; } + fraction = $mul64(fraction, (new $Uint64(0, 10))); + $CE$B5 = $mul64($CE$B5, (new $Uint64(0, 10))); + if ((x$7 = $mul64(new $Uint64(0, 2), $CE$B5), x$8 = $shiftLeft64(new $Uint64(0, 1), shift), (x$7.$high > x$8.$high || (x$7.$high === x$8.$high && x$7.$low > x$8.$low)))) { + return false; + } + digit = $shiftRightUint64(fraction, shift); + (x$9 = d.d, ((nd < 0 || nd >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + nd] = ((new $Uint64(digit.$high + 0, digit.$low + 48).$low << 24 >>> 24)))); + fraction = (x$10 = $shiftLeft64(digit, shift), new $Uint64(fraction.$high - x$10.$high, fraction.$low - x$10.$low)); + nd = nd + (1) >> 0; + needed = needed - (1) >> 0; + } + d.nd = nd; + } + ok = adjustLastDigitFixed(d, (x$11 = $shiftLeft64((new $Uint64(0, rest)), shift), new $Uint64(x$11.$high | fraction.$high, (x$11.$low | fraction.$low) >>> 0)), pow10, shift, $CE$B5); + if (!ok) { + return false; + } + i$2 = d.nd - 1 >> 0; + while (true) { + if (!(i$2 >= 0)) { break; } + if (!(((x$12 = d.d, ((i$2 < 0 || i$2 >= x$12.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + i$2])) === 48))) { + d.nd = i$2 + 1 >> 0; + break; + } + i$2 = i$2 - (1) >> 0; + } + return true; + }; + extFloat.prototype.FixedDecimal = function(d, n) { return this.$val.FixedDecimal(d, n); }; + adjustLastDigitFixed = function(d, num, den, shift, $CE$B5) { + var $CE$B5, d, den, i, num, shift, x, x$1, x$10, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + if ((x = $shiftLeft64(den, shift), (num.$high > x.$high || (num.$high === x.$high && num.$low > x.$low)))) { + $panic(new $String("strconv: num > den< x$2.$high || (x$1.$high === x$2.$high && x$1.$low > x$2.$low)))) { + $panic(new $String("strconv: \xCE\xB5 > (den< x$6.$high || (x$5.$high === x$6.$high && x$5.$low > x$6.$low)))) { + i = d.nd - 1 >> 0; + while (true) { + if (!(i >= 0)) { break; } + if ((x$7 = d.d, ((i < 0 || i >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + i])) === 57) { + d.nd = d.nd - (1) >> 0; + } else { + break; + } + i = i - (1) >> 0; + } + if (i < 0) { + (x$8 = d.d, (0 >= x$8.$length ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + 0] = 49)); + d.nd = 1; + d.dp = d.dp + (1) >> 0; + } else { + (x$10 = d.d, ((i < 0 || i >= x$10.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + i] = ((x$9 = d.d, ((i < 0 || i >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + i])) + (1) << 24 >>> 24))); + } + return true; + } + return false; + }; + extFloat.ptr.prototype.ShortestDecimal = function(d, lower, upper) { + var _q, _tmp, _tmp$1, _tmp$2, _tmp$3, allowance, buf, currentDiff, d, digit, digit$1, exp10, f, fraction, i, i$1, i$2, integer, integerDigits, lower, multiplier, n, nd, pow, pow$1, shift, targetDiff, upper, v, v1, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + f = this; + if ((x = f.mant, (x.$high === 0 && x.$low === 0))) { + d.nd = 0; + d.dp = 0; + d.neg = f.neg; + return true; + } + if ((f.exp === 0) && $equal(lower, f, extFloat) && $equal(lower, upper, extFloat)) { + buf = arrayType$1.zero(); + n = 23; + v = f.mant; + while (true) { + if (!((v.$high > 0 || (v.$high === 0 && v.$low > 0)))) { break; } + v1 = $div64(v, new $Uint64(0, 10), false); + v = (x$1 = $mul64(new $Uint64(0, 10), v1), new $Uint64(v.$high - x$1.$high, v.$low - x$1.$low)); + ((n < 0 || n >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[n] = ((new $Uint64(v.$high + 0, v.$low + 48).$low << 24 >>> 24))); + n = n - (1) >> 0; + v = v1; + } + nd = (24 - n >> 0) - 1 >> 0; + i = 0; + while (true) { + if (!(i < nd)) { break; } + (x$3 = d.d, ((i < 0 || i >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + i] = (x$2 = (n + 1 >> 0) + i >> 0, ((x$2 < 0 || x$2 >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[x$2])))); + i = i + (1) >> 0; + } + _tmp = nd; + _tmp$1 = nd; + d.nd = _tmp; + d.dp = _tmp$1; + while (true) { + if (!(d.nd > 0 && ((x$4 = d.d, x$5 = d.nd - 1 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])) === 48))) { break; } + d.nd = d.nd - (1) >> 0; + } + if (d.nd === 0) { + d.dp = 0; + } + d.neg = f.neg; + return true; + } + upper.Normalize(); + if (f.exp > upper.exp) { + f.mant = $shiftLeft64(f.mant, ((((f.exp - upper.exp >> 0) >>> 0)))); + f.exp = upper.exp; + } + if (lower.exp > upper.exp) { + lower.mant = $shiftLeft64(lower.mant, ((((lower.exp - upper.exp >> 0) >>> 0)))); + lower.exp = upper.exp; + } + exp10 = frexp10Many(lower, f, upper); + upper.mant = (x$6 = upper.mant, x$7 = new $Uint64(0, 1), new $Uint64(x$6.$high + x$7.$high, x$6.$low + x$7.$low)); + lower.mant = (x$8 = lower.mant, x$9 = new $Uint64(0, 1), new $Uint64(x$8.$high - x$9.$high, x$8.$low - x$9.$low)); + shift = ((-upper.exp >>> 0)); + integer = (($shiftRightUint64(upper.mant, shift).$low >>> 0)); + fraction = (x$10 = upper.mant, x$11 = $shiftLeft64((new $Uint64(0, integer)), shift), new $Uint64(x$10.$high - x$11.$high, x$10.$low - x$11.$low)); + allowance = (x$12 = upper.mant, x$13 = lower.mant, new $Uint64(x$12.$high - x$13.$high, x$12.$low - x$13.$low)); + targetDiff = (x$14 = upper.mant, x$15 = f.mant, new $Uint64(x$14.$high - x$15.$high, x$14.$low - x$15.$low)); + integerDigits = 0; + _tmp$2 = 0; + _tmp$3 = new $Uint64(0, 1); + i$1 = _tmp$2; + pow = _tmp$3; + while (true) { + if (!(i$1 < 20)) { break; } + if ((x$16 = (new $Uint64(0, integer)), (pow.$high > x$16.$high || (pow.$high === x$16.$high && pow.$low > x$16.$low)))) { + integerDigits = i$1; + break; + } + pow = $mul64(pow, (new $Uint64(0, 10))); + i$1 = i$1 + (1) >> 0; + } + i$2 = 0; + while (true) { + if (!(i$2 < integerDigits)) { break; } + pow$1 = (x$17 = (integerDigits - i$2 >> 0) - 1 >> 0, ((x$17 < 0 || x$17 >= uint64pow10.length) ? ($throwRuntimeError("index out of range"), undefined) : uint64pow10[x$17])); + digit = (_q = integer / ((pow$1.$low >>> 0)), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + (x$18 = d.d, ((i$2 < 0 || i$2 >= x$18.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$18.$array[x$18.$offset + i$2] = (((digit + 48 >>> 0) << 24 >>> 24)))); + integer = integer - (($imul(digit, ((pow$1.$low >>> 0))) >>> 0)) >>> 0; + currentDiff = (x$19 = $shiftLeft64((new $Uint64(0, integer)), shift), new $Uint64(x$19.$high + fraction.$high, x$19.$low + fraction.$low)); + if ((currentDiff.$high < allowance.$high || (currentDiff.$high === allowance.$high && currentDiff.$low < allowance.$low))) { + d.nd = i$2 + 1 >> 0; + d.dp = integerDigits + exp10 >> 0; + d.neg = f.neg; + return adjustLastDigit(d, currentDiff, targetDiff, allowance, $shiftLeft64(pow$1, shift), new $Uint64(0, 2)); + } + i$2 = i$2 + (1) >> 0; + } + d.nd = integerDigits; + d.dp = d.nd + exp10 >> 0; + d.neg = f.neg; + digit$1 = 0; + multiplier = new $Uint64(0, 1); + while (true) { + fraction = $mul64(fraction, (new $Uint64(0, 10))); + multiplier = $mul64(multiplier, (new $Uint64(0, 10))); + digit$1 = (($shiftRightUint64(fraction, shift).$low >> 0)); + (x$20 = d.d, x$21 = d.nd, ((x$21 < 0 || x$21 >= x$20.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$20.$array[x$20.$offset + x$21] = (((digit$1 + 48 >> 0) << 24 >>> 24)))); + d.nd = d.nd + (1) >> 0; + fraction = (x$22 = $shiftLeft64((new $Uint64(0, digit$1)), shift), new $Uint64(fraction.$high - x$22.$high, fraction.$low - x$22.$low)); + if ((x$23 = $mul64(allowance, multiplier), (fraction.$high < x$23.$high || (fraction.$high === x$23.$high && fraction.$low < x$23.$low)))) { + return adjustLastDigit(d, fraction, $mul64(targetDiff, multiplier), $mul64(allowance, multiplier), $shiftLeft64(new $Uint64(0, 1), shift), $mul64(multiplier, new $Uint64(0, 2))); + } + } + }; + extFloat.prototype.ShortestDecimal = function(d, lower, upper) { return this.$val.ShortestDecimal(d, lower, upper); }; + adjustLastDigit = function(d, currentDiff, targetDiff, maxDiff, ulpDecimal, ulpBinary) { + var _index, currentDiff, d, maxDiff, targetDiff, ulpBinary, ulpDecimal, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + if ((x = $mul64(new $Uint64(0, 2), ulpBinary), (ulpDecimal.$high < x.$high || (ulpDecimal.$high === x.$high && ulpDecimal.$low < x.$low)))) { + return false; + } + while (true) { + if (!((x$1 = (x$2 = (x$3 = $div64(ulpDecimal, new $Uint64(0, 2), false), new $Uint64(currentDiff.$high + x$3.$high, currentDiff.$low + x$3.$low)), new $Uint64(x$2.$high + ulpBinary.$high, x$2.$low + ulpBinary.$low)), (x$1.$high < targetDiff.$high || (x$1.$high === targetDiff.$high && x$1.$low < targetDiff.$low))))) { break; } + _index = d.nd - 1 >> 0; + (x$5 = d.d, ((_index < 0 || _index >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + _index] = ((x$4 = d.d, ((_index < 0 || _index >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + _index])) - (1) << 24 >>> 24))); + currentDiff = (x$6 = ulpDecimal, new $Uint64(currentDiff.$high + x$6.$high, currentDiff.$low + x$6.$low)); + } + if ((x$7 = new $Uint64(currentDiff.$high + ulpDecimal.$high, currentDiff.$low + ulpDecimal.$low), x$8 = (x$9 = (x$10 = $div64(ulpDecimal, new $Uint64(0, 2), false), new $Uint64(targetDiff.$high + x$10.$high, targetDiff.$low + x$10.$low)), new $Uint64(x$9.$high + ulpBinary.$high, x$9.$low + ulpBinary.$low)), (x$7.$high < x$8.$high || (x$7.$high === x$8.$high && x$7.$low <= x$8.$low)))) { + return false; + } + if ((currentDiff.$high < ulpBinary.$high || (currentDiff.$high === ulpBinary.$high && currentDiff.$low < ulpBinary.$low)) || (x$11 = new $Uint64(maxDiff.$high - ulpBinary.$high, maxDiff.$low - ulpBinary.$low), (currentDiff.$high > x$11.$high || (currentDiff.$high === x$11.$high && currentDiff.$low > x$11.$low)))) { + return false; + } + if ((d.nd === 1) && ((x$12 = d.d, (0 >= x$12.$length ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + 0])) === 48)) { + d.nd = 0; + d.dp = 0; + } + return true; + }; + AppendFloat = function(dst, f, fmt, prec, bitSize) { + var bitSize, dst, f, fmt, prec; + return genericFtoa(dst, f, fmt, prec, bitSize); + }; + $pkg.AppendFloat = AppendFloat; + genericFtoa = function(dst, val, fmt, prec, bitSize) { + var _1, _2, _3, _4, _tuple, bitSize, bits$1, buf, buf$1, digits, digs, dst, exp, f, f$1, flt, fmt, lower, mant, neg, ok, prec, s, shortest, upper, val, x, x$1, x$2, x$3, y, y$1; + bits$1 = new $Uint64(0, 0); + flt = ptrType$1.nil; + _1 = bitSize; + if (_1 === (32)) { + bits$1 = (new $Uint64(0, math.Float32bits(($fround(val))))); + flt = float32info; + } else if (_1 === (64)) { + bits$1 = math.Float64bits(val); + flt = float64info; + } else { + $panic(new $String("strconv: illegal AppendFloat/FormatFloat bitSize")); + } + neg = !((x = $shiftRightUint64(bits$1, ((flt.expbits + flt.mantbits >>> 0))), (x.$high === 0 && x.$low === 0))); + exp = (($shiftRightUint64(bits$1, flt.mantbits).$low >> 0)) & ((((y = flt.expbits, y < 32 ? (1 << y) : 0) >> 0) - 1 >> 0)); + mant = (x$1 = (x$2 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), new $Uint64(x$2.$high - 0, x$2.$low - 1)), new $Uint64(bits$1.$high & x$1.$high, (bits$1.$low & x$1.$low) >>> 0)); + _2 = exp; + if (_2 === ((((y$1 = flt.expbits, y$1 < 32 ? (1 << y$1) : 0) >> 0) - 1 >> 0))) { + s = ""; + if (!((mant.$high === 0 && mant.$low === 0))) { + s = "NaN"; + } else if (neg) { + s = "-Inf"; + } else { + s = "+Inf"; + } + return $appendSlice(dst, s); + } else if (_2 === (0)) { + exp = exp + (1) >> 0; + } else { + mant = (x$3 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), new $Uint64(mant.$high | x$3.$high, (mant.$low | x$3.$low) >>> 0)); + } + exp = exp + (flt.bias) >> 0; + if (fmt === 98) { + return fmtB(dst, neg, mant, exp, flt); + } + if (!optimize) { + return bigFtoa(dst, prec, fmt, neg, mant, exp, flt); + } + digs = new decimalSlice.ptr(sliceType$6.nil, 0, 0, false); + ok = false; + shortest = prec < 0; + if (shortest) { + f = new extFloat.ptr(new $Uint64(0, 0), 0, false); + _tuple = f.AssignComputeBounds(mant, exp, neg, flt); + lower = $clone(_tuple[0], extFloat); + upper = $clone(_tuple[1], extFloat); + buf = arrayType$2.zero(); + digs.d = new sliceType$6(buf); + ok = f.ShortestDecimal(digs, lower, upper); + if (!ok) { + return bigFtoa(dst, prec, fmt, neg, mant, exp, flt); + } + _3 = fmt; + if ((_3 === (101)) || (_3 === (69))) { + prec = max(digs.nd - 1 >> 0, 0); + } else if (_3 === (102)) { + prec = max(digs.nd - digs.dp >> 0, 0); + } else if ((_3 === (103)) || (_3 === (71))) { + prec = digs.nd; + } + } else if (!((fmt === 102))) { + digits = prec; + _4 = fmt; + if ((_4 === (101)) || (_4 === (69))) { + digits = digits + (1) >> 0; + } else if ((_4 === (103)) || (_4 === (71))) { + if (prec === 0) { + prec = 1; + } + digits = prec; + } + if (digits <= 15) { + buf$1 = arrayType$1.zero(); + digs.d = new sliceType$6(buf$1); + f$1 = new extFloat.ptr(mant, exp - ((flt.mantbits >> 0)) >> 0, neg); + ok = f$1.FixedDecimal(digs, digits); + } + } + if (!ok) { + return bigFtoa(dst, prec, fmt, neg, mant, exp, flt); + } + return formatDigits(dst, shortest, neg, $clone(digs, decimalSlice), prec, fmt); + }; + bigFtoa = function(dst, prec, fmt, neg, mant, exp, flt) { + var _1, _2, d, digs, dst, exp, flt, fmt, mant, neg, prec, shortest; + d = new decimal.ptr(arrayType.zero(), 0, 0, false, false); + d.Assign(mant); + d.Shift(exp - ((flt.mantbits >> 0)) >> 0); + digs = new decimalSlice.ptr(sliceType$6.nil, 0, 0, false); + shortest = prec < 0; + if (shortest) { + roundShortest(d, mant, exp, flt); + decimalSlice.copy(digs, new decimalSlice.ptr(new sliceType$6(d.d), d.nd, d.dp, false)); + _1 = fmt; + if ((_1 === (101)) || (_1 === (69))) { + prec = digs.nd - 1 >> 0; + } else if (_1 === (102)) { + prec = max(digs.nd - digs.dp >> 0, 0); + } else if ((_1 === (103)) || (_1 === (71))) { + prec = digs.nd; + } + } else { + _2 = fmt; + if ((_2 === (101)) || (_2 === (69))) { + d.Round(prec + 1 >> 0); + } else if (_2 === (102)) { + d.Round(d.dp + prec >> 0); + } else if ((_2 === (103)) || (_2 === (71))) { + if (prec === 0) { + prec = 1; + } + d.Round(prec); + } + decimalSlice.copy(digs, new decimalSlice.ptr(new sliceType$6(d.d), d.nd, d.dp, false)); + } + return formatDigits(dst, shortest, neg, $clone(digs, decimalSlice), prec, fmt); + }; + formatDigits = function(dst, shortest, neg, digs, prec, fmt) { + var _1, digs, dst, eprec, exp, fmt, neg, prec, shortest; + _1 = fmt; + if ((_1 === (101)) || (_1 === (69))) { + return fmtE(dst, neg, $clone(digs, decimalSlice), prec, fmt); + } else if (_1 === (102)) { + return fmtF(dst, neg, $clone(digs, decimalSlice), prec); + } else if ((_1 === (103)) || (_1 === (71))) { + eprec = prec; + if (eprec > digs.nd && digs.nd >= digs.dp) { + eprec = digs.nd; + } + if (shortest) { + eprec = 6; + } + exp = digs.dp - 1 >> 0; + if (exp < -4 || exp >= eprec) { + if (prec > digs.nd) { + prec = digs.nd; + } + return fmtE(dst, neg, $clone(digs, decimalSlice), prec - 1 >> 0, (fmt + 101 << 24 >>> 24) - 103 << 24 >>> 24); + } + if (prec > digs.dp) { + prec = digs.nd; + } + return fmtF(dst, neg, $clone(digs, decimalSlice), max(prec - digs.dp >> 0, 0)); + } + return $append(dst, 37, fmt); + }; + roundShortest = function(d, mant, exp, flt) { + var d, exp, explo, flt, i, inclusive, l, lower, m, mant, mantlo, minexp, okdown, okup, u, upper, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7; + if ((mant.$high === 0 && mant.$low === 0)) { + d.nd = 0; + return; + } + minexp = flt.bias + 1 >> 0; + if (exp > minexp && ($imul(332, ((d.dp - d.nd >> 0)))) >= ($imul(100, ((exp - ((flt.mantbits >> 0)) >> 0))))) { + return; + } + upper = new decimal.ptr(arrayType.zero(), 0, 0, false, false); + upper.Assign((x = $mul64(mant, new $Uint64(0, 2)), new $Uint64(x.$high + 0, x.$low + 1))); + upper.Shift((exp - ((flt.mantbits >> 0)) >> 0) - 1 >> 0); + mantlo = new $Uint64(0, 0); + explo = 0; + if ((x$1 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), (mant.$high > x$1.$high || (mant.$high === x$1.$high && mant.$low > x$1.$low))) || (exp === minexp)) { + mantlo = new $Uint64(mant.$high - 0, mant.$low - 1); + explo = exp; + } else { + mantlo = (x$2 = $mul64(mant, new $Uint64(0, 2)), new $Uint64(x$2.$high - 0, x$2.$low - 1)); + explo = exp - 1 >> 0; + } + lower = new decimal.ptr(arrayType.zero(), 0, 0, false, false); + lower.Assign((x$3 = $mul64(mantlo, new $Uint64(0, 2)), new $Uint64(x$3.$high + 0, x$3.$low + 1))); + lower.Shift((explo - ((flt.mantbits >> 0)) >> 0) - 1 >> 0); + inclusive = (x$4 = $div64(mant, new $Uint64(0, 2), true), (x$4.$high === 0 && x$4.$low === 0)); + i = 0; + while (true) { + if (!(i < d.nd)) { break; } + l = 48; + if (i < lower.nd) { + l = (x$5 = lower.d, ((i < 0 || i >= x$5.length) ? ($throwRuntimeError("index out of range"), undefined) : x$5[i])); + } + m = (x$6 = d.d, ((i < 0 || i >= x$6.length) ? ($throwRuntimeError("index out of range"), undefined) : x$6[i])); + u = 48; + if (i < upper.nd) { + u = (x$7 = upper.d, ((i < 0 || i >= x$7.length) ? ($throwRuntimeError("index out of range"), undefined) : x$7[i])); + } + okdown = !((l === m)) || inclusive && ((i + 1 >> 0) === lower.nd); + okup = !((m === u)) && (inclusive || (m + 1 << 24 >>> 24) < u || (i + 1 >> 0) < upper.nd); + if (okdown && okup) { + d.Round(i + 1 >> 0); + return; + } else if (okdown) { + d.RoundDown(i + 1 >> 0); + return; + } else if (okup) { + d.RoundUp(i + 1 >> 0); + return; + } + i = i + (1) >> 0; + } + }; + fmtE = function(dst, neg, d, prec, fmt) { + var _q, _q$1, _q$2, _r, _r$1, _r$2, ch, d, dst, exp, fmt, i, m, neg, prec, x; + if (neg) { + dst = $append(dst, 45); + } + ch = 48; + if (!((d.nd === 0))) { + ch = (x = d.d, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); + } + dst = $append(dst, ch); + if (prec > 0) { + dst = $append(dst, 46); + i = 1; + m = min(d.nd, prec + 1 >> 0); + if (i < m) { + dst = $appendSlice(dst, $subslice(d.d, i, m)); + i = m; + } + while (true) { + if (!(i <= prec)) { break; } + dst = $append(dst, 48); + i = i + (1) >> 0; + } + } + dst = $append(dst, fmt); + exp = d.dp - 1 >> 0; + if (d.nd === 0) { + exp = 0; + } + if (exp < 0) { + ch = 45; + exp = -exp; + } else { + ch = 43; + } + dst = $append(dst, ch); + if (exp < 10) { + dst = $append(dst, 48, ((exp << 24 >>> 24)) + 48 << 24 >>> 24); + } else if (exp < 100) { + dst = $append(dst, (((_q = exp / 10, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) + 48 << 24 >>> 24, (((_r = exp % 10, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) + 48 << 24 >>> 24); + } else { + dst = $append(dst, (((_q$1 = exp / 100, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) + 48 << 24 >>> 24, (_r$1 = (((_q$2 = exp / 10, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) % 10, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) + 48 << 24 >>> 24, (((_r$2 = exp % 10, _r$2 === _r$2 ? _r$2 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) + 48 << 24 >>> 24); + } + return dst; + }; + fmtF = function(dst, neg, d, prec) { + var ch, d, dst, i, j, m, neg, prec, x; + if (neg) { + dst = $append(dst, 45); + } + if (d.dp > 0) { + m = min(d.nd, d.dp); + dst = $appendSlice(dst, $subslice(d.d, 0, m)); + while (true) { + if (!(m < d.dp)) { break; } + dst = $append(dst, 48); + m = m + (1) >> 0; + } + } else { + dst = $append(dst, 48); + } + if (prec > 0) { + dst = $append(dst, 46); + i = 0; + while (true) { + if (!(i < prec)) { break; } + ch = 48; + j = d.dp + i >> 0; + if (0 <= j && j < d.nd) { + ch = (x = d.d, ((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + j])); + } + dst = $append(dst, ch); + i = i + (1) >> 0; + } + } + return dst; + }; + fmtB = function(dst, neg, mant, exp, flt) { + var _tuple, _tuple$1, dst, exp, flt, mant, neg; + if (neg) { + dst = $append(dst, 45); + } + _tuple = formatBits(dst, mant, 10, false, true); + dst = _tuple[0]; + dst = $append(dst, 112); + exp = exp - (((flt.mantbits >> 0))) >> 0; + if (exp >= 0) { + dst = $append(dst, 43); + } + _tuple$1 = formatBits(dst, (new $Uint64(0, exp)), 10, exp < 0, true); + dst = _tuple$1[0]; + return dst; + }; + min = function(a, b) { + var a, b; + if (a < b) { + return a; + } + return b; + }; + max = function(a, b) { + var a, b; + if (a > b) { + return a; + } + return b; + }; + FormatInt = function(i, base) { + var _tuple, base, i, s; + if (true && (0 < i.$high || (0 === i.$high && 0 <= i.$low)) && (i.$high < 0 || (i.$high === 0 && i.$low < 100)) && (base === 10)) { + return small((((i.$low + ((i.$high >> 31) * 4294967296)) >> 0))); + } + _tuple = formatBits(sliceType$6.nil, (new $Uint64(i.$high, i.$low)), base, (i.$high < 0 || (i.$high === 0 && i.$low < 0)), false); + s = _tuple[1]; + return s; + }; + $pkg.FormatInt = FormatInt; + Itoa = function(i) { + var i; + return FormatInt((new $Int64(0, i)), 10); + }; + $pkg.Itoa = Itoa; + small = function(i) { + var i; + if (i < 10) { + return $substring("0123456789abcdefghijklmnopqrstuvwxyz", i, (i + 1 >> 0)); + } + return $substring("00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899", ($imul(i, 2)), (($imul(i, 2)) + 2 >> 0)); + }; + formatBits = function(dst, u, base, neg, append_) { + var _q, _q$1, _r, _r$1, a, append_, b, b$1, base, d, dst, i, is, is$1, is$2, j, m, neg, q, q$1, s, shift, u, us, us$1, x, x$1, x$2, x$3, x$4, x$5; + d = sliceType$6.nil; + s = ""; + if (base < 2 || base > 36) { + $panic(new $String("strconv: illegal AppendInt/FormatInt base")); + } + a = arrayType$3.zero(); + i = 65; + if (neg) { + u = new $Uint64(-u.$high, -u.$low); + } + if (base === 10) { + if (true) { + while (true) { + if (!((u.$high > 0 || (u.$high === 0 && u.$low >= 1000000000)))) { break; } + q = $div64(u, new $Uint64(0, 1000000000), false); + us = (((x = $mul64(q, new $Uint64(0, 1000000000)), new $Uint64(u.$high - x.$high, u.$low - x.$low)).$low >>> 0)); + j = 4; + while (true) { + if (!(j > 0)) { break; } + is = (_r = us % 100, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) * 2 >>> 0; + us = (_q = us / (100), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + i = i - (2) >> 0; + (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[x$1] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((is + 1 >>> 0)))); + (x$2 = i + 0 >> 0, ((x$2 < 0 || x$2 >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[x$2] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((is + 0 >>> 0)))); + j = j - (1) >> 0; + } + i = i - (1) >> 0; + ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt(((us * 2 >>> 0) + 1 >>> 0))); + u = q; + } + } + us$1 = ((u.$low >>> 0)); + while (true) { + if (!(us$1 >= 100)) { break; } + is$1 = (_r$1 = us$1 % 100, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) * 2 >>> 0; + us$1 = (_q$1 = us$1 / (100), (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >>> 0 : $throwRuntimeError("integer divide by zero")); + i = i - (2) >> 0; + (x$3 = i + 1 >> 0, ((x$3 < 0 || x$3 >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[x$3] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((is$1 + 1 >>> 0)))); + (x$4 = i + 0 >> 0, ((x$4 < 0 || x$4 >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[x$4] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((is$1 + 0 >>> 0)))); + } + is$2 = us$1 * 2 >>> 0; + i = i - (1) >> 0; + ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((is$2 + 1 >>> 0))); + if (us$1 >= 10) { + i = i - (1) >> 0; + ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt(is$2)); + } + } else if (isPowerOfTwo(base)) { + shift = (((bits.TrailingZeros(((base >>> 0))) >>> 0)) & 31) >>> 0; + b = (new $Uint64(0, base)); + m = ((base >>> 0)) - 1 >>> 0; + while (true) { + if (!((u.$high > b.$high || (u.$high === b.$high && u.$low >= b.$low)))) { break; } + i = i - (1) >> 0; + ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "0123456789abcdefghijklmnopqrstuvwxyz".charCodeAt(((((u.$low >>> 0)) & m) >>> 0))); + u = $shiftRightUint64(u, (shift)); + } + i = i - (1) >> 0; + ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "0123456789abcdefghijklmnopqrstuvwxyz".charCodeAt(((u.$low >>> 0)))); + } else { + b$1 = (new $Uint64(0, base)); + while (true) { + if (!((u.$high > b$1.$high || (u.$high === b$1.$high && u.$low >= b$1.$low)))) { break; } + i = i - (1) >> 0; + q$1 = $div64(u, b$1, false); + ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "0123456789abcdefghijklmnopqrstuvwxyz".charCodeAt((((x$5 = $mul64(q$1, b$1), new $Uint64(u.$high - x$5.$high, u.$low - x$5.$low)).$low >>> 0)))); + u = q$1; + } + i = i - (1) >> 0; + ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "0123456789abcdefghijklmnopqrstuvwxyz".charCodeAt(((u.$low >>> 0)))); + } + if (neg) { + i = i - (1) >> 0; + ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = 45); + } + if (append_) { + d = $appendSlice(dst, $subslice(new sliceType$6(a), i)); + return [d, s]; + } + s = ($bytesToString($subslice(new sliceType$6(a), i))); + return [d, s]; + }; + isPowerOfTwo = function(x) { + var x; + return (x & ((x - 1 >> 0))) === 0; + }; + appendQuotedWith = function(buf, s, quote, ASCIIonly, graphicOnly) { + var ASCIIonly, _tuple, buf, graphicOnly, quote, r, s, width; + buf = $append(buf, quote); + width = 0; + while (true) { + if (!(s.length > 0)) { break; } + r = ((s.charCodeAt(0) >> 0)); + width = 1; + if (r >= 128) { + _tuple = utf8.DecodeRuneInString(s); + r = _tuple[0]; + width = _tuple[1]; + } + if ((width === 1) && (r === 65533)) { + buf = $appendSlice(buf, "\\x"); + buf = $append(buf, "0123456789abcdef".charCodeAt((s.charCodeAt(0) >>> 4 << 24 >>> 24))); + buf = $append(buf, "0123456789abcdef".charCodeAt(((s.charCodeAt(0) & 15) >>> 0))); + s = $substring(s, width); + continue; + } + buf = appendEscapedRune(buf, r, quote, ASCIIonly, graphicOnly); + s = $substring(s, width); + } + buf = $append(buf, quote); + return buf; + }; + appendQuotedRuneWith = function(buf, r, quote, ASCIIonly, graphicOnly) { + var ASCIIonly, buf, graphicOnly, quote, r; + buf = $append(buf, quote); + if (!utf8.ValidRune(r)) { + r = 65533; + } + buf = appendEscapedRune(buf, r, quote, ASCIIonly, graphicOnly); + buf = $append(buf, quote); + return buf; + }; + appendEscapedRune = function(buf, r, quote, ASCIIonly, graphicOnly) { + var ASCIIonly, _1, buf, graphicOnly, n, quote, r, runeTmp, s, s$1; + runeTmp = arrayType$4.zero(); + if ((r === ((quote >> 0))) || (r === 92)) { + buf = $append(buf, 92); + buf = $append(buf, ((r << 24 >>> 24))); + return buf; + } + if (ASCIIonly) { + if (r < 128 && IsPrint(r)) { + buf = $append(buf, ((r << 24 >>> 24))); + return buf; + } + } else if (IsPrint(r) || graphicOnly && isInGraphicList(r)) { + n = utf8.EncodeRune(new sliceType$6(runeTmp), r); + buf = $appendSlice(buf, $subslice(new sliceType$6(runeTmp), 0, n)); + return buf; + } + _1 = r; + if (_1 === (7)) { + buf = $appendSlice(buf, "\\a"); + } else if (_1 === (8)) { + buf = $appendSlice(buf, "\\b"); + } else if (_1 === (12)) { + buf = $appendSlice(buf, "\\f"); + } else if (_1 === (10)) { + buf = $appendSlice(buf, "\\n"); + } else if (_1 === (13)) { + buf = $appendSlice(buf, "\\r"); + } else if (_1 === (9)) { + buf = $appendSlice(buf, "\\t"); + } else if (_1 === (11)) { + buf = $appendSlice(buf, "\\v"); + } else { + if (r < 32) { + buf = $appendSlice(buf, "\\x"); + buf = $append(buf, "0123456789abcdef".charCodeAt((((r << 24 >>> 24)) >>> 4 << 24 >>> 24))); + buf = $append(buf, "0123456789abcdef".charCodeAt(((((r << 24 >>> 24)) & 15) >>> 0))); + } else if (r > 1114111) { + r = 65533; + buf = $appendSlice(buf, "\\u"); + s = 12; + while (true) { + if (!(s >= 0)) { break; } + buf = $append(buf, "0123456789abcdef".charCodeAt((((r >> $min(((s >>> 0)), 31)) >> 0) & 15))); + s = s - (4) >> 0; + } + } else if (r < 65536) { + buf = $appendSlice(buf, "\\u"); + s = 12; + while (true) { + if (!(s >= 0)) { break; } + buf = $append(buf, "0123456789abcdef".charCodeAt((((r >> $min(((s >>> 0)), 31)) >> 0) & 15))); + s = s - (4) >> 0; + } + } else { + buf = $appendSlice(buf, "\\U"); + s$1 = 28; + while (true) { + if (!(s$1 >= 0)) { break; } + buf = $append(buf, "0123456789abcdef".charCodeAt((((r >> $min(((s$1 >>> 0)), 31)) >> 0) & 15))); + s$1 = s$1 - (4) >> 0; + } + } + } + return buf; + }; + AppendQuote = function(dst, s) { + var dst, s; + return appendQuotedWith(dst, s, 34, false, false); + }; + $pkg.AppendQuote = AppendQuote; + AppendQuoteToASCII = function(dst, s) { + var dst, s; + return appendQuotedWith(dst, s, 34, true, false); + }; + $pkg.AppendQuoteToASCII = AppendQuoteToASCII; + AppendQuoteRune = function(dst, r) { + var dst, r; + return appendQuotedRuneWith(dst, r, 39, false, false); + }; + $pkg.AppendQuoteRune = AppendQuoteRune; + AppendQuoteRuneToASCII = function(dst, r) { + var dst, r; + return appendQuotedRuneWith(dst, r, 39, true, false); + }; + $pkg.AppendQuoteRuneToASCII = AppendQuoteRuneToASCII; + CanBackquote = function(s) { + var _tuple, r, s, wid; + while (true) { + if (!(s.length > 0)) { break; } + _tuple = utf8.DecodeRuneInString(s); + r = _tuple[0]; + wid = _tuple[1]; + s = $substring(s, wid); + if (wid > 1) { + if (r === 65279) { + return false; + } + continue; + } + if (r === 65533) { + return false; + } + if ((r < 32 && !((r === 9))) || (r === 96) || (r === 127)) { + return false; + } + } + return true; + }; + $pkg.CanBackquote = CanBackquote; + unhex = function(b) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, b, c, ok, v; + v = 0; + ok = false; + c = ((b >> 0)); + if (48 <= c && c <= 57) { + _tmp = c - 48 >> 0; + _tmp$1 = true; + v = _tmp; + ok = _tmp$1; + return [v, ok]; + } else if (97 <= c && c <= 102) { + _tmp$2 = (c - 97 >> 0) + 10 >> 0; + _tmp$3 = true; + v = _tmp$2; + ok = _tmp$3; + return [v, ok]; + } else if (65 <= c && c <= 70) { + _tmp$4 = (c - 65 >> 0) + 10 >> 0; + _tmp$5 = true; + v = _tmp$4; + ok = _tmp$5; + return [v, ok]; + } + return [v, ok]; + }; + UnquoteChar = function(s, quote) { + var _1, _2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, _tuple$1, c, c$1, err, j, j$1, multibyte, n, ok, quote, r, s, size, tail, v, v$1, value, x, x$1; + value = 0; + multibyte = false; + tail = ""; + err = $ifaceNil; + if (s.length === 0) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + c = s.charCodeAt(0); + if ((c === quote) && ((quote === 39) || (quote === 34))) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } else if (c >= 128) { + _tuple = utf8.DecodeRuneInString(s); + r = _tuple[0]; + size = _tuple[1]; + _tmp = r; + _tmp$1 = true; + _tmp$2 = $substring(s, size); + _tmp$3 = $ifaceNil; + value = _tmp; + multibyte = _tmp$1; + tail = _tmp$2; + err = _tmp$3; + return [value, multibyte, tail, err]; + } else if (!((c === 92))) { + _tmp$4 = ((s.charCodeAt(0) >> 0)); + _tmp$5 = false; + _tmp$6 = $substring(s, 1); + _tmp$7 = $ifaceNil; + value = _tmp$4; + multibyte = _tmp$5; + tail = _tmp$6; + err = _tmp$7; + return [value, multibyte, tail, err]; + } + if (s.length <= 1) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + c$1 = s.charCodeAt(1); + s = $substring(s, 2); + switch (0) { default: + _1 = c$1; + if (_1 === (97)) { + value = 7; + } else if (_1 === (98)) { + value = 8; + } else if (_1 === (102)) { + value = 12; + } else if (_1 === (110)) { + value = 10; + } else if (_1 === (114)) { + value = 13; + } else if (_1 === (116)) { + value = 9; + } else if (_1 === (118)) { + value = 11; + } else if ((_1 === (120)) || (_1 === (117)) || (_1 === (85))) { + n = 0; + _2 = c$1; + if (_2 === (120)) { + n = 2; + } else if (_2 === (117)) { + n = 4; + } else if (_2 === (85)) { + n = 8; + } + v = 0; + if (s.length < n) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + j = 0; + while (true) { + if (!(j < n)) { break; } + _tuple$1 = unhex(s.charCodeAt(j)); + x = _tuple$1[0]; + ok = _tuple$1[1]; + if (!ok) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + v = (v << 4 >> 0) | x; + j = j + (1) >> 0; + } + s = $substring(s, n); + if (c$1 === 120) { + value = v; + break; + } + if (v > 1114111) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + value = v; + multibyte = true; + } else if ((_1 === (48)) || (_1 === (49)) || (_1 === (50)) || (_1 === (51)) || (_1 === (52)) || (_1 === (53)) || (_1 === (54)) || (_1 === (55))) { + v$1 = ((c$1 >> 0)) - 48 >> 0; + if (s.length < 2) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + j$1 = 0; + while (true) { + if (!(j$1 < 2)) { break; } + x$1 = ((s.charCodeAt(j$1) >> 0)) - 48 >> 0; + if (x$1 < 0 || x$1 > 7) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + v$1 = ((v$1 << 3 >> 0)) | x$1; + j$1 = j$1 + (1) >> 0; + } + s = $substring(s, 2); + if (v$1 > 255) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + value = v$1; + } else if (_1 === (92)) { + value = 92; + } else if ((_1 === (39)) || (_1 === (34))) { + if (!((c$1 === quote))) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + value = ((c$1 >> 0)); + } else { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + } + tail = s; + return [value, multibyte, tail, err]; + }; + $pkg.UnquoteChar = UnquoteChar; + Unquote = function(s) { + var _1, _q, _tuple, _tuple$1, buf, buf$1, c, err, i, multibyte, n, n$1, quote, r, runeTmp, s, size, ss; + n = s.length; + if (n < 2) { + return ["", $pkg.ErrSyntax]; + } + quote = s.charCodeAt(0); + if (!((quote === s.charCodeAt((n - 1 >> 0))))) { + return ["", $pkg.ErrSyntax]; + } + s = $substring(s, 1, (n - 1 >> 0)); + if (quote === 96) { + if (contains(s, 96)) { + return ["", $pkg.ErrSyntax]; + } + if (contains(s, 13)) { + buf = $makeSlice(sliceType$6, 0, (s.length - 1 >> 0)); + i = 0; + while (true) { + if (!(i < s.length)) { break; } + if (!((s.charCodeAt(i) === 13))) { + buf = $append(buf, s.charCodeAt(i)); + } + i = i + (1) >> 0; + } + return [($bytesToString(buf)), $ifaceNil]; + } + return [s, $ifaceNil]; + } + if (!((quote === 34)) && !((quote === 39))) { + return ["", $pkg.ErrSyntax]; + } + if (contains(s, 10)) { + return ["", $pkg.ErrSyntax]; + } + if (!contains(s, 92) && !contains(s, quote)) { + _1 = quote; + if (_1 === (34)) { + if (utf8.ValidString(s)) { + return [s, $ifaceNil]; + } + } else if (_1 === (39)) { + _tuple = utf8.DecodeRuneInString(s); + r = _tuple[0]; + size = _tuple[1]; + if ((size === s.length) && (!((r === 65533)) || !((size === 1)))) { + return [s, $ifaceNil]; + } + } + } + runeTmp = arrayType$4.zero(); + buf$1 = $makeSlice(sliceType$6, 0, (_q = ($imul(3, s.length)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))); + while (true) { + if (!(s.length > 0)) { break; } + _tuple$1 = UnquoteChar(s, quote); + c = _tuple$1[0]; + multibyte = _tuple$1[1]; + ss = _tuple$1[2]; + err = _tuple$1[3]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + return ["", err]; + } + s = ss; + if (c < 128 || !multibyte) { + buf$1 = $append(buf$1, ((c << 24 >>> 24))); + } else { + n$1 = utf8.EncodeRune(new sliceType$6(runeTmp), c); + buf$1 = $appendSlice(buf$1, $subslice(new sliceType$6(runeTmp), 0, n$1)); + } + if ((quote === 39) && !((s.length === 0))) { + return ["", $pkg.ErrSyntax]; + } + } + return [($bytesToString(buf$1)), $ifaceNil]; + }; + $pkg.Unquote = Unquote; + contains = function(s, c) { + var c, i, s; + i = 0; + while (true) { + if (!(i < s.length)) { break; } + if (s.charCodeAt(i) === c) { + return true; + } + i = i + (1) >> 0; + } + return false; + }; + bsearch16 = function(a, x) { + var _q, _tmp, _tmp$1, a, h, i, j, x; + _tmp = 0; + _tmp$1 = a.$length; + i = _tmp; + j = _tmp$1; + while (true) { + if (!(i < j)) { break; } + h = i + (_q = ((j - i >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0; + if (((h < 0 || h >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + h]) < x) { + i = h + 1 >> 0; + } else { + j = h; + } + } + return i; + }; + bsearch32 = function(a, x) { + var _q, _tmp, _tmp$1, a, h, i, j, x; + _tmp = 0; + _tmp$1 = a.$length; + i = _tmp; + j = _tmp$1; + while (true) { + if (!(i < j)) { break; } + h = i + (_q = ((j - i >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0; + if (((h < 0 || h >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + h]) < x) { + i = h + 1 >> 0; + } else { + j = h; + } + } + return i; + }; + IsPrint = function(r) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, i, i$1, isNotPrint, isNotPrint$1, isPrint, isPrint$1, j, j$1, r, rr, rr$1, x, x$1, x$2, x$3; + if (r <= 255) { + if (32 <= r && r <= 126) { + return true; + } + if (161 <= r && r <= 255) { + return !((r === 173)); + } + return false; + } + if (0 <= r && r < 65536) { + _tmp = ((r << 16 >>> 16)); + _tmp$1 = isPrint16; + _tmp$2 = isNotPrint16; + rr = _tmp; + isPrint = _tmp$1; + isNotPrint = _tmp$2; + i = bsearch16(isPrint, rr); + if (i >= isPrint.$length || rr < (x = (i & ~1) >> 0, ((x < 0 || x >= isPrint.$length) ? ($throwRuntimeError("index out of range"), undefined) : isPrint.$array[isPrint.$offset + x])) || (x$1 = i | 1, ((x$1 < 0 || x$1 >= isPrint.$length) ? ($throwRuntimeError("index out of range"), undefined) : isPrint.$array[isPrint.$offset + x$1])) < rr) { + return false; + } + j = bsearch16(isNotPrint, rr); + return j >= isNotPrint.$length || !((((j < 0 || j >= isNotPrint.$length) ? ($throwRuntimeError("index out of range"), undefined) : isNotPrint.$array[isNotPrint.$offset + j]) === rr)); + } + _tmp$3 = ((r >>> 0)); + _tmp$4 = isPrint32; + _tmp$5 = isNotPrint32; + rr$1 = _tmp$3; + isPrint$1 = _tmp$4; + isNotPrint$1 = _tmp$5; + i$1 = bsearch32(isPrint$1, rr$1); + if (i$1 >= isPrint$1.$length || rr$1 < (x$2 = (i$1 & ~1) >> 0, ((x$2 < 0 || x$2 >= isPrint$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : isPrint$1.$array[isPrint$1.$offset + x$2])) || (x$3 = i$1 | 1, ((x$3 < 0 || x$3 >= isPrint$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : isPrint$1.$array[isPrint$1.$offset + x$3])) < rr$1) { + return false; + } + if (r >= 131072) { + return true; + } + r = r - (65536) >> 0; + j$1 = bsearch16(isNotPrint$1, ((r << 16 >>> 16))); + return j$1 >= isNotPrint$1.$length || !((((j$1 < 0 || j$1 >= isNotPrint$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : isNotPrint$1.$array[isNotPrint$1.$offset + j$1]) === ((r << 16 >>> 16)))); + }; + $pkg.IsPrint = IsPrint; + isInGraphicList = function(r) { + var i, r, rr; + if (r > 65535) { + return false; + } + rr = ((r << 16 >>> 16)); + i = bsearch16(isGraphic, rr); + return i < isGraphic.$length && (rr === ((i < 0 || i >= isGraphic.$length) ? ($throwRuntimeError("index out of range"), undefined) : isGraphic.$array[isGraphic.$offset + i])); + }; + ptrType$2.methods = [{prop: "set", name: "set", pkg: "strconv", typ: $funcType([$String], [$Bool], false)}, {prop: "floatBits", name: "floatBits", pkg: "strconv", typ: $funcType([ptrType$1], [$Uint64, $Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Assign", name: "Assign", pkg: "", typ: $funcType([$Uint64], [], false)}, {prop: "Shift", name: "Shift", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Round", name: "Round", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "RoundDown", name: "RoundDown", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "RoundUp", name: "RoundUp", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "RoundedInteger", name: "RoundedInteger", pkg: "", typ: $funcType([], [$Uint64], false)}]; + ptrType$4.methods = [{prop: "floatBits", name: "floatBits", pkg: "strconv", typ: $funcType([ptrType$1], [$Uint64, $Bool], false)}, {prop: "AssignComputeBounds", name: "AssignComputeBounds", pkg: "", typ: $funcType([$Uint64, $Int, $Bool, ptrType$1], [extFloat, extFloat], false)}, {prop: "Normalize", name: "Normalize", pkg: "", typ: $funcType([], [$Uint], false)}, {prop: "Multiply", name: "Multiply", pkg: "", typ: $funcType([extFloat], [], false)}, {prop: "AssignDecimal", name: "AssignDecimal", pkg: "", typ: $funcType([$Uint64, $Int, $Bool, $Bool, ptrType$1], [$Bool], false)}, {prop: "frexp10", name: "frexp10", pkg: "strconv", typ: $funcType([], [$Int, $Int], false)}, {prop: "FixedDecimal", name: "FixedDecimal", pkg: "", typ: $funcType([ptrType$3, $Int], [$Bool], false)}, {prop: "ShortestDecimal", name: "ShortestDecimal", pkg: "", typ: $funcType([ptrType$3, ptrType$4, ptrType$4], [$Bool], false)}]; + decimal.init("strconv", [{prop: "d", name: "d", embedded: false, exported: false, typ: arrayType, tag: ""}, {prop: "nd", name: "nd", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "dp", name: "dp", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "neg", name: "neg", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "trunc", name: "trunc", embedded: false, exported: false, typ: $Bool, tag: ""}]); + leftCheat.init("strconv", [{prop: "delta", name: "delta", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "cutoff", name: "cutoff", embedded: false, exported: false, typ: $String, tag: ""}]); + extFloat.init("strconv", [{prop: "mant", name: "mant", embedded: false, exported: false, typ: $Uint64, tag: ""}, {prop: "exp", name: "exp", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "neg", name: "neg", embedded: false, exported: false, typ: $Bool, tag: ""}]); + floatInfo.init("strconv", [{prop: "mantbits", name: "mantbits", embedded: false, exported: false, typ: $Uint, tag: ""}, {prop: "expbits", name: "expbits", embedded: false, exported: false, typ: $Uint, tag: ""}, {prop: "bias", name: "bias", embedded: false, exported: false, typ: $Int, tag: ""}]); + decimalSlice.init("strconv", [{prop: "d", name: "d", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "nd", name: "nd", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "dp", name: "dp", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "neg", name: "neg", embedded: false, exported: false, typ: $Bool, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = math.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = bits.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + optimize = true; + $pkg.ErrRange = errors.New("value out of range"); + $pkg.ErrSyntax = errors.New("invalid syntax"); + leftcheats = new sliceType$3([new leftCheat.ptr(0, ""), new leftCheat.ptr(1, "5"), new leftCheat.ptr(1, "25"), new leftCheat.ptr(1, "125"), new leftCheat.ptr(2, "625"), new leftCheat.ptr(2, "3125"), new leftCheat.ptr(2, "15625"), new leftCheat.ptr(3, "78125"), new leftCheat.ptr(3, "390625"), new leftCheat.ptr(3, "1953125"), new leftCheat.ptr(4, "9765625"), new leftCheat.ptr(4, "48828125"), new leftCheat.ptr(4, "244140625"), new leftCheat.ptr(4, "1220703125"), new leftCheat.ptr(5, "6103515625"), new leftCheat.ptr(5, "30517578125"), new leftCheat.ptr(5, "152587890625"), new leftCheat.ptr(6, "762939453125"), new leftCheat.ptr(6, "3814697265625"), new leftCheat.ptr(6, "19073486328125"), new leftCheat.ptr(7, "95367431640625"), new leftCheat.ptr(7, "476837158203125"), new leftCheat.ptr(7, "2384185791015625"), new leftCheat.ptr(7, "11920928955078125"), new leftCheat.ptr(8, "59604644775390625"), new leftCheat.ptr(8, "298023223876953125"), new leftCheat.ptr(8, "1490116119384765625"), new leftCheat.ptr(9, "7450580596923828125"), new leftCheat.ptr(9, "37252902984619140625"), new leftCheat.ptr(9, "186264514923095703125"), new leftCheat.ptr(10, "931322574615478515625"), new leftCheat.ptr(10, "4656612873077392578125"), new leftCheat.ptr(10, "23283064365386962890625"), new leftCheat.ptr(10, "116415321826934814453125"), new leftCheat.ptr(11, "582076609134674072265625"), new leftCheat.ptr(11, "2910383045673370361328125"), new leftCheat.ptr(11, "14551915228366851806640625"), new leftCheat.ptr(12, "72759576141834259033203125"), new leftCheat.ptr(12, "363797880709171295166015625"), new leftCheat.ptr(12, "1818989403545856475830078125"), new leftCheat.ptr(13, "9094947017729282379150390625"), new leftCheat.ptr(13, "45474735088646411895751953125"), new leftCheat.ptr(13, "227373675443232059478759765625"), new leftCheat.ptr(13, "1136868377216160297393798828125"), new leftCheat.ptr(14, "5684341886080801486968994140625"), new leftCheat.ptr(14, "28421709430404007434844970703125"), new leftCheat.ptr(14, "142108547152020037174224853515625"), new leftCheat.ptr(15, "710542735760100185871124267578125"), new leftCheat.ptr(15, "3552713678800500929355621337890625"), new leftCheat.ptr(15, "17763568394002504646778106689453125"), new leftCheat.ptr(16, "88817841970012523233890533447265625"), new leftCheat.ptr(16, "444089209850062616169452667236328125"), new leftCheat.ptr(16, "2220446049250313080847263336181640625"), new leftCheat.ptr(16, "11102230246251565404236316680908203125"), new leftCheat.ptr(17, "55511151231257827021181583404541015625"), new leftCheat.ptr(17, "277555756156289135105907917022705078125"), new leftCheat.ptr(17, "1387778780781445675529539585113525390625"), new leftCheat.ptr(18, "6938893903907228377647697925567626953125"), new leftCheat.ptr(18, "34694469519536141888238489627838134765625"), new leftCheat.ptr(18, "173472347597680709441192448139190673828125"), new leftCheat.ptr(19, "867361737988403547205962240695953369140625")]); + smallPowersOfTen = $toNativeArray($kindStruct, [new extFloat.ptr(new $Uint64(2147483648, 0), -63, false), new extFloat.ptr(new $Uint64(2684354560, 0), -60, false), new extFloat.ptr(new $Uint64(3355443200, 0), -57, false), new extFloat.ptr(new $Uint64(4194304000, 0), -54, false), new extFloat.ptr(new $Uint64(2621440000, 0), -50, false), new extFloat.ptr(new $Uint64(3276800000, 0), -47, false), new extFloat.ptr(new $Uint64(4096000000, 0), -44, false), new extFloat.ptr(new $Uint64(2560000000, 0), -40, false)]); + powersOfTen = $toNativeArray($kindStruct, [new extFloat.ptr(new $Uint64(4203730336, 136053384), -1220, false), new extFloat.ptr(new $Uint64(3132023167, 2722021238), -1193, false), new extFloat.ptr(new $Uint64(2333539104, 810921078), -1166, false), new extFloat.ptr(new $Uint64(3477244234, 1573795306), -1140, false), new extFloat.ptr(new $Uint64(2590748842, 1432697645), -1113, false), new extFloat.ptr(new $Uint64(3860516611, 1025131999), -1087, false), new extFloat.ptr(new $Uint64(2876309015, 3348809418), -1060, false), new extFloat.ptr(new $Uint64(4286034428, 3200048207), -1034, false), new extFloat.ptr(new $Uint64(3193344495, 1097586188), -1007, false), new extFloat.ptr(new $Uint64(2379227053, 2424306748), -980, false), new extFloat.ptr(new $Uint64(3545324584, 827693699), -954, false), new extFloat.ptr(new $Uint64(2641472655, 2913388981), -927, false), new extFloat.ptr(new $Uint64(3936100983, 602835915), -901, false), new extFloat.ptr(new $Uint64(2932623761, 1081627501), -874, false), new extFloat.ptr(new $Uint64(2184974969, 1572261463), -847, false), new extFloat.ptr(new $Uint64(3255866422, 1308317239), -821, false), new extFloat.ptr(new $Uint64(2425809519, 944281679), -794, false), new extFloat.ptr(new $Uint64(3614737867, 629291719), -768, false), new extFloat.ptr(new $Uint64(2693189581, 2545915892), -741, false), new extFloat.ptr(new $Uint64(4013165208, 388672741), -715, false), new extFloat.ptr(new $Uint64(2990041083, 708162190), -688, false), new extFloat.ptr(new $Uint64(2227754207, 3536207675), -661, false), new extFloat.ptr(new $Uint64(3319612455, 450088378), -635, false), new extFloat.ptr(new $Uint64(2473304014, 3139815830), -608, false), new extFloat.ptr(new $Uint64(3685510180, 2103616900), -582, false), new extFloat.ptr(new $Uint64(2745919064, 224385782), -555, false), new extFloat.ptr(new $Uint64(4091738259, 3737383206), -529, false), new extFloat.ptr(new $Uint64(3048582568, 2868871352), -502, false), new extFloat.ptr(new $Uint64(2271371013, 1820084875), -475, false), new extFloat.ptr(new $Uint64(3384606560, 885076051), -449, false), new extFloat.ptr(new $Uint64(2521728396, 2444895829), -422, false), new extFloat.ptr(new $Uint64(3757668132, 1881767613), -396, false), new extFloat.ptr(new $Uint64(2799680927, 3102062735), -369, false), new extFloat.ptr(new $Uint64(4171849679, 2289335700), -343, false), new extFloat.ptr(new $Uint64(3108270227, 2410191823), -316, false), new extFloat.ptr(new $Uint64(2315841784, 3205436779), -289, false), new extFloat.ptr(new $Uint64(3450873173, 1697722806), -263, false), new extFloat.ptr(new $Uint64(2571100870, 3497754540), -236, false), new extFloat.ptr(new $Uint64(3831238852, 707476230), -210, false), new extFloat.ptr(new $Uint64(2854495385, 1769181907), -183, false), new extFloat.ptr(new $Uint64(4253529586, 2197867022), -157, false), new extFloat.ptr(new $Uint64(3169126500, 2450594539), -130, false), new extFloat.ptr(new $Uint64(2361183241, 1867548876), -103, false), new extFloat.ptr(new $Uint64(3518437208, 3793315116), -77, false), new extFloat.ptr(new $Uint64(2621440000, 0), -50, false), new extFloat.ptr(new $Uint64(3906250000, 0), -24, false), new extFloat.ptr(new $Uint64(2910383045, 2892103680), 3, false), new extFloat.ptr(new $Uint64(2168404344, 4170451332), 30, false), new extFloat.ptr(new $Uint64(3231174267, 3372684723), 56, false), new extFloat.ptr(new $Uint64(2407412430, 2078956656), 83, false), new extFloat.ptr(new $Uint64(3587324068, 2884206696), 109, false), new extFloat.ptr(new $Uint64(2672764710, 395977285), 136, false), new extFloat.ptr(new $Uint64(3982729777, 3569679143), 162, false), new extFloat.ptr(new $Uint64(2967364920, 2361961896), 189, false), new extFloat.ptr(new $Uint64(2210859150, 447440347), 216, false), new extFloat.ptr(new $Uint64(3294436857, 1114709402), 242, false), new extFloat.ptr(new $Uint64(2454546732, 2786846552), 269, false), new extFloat.ptr(new $Uint64(3657559652, 443583978), 295, false), new extFloat.ptr(new $Uint64(2725094297, 2599384906), 322, false), new extFloat.ptr(new $Uint64(4060706939, 3028118405), 348, false), new extFloat.ptr(new $Uint64(3025462433, 2044532855), 375, false), new extFloat.ptr(new $Uint64(2254145170, 1536935362), 402, false), new extFloat.ptr(new $Uint64(3358938053, 3365297469), 428, false), new extFloat.ptr(new $Uint64(2502603868, 4204241075), 455, false), new extFloat.ptr(new $Uint64(3729170365, 2577424355), 481, false), new extFloat.ptr(new $Uint64(2778448436, 3677981733), 508, false), new extFloat.ptr(new $Uint64(4140210802, 2744688476), 534, false), new extFloat.ptr(new $Uint64(3084697427, 1424604878), 561, false), new extFloat.ptr(new $Uint64(2298278679, 4062331362), 588, false), new extFloat.ptr(new $Uint64(3424702107, 3546052773), 614, false), new extFloat.ptr(new $Uint64(2551601907, 2065781727), 641, false), new extFloat.ptr(new $Uint64(3802183132, 2535403578), 667, false), new extFloat.ptr(new $Uint64(2832847187, 1558426518), 694, false), new extFloat.ptr(new $Uint64(4221271257, 2762425404), 720, false), new extFloat.ptr(new $Uint64(3145092172, 2812560400), 747, false), new extFloat.ptr(new $Uint64(2343276271, 3057687578), 774, false), new extFloat.ptr(new $Uint64(3491753744, 2790753324), 800, false), new extFloat.ptr(new $Uint64(2601559269, 3918606633), 827, false), new extFloat.ptr(new $Uint64(3876625403, 2711358621), 853, false), new extFloat.ptr(new $Uint64(2888311001, 1648096297), 880, false), new extFloat.ptr(new $Uint64(2151959390, 2057817989), 907, false), new extFloat.ptr(new $Uint64(3206669376, 61660461), 933, false), new extFloat.ptr(new $Uint64(2389154863, 1581580175), 960, false), new extFloat.ptr(new $Uint64(3560118173, 2626467905), 986, false), new extFloat.ptr(new $Uint64(2652494738, 3034782633), 1013, false), new extFloat.ptr(new $Uint64(3952525166, 3135207385), 1039, false), new extFloat.ptr(new $Uint64(2944860731, 2616258155), 1066, false)]); + uint64pow10 = $toNativeArray($kindUint64, [new $Uint64(0, 1), new $Uint64(0, 10), new $Uint64(0, 100), new $Uint64(0, 1000), new $Uint64(0, 10000), new $Uint64(0, 100000), new $Uint64(0, 1000000), new $Uint64(0, 10000000), new $Uint64(0, 100000000), new $Uint64(0, 1000000000), new $Uint64(2, 1410065408), new $Uint64(23, 1215752192), new $Uint64(232, 3567587328), new $Uint64(2328, 1316134912), new $Uint64(23283, 276447232), new $Uint64(232830, 2764472320), new $Uint64(2328306, 1874919424), new $Uint64(23283064, 1569325056), new $Uint64(232830643, 2808348672), new $Uint64(2328306436, 2313682944)]); + float32info = new floatInfo.ptr(23, 8, -127); + float64info = new floatInfo.ptr(52, 11, -1023); + isPrint16 = new sliceType$4([32, 126, 161, 887, 890, 895, 900, 1366, 1369, 1418, 1421, 1479, 1488, 1514, 1520, 1524, 1542, 1563, 1566, 1805, 1808, 1866, 1869, 1969, 1984, 2042, 2048, 2093, 2096, 2139, 2142, 2154, 2208, 2237, 2260, 2444, 2447, 2448, 2451, 2482, 2486, 2489, 2492, 2500, 2503, 2504, 2507, 2510, 2519, 2519, 2524, 2531, 2534, 2557, 2561, 2570, 2575, 2576, 2579, 2617, 2620, 2626, 2631, 2632, 2635, 2637, 2641, 2641, 2649, 2654, 2662, 2677, 2689, 2745, 2748, 2765, 2768, 2768, 2784, 2787, 2790, 2801, 2809, 2828, 2831, 2832, 2835, 2873, 2876, 2884, 2887, 2888, 2891, 2893, 2902, 2903, 2908, 2915, 2918, 2935, 2946, 2954, 2958, 2965, 2969, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3006, 3010, 3014, 3021, 3024, 3024, 3031, 3031, 3046, 3066, 3072, 3129, 3133, 3149, 3157, 3162, 3168, 3171, 3174, 3183, 3192, 3257, 3260, 3277, 3285, 3286, 3294, 3299, 3302, 3314, 3328, 3407, 3412, 3427, 3430, 3455, 3458, 3478, 3482, 3517, 3520, 3526, 3530, 3530, 3535, 3551, 3558, 3567, 3570, 3572, 3585, 3642, 3647, 3675, 3713, 3716, 3719, 3722, 3725, 3725, 3732, 3751, 3754, 3773, 3776, 3789, 3792, 3801, 3804, 3807, 3840, 3948, 3953, 4058, 4096, 4295, 4301, 4301, 4304, 4685, 4688, 4701, 4704, 4749, 4752, 4789, 4792, 4805, 4808, 4885, 4888, 4954, 4957, 4988, 4992, 5017, 5024, 5109, 5112, 5117, 5120, 5788, 5792, 5880, 5888, 5908, 5920, 5942, 5952, 5971, 5984, 6003, 6016, 6109, 6112, 6121, 6128, 6137, 6144, 6157, 6160, 6169, 6176, 6263, 6272, 6314, 6320, 6389, 6400, 6443, 6448, 6459, 6464, 6464, 6468, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6608, 6618, 6622, 6683, 6686, 6780, 6783, 6793, 6800, 6809, 6816, 6829, 6832, 6846, 6912, 6987, 6992, 7036, 7040, 7155, 7164, 7223, 7227, 7241, 7245, 7304, 7360, 7367, 7376, 7417, 7424, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8061, 8064, 8147, 8150, 8175, 8178, 8190, 8208, 8231, 8240, 8286, 8304, 8305, 8308, 8348, 8352, 8383, 8400, 8432, 8448, 8587, 8592, 9254, 9280, 9290, 9312, 11123, 11126, 11157, 11160, 11193, 11197, 11218, 11244, 11247, 11264, 11507, 11513, 11559, 11565, 11565, 11568, 11623, 11631, 11632, 11647, 11670, 11680, 11849, 11904, 12019, 12032, 12245, 12272, 12283, 12289, 12438, 12441, 12543, 12549, 12590, 12593, 12730, 12736, 12771, 12784, 19893, 19904, 40938, 40960, 42124, 42128, 42182, 42192, 42539, 42560, 42743, 42752, 42935, 42999, 43051, 43056, 43065, 43072, 43127, 43136, 43205, 43214, 43225, 43232, 43261, 43264, 43347, 43359, 43388, 43392, 43481, 43486, 43574, 43584, 43597, 43600, 43609, 43612, 43714, 43739, 43766, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43877, 43888, 44013, 44016, 44025, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64449, 64467, 64831, 64848, 64911, 64914, 64967, 65008, 65021, 65024, 65049, 65056, 65131, 65136, 65276, 65281, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, 65504, 65518, 65532, 65533]); + isNotPrint16 = new sliceType$4([173, 907, 909, 930, 1328, 1376, 1416, 1424, 1757, 2111, 2143, 2229, 2274, 2436, 2473, 2481, 2526, 2564, 2601, 2609, 2612, 2615, 2621, 2653, 2692, 2702, 2706, 2729, 2737, 2740, 2758, 2762, 2816, 2820, 2857, 2865, 2868, 2910, 2948, 2961, 2971, 2973, 3017, 3076, 3085, 3089, 3113, 3141, 3145, 3159, 3204, 3213, 3217, 3241, 3252, 3269, 3273, 3295, 3312, 3332, 3341, 3345, 3397, 3401, 3460, 3506, 3516, 3541, 3543, 3715, 3721, 3736, 3744, 3748, 3750, 3756, 3770, 3781, 3783, 3912, 3992, 4029, 4045, 4294, 4681, 4695, 4697, 4745, 4785, 4799, 4801, 4823, 4881, 5760, 5901, 5997, 6001, 6431, 6751, 7674, 8024, 8026, 8028, 8030, 8117, 8133, 8156, 8181, 8335, 11209, 11311, 11359, 11558, 11687, 11695, 11703, 11711, 11719, 11727, 11735, 11743, 11930, 12352, 12687, 12831, 13055, 42927, 43470, 43519, 43815, 43823, 64311, 64317, 64319, 64322, 64325, 65107, 65127, 65141, 65511]); + isPrint32 = new sliceType$5([65536, 65613, 65616, 65629, 65664, 65786, 65792, 65794, 65799, 65843, 65847, 65947, 65952, 65952, 66000, 66045, 66176, 66204, 66208, 66256, 66272, 66299, 66304, 66339, 66349, 66378, 66384, 66426, 66432, 66499, 66504, 66517, 66560, 66717, 66720, 66729, 66736, 66771, 66776, 66811, 66816, 66855, 66864, 66915, 66927, 66927, 67072, 67382, 67392, 67413, 67424, 67431, 67584, 67589, 67592, 67640, 67644, 67644, 67647, 67742, 67751, 67759, 67808, 67829, 67835, 67867, 67871, 67897, 67903, 67903, 67968, 68023, 68028, 68047, 68050, 68102, 68108, 68147, 68152, 68154, 68159, 68167, 68176, 68184, 68192, 68255, 68288, 68326, 68331, 68342, 68352, 68405, 68409, 68437, 68440, 68466, 68472, 68497, 68505, 68508, 68521, 68527, 68608, 68680, 68736, 68786, 68800, 68850, 68858, 68863, 69216, 69246, 69632, 69709, 69714, 69743, 69759, 69825, 69840, 69864, 69872, 69881, 69888, 69955, 69968, 70006, 70016, 70093, 70096, 70132, 70144, 70206, 70272, 70313, 70320, 70378, 70384, 70393, 70400, 70412, 70415, 70416, 70419, 70457, 70460, 70468, 70471, 70472, 70475, 70477, 70480, 70480, 70487, 70487, 70493, 70499, 70502, 70508, 70512, 70516, 70656, 70749, 70784, 70855, 70864, 70873, 71040, 71093, 71096, 71133, 71168, 71236, 71248, 71257, 71264, 71276, 71296, 71351, 71360, 71369, 71424, 71449, 71453, 71467, 71472, 71487, 71840, 71922, 71935, 71935, 72192, 72263, 72272, 72323, 72326, 72354, 72384, 72440, 72704, 72773, 72784, 72812, 72816, 72847, 72850, 72886, 72960, 73014, 73018, 73031, 73040, 73049, 73728, 74649, 74752, 74868, 74880, 75075, 77824, 78894, 82944, 83526, 92160, 92728, 92736, 92777, 92782, 92783, 92880, 92909, 92912, 92917, 92928, 92997, 93008, 93047, 93053, 93071, 93952, 94020, 94032, 94078, 94095, 94111, 94176, 94177, 94208, 100332, 100352, 101106, 110592, 110878, 110960, 111355, 113664, 113770, 113776, 113788, 113792, 113800, 113808, 113817, 113820, 113823, 118784, 119029, 119040, 119078, 119081, 119154, 119163, 119272, 119296, 119365, 119552, 119638, 119648, 119665, 119808, 119967, 119970, 119970, 119973, 119974, 119977, 120074, 120077, 120134, 120138, 120485, 120488, 120779, 120782, 121483, 121499, 121519, 122880, 122904, 122907, 122922, 124928, 125124, 125127, 125142, 125184, 125258, 125264, 125273, 125278, 125279, 126464, 126500, 126503, 126523, 126530, 126530, 126535, 126548, 126551, 126564, 126567, 126619, 126625, 126651, 126704, 126705, 126976, 127019, 127024, 127123, 127136, 127150, 127153, 127221, 127232, 127244, 127248, 127339, 127344, 127404, 127462, 127490, 127504, 127547, 127552, 127560, 127568, 127569, 127584, 127589, 127744, 128724, 128736, 128748, 128752, 128760, 128768, 128883, 128896, 128980, 129024, 129035, 129040, 129095, 129104, 129113, 129120, 129159, 129168, 129197, 129280, 129291, 129296, 129356, 129360, 129387, 129408, 129431, 129472, 129472, 129488, 129510, 131072, 173782, 173824, 177972, 177984, 178205, 178208, 183969, 183984, 191456, 194560, 195101, 917760, 917999]); + isNotPrint32 = new sliceType$4([12, 39, 59, 62, 399, 926, 2057, 2102, 2134, 2291, 2564, 2580, 2584, 4285, 4405, 4576, 4626, 4743, 4745, 4750, 4766, 4868, 4905, 4913, 4916, 5210, 5212, 6813, 7177, 7223, 7336, 7431, 7434, 7483, 7486, 9327, 27231, 27482, 27490, 54357, 54429, 54445, 54458, 54460, 54468, 54534, 54549, 54557, 54586, 54591, 54597, 54609, 55968, 57351, 57378, 57381, 60932, 60960, 60963, 60968, 60979, 60984, 60986, 61000, 61002, 61004, 61008, 61011, 61016, 61018, 61020, 61022, 61024, 61027, 61035, 61043, 61048, 61053, 61055, 61066, 61092, 61098, 61632, 61648, 61743, 63807]); + isGraphic = new sliceType$4([160, 5760, 8192, 8193, 8194, 8195, 8196, 8197, 8198, 8199, 8200, 8201, 8202, 8239, 8287, 12288]); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["reflect"] = (function() { + var $pkg = {}, $init, errors, js, math, runtime, strconv, sync, unicode, utf8, uncommonType, funcType, name, nameData, mapIter, Type, Kind, tflag, rtype, typeAlg, method, ChanDir, arrayType, chanType, imethod, interfaceType, mapType, ptrType, sliceType, structField, structType, Method, nameOff, typeOff, textOff, StructField, StructTag, fieldScan, Value, flag, ValueError, sliceType$1, ptrType$1, sliceType$2, sliceType$3, ptrType$2, funcType$1, sliceType$4, ptrType$3, ptrType$4, sliceType$5, sliceType$6, sliceType$7, ptrType$5, ptrType$6, structType$3, sliceType$8, sliceType$9, sliceType$10, sliceType$11, ptrType$7, ptrType$8, sliceType$13, sliceType$14, ptrType$9, sliceType$15, ptrType$15, sliceType$17, ptrType$16, funcType$3, funcType$4, funcType$5, ptrType$17, arrayType$12, ptrType$18, initialized, uncommonTypeMap, nameMap, nameOffList, typeOffList, callHelper, jsObjectPtr, selectHelper, kindNames, uint8Type, init, jsType, reflectType, setKindType, newName, newNameOff, newTypeOff, internalStr, isWrapped, copyStruct, makeValue, MakeSlice, TypeOf, ValueOf, FuncOf, SliceOf, Zero, unsafe_New, makeInt, typedmemmove, keyFor, mapaccess, mapassign, mapdelete, mapiterinit, mapiterkey, mapiternext, maplen, cvtDirect, methodReceiver, valueInterface, ifaceE2I, methodName, makeMethodValue, wrapJsObject, unwrapJsObject, getJsTag, chanrecv, chansend, PtrTo, implements$1, directlyAssignable, haveIdenticalType, haveIdenticalUnderlyingType, toType, ifaceIndir, overflowFloat32, New, convertOp, makeFloat, makeComplex, makeString, makeBytes, makeRunes, cvtInt, cvtUint, cvtFloatInt, cvtFloatUint, cvtIntFloat, cvtUintFloat, cvtFloat, cvtComplex, cvtIntString, cvtUintString, cvtBytesString, cvtStringBytes, cvtRunesString, cvtStringRunes, cvtT2I, cvtI2I; + errors = $packages["errors"]; + js = $packages["github.com/gopherjs/gopherjs/js"]; + math = $packages["math"]; + runtime = $packages["runtime"]; + strconv = $packages["strconv"]; + sync = $packages["sync"]; + unicode = $packages["unicode"]; + utf8 = $packages["unicode/utf8"]; + uncommonType = $pkg.uncommonType = $newType(0, $kindStruct, "reflect.uncommonType", true, "reflect", false, function(pkgPath_, mcount_, xcount_, moff_, _methods_) { + this.$val = this; + if (arguments.length === 0) { + this.pkgPath = 0; + this.mcount = 0; + this.xcount = 0; + this.moff = 0; + this._methods = sliceType$5.nil; + return; + } + this.pkgPath = pkgPath_; + this.mcount = mcount_; + this.xcount = xcount_; + this.moff = moff_; + this._methods = _methods_; + }); + funcType = $pkg.funcType = $newType(0, $kindStruct, "reflect.funcType", true, "reflect", false, function(rtype_, inCount_, outCount_, _in_, _out_) { + this.$val = this; + if (arguments.length === 0) { + this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0); + this.inCount = 0; + this.outCount = 0; + this._in = sliceType$2.nil; + this._out = sliceType$2.nil; + return; + } + this.rtype = rtype_; + this.inCount = inCount_; + this.outCount = outCount_; + this._in = _in_; + this._out = _out_; + }); + name = $pkg.name = $newType(0, $kindStruct, "reflect.name", true, "reflect", false, function(bytes_) { + this.$val = this; + if (arguments.length === 0) { + this.bytes = ptrType$4.nil; + return; + } + this.bytes = bytes_; + }); + nameData = $pkg.nameData = $newType(0, $kindStruct, "reflect.nameData", true, "reflect", false, function(name_, tag_, exported_) { + this.$val = this; + if (arguments.length === 0) { + this.name = ""; + this.tag = ""; + this.exported = false; + return; + } + this.name = name_; + this.tag = tag_; + this.exported = exported_; + }); + mapIter = $pkg.mapIter = $newType(0, $kindStruct, "reflect.mapIter", true, "reflect", false, function(t_, m_, keys_, i_) { + this.$val = this; + if (arguments.length === 0) { + this.t = $ifaceNil; + this.m = null; + this.keys = null; + this.i = 0; + return; + } + this.t = t_; + this.m = m_; + this.keys = keys_; + this.i = i_; + }); + Type = $pkg.Type = $newType(8, $kindInterface, "reflect.Type", true, "reflect", true, null); + Kind = $pkg.Kind = $newType(4, $kindUint, "reflect.Kind", true, "reflect", true, null); + tflag = $pkg.tflag = $newType(1, $kindUint8, "reflect.tflag", true, "reflect", false, null); + rtype = $pkg.rtype = $newType(0, $kindStruct, "reflect.rtype", true, "reflect", false, function(size_, ptrdata_, hash_, tflag_, align_, fieldAlign_, kind_, alg_, gcdata_, str_, ptrToThis_) { + this.$val = this; + if (arguments.length === 0) { + this.size = 0; + this.ptrdata = 0; + this.hash = 0; + this.tflag = 0; + this.align = 0; + this.fieldAlign = 0; + this.kind = 0; + this.alg = ptrType$3.nil; + this.gcdata = ptrType$4.nil; + this.str = 0; + this.ptrToThis = 0; + return; + } + this.size = size_; + this.ptrdata = ptrdata_; + this.hash = hash_; + this.tflag = tflag_; + this.align = align_; + this.fieldAlign = fieldAlign_; + this.kind = kind_; + this.alg = alg_; + this.gcdata = gcdata_; + this.str = str_; + this.ptrToThis = ptrToThis_; + }); + typeAlg = $pkg.typeAlg = $newType(0, $kindStruct, "reflect.typeAlg", true, "reflect", false, function(hash_, equal_) { + this.$val = this; + if (arguments.length === 0) { + this.hash = $throwNilPointerError; + this.equal = $throwNilPointerError; + return; + } + this.hash = hash_; + this.equal = equal_; + }); + method = $pkg.method = $newType(0, $kindStruct, "reflect.method", true, "reflect", false, function(name_, mtyp_, ifn_, tfn_) { + this.$val = this; + if (arguments.length === 0) { + this.name = 0; + this.mtyp = 0; + this.ifn = 0; + this.tfn = 0; + return; + } + this.name = name_; + this.mtyp = mtyp_; + this.ifn = ifn_; + this.tfn = tfn_; + }); + ChanDir = $pkg.ChanDir = $newType(4, $kindInt, "reflect.ChanDir", true, "reflect", true, null); + arrayType = $pkg.arrayType = $newType(0, $kindStruct, "reflect.arrayType", true, "reflect", false, function(rtype_, elem_, slice_, len_) { + this.$val = this; + if (arguments.length === 0) { + this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0); + this.elem = ptrType$1.nil; + this.slice = ptrType$1.nil; + this.len = 0; + return; + } + this.rtype = rtype_; + this.elem = elem_; + this.slice = slice_; + this.len = len_; + }); + chanType = $pkg.chanType = $newType(0, $kindStruct, "reflect.chanType", true, "reflect", false, function(rtype_, elem_, dir_) { + this.$val = this; + if (arguments.length === 0) { + this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0); + this.elem = ptrType$1.nil; + this.dir = 0; + return; + } + this.rtype = rtype_; + this.elem = elem_; + this.dir = dir_; + }); + imethod = $pkg.imethod = $newType(0, $kindStruct, "reflect.imethod", true, "reflect", false, function(name_, typ_) { + this.$val = this; + if (arguments.length === 0) { + this.name = 0; + this.typ = 0; + return; + } + this.name = name_; + this.typ = typ_; + }); + interfaceType = $pkg.interfaceType = $newType(0, $kindStruct, "reflect.interfaceType", true, "reflect", false, function(rtype_, pkgPath_, methods_) { + this.$val = this; + if (arguments.length === 0) { + this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0); + this.pkgPath = new name.ptr(ptrType$4.nil); + this.methods = sliceType$6.nil; + return; + } + this.rtype = rtype_; + this.pkgPath = pkgPath_; + this.methods = methods_; + }); + mapType = $pkg.mapType = $newType(0, $kindStruct, "reflect.mapType", true, "reflect", false, function(rtype_, key_, elem_, bucket_, keysize_, indirectkey_, valuesize_, indirectvalue_, bucketsize_, reflexivekey_, needkeyupdate_) { + this.$val = this; + if (arguments.length === 0) { + this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0); + this.key = ptrType$1.nil; + this.elem = ptrType$1.nil; + this.bucket = ptrType$1.nil; + this.keysize = 0; + this.indirectkey = 0; + this.valuesize = 0; + this.indirectvalue = 0; + this.bucketsize = 0; + this.reflexivekey = false; + this.needkeyupdate = false; + return; + } + this.rtype = rtype_; + this.key = key_; + this.elem = elem_; + this.bucket = bucket_; + this.keysize = keysize_; + this.indirectkey = indirectkey_; + this.valuesize = valuesize_; + this.indirectvalue = indirectvalue_; + this.bucketsize = bucketsize_; + this.reflexivekey = reflexivekey_; + this.needkeyupdate = needkeyupdate_; + }); + ptrType = $pkg.ptrType = $newType(0, $kindStruct, "reflect.ptrType", true, "reflect", false, function(rtype_, elem_) { + this.$val = this; + if (arguments.length === 0) { + this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0); + this.elem = ptrType$1.nil; + return; + } + this.rtype = rtype_; + this.elem = elem_; + }); + sliceType = $pkg.sliceType = $newType(0, $kindStruct, "reflect.sliceType", true, "reflect", false, function(rtype_, elem_) { + this.$val = this; + if (arguments.length === 0) { + this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0); + this.elem = ptrType$1.nil; + return; + } + this.rtype = rtype_; + this.elem = elem_; + }); + structField = $pkg.structField = $newType(0, $kindStruct, "reflect.structField", true, "reflect", false, function(name_, typ_, offsetEmbed_) { + this.$val = this; + if (arguments.length === 0) { + this.name = new name.ptr(ptrType$4.nil); + this.typ = ptrType$1.nil; + this.offsetEmbed = 0; + return; + } + this.name = name_; + this.typ = typ_; + this.offsetEmbed = offsetEmbed_; + }); + structType = $pkg.structType = $newType(0, $kindStruct, "reflect.structType", true, "reflect", false, function(rtype_, pkgPath_, fields_) { + this.$val = this; + if (arguments.length === 0) { + this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0); + this.pkgPath = new name.ptr(ptrType$4.nil); + this.fields = sliceType$7.nil; + return; + } + this.rtype = rtype_; + this.pkgPath = pkgPath_; + this.fields = fields_; + }); + Method = $pkg.Method = $newType(0, $kindStruct, "reflect.Method", true, "reflect", true, function(Name_, PkgPath_, Type_, Func_, Index_) { + this.$val = this; + if (arguments.length === 0) { + this.Name = ""; + this.PkgPath = ""; + this.Type = $ifaceNil; + this.Func = new Value.ptr(ptrType$1.nil, 0, 0); + this.Index = 0; + return; + } + this.Name = Name_; + this.PkgPath = PkgPath_; + this.Type = Type_; + this.Func = Func_; + this.Index = Index_; + }); + nameOff = $pkg.nameOff = $newType(4, $kindInt32, "reflect.nameOff", true, "reflect", false, null); + typeOff = $pkg.typeOff = $newType(4, $kindInt32, "reflect.typeOff", true, "reflect", false, null); + textOff = $pkg.textOff = $newType(4, $kindInt32, "reflect.textOff", true, "reflect", false, null); + StructField = $pkg.StructField = $newType(0, $kindStruct, "reflect.StructField", true, "reflect", true, function(Name_, PkgPath_, Type_, Tag_, Offset_, Index_, Anonymous_) { + this.$val = this; + if (arguments.length === 0) { + this.Name = ""; + this.PkgPath = ""; + this.Type = $ifaceNil; + this.Tag = ""; + this.Offset = 0; + this.Index = sliceType$13.nil; + this.Anonymous = false; + return; + } + this.Name = Name_; + this.PkgPath = PkgPath_; + this.Type = Type_; + this.Tag = Tag_; + this.Offset = Offset_; + this.Index = Index_; + this.Anonymous = Anonymous_; + }); + StructTag = $pkg.StructTag = $newType(8, $kindString, "reflect.StructTag", true, "reflect", true, null); + fieldScan = $pkg.fieldScan = $newType(0, $kindStruct, "reflect.fieldScan", true, "reflect", false, function(typ_, index_) { + this.$val = this; + if (arguments.length === 0) { + this.typ = ptrType$9.nil; + this.index = sliceType$13.nil; + return; + } + this.typ = typ_; + this.index = index_; + }); + Value = $pkg.Value = $newType(0, $kindStruct, "reflect.Value", true, "reflect", true, function(typ_, ptr_, flag_) { + this.$val = this; + if (arguments.length === 0) { + this.typ = ptrType$1.nil; + this.ptr = 0; + this.flag = 0; + return; + } + this.typ = typ_; + this.ptr = ptr_; + this.flag = flag_; + }); + flag = $pkg.flag = $newType(4, $kindUintptr, "reflect.flag", true, "reflect", false, null); + ValueError = $pkg.ValueError = $newType(0, $kindStruct, "reflect.ValueError", true, "reflect", true, function(Method_, Kind_) { + this.$val = this; + if (arguments.length === 0) { + this.Method = ""; + this.Kind = 0; + return; + } + this.Method = Method_; + this.Kind = Kind_; + }); + sliceType$1 = $sliceType(name); + ptrType$1 = $ptrType(rtype); + sliceType$2 = $sliceType(ptrType$1); + sliceType$3 = $sliceType($emptyInterface); + ptrType$2 = $ptrType(js.Object); + funcType$1 = $funcType([sliceType$3], [ptrType$2], true); + sliceType$4 = $sliceType($String); + ptrType$3 = $ptrType(typeAlg); + ptrType$4 = $ptrType($Uint8); + sliceType$5 = $sliceType(method); + sliceType$6 = $sliceType(imethod); + sliceType$7 = $sliceType(structField); + ptrType$5 = $ptrType(uncommonType); + ptrType$6 = $ptrType(nameData); + structType$3 = $structType("reflect", [{prop: "str", name: "str", embedded: false, exported: false, typ: $String, tag: ""}]); + sliceType$8 = $sliceType(ptrType$2); + sliceType$9 = $sliceType(Value); + sliceType$10 = $sliceType(Type); + sliceType$11 = $sliceType(sliceType$8); + ptrType$7 = $ptrType(interfaceType); + ptrType$8 = $ptrType(imethod); + sliceType$13 = $sliceType($Int); + sliceType$14 = $sliceType(fieldScan); + ptrType$9 = $ptrType(structType); + sliceType$15 = $sliceType($Uint8); + ptrType$15 = $ptrType($UnsafePointer); + sliceType$17 = $sliceType($Int32); + ptrType$16 = $ptrType(funcType); + funcType$3 = $funcType([$String], [$Bool], false); + funcType$4 = $funcType([$UnsafePointer, $Uintptr], [$Uintptr], false); + funcType$5 = $funcType([$UnsafePointer, $UnsafePointer], [$Bool], false); + ptrType$17 = $ptrType(structField); + arrayType$12 = $arrayType($Uintptr, 2); + ptrType$18 = $ptrType(ValueError); + init = function() { + var used, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; used = $f.used; x = $f.x; x$1 = $f.x$1; x$10 = $f.x$10; x$11 = $f.x$11; x$12 = $f.x$12; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; x$8 = $f.x$8; x$9 = $f.x$9; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + used = (function(i) { + var i; + }); + $r = used((x = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), new x.constructor.elem(x))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$1 = new uncommonType.ptr(0, 0, 0, 0, sliceType$5.nil), new x$1.constructor.elem(x$1))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$2 = new method.ptr(0, 0, 0, 0), new x$2.constructor.elem(x$2))); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$3 = new arrayType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), ptrType$1.nil, ptrType$1.nil, 0), new x$3.constructor.elem(x$3))); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$4 = new chanType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), ptrType$1.nil, 0), new x$4.constructor.elem(x$4))); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$5 = new funcType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), 0, 0, sliceType$2.nil, sliceType$2.nil), new x$5.constructor.elem(x$5))); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$6 = new interfaceType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), new name.ptr(ptrType$4.nil), sliceType$6.nil), new x$6.constructor.elem(x$6))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$7 = new mapType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), ptrType$1.nil, ptrType$1.nil, ptrType$1.nil, 0, 0, 0, 0, 0, false, false), new x$7.constructor.elem(x$7))); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$8 = new ptrType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), ptrType$1.nil), new x$8.constructor.elem(x$8))); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$9 = new sliceType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), ptrType$1.nil), new x$9.constructor.elem(x$9))); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$10 = new structType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), new name.ptr(ptrType$4.nil), sliceType$7.nil), new x$10.constructor.elem(x$10))); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$11 = new imethod.ptr(0, 0), new x$11.constructor.elem(x$11))); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$12 = new structField.ptr(new name.ptr(ptrType$4.nil), ptrType$1.nil, 0), new x$12.constructor.elem(x$12))); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + initialized = true; + uint8Type = $assertType(TypeOf(new $Uint8(0)), ptrType$1); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: init }; } $f.used = used; $f.x = x; $f.x$1 = x$1; $f.x$10 = x$10; $f.x$11 = x$11; $f.x$12 = x$12; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.x$8 = x$8; $f.x$9 = x$9; $f.$s = $s; $f.$r = $r; return $f; + }; + jsType = function(typ) { + var typ; + return typ.jsType; + }; + reflectType = function(typ) { + var _1, _i, _i$1, _i$2, _i$3, _key, _ref, _ref$1, _ref$2, _ref$3, dir, exported, exported$1, f, fields, i, i$1, i$2, i$3, i$4, i$5, imethods, in$1, m, m$1, m$2, methodSet, methods, offsetEmbed, out, outCount, params, reflectFields, reflectMethods, results, rt, typ, ut, xcount; + if (typ.reflectType === undefined) { + rt = new rtype.ptr(((($parseInt(typ.size) >> 0) >>> 0)), 0, 0, 0, 0, 0, ((($parseInt(typ.kind) >> 0) << 24 >>> 24)), ptrType$3.nil, ptrType$4.nil, newNameOff($clone(newName(internalStr(typ.string), "", !!(typ.exported)), name)), 0); + rt.jsType = typ; + typ.reflectType = rt; + methodSet = $methodSet(typ); + if (!(($parseInt(methodSet.length) === 0)) || !!(typ.named)) { + rt.tflag = (rt.tflag | (1)) >>> 0; + if (!!(typ.named)) { + rt.tflag = (rt.tflag | (4)) >>> 0; + } + reflectMethods = sliceType$5.nil; + i = 0; + while (true) { + if (!(i < $parseInt(methodSet.length))) { break; } + m = methodSet[i]; + exported = internalStr(m.pkg) === ""; + if (!exported) { + i = i + (1) >> 0; + continue; + } + reflectMethods = $append(reflectMethods, new method.ptr(newNameOff($clone(newName(internalStr(m.name), "", exported), name)), newTypeOff(reflectType(m.typ)), 0, 0)); + i = i + (1) >> 0; + } + xcount = ((reflectMethods.$length << 16 >>> 16)); + i$1 = 0; + while (true) { + if (!(i$1 < $parseInt(methodSet.length))) { break; } + m$1 = methodSet[i$1]; + exported$1 = internalStr(m$1.pkg) === ""; + if (exported$1) { + i$1 = i$1 + (1) >> 0; + continue; + } + reflectMethods = $append(reflectMethods, new method.ptr(newNameOff($clone(newName(internalStr(m$1.name), "", exported$1), name)), newTypeOff(reflectType(m$1.typ)), 0, 0)); + i$1 = i$1 + (1) >> 0; + } + ut = new uncommonType.ptr(newNameOff($clone(newName(internalStr(typ.pkg), "", false), name)), (($parseInt(methodSet.length) << 16 >>> 16)), xcount, 0, reflectMethods); + _key = rt; (uncommonTypeMap || $throwRuntimeError("assignment to entry in nil map"))[ptrType$1.keyFor(_key)] = { k: _key, v: ut }; + ut.jsType = typ; + } + _1 = rt.Kind(); + if (_1 === (17)) { + setKindType(rt, new arrayType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), reflectType(typ.elem), ptrType$1.nil, ((($parseInt(typ.len) >> 0) >>> 0)))); + } else if (_1 === (18)) { + dir = 3; + if (!!(typ.sendOnly)) { + dir = 2; + } + if (!!(typ.recvOnly)) { + dir = 1; + } + setKindType(rt, new chanType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), reflectType(typ.elem), ((dir >>> 0)))); + } else if (_1 === (19)) { + params = typ.params; + in$1 = $makeSlice(sliceType$2, $parseInt(params.length)); + _ref = in$1; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i$2 = _i; + ((i$2 < 0 || i$2 >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + i$2] = reflectType(params[i$2])); + _i++; + } + results = typ.results; + out = $makeSlice(sliceType$2, $parseInt(results.length)); + _ref$1 = out; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i$3 = _i$1; + ((i$3 < 0 || i$3 >= out.$length) ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + i$3] = reflectType(results[i$3])); + _i$1++; + } + outCount = (($parseInt(results.length) << 16 >>> 16)); + if (!!(typ.variadic)) { + outCount = (outCount | (32768)) >>> 0; + } + setKindType(rt, new funcType.ptr($clone(rt, rtype), (($parseInt(params.length) << 16 >>> 16)), outCount, in$1, out)); + } else if (_1 === (20)) { + methods = typ.methods; + imethods = $makeSlice(sliceType$6, $parseInt(methods.length)); + _ref$2 = imethods; + _i$2 = 0; + while (true) { + if (!(_i$2 < _ref$2.$length)) { break; } + i$4 = _i$2; + m$2 = methods[i$4]; + imethod.copy(((i$4 < 0 || i$4 >= imethods.$length) ? ($throwRuntimeError("index out of range"), undefined) : imethods.$array[imethods.$offset + i$4]), new imethod.ptr(newNameOff($clone(newName(internalStr(m$2.name), "", internalStr(m$2.pkg) === ""), name)), newTypeOff(reflectType(m$2.typ)))); + _i$2++; + } + setKindType(rt, new interfaceType.ptr($clone(rt, rtype), $clone(newName(internalStr(typ.pkg), "", false), name), imethods)); + } else if (_1 === (21)) { + setKindType(rt, new mapType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), reflectType(typ.key), reflectType(typ.elem), ptrType$1.nil, 0, 0, 0, 0, 0, false, false)); + } else if (_1 === (22)) { + setKindType(rt, new ptrType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), reflectType(typ.elem))); + } else if (_1 === (23)) { + setKindType(rt, new sliceType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), reflectType(typ.elem))); + } else if (_1 === (25)) { + fields = typ.fields; + reflectFields = $makeSlice(sliceType$7, $parseInt(fields.length)); + _ref$3 = reflectFields; + _i$3 = 0; + while (true) { + if (!(_i$3 < _ref$3.$length)) { break; } + i$5 = _i$3; + f = fields[i$5]; + offsetEmbed = ((i$5 >>> 0)) << 1 >>> 0; + if (!!(f.embedded)) { + offsetEmbed = (offsetEmbed | (1)) >>> 0; + } + structField.copy(((i$5 < 0 || i$5 >= reflectFields.$length) ? ($throwRuntimeError("index out of range"), undefined) : reflectFields.$array[reflectFields.$offset + i$5]), new structField.ptr($clone(newName(internalStr(f.name), internalStr(f.tag), !!(f.exported)), name), reflectType(f.typ), offsetEmbed)); + _i$3++; + } + setKindType(rt, new structType.ptr($clone(rt, rtype), $clone(newName(internalStr(typ.pkgPath), "", false), name), reflectFields)); + } + } + return ((typ.reflectType)); + }; + setKindType = function(rt, kindType) { + var kindType, rt; + rt.kindType = kindType; + kindType.rtype = rt; + }; + uncommonType.ptr.prototype.methods = function() { + var t; + t = this; + return t._methods; + }; + uncommonType.prototype.methods = function() { return this.$val.methods(); }; + uncommonType.ptr.prototype.exportedMethods = function() { + var t; + t = this; + return $subslice(t._methods, 0, t.xcount, t.xcount); + }; + uncommonType.prototype.exportedMethods = function() { return this.$val.exportedMethods(); }; + rtype.ptr.prototype.uncommon = function() { + var _entry, t; + t = this; + return (_entry = uncommonTypeMap[ptrType$1.keyFor(t)], _entry !== undefined ? _entry.v : ptrType$5.nil); + }; + rtype.prototype.uncommon = function() { return this.$val.uncommon(); }; + funcType.ptr.prototype.in$ = function() { + var t; + t = this; + return t._in; + }; + funcType.prototype.in$ = function() { return this.$val.in$(); }; + funcType.ptr.prototype.out = function() { + var t; + t = this; + return t._out; + }; + funcType.prototype.out = function() { return this.$val.out(); }; + name.ptr.prototype.name = function() { + var _entry, n, s; + s = ""; + n = this; + s = (_entry = nameMap[ptrType$4.keyFor(n.bytes)], _entry !== undefined ? _entry.v : ptrType$6.nil).name; + return s; + }; + name.prototype.name = function() { return this.$val.name(); }; + name.ptr.prototype.tag = function() { + var _entry, n, s; + s = ""; + n = this; + s = (_entry = nameMap[ptrType$4.keyFor(n.bytes)], _entry !== undefined ? _entry.v : ptrType$6.nil).tag; + return s; + }; + name.prototype.tag = function() { return this.$val.tag(); }; + name.ptr.prototype.pkgPath = function() { + var n; + n = this; + return ""; + }; + name.prototype.pkgPath = function() { return this.$val.pkgPath(); }; + name.ptr.prototype.isExported = function() { + var _entry, n; + n = this; + return (_entry = nameMap[ptrType$4.keyFor(n.bytes)], _entry !== undefined ? _entry.v : ptrType$6.nil).exported; + }; + name.prototype.isExported = function() { return this.$val.isExported(); }; + newName = function(n, tag, exported) { + var _key, b, exported, n, tag; + b = $newDataPointer(0, ptrType$4); + _key = b; (nameMap || $throwRuntimeError("assignment to entry in nil map"))[ptrType$4.keyFor(_key)] = { k: _key, v: new nameData.ptr(n, tag, exported) }; + return new name.ptr(b); + }; + rtype.ptr.prototype.nameOff = function(off) { + var off, t, x; + t = this; + return (x = ((off >> 0)), ((x < 0 || x >= nameOffList.$length) ? ($throwRuntimeError("index out of range"), undefined) : nameOffList.$array[nameOffList.$offset + x])); + }; + rtype.prototype.nameOff = function(off) { return this.$val.nameOff(off); }; + newNameOff = function(n) { + var i, n; + i = nameOffList.$length; + nameOffList = $append(nameOffList, n); + return ((i >> 0)); + }; + rtype.ptr.prototype.typeOff = function(off) { + var off, t, x; + t = this; + return (x = ((off >> 0)), ((x < 0 || x >= typeOffList.$length) ? ($throwRuntimeError("index out of range"), undefined) : typeOffList.$array[typeOffList.$offset + x])); + }; + rtype.prototype.typeOff = function(off) { return this.$val.typeOff(off); }; + newTypeOff = function(t) { + var i, t; + i = typeOffList.$length; + typeOffList = $append(typeOffList, t); + return ((i >> 0)); + }; + internalStr = function(strObj) { + var c, strObj; + c = new structType$3.ptr(""); + c.str = strObj; + return c.str; + }; + isWrapped = function(typ) { + var typ; + return !!(jsType(typ).wrapped); + }; + copyStruct = function(dst, src, typ) { + var dst, fields, i, prop, src, typ; + fields = jsType(typ).fields; + i = 0; + while (true) { + if (!(i < $parseInt(fields.length))) { break; } + prop = $internalize(fields[i].prop, $String); + dst[$externalize(prop, $String)] = src[$externalize(prop, $String)]; + i = i + (1) >> 0; + } + }; + makeValue = function(t, v, fl) { + var _r, _r$1, _r$2, _r$3, _r$4, _r$5, _v, _v$1, fl, rt, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _v = $f._v; _v$1 = $f._v$1; fl = $f.fl; rt = $f.rt; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = t.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + rt = _r; + _r$1 = t.Kind(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + if (_r$1 === 17) { _v$1 = true; $s = 5; continue s; } + _r$2 = t.Kind(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v$1 = _r$2 === 25; case 5: + if (_v$1) { _v = true; $s = 4; continue s; } + _r$3 = t.Kind(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _v = _r$3 === 22; case 4: + /* */ if (_v) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (_v) { */ case 2: + _r$4 = t.Kind(); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $s = -1; return new Value.ptr(rt, (v), (fl | ((_r$4 >>> 0))) >>> 0); + /* } */ case 3: + _r$5 = t.Kind(); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $s = -1; return new Value.ptr(rt, ($newDataPointer(v, jsType(rt.ptrTo()))), (((fl | ((_r$5 >>> 0))) >>> 0) | 128) >>> 0); + /* */ } return; } if ($f === undefined) { $f = { $blk: makeValue }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._v = _v; $f._v$1 = _v$1; $f.fl = fl; $f.rt = rt; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + MakeSlice = function(typ, len, cap) { + var _r, _r$1, cap, len, typ, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; cap = $f.cap; len = $f.len; typ = $f.typ; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + typ = [typ]; + _r = typ[0].Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!((_r === 23))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((_r === 23))) { */ case 1: + $panic(new $String("reflect.MakeSlice of non-slice type")); + /* } */ case 2: + if (len < 0) { + $panic(new $String("reflect.MakeSlice: negative len")); + } + if (cap < 0) { + $panic(new $String("reflect.MakeSlice: negative cap")); + } + if (len > cap) { + $panic(new $String("reflect.MakeSlice: len > cap")); + } + _r$1 = makeValue(typ[0], $makeSlice(jsType(typ[0]), len, cap, (function(typ) { return function $b() { + var _r$1, _r$2, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$1 = $f._r$1; _r$2 = $f._r$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r$1 = typ[0].Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = jsType(_r$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $s = -1; return _r$2.zero(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._r$1 = _r$1; $f._r$2 = _r$2; $f.$s = $s; $f.$r = $r; return $f; + }; })(typ)), 0); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return _r$1; + /* */ } return; } if ($f === undefined) { $f = { $blk: MakeSlice }; } $f._r = _r; $f._r$1 = _r$1; $f.cap = cap; $f.len = len; $f.typ = typ; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.MakeSlice = MakeSlice; + TypeOf = function(i) { + var i; + if (!initialized) { + return new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0); + } + if ($interfaceIsEqual(i, $ifaceNil)) { + return $ifaceNil; + } + return reflectType(i.constructor); + }; + $pkg.TypeOf = TypeOf; + ValueOf = function(i) { + var _r, i, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; i = $f.i; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + if ($interfaceIsEqual(i, $ifaceNil)) { + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + } + _r = makeValue(reflectType(i.constructor), i.$val, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: ValueOf }; } $f._r = _r; $f.i = i; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.ValueOf = ValueOf; + FuncOf = function(in$1, out, variadic) { + var _i, _i$1, _r, _ref, _ref$1, _v, _v$1, i, i$1, in$1, jsIn, jsOut, out, v, v$1, variadic, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _i$1 = $f._i$1; _r = $f._r; _ref = $f._ref; _ref$1 = $f._ref$1; _v = $f._v; _v$1 = $f._v$1; i = $f.i; i$1 = $f.i$1; in$1 = $f.in$1; jsIn = $f.jsIn; jsOut = $f.jsOut; out = $f.out; v = $f.v; v$1 = $f.v$1; variadic = $f.variadic; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + if (!(variadic)) { _v = false; $s = 3; continue s; } + if (in$1.$length === 0) { _v$1 = true; $s = 4; continue s; } + _r = (x = in$1.$length - 1 >> 0, ((x < 0 || x >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + x])).Kind(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v$1 = !((_r === 23)); case 4: + _v = _v$1; case 3: + /* */ if (_v) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_v) { */ case 1: + $panic(new $String("reflect.FuncOf: last arg of variadic func must be slice")); + /* } */ case 2: + jsIn = $makeSlice(sliceType$8, in$1.$length); + _ref = in$1; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + ((i < 0 || i >= jsIn.$length) ? ($throwRuntimeError("index out of range"), undefined) : jsIn.$array[jsIn.$offset + i] = jsType(v)); + _i++; + } + jsOut = $makeSlice(sliceType$8, out.$length); + _ref$1 = out; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i$1 = _i$1; + v$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + ((i$1 < 0 || i$1 >= jsOut.$length) ? ($throwRuntimeError("index out of range"), undefined) : jsOut.$array[jsOut.$offset + i$1] = jsType(v$1)); + _i$1++; + } + $s = -1; return reflectType($funcType($externalize(jsIn, sliceType$8), $externalize(jsOut, sliceType$8), $externalize(variadic, $Bool))); + /* */ } return; } if ($f === undefined) { $f = { $blk: FuncOf }; } $f._i = _i; $f._i$1 = _i$1; $f._r = _r; $f._ref = _ref; $f._ref$1 = _ref$1; $f._v = _v; $f._v$1 = _v$1; $f.i = i; $f.i$1 = i$1; $f.in$1 = in$1; $f.jsIn = jsIn; $f.jsOut = jsOut; $f.out = out; $f.v = v; $f.v$1 = v$1; $f.variadic = variadic; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.FuncOf = FuncOf; + rtype.ptr.prototype.ptrTo = function() { + var t; + t = this; + return reflectType($ptrType(jsType(t))); + }; + rtype.prototype.ptrTo = function() { return this.$val.ptrTo(); }; + SliceOf = function(t) { + var t; + return reflectType($sliceType(jsType(t))); + }; + $pkg.SliceOf = SliceOf; + Zero = function(typ) { + var _r, typ, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; typ = $f.typ; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = makeValue(typ, jsType(typ).zero(), 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: Zero }; } $f._r = _r; $f.typ = typ; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Zero = Zero; + unsafe_New = function(typ) { + var _1, typ; + _1 = typ.Kind(); + if (_1 === (25)) { + return (new (jsType(typ).ptr)()); + } else if (_1 === (17)) { + return (jsType(typ).zero()); + } else { + return ($newDataPointer(jsType(typ).zero(), jsType(typ.ptrTo()))); + } + }; + makeInt = function(f, bits, t) { + var _1, _r, bits, f, ptr, t, typ, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; bits = $f.bits; f = $f.f; ptr = $f.ptr; t = $f.t; typ = $f.typ; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = t.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + typ = _r; + ptr = unsafe_New(typ); + _1 = typ.Kind(); + if (_1 === (3)) { + (ptr).$set(((bits.$low << 24 >> 24))); + } else if (_1 === (4)) { + (ptr).$set(((bits.$low << 16 >> 16))); + } else if ((_1 === (2)) || (_1 === (5))) { + (ptr).$set(((bits.$low >> 0))); + } else if (_1 === (6)) { + (ptr).$set((new $Int64(bits.$high, bits.$low))); + } else if (_1 === (8)) { + (ptr).$set(((bits.$low << 24 >>> 24))); + } else if (_1 === (9)) { + (ptr).$set(((bits.$low << 16 >>> 16))); + } else if ((_1 === (7)) || (_1 === (10)) || (_1 === (12))) { + (ptr).$set(((bits.$low >>> 0))); + } else if (_1 === (11)) { + (ptr).$set((bits)); + } + $s = -1; return new Value.ptr(typ, ptr, (((f | 128) >>> 0) | ((typ.Kind() >>> 0))) >>> 0); + /* */ } return; } if ($f === undefined) { $f = { $blk: makeInt }; } $f._1 = _1; $f._r = _r; $f.bits = bits; $f.f = f; $f.ptr = ptr; $f.t = t; $f.typ = typ; $f.$s = $s; $f.$r = $r; return $f; + }; + typedmemmove = function(t, dst, src) { + var dst, src, t; + dst.$set(src.$get()); + }; + keyFor = function(t, key) { + var k, key, kv, t; + kv = key; + if (!(kv.$get === undefined)) { + kv = kv.$get(); + } + k = $internalize(jsType(t.Key()).keyFor(kv), $String); + return [kv, k]; + }; + mapaccess = function(t, m, key) { + var _tuple, entry, k, key, m, t; + _tuple = keyFor(t, key); + k = _tuple[1]; + entry = m[$externalize(k, $String)]; + if (entry === undefined) { + return 0; + } + return ($newDataPointer(entry.v, jsType(PtrTo(t.Elem())))); + }; + mapassign = function(t, m, key, val) { + var _r, _tuple, entry, et, jsVal, k, key, kv, m, newVal, t, val, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; entry = $f.entry; et = $f.et; jsVal = $f.jsVal; k = $f.k; key = $f.key; kv = $f.kv; m = $f.m; newVal = $f.newVal; t = $f.t; val = $f.val; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _tuple = keyFor(t, key); + kv = _tuple[0]; + k = _tuple[1]; + jsVal = val.$get(); + et = t.Elem(); + _r = et.Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r === 25) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r === 25) { */ case 1: + newVal = jsType(et).zero(); + copyStruct(newVal, jsVal, et); + jsVal = newVal; + /* } */ case 2: + entry = new ($global.Object)(); + entry.k = kv; + entry.v = jsVal; + m[$externalize(k, $String)] = entry; + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: mapassign }; } $f._r = _r; $f._tuple = _tuple; $f.entry = entry; $f.et = et; $f.jsVal = jsVal; $f.k = k; $f.key = key; $f.kv = kv; $f.m = m; $f.newVal = newVal; $f.t = t; $f.val = val; $f.$s = $s; $f.$r = $r; return $f; + }; + mapdelete = function(t, m, key) { + var _tuple, k, key, m, t; + _tuple = keyFor(t, key); + k = _tuple[1]; + delete m[$externalize(k, $String)]; + }; + mapiterinit = function(t, m) { + var m, t; + return ((new mapIter.ptr(t, m, $keys(m), 0))); + }; + mapiterkey = function(it) { + var _r, _r$1, _r$2, it, iter, k, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; it = $f.it; iter = $f.iter; k = $f.k; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + iter = ((it)); + k = iter.keys[iter.i]; + _r = iter.t.Key(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = PtrTo(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = jsType(_r$1); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $s = -1; return ($newDataPointer(iter.m[$externalize($internalize(k, $String), $String)].k, _r$2)); + /* */ } return; } if ($f === undefined) { $f = { $blk: mapiterkey }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.it = it; $f.iter = iter; $f.k = k; $f.$s = $s; $f.$r = $r; return $f; + }; + mapiternext = function(it) { + var it, iter; + iter = ((it)); + iter.i = iter.i + (1) >> 0; + }; + maplen = function(m) { + var m; + return $parseInt($keys(m).length); + }; + cvtDirect = function(v, typ) { + var _1, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, k, slice, srcVal, typ, v, val, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; k = $f.k; slice = $f.slice; srcVal = $f.srcVal; typ = $f.typ; v = $f.v; val = $f.val; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + srcVal = $clone(v, Value).object(); + /* */ if (srcVal === jsType(v.typ).nil) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (srcVal === jsType(v.typ).nil) { */ case 1: + _r = makeValue(typ, jsType(typ).nil, v.flag); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* } */ case 2: + val = null; + _r$1 = typ.Kind(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + k = _r$1; + _1 = k; + /* */ if (_1 === (23)) { $s = 6; continue; } + /* */ if (_1 === (22)) { $s = 7; continue; } + /* */ if (_1 === (25)) { $s = 8; continue; } + /* */ if ((_1 === (17)) || (_1 === (1)) || (_1 === (18)) || (_1 === (19)) || (_1 === (20)) || (_1 === (21)) || (_1 === (24))) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (_1 === (23)) { */ case 6: + slice = new (jsType(typ))(srcVal.$array); + slice.$offset = srcVal.$offset; + slice.$length = srcVal.$length; + slice.$capacity = srcVal.$capacity; + val = $newDataPointer(slice, jsType(PtrTo(typ))); + $s = 11; continue; + /* } else if (_1 === (22)) { */ case 7: + _r$2 = typ.Elem(); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = _r$2.Kind(); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3 === 25) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (_r$3 === 25) { */ case 12: + _r$4 = typ.Elem(); /* */ $s = 18; case 18: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if ($interfaceIsEqual(_r$4, v.typ.Elem())) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if ($interfaceIsEqual(_r$4, v.typ.Elem())) { */ case 16: + val = srcVal; + /* break; */ $s = 4; continue; + /* } */ case 17: + val = new (jsType(typ))(); + _arg = val; + _arg$1 = srcVal; + _r$5 = typ.Elem(); /* */ $s = 19; case 19: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _arg$2 = _r$5; + $r = copyStruct(_arg, _arg$1, _arg$2); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* break; */ $s = 4; continue; + /* } */ case 13: + val = new (jsType(typ))(srcVal.$get, srcVal.$set); + $s = 11; continue; + /* } else if (_1 === (25)) { */ case 8: + val = new (jsType(typ).ptr)(); + copyStruct(val, srcVal, typ); + $s = 11; continue; + /* } else if ((_1 === (17)) || (_1 === (1)) || (_1 === (18)) || (_1 === (19)) || (_1 === (20)) || (_1 === (21)) || (_1 === (24))) { */ case 9: + val = v.ptr; + $s = 11; continue; + /* } else { */ case 10: + $panic(new ValueError.ptr("reflect.Convert", k)); + /* } */ case 11: + case 4: + _r$6 = typ.common(); /* */ $s = 21; case 21: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$7 = typ.Kind(); /* */ $s = 22; case 22: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + $s = -1; return new Value.ptr(_r$6, (val), (((new flag(v.flag).ro() | ((v.flag & 128) >>> 0)) >>> 0) | ((_r$7 >>> 0))) >>> 0); + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtDirect }; } $f._1 = _1; $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f.k = k; $f.slice = slice; $f.srcVal = srcVal; $f.typ = typ; $f.v = v; $f.val = val; $f.$s = $s; $f.$r = $r; return $f; + }; + methodReceiver = function(op, v, i) { + var _$38, fn, i, m, m$1, ms, op, prop, rcvr, t, tt, v, x; + _$38 = ptrType$1.nil; + t = ptrType$1.nil; + fn = 0; + prop = ""; + if (v.typ.Kind() === 20) { + tt = (v.typ.kindType); + if (i < 0 || i >= tt.methods.$length) { + $panic(new $String("reflect: internal error: invalid method index")); + } + m = (x = tt.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + if (!$clone(tt.rtype.nameOff(m.name), name).isExported()) { + $panic(new $String("reflect: " + op + " of unexported method")); + } + t = tt.rtype.typeOff(m.typ); + prop = $clone(tt.rtype.nameOff(m.name), name).name(); + } else { + ms = v.typ.exportedMethods(); + if (((i >>> 0)) >= ((ms.$length >>> 0))) { + $panic(new $String("reflect: internal error: invalid method index")); + } + m$1 = $clone(((i < 0 || i >= ms.$length) ? ($throwRuntimeError("index out of range"), undefined) : ms.$array[ms.$offset + i]), method); + if (!$clone(v.typ.nameOff(m$1.name), name).isExported()) { + $panic(new $String("reflect: " + op + " of unexported method")); + } + t = v.typ.typeOff(m$1.mtyp); + prop = $internalize($methodSet(jsType(v.typ))[i].prop, $String); + } + rcvr = $clone(v, Value).object(); + if (isWrapped(v.typ)) { + rcvr = new (jsType(v.typ))(rcvr); + } + fn = (rcvr[$externalize(prop, $String)]); + return [_$38, t, fn]; + }; + valueInterface = function(v, safe) { + var _r, safe, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; safe = $f.safe; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + if (v.flag === 0) { + $panic(new ValueError.ptr("reflect.Value.Interface", 0)); + } + if (safe && !((((v.flag & 96) >>> 0) === 0))) { + $panic(new $String("reflect.Value.Interface: cannot return value obtained from unexported field or method")); + } + /* */ if (!((((v.flag & 512) >>> 0) === 0))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((((v.flag & 512) >>> 0) === 0))) { */ case 1: + _r = makeMethodValue("Interface", $clone(v, Value)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + v = _r; + /* } */ case 2: + if (isWrapped(v.typ)) { + $s = -1; return ((new (jsType(v.typ))($clone(v, Value).object()))); + } + $s = -1; return (($clone(v, Value).object())); + /* */ } return; } if ($f === undefined) { $f = { $blk: valueInterface }; } $f._r = _r; $f.safe = safe; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + ifaceE2I = function(t, src, dst) { + var dst, src, t; + dst.$set(src); + }; + methodName = function() { + return "?FIXME?"; + }; + makeMethodValue = function(op, v) { + var _r, _tuple, fn, fv, op, rcvr, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; fn = $f.fn; fv = $f.fv; op = $f.op; rcvr = $f.rcvr; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + fn = [fn]; + rcvr = [rcvr]; + if (((v.flag & 512) >>> 0) === 0) { + $panic(new $String("reflect: internal error: invalid use of makePartialFunc")); + } + _tuple = methodReceiver(op, $clone(v, Value), ((v.flag >> 0)) >> 10 >> 0); + fn[0] = _tuple[2]; + rcvr[0] = $clone(v, Value).object(); + if (isWrapped(v.typ)) { + rcvr[0] = new (jsType(v.typ))(rcvr[0]); + } + fv = js.MakeFunc((function(fn, rcvr) { return function(this$1, arguments$1) { + var arguments$1, this$1; + return new $jsObjectPtr(fn[0].apply(rcvr[0], $externalize(arguments$1, sliceType$8))); + }; })(fn, rcvr)); + _r = $clone(v, Value).Type().common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return new Value.ptr(_r, (fv), (new flag(v.flag).ro() | 19) >>> 0); + /* */ } return; } if ($f === undefined) { $f = { $blk: makeMethodValue }; } $f._r = _r; $f._tuple = _tuple; $f.fn = fn; $f.fv = fv; $f.op = op; $f.rcvr = rcvr; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + rtype.ptr.prototype.pointers = function() { + var _1, t; + t = this; + _1 = t.Kind(); + if ((_1 === (22)) || (_1 === (21)) || (_1 === (18)) || (_1 === (19)) || (_1 === (25)) || (_1 === (17))) { + return true; + } else { + return false; + } + }; + rtype.prototype.pointers = function() { return this.$val.pointers(); }; + rtype.ptr.prototype.Comparable = function() { + var _1, _r, _r$1, i, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _r$1 = $f._r$1; i = $f.i; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _1 = t.Kind(); + /* */ if ((_1 === (19)) || (_1 === (23)) || (_1 === (21))) { $s = 2; continue; } + /* */ if (_1 === (17)) { $s = 3; continue; } + /* */ if (_1 === (25)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ((_1 === (19)) || (_1 === (23)) || (_1 === (21))) { */ case 2: + $s = -1; return false; + /* } else if (_1 === (17)) { */ case 3: + _r = t.Elem().Comparable(); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* } else if (_1 === (25)) { */ case 4: + i = 0; + /* while (true) { */ case 7: + /* if (!(i < t.NumField())) { break; } */ if(!(i < t.NumField())) { $s = 8; continue; } + _r$1 = t.Field(i).Type.Comparable(); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (!_r$1) { */ case 9: + $s = -1; return false; + /* } */ case 10: + i = i + (1) >> 0; + /* } */ $s = 7; continue; case 8: + /* } */ case 5: + case 1: + $s = -1; return true; + /* */ } return; } if ($f === undefined) { $f = { $blk: rtype.ptr.prototype.Comparable }; } $f._1 = _1; $f._r = _r; $f._r$1 = _r$1; $f.i = i; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + rtype.prototype.Comparable = function() { return this.$val.Comparable(); }; + rtype.ptr.prototype.Method = function(i) { + var _i, _i$1, _r, _ref, _ref$1, arg, fl, fn, ft, i, in$1, m, methods, mt, mtyp, out, p, pname, prop, ret, t, tt, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _i$1 = $f._i$1; _r = $f._r; _ref = $f._ref; _ref$1 = $f._ref$1; arg = $f.arg; fl = $f.fl; fn = $f.fn; ft = $f.ft; i = $f.i; in$1 = $f.in$1; m = $f.m; methods = $f.methods; mt = $f.mt; mtyp = $f.mtyp; out = $f.out; p = $f.p; pname = $f.pname; prop = $f.prop; ret = $f.ret; t = $f.t; tt = $f.tt; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + prop = [prop]; + m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0); + t = this; + if (t.Kind() === 20) { + tt = (t.kindType); + Method.copy(m, tt.Method(i)); + $s = -1; return m; + } + methods = t.exportedMethods(); + if (i < 0 || i >= methods.$length) { + $panic(new $String("reflect: Method index out of range")); + } + p = $clone(((i < 0 || i >= methods.$length) ? ($throwRuntimeError("index out of range"), undefined) : methods.$array[methods.$offset + i]), method); + pname = $clone(t.nameOff(p.name), name); + m.Name = $clone(pname, name).name(); + fl = 19; + mtyp = t.typeOff(p.mtyp); + ft = (mtyp.kindType); + in$1 = $makeSlice(sliceType$10, 0, (1 + ft.in$().$length >> 0)); + in$1 = $append(in$1, t); + _ref = ft.in$(); + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + in$1 = $append(in$1, arg); + _i++; + } + out = $makeSlice(sliceType$10, 0, ft.out().$length); + _ref$1 = ft.out(); + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + ret = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + out = $append(out, ret); + _i$1++; + } + _r = FuncOf(in$1, out, ft.rtype.IsVariadic()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + mt = _r; + m.Type = mt; + prop[0] = $internalize($methodSet(t.jsType)[i].prop, $String); + fn = js.MakeFunc((function(prop) { return function(this$1, arguments$1) { + var arguments$1, rcvr, this$1; + rcvr = (0 >= arguments$1.$length ? ($throwRuntimeError("index out of range"), undefined) : arguments$1.$array[arguments$1.$offset + 0]); + return new $jsObjectPtr(rcvr[$externalize(prop[0], $String)].apply(rcvr, $externalize($subslice(arguments$1, 1), sliceType$8))); + }; })(prop)); + m.Func = new Value.ptr($assertType(mt, ptrType$1), (fn), fl); + m.Index = i; + Method.copy(m, m); + $s = -1; return m; + /* */ } return; } if ($f === undefined) { $f = { $blk: rtype.ptr.prototype.Method }; } $f._i = _i; $f._i$1 = _i$1; $f._r = _r; $f._ref = _ref; $f._ref$1 = _ref$1; $f.arg = arg; $f.fl = fl; $f.fn = fn; $f.ft = ft; $f.i = i; $f.in$1 = in$1; $f.m = m; $f.methods = methods; $f.mt = mt; $f.mtyp = mtyp; $f.out = out; $f.p = p; $f.pname = pname; $f.prop = prop; $f.ret = ret; $f.t = t; $f.tt = tt; $f.$s = $s; $f.$r = $r; return $f; + }; + rtype.prototype.Method = function(i) { return this.$val.Method(i); }; + Value.ptr.prototype.object = function() { + var _1, newVal, v, val; + v = this; + if ((v.typ.Kind() === 17) || (v.typ.Kind() === 25)) { + return v.ptr; + } + if (!((((v.flag & 128) >>> 0) === 0))) { + val = v.ptr.$get(); + if (!(val === $ifaceNil) && !(val.constructor === jsType(v.typ))) { + switch (0) { default: + _1 = v.typ.Kind(); + if ((_1 === (11)) || (_1 === (6))) { + val = new (jsType(v.typ))(val.$high, val.$low); + } else if ((_1 === (15)) || (_1 === (16))) { + val = new (jsType(v.typ))(val.$real, val.$imag); + } else if (_1 === (23)) { + if (val === val.constructor.nil) { + val = jsType(v.typ).nil; + break; + } + newVal = new (jsType(v.typ))(val.$array); + newVal.$offset = val.$offset; + newVal.$length = val.$length; + newVal.$capacity = val.$capacity; + val = newVal; + } + } + } + return val; + } + return v.ptr; + }; + Value.prototype.object = function() { return this.$val.object(); }; + Value.ptr.prototype.assignTo = function(context, dst, target) { + var _r, _r$1, _r$2, context, dst, fl, target, v, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; context = $f.context; dst = $f.dst; fl = $f.fl; target = $f.target; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + /* */ if (!((((v.flag & 512) >>> 0) === 0))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((((v.flag & 512) >>> 0) === 0))) { */ case 1: + _r = makeMethodValue(context, $clone(v, Value)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + v = _r; + /* } */ case 2: + _r$1 = directlyAssignable(dst, v.typ); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 5; continue; } + /* */ if (implements$1(dst, v.typ)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (_r$1) { */ case 5: + fl = (((v.flag & 384) >>> 0) | new flag(v.flag).ro()) >>> 0; + fl = (fl | (((dst.Kind() >>> 0)))) >>> 0; + $s = -1; return new Value.ptr(dst, v.ptr, fl); + /* } else if (implements$1(dst, v.typ)) { */ case 6: + if (target === 0) { + target = unsafe_New(dst); + } + _r$2 = valueInterface($clone(v, Value), false); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + x = _r$2; + if (dst.NumMethod() === 0) { + (target).$set(x); + } else { + ifaceE2I(dst, x, target); + } + $s = -1; return new Value.ptr(dst, target, 148); + /* } */ case 7: + case 4: + $panic(new $String(context + ": value of type " + v.typ.String() + " is not assignable to type " + dst.String())); + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.assignTo }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.context = context; $f.dst = dst; $f.fl = fl; $f.target = target; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.assignTo = function(context, dst, target) { return this.$val.assignTo(context, dst, target); }; + Value.ptr.prototype.call = function(op, in$1) { + var _1, _arg, _arg$1, _arg$2, _arg$3, _i, _i$1, _i$2, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tmp, _tmp$1, _tuple, arg, argsArray, elem, fn, i, i$1, i$2, i$3, in$1, isSlice, m, n, nin, nout, op, origIn, rcvr, results, ret, slice, t, targ, v, x, x$1, x$2, xt, xt$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _i = $f._i; _i$1 = $f._i$1; _i$2 = $f._i$2; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$13 = $f._r$13; _r$14 = $f._r$14; _r$15 = $f._r$15; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _ref = $f._ref; _ref$1 = $f._ref$1; _ref$2 = $f._ref$2; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; arg = $f.arg; argsArray = $f.argsArray; elem = $f.elem; fn = $f.fn; i = $f.i; i$1 = $f.i$1; i$2 = $f.i$2; i$3 = $f.i$3; in$1 = $f.in$1; isSlice = $f.isSlice; m = $f.m; n = $f.n; nin = $f.nin; nout = $f.nout; op = $f.op; origIn = $f.origIn; rcvr = $f.rcvr; results = $f.results; ret = $f.ret; slice = $f.slice; t = $f.t; targ = $f.targ; v = $f.v; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; xt = $f.xt; xt$1 = $f.xt$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + t = ptrType$1.nil; + fn = 0; + rcvr = null; + if (!((((v.flag & 512) >>> 0) === 0))) { + _tuple = methodReceiver(op, $clone(v, Value), ((v.flag >> 0)) >> 10 >> 0); + t = _tuple[1]; + fn = _tuple[2]; + rcvr = $clone(v, Value).object(); + if (isWrapped(v.typ)) { + rcvr = new (jsType(v.typ))(rcvr); + } + } else { + t = v.typ; + fn = ($clone(v, Value).object()); + rcvr = undefined; + } + if (fn === 0) { + $panic(new $String("reflect.Value.Call: call of nil function")); + } + isSlice = op === "CallSlice"; + n = t.NumIn(); + if (isSlice) { + if (!t.IsVariadic()) { + $panic(new $String("reflect: CallSlice of non-variadic function")); + } + if (in$1.$length < n) { + $panic(new $String("reflect: CallSlice with too few input arguments")); + } + if (in$1.$length > n) { + $panic(new $String("reflect: CallSlice with too many input arguments")); + } + } else { + if (t.IsVariadic()) { + n = n - (1) >> 0; + } + if (in$1.$length < n) { + $panic(new $String("reflect: Call with too few input arguments")); + } + if (!t.IsVariadic() && in$1.$length > n) { + $panic(new $String("reflect: Call with too many input arguments")); + } + } + _ref = in$1; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if ($clone(x, Value).Kind() === 0) { + $panic(new $String("reflect: " + op + " using zero Value argument")); + } + _i++; + } + i = 0; + /* while (true) { */ case 1: + /* if (!(i < n)) { break; } */ if(!(i < n)) { $s = 2; continue; } + _tmp = $clone(((i < 0 || i >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + i]), Value).Type(); + _tmp$1 = t.In(i); + xt = _tmp; + targ = _tmp$1; + _r = xt.AssignableTo(targ); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!_r) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!_r) { */ case 3: + _r$1 = xt.String(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = targ.String(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $panic(new $String("reflect: " + op + " using " + _r$1 + " as type " + _r$2)); + /* } */ case 4: + i = i + (1) >> 0; + /* } */ $s = 1; continue; case 2: + /* */ if (!isSlice && t.IsVariadic()) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!isSlice && t.IsVariadic()) { */ case 8: + m = in$1.$length - n >> 0; + _r$3 = MakeSlice(t.In(n), m, m); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + slice = _r$3; + _r$4 = t.In(n).Elem(); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + elem = _r$4; + i$1 = 0; + /* while (true) { */ case 12: + /* if (!(i$1 < m)) { break; } */ if(!(i$1 < m)) { $s = 13; continue; } + x$2 = (x$1 = n + i$1 >> 0, ((x$1 < 0 || x$1 >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + x$1])); + xt$1 = $clone(x$2, Value).Type(); + _r$5 = xt$1.AssignableTo(elem); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (!_r$5) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (!_r$5) { */ case 14: + _r$6 = xt$1.String(); /* */ $s = 17; case 17: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$7 = elem.String(); /* */ $s = 18; case 18: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + $panic(new $String("reflect: cannot use " + _r$6 + " as type " + _r$7 + " in " + op)); + /* } */ case 15: + _r$8 = $clone(slice, Value).Index(i$1); /* */ $s = 19; case 19: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + $r = $clone(_r$8, Value).Set($clone(x$2, Value)); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i$1 = i$1 + (1) >> 0; + /* } */ $s = 12; continue; case 13: + origIn = in$1; + in$1 = $makeSlice(sliceType$9, (n + 1 >> 0)); + $copySlice($subslice(in$1, 0, n), origIn); + ((n < 0 || n >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + n] = slice); + /* } */ case 9: + nin = in$1.$length; + if (!((nin === t.NumIn()))) { + $panic(new $String("reflect.Value.Call: wrong argument count")); + } + nout = t.NumOut(); + argsArray = new ($global.Array)(t.NumIn()); + _ref$1 = in$1; + _i$1 = 0; + /* while (true) { */ case 21: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 22; continue; } + i$2 = _i$1; + arg = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + _arg = t.In(i$2); + _r$9 = t.In(i$2).common(); /* */ $s = 23; case 23: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _arg$1 = _r$9; + _arg$2 = 0; + _r$10 = $clone(arg, Value).assignTo("reflect.Value.Call", _arg$1, _arg$2); /* */ $s = 24; case 24: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$11 = $clone(_r$10, Value).object(); /* */ $s = 25; case 25: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _arg$3 = _r$11; + _r$12 = unwrapJsObject(_arg, _arg$3); /* */ $s = 26; case 26: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + argsArray[i$2] = _r$12; + _i$1++; + /* } */ $s = 21; continue; case 22: + _r$13 = callHelper(new sliceType$3([new $jsObjectPtr(fn), new $jsObjectPtr(rcvr), new $jsObjectPtr(argsArray)])); /* */ $s = 27; case 27: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + results = _r$13; + _1 = nout; + /* */ if (_1 === (0)) { $s = 29; continue; } + /* */ if (_1 === (1)) { $s = 30; continue; } + /* */ $s = 31; continue; + /* if (_1 === (0)) { */ case 29: + $s = -1; return sliceType$9.nil; + /* } else if (_1 === (1)) { */ case 30: + _r$14 = makeValue(t.Out(0), wrapJsObject(t.Out(0), results), 0); /* */ $s = 33; case 33: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + $s = -1; return new sliceType$9([$clone(_r$14, Value)]); + /* } else { */ case 31: + ret = $makeSlice(sliceType$9, nout); + _ref$2 = ret; + _i$2 = 0; + /* while (true) { */ case 34: + /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 35; continue; } + i$3 = _i$2; + _r$15 = makeValue(t.Out(i$3), wrapJsObject(t.Out(i$3), results[i$3]), 0); /* */ $s = 36; case 36: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + ((i$3 < 0 || i$3 >= ret.$length) ? ($throwRuntimeError("index out of range"), undefined) : ret.$array[ret.$offset + i$3] = _r$15); + _i$2++; + /* } */ $s = 34; continue; case 35: + $s = -1; return ret; + /* } */ case 32: + case 28: + $s = -1; return sliceType$9.nil; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.call }; } $f._1 = _1; $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._i = _i; $f._i$1 = _i$1; $f._i$2 = _i$2; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$13 = _r$13; $f._r$14 = _r$14; $f._r$15 = _r$15; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._ref = _ref; $f._ref$1 = _ref$1; $f._ref$2 = _ref$2; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.arg = arg; $f.argsArray = argsArray; $f.elem = elem; $f.fn = fn; $f.i = i; $f.i$1 = i$1; $f.i$2 = i$2; $f.i$3 = i$3; $f.in$1 = in$1; $f.isSlice = isSlice; $f.m = m; $f.n = n; $f.nin = nin; $f.nout = nout; $f.op = op; $f.origIn = origIn; $f.rcvr = rcvr; $f.results = results; $f.ret = ret; $f.slice = slice; $f.t = t; $f.targ = targ; $f.v = v; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.xt = xt; $f.xt$1 = xt$1; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.call = function(op, in$1) { return this.$val.call(op, in$1); }; + Value.ptr.prototype.Cap = function() { + var _1, k, v; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (17)) { + return v.typ.Len(); + } else if ((_1 === (18)) || (_1 === (23))) { + return $parseInt($clone(v, Value).object().$capacity) >> 0; + } + $panic(new ValueError.ptr("reflect.Value.Cap", k)); + }; + Value.prototype.Cap = function() { return this.$val.Cap(); }; + wrapJsObject = function(typ, val) { + var typ, val; + if ($interfaceIsEqual(typ, jsObjectPtr)) { + return new (jsType(jsObjectPtr))(val); + } + return val; + }; + unwrapJsObject = function(typ, val) { + var typ, val; + if ($interfaceIsEqual(typ, jsObjectPtr)) { + return val.object; + } + return val; + }; + Value.ptr.prototype.Elem = function() { + var _1, _r, fl, k, tt, typ, v, val, val$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; fl = $f.fl; k = $f.k; tt = $f.tt; typ = $f.typ; v = $f.v; val = $f.val; val$1 = $f.val$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + k = new flag(v.flag).kind(); + _1 = k; + /* */ if (_1 === (20)) { $s = 2; continue; } + /* */ if (_1 === (22)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_1 === (20)) { */ case 2: + val = $clone(v, Value).object(); + if (val === $ifaceNil) { + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + } + typ = reflectType(val.constructor); + _r = makeValue(typ, val.$val, new flag(v.flag).ro()); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* } else if (_1 === (22)) { */ case 3: + if ($clone(v, Value).IsNil()) { + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + } + val$1 = $clone(v, Value).object(); + tt = (v.typ.kindType); + fl = (((((v.flag & 96) >>> 0) | 128) >>> 0) | 256) >>> 0; + fl = (fl | (((tt.elem.Kind() >>> 0)))) >>> 0; + $s = -1; return new Value.ptr(tt.elem, (wrapJsObject(tt.elem, val$1)), fl); + /* } else { */ case 4: + $panic(new ValueError.ptr("reflect.Value.Elem", k)); + /* } */ case 5: + case 1: + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Elem }; } $f._1 = _1; $f._r = _r; $f.fl = fl; $f.k = k; $f.tt = tt; $f.typ = typ; $f.v = v; $f.val = val; $f.val$1 = val$1; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.Elem = function() { return this.$val.Elem(); }; + Value.ptr.prototype.Field = function(i) { + var _r, _r$1, _r$2, field, fl, i, jsTag, o, prop, s, tag, tt, typ, v, x, x$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; field = $f.field; fl = $f.fl; i = $f.i; jsTag = $f.jsTag; o = $f.o; prop = $f.prop; s = $f.s; tag = $f.tag; tt = $f.tt; typ = $f.typ; v = $f.v; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + jsTag = [jsTag]; + prop = [prop]; + s = [s]; + typ = [typ]; + v = this; + if (!((new flag(v.flag).kind() === 25))) { + $panic(new ValueError.ptr("reflect.Value.Field", new flag(v.flag).kind())); + } + tt = (v.typ.kindType); + if (((i >>> 0)) >= ((tt.fields.$length >>> 0))) { + $panic(new $String("reflect: Field index out of range")); + } + prop[0] = $internalize(jsType(v.typ).fields[i].prop, $String); + field = (x = tt.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + typ[0] = field.typ; + fl = (((v.flag & 416) >>> 0) | ((typ[0].Kind() >>> 0))) >>> 0; + if (!$clone(field.name, name).isExported()) { + if (field.embedded()) { + fl = (fl | (64)) >>> 0; + } else { + fl = (fl | (32)) >>> 0; + } + } + tag = $clone((x$1 = tt.fields, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])).name, name).tag(); + /* */ if (!(tag === "") && !((i === 0))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(tag === "") && !((i === 0))) { */ case 1: + jsTag[0] = getJsTag(tag); + /* */ if (!(jsTag[0] === "")) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!(jsTag[0] === "")) { */ case 3: + /* while (true) { */ case 5: + o = [o]; + _r = $clone(v, Value).Field(0); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + v = _r; + /* */ if (v.typ === jsObjectPtr) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (v.typ === jsObjectPtr) { */ case 8: + o[0] = $clone(v, Value).object().object; + $s = -1; return new Value.ptr(typ[0], (new (jsType(PtrTo(typ[0])))((function(jsTag, o, prop, s, typ) { return function() { + return $internalize(o[0][$externalize(jsTag[0], $String)], jsType(typ[0])); + }; })(jsTag, o, prop, s, typ), (function(jsTag, o, prop, s, typ) { return function(x$2) { + var x$2; + o[0][$externalize(jsTag[0], $String)] = $externalize(x$2, jsType(typ[0])); + }; })(jsTag, o, prop, s, typ))), fl); + /* } */ case 9: + /* */ if (v.typ.Kind() === 22) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (v.typ.Kind() === 22) { */ case 10: + _r$1 = $clone(v, Value).Elem(); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + v = _r$1; + /* } */ case 11: + /* } */ $s = 5; continue; case 6: + /* } */ case 4: + /* } */ case 2: + s[0] = v.ptr; + /* */ if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { */ case 13: + $s = -1; return new Value.ptr(typ[0], (new (jsType(PtrTo(typ[0])))((function(jsTag, prop, s, typ) { return function() { + return wrapJsObject(typ[0], s[0][$externalize(prop[0], $String)]); + }; })(jsTag, prop, s, typ), (function(jsTag, prop, s, typ) { return function(x$2) { + var x$2; + s[0][$externalize(prop[0], $String)] = unwrapJsObject(typ[0], x$2); + }; })(jsTag, prop, s, typ))), fl); + /* } */ case 14: + _r$2 = makeValue(typ[0], wrapJsObject(typ[0], s[0][$externalize(prop[0], $String)]), fl); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $s = -1; return _r$2; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Field }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.field = field; $f.fl = fl; $f.i = i; $f.jsTag = jsTag; $f.o = o; $f.prop = prop; $f.s = s; $f.tag = tag; $f.tt = tt; $f.typ = typ; $f.v = v; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.Field = function(i) { return this.$val.Field(i); }; + getJsTag = function(tag) { + var _tuple, i, name$1, qvalue, tag, value; + while (true) { + if (!(!(tag === ""))) { break; } + i = 0; + while (true) { + if (!(i < tag.length && (tag.charCodeAt(i) === 32))) { break; } + i = i + (1) >> 0; + } + tag = $substring(tag, i); + if (tag === "") { + break; + } + i = 0; + while (true) { + if (!(i < tag.length && !((tag.charCodeAt(i) === 32)) && !((tag.charCodeAt(i) === 58)) && !((tag.charCodeAt(i) === 34)))) { break; } + i = i + (1) >> 0; + } + if ((i + 1 >> 0) >= tag.length || !((tag.charCodeAt(i) === 58)) || !((tag.charCodeAt((i + 1 >> 0)) === 34))) { + break; + } + name$1 = ($substring(tag, 0, i)); + tag = $substring(tag, (i + 1 >> 0)); + i = 1; + while (true) { + if (!(i < tag.length && !((tag.charCodeAt(i) === 34)))) { break; } + if (tag.charCodeAt(i) === 92) { + i = i + (1) >> 0; + } + i = i + (1) >> 0; + } + if (i >= tag.length) { + break; + } + qvalue = ($substring(tag, 0, (i + 1 >> 0))); + tag = $substring(tag, (i + 1 >> 0)); + if (name$1 === "js") { + _tuple = strconv.Unquote(qvalue); + value = _tuple[0]; + return value; + } + } + return ""; + }; + Value.ptr.prototype.Index = function(i) { + var _1, _r, _r$1, a, a$1, c, fl, fl$1, fl$2, i, k, s, str, tt, tt$1, typ, typ$1, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _r$1 = $f._r$1; a = $f.a; a$1 = $f.a$1; c = $f.c; fl = $f.fl; fl$1 = $f.fl$1; fl$2 = $f.fl$2; i = $f.i; k = $f.k; s = $f.s; str = $f.str; tt = $f.tt; tt$1 = $f.tt$1; typ = $f.typ; typ$1 = $f.typ$1; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + a = [a]; + a$1 = [a$1]; + c = [c]; + i = [i]; + typ = [typ]; + typ$1 = [typ$1]; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + /* */ if (_1 === (17)) { $s = 2; continue; } + /* */ if (_1 === (23)) { $s = 3; continue; } + /* */ if (_1 === (24)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_1 === (17)) { */ case 2: + tt = (v.typ.kindType); + if (i[0] < 0 || i[0] > ((tt.len >> 0))) { + $panic(new $String("reflect: array index out of range")); + } + typ[0] = tt.elem; + fl = (((((v.flag & 384) >>> 0) | new flag(v.flag).ro()) >>> 0) | ((typ[0].Kind() >>> 0))) >>> 0; + a[0] = v.ptr; + /* */ if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { */ case 7: + $s = -1; return new Value.ptr(typ[0], (new (jsType(PtrTo(typ[0])))((function(a, a$1, c, i, typ, typ$1) { return function() { + return wrapJsObject(typ[0], a[0][i[0]]); + }; })(a, a$1, c, i, typ, typ$1), (function(a, a$1, c, i, typ, typ$1) { return function(x) { + var x; + a[0][i[0]] = unwrapJsObject(typ[0], x); + }; })(a, a$1, c, i, typ, typ$1))), fl); + /* } */ case 8: + _r = makeValue(typ[0], wrapJsObject(typ[0], a[0][i[0]]), fl); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* } else if (_1 === (23)) { */ case 3: + s = $clone(v, Value).object(); + if (i[0] < 0 || i[0] >= ($parseInt(s.$length) >> 0)) { + $panic(new $String("reflect: slice index out of range")); + } + tt$1 = (v.typ.kindType); + typ$1[0] = tt$1.elem; + fl$1 = (((384 | new flag(v.flag).ro()) >>> 0) | ((typ$1[0].Kind() >>> 0))) >>> 0; + i[0] = i[0] + (($parseInt(s.$offset) >> 0)) >> 0; + a$1[0] = s.$array; + /* */ if (!((((fl$1 & 128) >>> 0) === 0)) && !((typ$1[0].Kind() === 17)) && !((typ$1[0].Kind() === 25))) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (!((((fl$1 & 128) >>> 0) === 0)) && !((typ$1[0].Kind() === 17)) && !((typ$1[0].Kind() === 25))) { */ case 10: + $s = -1; return new Value.ptr(typ$1[0], (new (jsType(PtrTo(typ$1[0])))((function(a, a$1, c, i, typ, typ$1) { return function() { + return wrapJsObject(typ$1[0], a$1[0][i[0]]); + }; })(a, a$1, c, i, typ, typ$1), (function(a, a$1, c, i, typ, typ$1) { return function(x) { + var x; + a$1[0][i[0]] = unwrapJsObject(typ$1[0], x); + }; })(a, a$1, c, i, typ, typ$1))), fl$1); + /* } */ case 11: + _r$1 = makeValue(typ$1[0], wrapJsObject(typ$1[0], a$1[0][i[0]]), fl$1); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return _r$1; + /* } else if (_1 === (24)) { */ case 4: + str = (v.ptr).$get(); + if (i[0] < 0 || i[0] >= str.length) { + $panic(new $String("reflect: string index out of range")); + } + fl$2 = (((new flag(v.flag).ro() | 8) >>> 0) | 128) >>> 0; + c[0] = str.charCodeAt(i[0]); + $s = -1; return new Value.ptr(uint8Type, ((c.$ptr || (c.$ptr = new ptrType$4(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, c)))), fl$2); + /* } else { */ case 5: + $panic(new ValueError.ptr("reflect.Value.Index", k)); + /* } */ case 6: + case 1: + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Index }; } $f._1 = _1; $f._r = _r; $f._r$1 = _r$1; $f.a = a; $f.a$1 = a$1; $f.c = c; $f.fl = fl; $f.fl$1 = fl$1; $f.fl$2 = fl$2; $f.i = i; $f.k = k; $f.s = s; $f.str = str; $f.tt = tt; $f.tt$1 = tt$1; $f.typ = typ; $f.typ$1 = typ$1; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.Index = function(i) { return this.$val.Index(i); }; + Value.ptr.prototype.InterfaceData = function() { + var v; + v = this; + $panic(errors.New("InterfaceData is not supported by GopherJS")); + }; + Value.prototype.InterfaceData = function() { return this.$val.InterfaceData(); }; + Value.ptr.prototype.IsNil = function() { + var _1, k, v; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if ((_1 === (22)) || (_1 === (23))) { + return $clone(v, Value).object() === jsType(v.typ).nil; + } else if (_1 === (18)) { + return $clone(v, Value).object() === $chanNil; + } else if (_1 === (19)) { + return $clone(v, Value).object() === $throwNilPointerError; + } else if (_1 === (21)) { + return $clone(v, Value).object() === false; + } else if (_1 === (20)) { + return $clone(v, Value).object() === $ifaceNil; + } else { + $panic(new ValueError.ptr("reflect.Value.IsNil", k)); + } + }; + Value.prototype.IsNil = function() { return this.$val.IsNil(); }; + Value.ptr.prototype.Len = function() { + var _1, k, v; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if ((_1 === (17)) || (_1 === (24))) { + return $parseInt($clone(v, Value).object().length); + } else if (_1 === (23)) { + return $parseInt($clone(v, Value).object().$length) >> 0; + } else if (_1 === (18)) { + return $parseInt($clone(v, Value).object().$buffer.length) >> 0; + } else if (_1 === (21)) { + return $parseInt($keys($clone(v, Value).object()).length); + } else { + $panic(new ValueError.ptr("reflect.Value.Len", k)); + } + }; + Value.prototype.Len = function() { return this.$val.Len(); }; + Value.ptr.prototype.Pointer = function() { + var _1, k, v; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if ((_1 === (18)) || (_1 === (21)) || (_1 === (22)) || (_1 === (26))) { + if ($clone(v, Value).IsNil()) { + return 0; + } + return $clone(v, Value).object(); + } else if (_1 === (19)) { + if ($clone(v, Value).IsNil()) { + return 0; + } + return 1; + } else if (_1 === (23)) { + if ($clone(v, Value).IsNil()) { + return 0; + } + return $clone(v, Value).object().$array; + } else { + $panic(new ValueError.ptr("reflect.Value.Pointer", k)); + } + }; + Value.prototype.Pointer = function() { return this.$val.Pointer(); }; + Value.ptr.prototype.Set = function(x) { + var _1, _r, _r$1, v, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _r$1 = $f._r$1; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBeAssignable(); + new flag(x.flag).mustBeExported(); + _r = $clone(x, Value).assignTo("reflect.Set", v.typ, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + x = _r; + /* */ if (!((((v.flag & 128) >>> 0) === 0))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!((((v.flag & 128) >>> 0) === 0))) { */ case 2: + _1 = v.typ.Kind(); + /* */ if (_1 === (17)) { $s = 5; continue; } + /* */ if (_1 === (20)) { $s = 6; continue; } + /* */ if (_1 === (25)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (_1 === (17)) { */ case 5: + jsType(v.typ).copy(v.ptr, x.ptr); + $s = 9; continue; + /* } else if (_1 === (20)) { */ case 6: + _r$1 = valueInterface($clone(x, Value), false); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + v.ptr.$set(_r$1); + $s = 9; continue; + /* } else if (_1 === (25)) { */ case 7: + copyStruct(v.ptr, x.ptr, v.typ); + $s = 9; continue; + /* } else { */ case 8: + v.ptr.$set($clone(x, Value).object()); + /* } */ case 9: + case 4: + $s = -1; return; + /* } */ case 3: + v.ptr = x.ptr; + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Set }; } $f._1 = _1; $f._r = _r; $f._r$1 = _r$1; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.Set = function(x) { return this.$val.Set(x); }; + Value.ptr.prototype.SetBytes = function(x) { + var _r, _r$1, _v, slice, typedSlice, v, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _v = $f._v; slice = $f.slice; typedSlice = $f.typedSlice; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBeAssignable(); + new flag(v.flag).mustBe(23); + _r = v.typ.Elem().Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!((_r === 8))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((_r === 8))) { */ case 1: + $panic(new $String("reflect.Value.SetBytes of non-byte slice")); + /* } */ case 2: + slice = x; + if (!(v.typ.Name() === "")) { _v = true; $s = 6; continue s; } + _r$1 = v.typ.Elem().Name(); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = !(_r$1 === ""); case 6: + /* */ if (_v) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_v) { */ case 4: + typedSlice = new (jsType(v.typ))(slice.$array); + typedSlice.$offset = slice.$offset; + typedSlice.$length = slice.$length; + typedSlice.$capacity = slice.$capacity; + slice = typedSlice; + /* } */ case 5: + v.ptr.$set(slice); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.SetBytes }; } $f._r = _r; $f._r$1 = _r$1; $f._v = _v; $f.slice = slice; $f.typedSlice = typedSlice; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.SetBytes = function(x) { return this.$val.SetBytes(x); }; + Value.ptr.prototype.SetCap = function(n) { + var n, newSlice, s, v; + v = this; + new flag(v.flag).mustBeAssignable(); + new flag(v.flag).mustBe(23); + s = v.ptr.$get(); + if (n < ($parseInt(s.$length) >> 0) || n > ($parseInt(s.$capacity) >> 0)) { + $panic(new $String("reflect: slice capacity out of range in SetCap")); + } + newSlice = new (jsType(v.typ))(s.$array); + newSlice.$offset = s.$offset; + newSlice.$length = s.$length; + newSlice.$capacity = n; + v.ptr.$set(newSlice); + }; + Value.prototype.SetCap = function(n) { return this.$val.SetCap(n); }; + Value.ptr.prototype.SetLen = function(n) { + var n, newSlice, s, v; + v = this; + new flag(v.flag).mustBeAssignable(); + new flag(v.flag).mustBe(23); + s = v.ptr.$get(); + if (n < 0 || n > ($parseInt(s.$capacity) >> 0)) { + $panic(new $String("reflect: slice length out of range in SetLen")); + } + newSlice = new (jsType(v.typ))(s.$array); + newSlice.$offset = s.$offset; + newSlice.$length = n; + newSlice.$capacity = s.$capacity; + v.ptr.$set(newSlice); + }; + Value.prototype.SetLen = function(n) { return this.$val.SetLen(n); }; + Value.ptr.prototype.Slice = function(i, j) { + var _1, _r, _r$1, cap, i, j, kind, s, str, tt, typ, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _r$1 = $f._r$1; cap = $f.cap; i = $f.i; j = $f.j; kind = $f.kind; s = $f.s; str = $f.str; tt = $f.tt; typ = $f.typ; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + cap = 0; + typ = $ifaceNil; + s = null; + kind = new flag(v.flag).kind(); + _1 = kind; + /* */ if (_1 === (17)) { $s = 2; continue; } + /* */ if (_1 === (23)) { $s = 3; continue; } + /* */ if (_1 === (24)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_1 === (17)) { */ case 2: + if (((v.flag & 256) >>> 0) === 0) { + $panic(new $String("reflect.Value.Slice: slice of unaddressable array")); + } + tt = (v.typ.kindType); + cap = ((tt.len >> 0)); + typ = SliceOf(tt.elem); + s = new (jsType(typ))($clone(v, Value).object()); + $s = 6; continue; + /* } else if (_1 === (23)) { */ case 3: + typ = v.typ; + s = $clone(v, Value).object(); + cap = $parseInt(s.$capacity) >> 0; + $s = 6; continue; + /* } else if (_1 === (24)) { */ case 4: + str = (v.ptr).$get(); + if (i < 0 || j < i || j > str.length) { + $panic(new $String("reflect.Value.Slice: string slice index out of bounds")); + } + _r = ValueOf(new $String($substring(str, i, j))); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* } else { */ case 5: + $panic(new ValueError.ptr("reflect.Value.Slice", kind)); + /* } */ case 6: + case 1: + if (i < 0 || j < i || j > cap) { + $panic(new $String("reflect.Value.Slice: slice index out of bounds")); + } + _r$1 = makeValue(typ, $subslice(s, i, j), new flag(v.flag).ro()); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return _r$1; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Slice }; } $f._1 = _1; $f._r = _r; $f._r$1 = _r$1; $f.cap = cap; $f.i = i; $f.j = j; $f.kind = kind; $f.s = s; $f.str = str; $f.tt = tt; $f.typ = typ; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.Slice = function(i, j) { return this.$val.Slice(i, j); }; + Value.ptr.prototype.Slice3 = function(i, j, k) { + var _1, _r, cap, i, j, k, kind, s, tt, typ, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; cap = $f.cap; i = $f.i; j = $f.j; k = $f.k; kind = $f.kind; s = $f.s; tt = $f.tt; typ = $f.typ; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + cap = 0; + typ = $ifaceNil; + s = null; + kind = new flag(v.flag).kind(); + _1 = kind; + if (_1 === (17)) { + if (((v.flag & 256) >>> 0) === 0) { + $panic(new $String("reflect.Value.Slice: slice of unaddressable array")); + } + tt = (v.typ.kindType); + cap = ((tt.len >> 0)); + typ = SliceOf(tt.elem); + s = new (jsType(typ))($clone(v, Value).object()); + } else if (_1 === (23)) { + typ = v.typ; + s = $clone(v, Value).object(); + cap = $parseInt(s.$capacity) >> 0; + } else { + $panic(new ValueError.ptr("reflect.Value.Slice3", kind)); + } + if (i < 0 || j < i || k < j || k > cap) { + $panic(new $String("reflect.Value.Slice3: slice index out of bounds")); + } + _r = makeValue(typ, $subslice(s, i, j, k), new flag(v.flag).ro()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Slice3 }; } $f._1 = _1; $f._r = _r; $f.cap = cap; $f.i = i; $f.j = j; $f.k = k; $f.kind = kind; $f.s = s; $f.tt = tt; $f.typ = typ; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.Slice3 = function(i, j, k) { return this.$val.Slice3(i, j, k); }; + Value.ptr.prototype.Close = function() { + var v; + v = this; + new flag(v.flag).mustBe(18); + new flag(v.flag).mustBeExported(); + $close($clone(v, Value).object()); + }; + Value.prototype.Close = function() { return this.$val.Close(); }; + chanrecv = function(ch, nb, val) { + var _r, _tmp, _tmp$1, _tmp$2, _tmp$3, ch, comms, nb, received, recvRes, selectRes, selected, val, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; ch = $f.ch; comms = $f.comms; nb = $f.nb; received = $f.received; recvRes = $f.recvRes; selectRes = $f.selectRes; selected = $f.selected; val = $f.val; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + selected = false; + received = false; + comms = new sliceType$11([new sliceType$8([ch])]); + if (nb) { + comms = $append(comms, new sliceType$8([])); + } + _r = selectHelper(new sliceType$3([comms])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + selectRes = _r; + if (nb && (($parseInt(selectRes[0]) >> 0) === 1)) { + _tmp = false; + _tmp$1 = false; + selected = _tmp; + received = _tmp$1; + $s = -1; return [selected, received]; + } + recvRes = selectRes[1]; + val.$set(recvRes[0]); + _tmp$2 = true; + _tmp$3 = !!(recvRes[1]); + selected = _tmp$2; + received = _tmp$3; + $s = -1; return [selected, received]; + /* */ } return; } if ($f === undefined) { $f = { $blk: chanrecv }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f.ch = ch; $f.comms = comms; $f.nb = nb; $f.received = received; $f.recvRes = recvRes; $f.selectRes = selectRes; $f.selected = selected; $f.val = val; $f.$s = $s; $f.$r = $r; return $f; + }; + chansend = function(ch, val, nb) { + var _r, ch, comms, nb, selectRes, val, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; ch = $f.ch; comms = $f.comms; nb = $f.nb; selectRes = $f.selectRes; val = $f.val; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + comms = new sliceType$11([new sliceType$8([ch, val.$get()])]); + if (nb) { + comms = $append(comms, new sliceType$8([])); + } + _r = selectHelper(new sliceType$3([comms])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + selectRes = _r; + if (nb && (($parseInt(selectRes[0]) >> 0) === 1)) { + $s = -1; return false; + } + $s = -1; return true; + /* */ } return; } if ($f === undefined) { $f = { $blk: chansend }; } $f._r = _r; $f.ch = ch; $f.comms = comms; $f.nb = nb; $f.selectRes = selectRes; $f.val = val; $f.$s = $s; $f.$r = $r; return $f; + }; + structField.ptr.prototype.offset = function() { + var f; + f = this; + return f.offsetEmbed >>> 1 >>> 0; + }; + structField.prototype.offset = function() { return this.$val.offset(); }; + structField.ptr.prototype.embedded = function() { + var f; + f = this; + return !((((f.offsetEmbed & 1) >>> 0) === 0)); + }; + structField.prototype.embedded = function() { return this.$val.embedded(); }; + Kind.prototype.String = function() { + var k; + k = this.$val; + if (((k >> 0)) < kindNames.$length) { + return ((k < 0 || k >= kindNames.$length) ? ($throwRuntimeError("index out of range"), undefined) : kindNames.$array[kindNames.$offset + k]); + } + return "kind" + strconv.Itoa(((k >> 0))); + }; + $ptrType(Kind).prototype.String = function() { return new Kind(this.$get()).String(); }; + rtype.ptr.prototype.String = function() { + var s, t; + t = this; + s = $clone(t.nameOff(t.str), name).name(); + if (!((((t.tflag & 2) >>> 0) === 0))) { + return $substring(s, 1); + } + return s; + }; + rtype.prototype.String = function() { return this.$val.String(); }; + rtype.ptr.prototype.Size = function() { + var t; + t = this; + return t.size; + }; + rtype.prototype.Size = function() { return this.$val.Size(); }; + rtype.ptr.prototype.Bits = function() { + var k, t; + t = this; + if (t === ptrType$1.nil) { + $panic(new $String("reflect: Bits of nil Type")); + } + k = t.Kind(); + if (k < 2 || k > 16) { + $panic(new $String("reflect: Bits of non-arithmetic Type " + t.String())); + } + return $imul(((t.size >> 0)), 8); + }; + rtype.prototype.Bits = function() { return this.$val.Bits(); }; + rtype.ptr.prototype.Align = function() { + var t; + t = this; + return ((t.align >> 0)); + }; + rtype.prototype.Align = function() { return this.$val.Align(); }; + rtype.ptr.prototype.FieldAlign = function() { + var t; + t = this; + return ((t.fieldAlign >> 0)); + }; + rtype.prototype.FieldAlign = function() { return this.$val.FieldAlign(); }; + rtype.ptr.prototype.Kind = function() { + var t; + t = this; + return ((((t.kind & 31) >>> 0) >>> 0)); + }; + rtype.prototype.Kind = function() { return this.$val.Kind(); }; + rtype.ptr.prototype.common = function() { + var t; + t = this; + return t; + }; + rtype.prototype.common = function() { return this.$val.common(); }; + rtype.ptr.prototype.exportedMethods = function() { + var t, ut; + t = this; + ut = t.uncommon(); + if (ut === ptrType$5.nil) { + return sliceType$5.nil; + } + return ut.exportedMethods(); + }; + rtype.prototype.exportedMethods = function() { return this.$val.exportedMethods(); }; + rtype.ptr.prototype.NumMethod = function() { + var t, tt; + t = this; + if (t.Kind() === 20) { + tt = (t.kindType); + return tt.NumMethod(); + } + return t.exportedMethods().$length; + }; + rtype.prototype.NumMethod = function() { return this.$val.NumMethod(); }; + rtype.ptr.prototype.MethodByName = function(name$1) { + var _i, _r, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, i, m, name$1, ok, p, t, tt, ut, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tuple = $f._tuple; i = $f.i; m = $f.m; name$1 = $f.name$1; ok = $f.ok; p = $f.p; t = $f.t; tt = $f.tt; ut = $f.ut; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0); + ok = false; + t = this; + if (t.Kind() === 20) { + tt = (t.kindType); + _tuple = tt.MethodByName(name$1); + Method.copy(m, _tuple[0]); + ok = _tuple[1]; + $s = -1; return [m, ok]; + } + ut = t.uncommon(); + if (ut === ptrType$5.nil) { + _tmp = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0); + _tmp$1 = false; + Method.copy(m, _tmp); + ok = _tmp$1; + $s = -1; return [m, ok]; + } + _ref = ut.exportedMethods(); + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + p = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), method); + /* */ if ($clone(t.nameOff(p.name), name).name() === name$1) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if ($clone(t.nameOff(p.name), name).name() === name$1) { */ case 3: + _r = t.Method(i); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tmp$2 = $clone(_r, Method); + _tmp$3 = true; + Method.copy(m, _tmp$2); + ok = _tmp$3; + $s = -1; return [m, ok]; + /* } */ case 4: + _i++; + /* } */ $s = 1; continue; case 2: + _tmp$4 = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0); + _tmp$5 = false; + Method.copy(m, _tmp$4); + ok = _tmp$5; + $s = -1; return [m, ok]; + /* */ } return; } if ($f === undefined) { $f = { $blk: rtype.ptr.prototype.MethodByName }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tuple = _tuple; $f.i = i; $f.m = m; $f.name$1 = name$1; $f.ok = ok; $f.p = p; $f.t = t; $f.tt = tt; $f.ut = ut; $f.$s = $s; $f.$r = $r; return $f; + }; + rtype.prototype.MethodByName = function(name$1) { return this.$val.MethodByName(name$1); }; + rtype.ptr.prototype.PkgPath = function() { + var t, ut; + t = this; + if (((t.tflag & 4) >>> 0) === 0) { + return ""; + } + ut = t.uncommon(); + if (ut === ptrType$5.nil) { + return ""; + } + return $clone(t.nameOff(ut.pkgPath), name).name(); + }; + rtype.prototype.PkgPath = function() { return this.$val.PkgPath(); }; + rtype.ptr.prototype.Name = function() { + var i, s, t; + t = this; + if (((t.tflag & 4) >>> 0) === 0) { + return ""; + } + s = t.String(); + i = s.length - 1 >> 0; + while (true) { + if (!(i >= 0)) { break; } + if (s.charCodeAt(i) === 46) { + break; + } + i = i - (1) >> 0; + } + return $substring(s, (i + 1 >> 0)); + }; + rtype.prototype.Name = function() { return this.$val.Name(); }; + rtype.ptr.prototype.ChanDir = function() { + var t, tt; + t = this; + if (!((t.Kind() === 18))) { + $panic(new $String("reflect: ChanDir of non-chan type")); + } + tt = (t.kindType); + return ((tt.dir >> 0)); + }; + rtype.prototype.ChanDir = function() { return this.$val.ChanDir(); }; + rtype.ptr.prototype.IsVariadic = function() { + var t, tt; + t = this; + if (!((t.Kind() === 19))) { + $panic(new $String("reflect: IsVariadic of non-func type")); + } + tt = (t.kindType); + return !((((tt.outCount & 32768) >>> 0) === 0)); + }; + rtype.prototype.IsVariadic = function() { return this.$val.IsVariadic(); }; + rtype.ptr.prototype.Elem = function() { + var _1, t, tt, tt$1, tt$2, tt$3, tt$4; + t = this; + _1 = t.Kind(); + if (_1 === (17)) { + tt = (t.kindType); + return toType(tt.elem); + } else if (_1 === (18)) { + tt$1 = (t.kindType); + return toType(tt$1.elem); + } else if (_1 === (21)) { + tt$2 = (t.kindType); + return toType(tt$2.elem); + } else if (_1 === (22)) { + tt$3 = (t.kindType); + return toType(tt$3.elem); + } else if (_1 === (23)) { + tt$4 = (t.kindType); + return toType(tt$4.elem); + } + $panic(new $String("reflect: Elem of invalid type")); + }; + rtype.prototype.Elem = function() { return this.$val.Elem(); }; + rtype.ptr.prototype.Field = function(i) { + var i, t, tt; + t = this; + if (!((t.Kind() === 25))) { + $panic(new $String("reflect: Field of non-struct type")); + } + tt = (t.kindType); + return tt.Field(i); + }; + rtype.prototype.Field = function(i) { return this.$val.Field(i); }; + rtype.ptr.prototype.FieldByIndex = function(index) { + var _r, index, t, tt, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; index = $f.index; t = $f.t; tt = $f.tt; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + if (!((t.Kind() === 25))) { + $panic(new $String("reflect: FieldByIndex of non-struct type")); + } + tt = (t.kindType); + _r = tt.FieldByIndex(index); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: rtype.ptr.prototype.FieldByIndex }; } $f._r = _r; $f.index = index; $f.t = t; $f.tt = tt; $f.$s = $s; $f.$r = $r; return $f; + }; + rtype.prototype.FieldByIndex = function(index) { return this.$val.FieldByIndex(index); }; + rtype.ptr.prototype.FieldByName = function(name$1) { + var _r, name$1, t, tt, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; name$1 = $f.name$1; t = $f.t; tt = $f.tt; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + if (!((t.Kind() === 25))) { + $panic(new $String("reflect: FieldByName of non-struct type")); + } + tt = (t.kindType); + _r = tt.FieldByName(name$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: rtype.ptr.prototype.FieldByName }; } $f._r = _r; $f.name$1 = name$1; $f.t = t; $f.tt = tt; $f.$s = $s; $f.$r = $r; return $f; + }; + rtype.prototype.FieldByName = function(name$1) { return this.$val.FieldByName(name$1); }; + rtype.ptr.prototype.FieldByNameFunc = function(match) { + var _r, match, t, tt, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; match = $f.match; t = $f.t; tt = $f.tt; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + if (!((t.Kind() === 25))) { + $panic(new $String("reflect: FieldByNameFunc of non-struct type")); + } + tt = (t.kindType); + _r = tt.FieldByNameFunc(match); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: rtype.ptr.prototype.FieldByNameFunc }; } $f._r = _r; $f.match = match; $f.t = t; $f.tt = tt; $f.$s = $s; $f.$r = $r; return $f; + }; + rtype.prototype.FieldByNameFunc = function(match) { return this.$val.FieldByNameFunc(match); }; + rtype.ptr.prototype.In = function(i) { + var i, t, tt, x; + t = this; + if (!((t.Kind() === 19))) { + $panic(new $String("reflect: In of non-func type")); + } + tt = (t.kindType); + return toType((x = tt.in$(), ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]))); + }; + rtype.prototype.In = function(i) { return this.$val.In(i); }; + rtype.ptr.prototype.Key = function() { + var t, tt; + t = this; + if (!((t.Kind() === 21))) { + $panic(new $String("reflect: Key of non-map type")); + } + tt = (t.kindType); + return toType(tt.key); + }; + rtype.prototype.Key = function() { return this.$val.Key(); }; + rtype.ptr.prototype.Len = function() { + var t, tt; + t = this; + if (!((t.Kind() === 17))) { + $panic(new $String("reflect: Len of non-array type")); + } + tt = (t.kindType); + return ((tt.len >> 0)); + }; + rtype.prototype.Len = function() { return this.$val.Len(); }; + rtype.ptr.prototype.NumField = function() { + var t, tt; + t = this; + if (!((t.Kind() === 25))) { + $panic(new $String("reflect: NumField of non-struct type")); + } + tt = (t.kindType); + return tt.fields.$length; + }; + rtype.prototype.NumField = function() { return this.$val.NumField(); }; + rtype.ptr.prototype.NumIn = function() { + var t, tt; + t = this; + if (!((t.Kind() === 19))) { + $panic(new $String("reflect: NumIn of non-func type")); + } + tt = (t.kindType); + return ((tt.inCount >> 0)); + }; + rtype.prototype.NumIn = function() { return this.$val.NumIn(); }; + rtype.ptr.prototype.NumOut = function() { + var t, tt; + t = this; + if (!((t.Kind() === 19))) { + $panic(new $String("reflect: NumOut of non-func type")); + } + tt = (t.kindType); + return tt.out().$length; + }; + rtype.prototype.NumOut = function() { return this.$val.NumOut(); }; + rtype.ptr.prototype.Out = function(i) { + var i, t, tt, x; + t = this; + if (!((t.Kind() === 19))) { + $panic(new $String("reflect: Out of non-func type")); + } + tt = (t.kindType); + return toType((x = tt.out(), ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]))); + }; + rtype.prototype.Out = function(i) { return this.$val.Out(i); }; + ChanDir.prototype.String = function() { + var _1, d; + d = this.$val; + _1 = d; + if (_1 === (2)) { + return "chan<-"; + } else if (_1 === (1)) { + return "<-chan"; + } else if (_1 === (3)) { + return "chan"; + } + return "ChanDir" + strconv.Itoa(((d >> 0))); + }; + $ptrType(ChanDir).prototype.String = function() { return new ChanDir(this.$get()).String(); }; + interfaceType.ptr.prototype.Method = function(i) { + var i, m, p, pname, t, x; + m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0); + t = this; + if (i < 0 || i >= t.methods.$length) { + return m; + } + p = (x = t.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + pname = $clone(t.rtype.nameOff(p.name), name); + m.Name = $clone(pname, name).name(); + if (!$clone(pname, name).isExported()) { + m.PkgPath = $clone(pname, name).pkgPath(); + if (m.PkgPath === "") { + m.PkgPath = $clone(t.pkgPath, name).name(); + } + } + m.Type = toType(t.rtype.typeOff(p.typ)); + m.Index = i; + return m; + }; + interfaceType.prototype.Method = function(i) { return this.$val.Method(i); }; + interfaceType.ptr.prototype.NumMethod = function() { + var t; + t = this; + return t.methods.$length; + }; + interfaceType.prototype.NumMethod = function() { return this.$val.NumMethod(); }; + interfaceType.ptr.prototype.MethodByName = function(name$1) { + var _i, _ref, _tmp, _tmp$1, i, m, name$1, ok, p, t, x; + m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0); + ok = false; + t = this; + if (t === ptrType$7.nil) { + return [m, ok]; + } + p = ptrType$8.nil; + _ref = t.methods; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + p = (x = t.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + if ($clone(t.rtype.nameOff(p.name), name).name() === name$1) { + _tmp = $clone(t.Method(i), Method); + _tmp$1 = true; + Method.copy(m, _tmp); + ok = _tmp$1; + return [m, ok]; + } + _i++; + } + return [m, ok]; + }; + interfaceType.prototype.MethodByName = function(name$1) { return this.$val.MethodByName(name$1); }; + StructTag.prototype.Get = function(key) { + var _tuple, key, tag, v; + tag = this.$val; + _tuple = new StructTag(tag).Lookup(key); + v = _tuple[0]; + return v; + }; + $ptrType(StructTag).prototype.Get = function(key) { return new StructTag(this.$get()).Get(key); }; + StructTag.prototype.Lookup = function(key) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, err, i, key, name$1, ok, qvalue, tag, value, value$1; + value = ""; + ok = false; + tag = this.$val; + while (true) { + if (!(!(tag === ""))) { break; } + i = 0; + while (true) { + if (!(i < tag.length && (tag.charCodeAt(i) === 32))) { break; } + i = i + (1) >> 0; + } + tag = $substring(tag, i); + if (tag === "") { + break; + } + i = 0; + while (true) { + if (!(i < tag.length && tag.charCodeAt(i) > 32 && !((tag.charCodeAt(i) === 58)) && !((tag.charCodeAt(i) === 34)) && !((tag.charCodeAt(i) === 127)))) { break; } + i = i + (1) >> 0; + } + if ((i === 0) || (i + 1 >> 0) >= tag.length || !((tag.charCodeAt(i) === 58)) || !((tag.charCodeAt((i + 1 >> 0)) === 34))) { + break; + } + name$1 = ($substring(tag, 0, i)); + tag = $substring(tag, (i + 1 >> 0)); + i = 1; + while (true) { + if (!(i < tag.length && !((tag.charCodeAt(i) === 34)))) { break; } + if (tag.charCodeAt(i) === 92) { + i = i + (1) >> 0; + } + i = i + (1) >> 0; + } + if (i >= tag.length) { + break; + } + qvalue = ($substring(tag, 0, (i + 1 >> 0))); + tag = $substring(tag, (i + 1 >> 0)); + if (key === name$1) { + _tuple = strconv.Unquote(qvalue); + value$1 = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + break; + } + _tmp = value$1; + _tmp$1 = true; + value = _tmp; + ok = _tmp$1; + return [value, ok]; + } + } + _tmp$2 = ""; + _tmp$3 = false; + value = _tmp$2; + ok = _tmp$3; + return [value, ok]; + }; + $ptrType(StructTag).prototype.Lookup = function(key) { return new StructTag(this.$get()).Lookup(key); }; + structType.ptr.prototype.Field = function(i) { + var f, i, p, t, tag, x; + f = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$13.nil, false); + t = this; + if (i < 0 || i >= t.fields.$length) { + $panic(new $String("reflect: Field index out of bounds")); + } + p = (x = t.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + f.Type = toType(p.typ); + f.Name = $clone(p.name, name).name(); + f.Anonymous = p.embedded(); + if (!$clone(p.name, name).isExported()) { + f.PkgPath = $clone(t.pkgPath, name).name(); + } + tag = $clone(p.name, name).tag(); + if (!(tag === "")) { + f.Tag = (tag); + } + f.Offset = p.offset(); + f.Index = new sliceType$13([i]); + return f; + }; + structType.prototype.Field = function(i) { return this.$val.Field(i); }; + structType.ptr.prototype.FieldByIndex = function(index) { + var _i, _r, _r$1, _r$2, _r$3, _r$4, _ref, _v, f, ft, i, index, t, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _ref = $f._ref; _v = $f._v; f = $f.f; ft = $f.ft; i = $f.i; index = $f.index; t = $f.t; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$13.nil, false); + t = this; + f.Type = toType(t.rtype); + _ref = index; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + /* */ if (i > 0) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (i > 0) { */ case 3: + ft = f.Type; + _r = ft.Kind(); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + if (!(_r === 22)) { _v = false; $s = 7; continue s; } + _r$1 = ft.Elem(); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = _r$1.Kind(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v = _r$2 === 25; case 7: + /* */ if (_v) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_v) { */ case 5: + _r$3 = ft.Elem(); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + ft = _r$3; + /* } */ case 6: + f.Type = ft; + /* } */ case 4: + _r$4 = f.Type.Field(x); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + StructField.copy(f, _r$4); + _i++; + /* } */ $s = 1; continue; case 2: + $s = -1; return f; + /* */ } return; } if ($f === undefined) { $f = { $blk: structType.ptr.prototype.FieldByIndex }; } $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._ref = _ref; $f._v = _v; $f.f = f; $f.ft = ft; $f.i = i; $f.index = index; $f.t = t; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + structType.prototype.FieldByIndex = function(index) { return this.$val.FieldByIndex(index); }; + structType.ptr.prototype.FieldByNameFunc = function(match) { + var _entry, _entry$1, _entry$2, _entry$3, _i, _i$1, _key, _key$1, _key$2, _key$3, _r, _r$1, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, count, current, f, fname, i, index, match, next, nextCount, ntyp, ok, result, scan, styp, t, t$1, visited, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _entry$1 = $f._entry$1; _entry$2 = $f._entry$2; _entry$3 = $f._entry$3; _i = $f._i; _i$1 = $f._i$1; _key = $f._key; _key$1 = $f._key$1; _key$2 = $f._key$2; _key$3 = $f._key$3; _r = $f._r; _r$1 = $f._r$1; _ref = $f._ref; _ref$1 = $f._ref$1; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; count = $f.count; current = $f.current; f = $f.f; fname = $f.fname; i = $f.i; index = $f.index; match = $f.match; next = $f.next; nextCount = $f.nextCount; ntyp = $f.ntyp; ok = $f.ok; result = $f.result; scan = $f.scan; styp = $f.styp; t = $f.t; t$1 = $f.t$1; visited = $f.visited; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + result = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$13.nil, false); + ok = false; + t = this; + current = new sliceType$14([]); + next = new sliceType$14([new fieldScan.ptr(t, sliceType$13.nil)]); + nextCount = false; + visited = $makeMap(ptrType$9.keyFor, []); + /* while (true) { */ case 1: + /* if (!(next.$length > 0)) { break; } */ if(!(next.$length > 0)) { $s = 2; continue; } + _tmp = next; + _tmp$1 = $subslice(current, 0, 0); + current = _tmp; + next = _tmp$1; + count = nextCount; + nextCount = false; + _ref = current; + _i = 0; + /* while (true) { */ case 3: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } + scan = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), fieldScan); + t$1 = scan.typ; + /* */ if ((_entry = visited[ptrType$9.keyFor(t$1)], _entry !== undefined ? _entry.v : false)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if ((_entry = visited[ptrType$9.keyFor(t$1)], _entry !== undefined ? _entry.v : false)) { */ case 5: + _i++; + /* continue; */ $s = 3; continue; + /* } */ case 6: + _key = t$1; (visited || $throwRuntimeError("assignment to entry in nil map"))[ptrType$9.keyFor(_key)] = { k: _key, v: true }; + _ref$1 = t$1.fields; + _i$1 = 0; + /* while (true) { */ case 7: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 8; continue; } + i = _i$1; + f = (x = t$1.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + fname = $clone(f.name, name).name(); + ntyp = ptrType$1.nil; + /* */ if (f.embedded()) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (f.embedded()) { */ case 9: + ntyp = f.typ; + /* */ if (ntyp.Kind() === 22) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (ntyp.Kind() === 22) { */ case 11: + _r = ntyp.Elem().common(); /* */ $s = 13; case 13: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + ntyp = _r; + /* } */ case 12: + /* } */ case 10: + _r$1 = match(fname); /* */ $s = 16; case 16: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (_r$1) { */ case 14: + if ((_entry$1 = count[ptrType$9.keyFor(t$1)], _entry$1 !== undefined ? _entry$1.v : 0) > 1 || ok) { + _tmp$2 = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$13.nil, false); + _tmp$3 = false; + StructField.copy(result, _tmp$2); + ok = _tmp$3; + $s = -1; return [result, ok]; + } + StructField.copy(result, t$1.Field(i)); + result.Index = sliceType$13.nil; + result.Index = $appendSlice(result.Index, scan.index); + result.Index = $append(result.Index, i); + ok = true; + _i$1++; + /* continue; */ $s = 7; continue; + /* } */ case 15: + if (ok || ntyp === ptrType$1.nil || !((ntyp.Kind() === 25))) { + _i$1++; + /* continue; */ $s = 7; continue; + } + styp = (ntyp.kindType); + if ((_entry$2 = nextCount[ptrType$9.keyFor(styp)], _entry$2 !== undefined ? _entry$2.v : 0) > 0) { + _key$1 = styp; (nextCount || $throwRuntimeError("assignment to entry in nil map"))[ptrType$9.keyFor(_key$1)] = { k: _key$1, v: 2 }; + _i$1++; + /* continue; */ $s = 7; continue; + } + if (nextCount === false) { + nextCount = $makeMap(ptrType$9.keyFor, []); + } + _key$2 = styp; (nextCount || $throwRuntimeError("assignment to entry in nil map"))[ptrType$9.keyFor(_key$2)] = { k: _key$2, v: 1 }; + if ((_entry$3 = count[ptrType$9.keyFor(t$1)], _entry$3 !== undefined ? _entry$3.v : 0) > 1) { + _key$3 = styp; (nextCount || $throwRuntimeError("assignment to entry in nil map"))[ptrType$9.keyFor(_key$3)] = { k: _key$3, v: 2 }; + } + index = sliceType$13.nil; + index = $appendSlice(index, scan.index); + index = $append(index, i); + next = $append(next, new fieldScan.ptr(styp, index)); + _i$1++; + /* } */ $s = 7; continue; case 8: + _i++; + /* } */ $s = 3; continue; case 4: + if (ok) { + /* break; */ $s = 2; continue; + } + /* } */ $s = 1; continue; case 2: + $s = -1; return [result, ok]; + /* */ } return; } if ($f === undefined) { $f = { $blk: structType.ptr.prototype.FieldByNameFunc }; } $f._entry = _entry; $f._entry$1 = _entry$1; $f._entry$2 = _entry$2; $f._entry$3 = _entry$3; $f._i = _i; $f._i$1 = _i$1; $f._key = _key; $f._key$1 = _key$1; $f._key$2 = _key$2; $f._key$3 = _key$3; $f._r = _r; $f._r$1 = _r$1; $f._ref = _ref; $f._ref$1 = _ref$1; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f.count = count; $f.current = current; $f.f = f; $f.fname = fname; $f.i = i; $f.index = index; $f.match = match; $f.next = next; $f.nextCount = nextCount; $f.ntyp = ntyp; $f.ok = ok; $f.result = result; $f.scan = scan; $f.styp = styp; $f.t = t; $f.t$1 = t$1; $f.visited = visited; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + structType.prototype.FieldByNameFunc = function(match) { return this.$val.FieldByNameFunc(match); }; + structType.ptr.prototype.FieldByName = function(name$1) { + var _i, _r, _ref, _tmp, _tmp$1, _tuple, f, hasEmbeds, i, name$1, present, t, tf, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; f = $f.f; hasEmbeds = $f.hasEmbeds; i = $f.i; name$1 = $f.name$1; present = $f.present; t = $f.t; tf = $f.tf; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + name$1 = [name$1]; + f = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$13.nil, false); + present = false; + t = this; + hasEmbeds = false; + if (!(name$1[0] === "")) { + _ref = t.fields; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + tf = (x = t.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + if ($clone(tf.name, name).name() === name$1[0]) { + _tmp = $clone(t.Field(i), StructField); + _tmp$1 = true; + StructField.copy(f, _tmp); + present = _tmp$1; + $s = -1; return [f, present]; + } + if (tf.embedded()) { + hasEmbeds = true; + } + _i++; + } + } + if (!hasEmbeds) { + $s = -1; return [f, present]; + } + _r = t.FieldByNameFunc((function(name$1) { return function(s) { + var s; + return s === name$1[0]; + }; })(name$1)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + StructField.copy(f, _tuple[0]); + present = _tuple[1]; + $s = -1; return [f, present]; + /* */ } return; } if ($f === undefined) { $f = { $blk: structType.ptr.prototype.FieldByName }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.f = f; $f.hasEmbeds = hasEmbeds; $f.i = i; $f.name$1 = name$1; $f.present = present; $f.t = t; $f.tf = tf; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + structType.prototype.FieldByName = function(name$1) { return this.$val.FieldByName(name$1); }; + PtrTo = function(t) { + var t; + return $assertType(t, ptrType$1).ptrTo(); + }; + $pkg.PtrTo = PtrTo; + rtype.ptr.prototype.Implements = function(u) { + var _r, t, u, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; u = $f.u; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + if ($interfaceIsEqual(u, $ifaceNil)) { + $panic(new $String("reflect: nil type passed to Type.Implements")); + } + _r = u.Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!((_r === 20))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((_r === 20))) { */ case 1: + $panic(new $String("reflect: non-interface type passed to Type.Implements")); + /* } */ case 2: + $s = -1; return implements$1($assertType(u, ptrType$1), t); + /* */ } return; } if ($f === undefined) { $f = { $blk: rtype.ptr.prototype.Implements }; } $f._r = _r; $f.t = t; $f.u = u; $f.$s = $s; $f.$r = $r; return $f; + }; + rtype.prototype.Implements = function(u) { return this.$val.Implements(u); }; + rtype.ptr.prototype.AssignableTo = function(u) { + var _r, t, u, uu, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; u = $f.u; uu = $f.uu; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + if ($interfaceIsEqual(u, $ifaceNil)) { + $panic(new $String("reflect: nil type passed to Type.AssignableTo")); + } + uu = $assertType(u, ptrType$1); + _r = directlyAssignable(uu, t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r || implements$1(uu, t); + /* */ } return; } if ($f === undefined) { $f = { $blk: rtype.ptr.prototype.AssignableTo }; } $f._r = _r; $f.t = t; $f.u = u; $f.uu = uu; $f.$s = $s; $f.$r = $r; return $f; + }; + rtype.prototype.AssignableTo = function(u) { return this.$val.AssignableTo(u); }; + rtype.ptr.prototype.ConvertibleTo = function(u) { + var _r, t, u, uu, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; u = $f.u; uu = $f.uu; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + if ($interfaceIsEqual(u, $ifaceNil)) { + $panic(new $String("reflect: nil type passed to Type.ConvertibleTo")); + } + uu = $assertType(u, ptrType$1); + _r = convertOp(uu, t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return !(_r === $throwNilPointerError); + /* */ } return; } if ($f === undefined) { $f = { $blk: rtype.ptr.prototype.ConvertibleTo }; } $f._r = _r; $f.t = t; $f.u = u; $f.uu = uu; $f.$s = $s; $f.$r = $r; return $f; + }; + rtype.prototype.ConvertibleTo = function(u) { return this.$val.ConvertibleTo(u); }; + implements$1 = function(T, V) { + var T, V, i, i$1, j, j$1, t, tm, tm$1, tmName, tmName$1, tmPkgPath, tmPkgPath$1, v, v$1, vm, vm$1, vmName, vmName$1, vmPkgPath, vmPkgPath$1, vmethods, x, x$1, x$2; + if (!((T.Kind() === 20))) { + return false; + } + t = (T.kindType); + if (t.methods.$length === 0) { + return true; + } + if (V.Kind() === 20) { + v = (V.kindType); + i = 0; + j = 0; + while (true) { + if (!(j < v.methods.$length)) { break; } + tm = (x = t.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + tmName = $clone(t.rtype.nameOff(tm.name), name); + vm = (x$1 = v.methods, ((j < 0 || j >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + j])); + vmName = $clone(V.nameOff(vm.name), name); + if ($clone(vmName, name).name() === $clone(tmName, name).name() && V.typeOff(vm.typ) === t.rtype.typeOff(tm.typ)) { + if (!$clone(tmName, name).isExported()) { + tmPkgPath = $clone(tmName, name).pkgPath(); + if (tmPkgPath === "") { + tmPkgPath = $clone(t.pkgPath, name).name(); + } + vmPkgPath = $clone(vmName, name).pkgPath(); + if (vmPkgPath === "") { + vmPkgPath = $clone(v.pkgPath, name).name(); + } + if (!(tmPkgPath === vmPkgPath)) { + j = j + (1) >> 0; + continue; + } + } + i = i + (1) >> 0; + if (i >= t.methods.$length) { + return true; + } + } + j = j + (1) >> 0; + } + return false; + } + v$1 = V.uncommon(); + if (v$1 === ptrType$5.nil) { + return false; + } + i$1 = 0; + vmethods = v$1.methods(); + j$1 = 0; + while (true) { + if (!(j$1 < ((v$1.mcount >> 0)))) { break; } + tm$1 = (x$2 = t.methods, ((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$1])); + tmName$1 = $clone(t.rtype.nameOff(tm$1.name), name); + vm$1 = $clone(((j$1 < 0 || j$1 >= vmethods.$length) ? ($throwRuntimeError("index out of range"), undefined) : vmethods.$array[vmethods.$offset + j$1]), method); + vmName$1 = $clone(V.nameOff(vm$1.name), name); + if ($clone(vmName$1, name).name() === $clone(tmName$1, name).name() && V.typeOff(vm$1.mtyp) === t.rtype.typeOff(tm$1.typ)) { + if (!$clone(tmName$1, name).isExported()) { + tmPkgPath$1 = $clone(tmName$1, name).pkgPath(); + if (tmPkgPath$1 === "") { + tmPkgPath$1 = $clone(t.pkgPath, name).name(); + } + vmPkgPath$1 = $clone(vmName$1, name).pkgPath(); + if (vmPkgPath$1 === "") { + vmPkgPath$1 = $clone(V.nameOff(v$1.pkgPath), name).name(); + } + if (!(tmPkgPath$1 === vmPkgPath$1)) { + j$1 = j$1 + (1) >> 0; + continue; + } + } + i$1 = i$1 + (1) >> 0; + if (i$1 >= t.methods.$length) { + return true; + } + } + j$1 = j$1 + (1) >> 0; + } + return false; + }; + directlyAssignable = function(T, V) { + var T, V, _r, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; T = $f.T; V = $f.V; _r = $f._r; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + if (T === V) { + $s = -1; return true; + } + if (!(T.Name() === "") && !(V.Name() === "") || !((T.Kind() === V.Kind()))) { + $s = -1; return false; + } + _r = haveIdenticalUnderlyingType(T, V, true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: directlyAssignable }; } $f.T = T; $f.V = V; $f._r = _r; $f.$s = $s; $f.$r = $r; return $f; + }; + haveIdenticalType = function(T, V, cmpTags) { + var T, V, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _v, cmpTags, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; T = $f.T; V = $f.V; _arg = $f._arg; _arg$1 = $f._arg$1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _v = $f._v; cmpTags = $f.cmpTags; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + if (cmpTags) { + $s = -1; return $interfaceIsEqual(T, V); + } + _r = T.Name(); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = V.Name(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + if (!(_r === _r$1)) { _v = true; $s = 3; continue s; } + _r$2 = T.Kind(); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = V.Kind(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _v = !((_r$2 === _r$3)); case 3: + /* */ if (_v) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_v) { */ case 1: + $s = -1; return false; + /* } */ case 2: + _r$4 = T.common(); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _arg = _r$4; + _r$5 = V.common(); /* */ $s = 9; case 9: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _arg$1 = _r$5; + _r$6 = haveIdenticalUnderlyingType(_arg, _arg$1, false); /* */ $s = 10; case 10: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $s = -1; return _r$6; + /* */ } return; } if ($f === undefined) { $f = { $blk: haveIdenticalType }; } $f.T = T; $f.V = V; $f._arg = _arg; $f._arg$1 = _arg$1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._v = _v; $f.cmpTags = cmpTags; $f.$s = $s; $f.$r = $r; return $f; + }; + haveIdenticalUnderlyingType = function(T, V, cmpTags) { + var T, V, _1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _v, _v$1, _v$2, _v$3, cmpTags, i, i$1, i$2, kind, t, t$1, t$2, tf, v, v$1, v$2, vf, x, x$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; T = $f.T; V = $f.V; _1 = $f._1; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _ref = $f._ref; _v = $f._v; _v$1 = $f._v$1; _v$2 = $f._v$2; _v$3 = $f._v$3; cmpTags = $f.cmpTags; i = $f.i; i$1 = $f.i$1; i$2 = $f.i$2; kind = $f.kind; t = $f.t; t$1 = $f.t$1; t$2 = $f.t$2; tf = $f.tf; v = $f.v; v$1 = $f.v$1; v$2 = $f.v$2; vf = $f.vf; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + if (T === V) { + $s = -1; return true; + } + kind = T.Kind(); + if (!((kind === V.Kind()))) { + $s = -1; return false; + } + if (1 <= kind && kind <= 16 || (kind === 24) || (kind === 26)) { + $s = -1; return true; + } + _1 = kind; + /* */ if (_1 === (17)) { $s = 2; continue; } + /* */ if (_1 === (18)) { $s = 3; continue; } + /* */ if (_1 === (19)) { $s = 4; continue; } + /* */ if (_1 === (20)) { $s = 5; continue; } + /* */ if (_1 === (21)) { $s = 6; continue; } + /* */ if ((_1 === (22)) || (_1 === (23))) { $s = 7; continue; } + /* */ if (_1 === (25)) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (_1 === (17)) { */ case 2: + if (!(T.Len() === V.Len())) { _v = false; $s = 10; continue s; } + _r = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 11; case 11: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r; case 10: + $s = -1; return _v; + /* } else if (_1 === (18)) { */ case 3: + if (!(V.ChanDir() === 3)) { _v$1 = false; $s = 14; continue s; } + _r$1 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 15; case 15: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v$1 = _r$1; case 14: + /* */ if (_v$1) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (_v$1) { */ case 12: + $s = -1; return true; + /* } */ case 13: + if (!(V.ChanDir() === T.ChanDir())) { _v$2 = false; $s = 16; continue s; } + _r$2 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 17; case 17: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v$2 = _r$2; case 16: + $s = -1; return _v$2; + /* } else if (_1 === (19)) { */ case 4: + t = (T.kindType); + v = (V.kindType); + if (!((t.outCount === v.outCount)) || !((t.inCount === v.inCount))) { + $s = -1; return false; + } + i = 0; + /* while (true) { */ case 18: + /* if (!(i < t.rtype.NumIn())) { break; } */ if(!(i < t.rtype.NumIn())) { $s = 19; continue; } + _r$3 = haveIdenticalType(t.rtype.In(i), v.rtype.In(i), cmpTags); /* */ $s = 22; case 22: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!_r$3) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (!_r$3) { */ case 20: + $s = -1; return false; + /* } */ case 21: + i = i + (1) >> 0; + /* } */ $s = 18; continue; case 19: + i$1 = 0; + /* while (true) { */ case 23: + /* if (!(i$1 < t.rtype.NumOut())) { break; } */ if(!(i$1 < t.rtype.NumOut())) { $s = 24; continue; } + _r$4 = haveIdenticalType(t.rtype.Out(i$1), v.rtype.Out(i$1), cmpTags); /* */ $s = 27; case 27: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (!_r$4) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (!_r$4) { */ case 25: + $s = -1; return false; + /* } */ case 26: + i$1 = i$1 + (1) >> 0; + /* } */ $s = 23; continue; case 24: + $s = -1; return true; + /* } else if (_1 === (20)) { */ case 5: + t$1 = (T.kindType); + v$1 = (V.kindType); + if ((t$1.methods.$length === 0) && (v$1.methods.$length === 0)) { + $s = -1; return true; + } + $s = -1; return false; + /* } else if (_1 === (21)) { */ case 6: + _r$5 = haveIdenticalType(T.Key(), V.Key(), cmpTags); /* */ $s = 29; case 29: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + if (!(_r$5)) { _v$3 = false; $s = 28; continue s; } + _r$6 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 30; case 30: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _v$3 = _r$6; case 28: + $s = -1; return _v$3; + /* } else if ((_1 === (22)) || (_1 === (23))) { */ case 7: + _r$7 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 31; case 31: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + $s = -1; return _r$7; + /* } else if (_1 === (25)) { */ case 8: + t$2 = (T.kindType); + v$2 = (V.kindType); + if (!((t$2.fields.$length === v$2.fields.$length))) { + $s = -1; return false; + } + if (!($clone(t$2.pkgPath, name).name() === $clone(v$2.pkgPath, name).name())) { + $s = -1; return false; + } + _ref = t$2.fields; + _i = 0; + /* while (true) { */ case 32: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 33; continue; } + i$2 = _i; + tf = (x = t$2.fields, ((i$2 < 0 || i$2 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i$2])); + vf = (x$1 = v$2.fields, ((i$2 < 0 || i$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i$2])); + if (!($clone(tf.name, name).name() === $clone(vf.name, name).name())) { + $s = -1; return false; + } + _r$8 = haveIdenticalType(tf.typ, vf.typ, cmpTags); /* */ $s = 36; case 36: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + /* */ if (!_r$8) { $s = 34; continue; } + /* */ $s = 35; continue; + /* if (!_r$8) { */ case 34: + $s = -1; return false; + /* } */ case 35: + if (cmpTags && !($clone(tf.name, name).tag() === $clone(vf.name, name).tag())) { + $s = -1; return false; + } + if (!((tf.offsetEmbed === vf.offsetEmbed))) { + $s = -1; return false; + } + _i++; + /* } */ $s = 32; continue; case 33: + $s = -1; return true; + /* } */ case 9: + case 1: + $s = -1; return false; + /* */ } return; } if ($f === undefined) { $f = { $blk: haveIdenticalUnderlyingType }; } $f.T = T; $f.V = V; $f._1 = _1; $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._ref = _ref; $f._v = _v; $f._v$1 = _v$1; $f._v$2 = _v$2; $f._v$3 = _v$3; $f.cmpTags = cmpTags; $f.i = i; $f.i$1 = i$1; $f.i$2 = i$2; $f.kind = kind; $f.t = t; $f.t$1 = t$1; $f.t$2 = t$2; $f.tf = tf; $f.v = v; $f.v$1 = v$1; $f.v$2 = v$2; $f.vf = vf; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f; + }; + toType = function(t) { + var t; + if (t === ptrType$1.nil) { + return $ifaceNil; + } + return t; + }; + ifaceIndir = function(t) { + var t; + return ((t.kind & 32) >>> 0) === 0; + }; + flag.prototype.kind = function() { + var f; + f = this.$val; + return ((((f & 31) >>> 0) >>> 0)); + }; + $ptrType(flag).prototype.kind = function() { return new flag(this.$get()).kind(); }; + flag.prototype.ro = function() { + var f; + f = this.$val; + if (!((((f & 96) >>> 0) === 0))) { + return 32; + } + return 0; + }; + $ptrType(flag).prototype.ro = function() { return new flag(this.$get()).ro(); }; + Value.ptr.prototype.pointer = function() { + var v; + v = this; + if (!((v.typ.size === 4)) || !v.typ.pointers()) { + $panic(new $String("can't call pointer on a non-pointer Value")); + } + if (!((((v.flag & 128) >>> 0) === 0))) { + return (v.ptr).$get(); + } + return v.ptr; + }; + Value.prototype.pointer = function() { return this.$val.pointer(); }; + ValueError.ptr.prototype.Error = function() { + var e; + e = this; + if (e.Kind === 0) { + return "reflect: call of " + e.Method + " on zero Value"; + } + return "reflect: call of " + e.Method + " on " + new Kind(e.Kind).String() + " Value"; + }; + ValueError.prototype.Error = function() { return this.$val.Error(); }; + flag.prototype.mustBe = function(expected) { + var expected, f; + f = this.$val; + if (!((new flag(f).kind() === expected))) { + $panic(new ValueError.ptr(methodName(), new flag(f).kind())); + } + }; + $ptrType(flag).prototype.mustBe = function(expected) { return new flag(this.$get()).mustBe(expected); }; + flag.prototype.mustBeExported = function() { + var f; + f = this.$val; + if (f === 0) { + $panic(new ValueError.ptr(methodName(), 0)); + } + if (!((((f & 96) >>> 0) === 0))) { + $panic(new $String("reflect: " + methodName() + " using value obtained using unexported field")); + } + }; + $ptrType(flag).prototype.mustBeExported = function() { return new flag(this.$get()).mustBeExported(); }; + flag.prototype.mustBeAssignable = function() { + var f; + f = this.$val; + if (f === 0) { + $panic(new ValueError.ptr(methodName(), 0)); + } + if (!((((f & 96) >>> 0) === 0))) { + $panic(new $String("reflect: " + methodName() + " using value obtained using unexported field")); + } + if (((f & 256) >>> 0) === 0) { + $panic(new $String("reflect: " + methodName() + " using unaddressable value")); + } + }; + $ptrType(flag).prototype.mustBeAssignable = function() { return new flag(this.$get()).mustBeAssignable(); }; + Value.ptr.prototype.Addr = function() { + var v; + v = this; + if (((v.flag & 256) >>> 0) === 0) { + $panic(new $String("reflect.Value.Addr of unaddressable value")); + } + return new Value.ptr(v.typ.ptrTo(), v.ptr, (new flag(v.flag).ro() | 22) >>> 0); + }; + Value.prototype.Addr = function() { return this.$val.Addr(); }; + Value.ptr.prototype.Bool = function() { + var v; + v = this; + new flag(v.flag).mustBe(1); + return (v.ptr).$get(); + }; + Value.prototype.Bool = function() { return this.$val.Bool(); }; + Value.ptr.prototype.Bytes = function() { + var _r, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBe(23); + _r = v.typ.Elem().Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!((_r === 8))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((_r === 8))) { */ case 1: + $panic(new $String("reflect.Value.Bytes of non-byte slice")); + /* } */ case 2: + $s = -1; return (v.ptr).$get(); + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Bytes }; } $f._r = _r; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.Bytes = function() { return this.$val.Bytes(); }; + Value.ptr.prototype.runes = function() { + var _r, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBe(23); + _r = v.typ.Elem().Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!((_r === 5))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((_r === 5))) { */ case 1: + $panic(new $String("reflect.Value.Bytes of non-rune slice")); + /* } */ case 2: + $s = -1; return (v.ptr).$get(); + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.runes }; } $f._r = _r; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.runes = function() { return this.$val.runes(); }; + Value.ptr.prototype.CanAddr = function() { + var v; + v = this; + return !((((v.flag & 256) >>> 0) === 0)); + }; + Value.prototype.CanAddr = function() { return this.$val.CanAddr(); }; + Value.ptr.prototype.CanSet = function() { + var v; + v = this; + return ((v.flag & 352) >>> 0) === 256; + }; + Value.prototype.CanSet = function() { return this.$val.CanSet(); }; + Value.ptr.prototype.Call = function(in$1) { + var _r, in$1, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; in$1 = $f.in$1; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBe(19); + new flag(v.flag).mustBeExported(); + _r = $clone(v, Value).call("Call", in$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Call }; } $f._r = _r; $f.in$1 = in$1; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.Call = function(in$1) { return this.$val.Call(in$1); }; + Value.ptr.prototype.CallSlice = function(in$1) { + var _r, in$1, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; in$1 = $f.in$1; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBe(19); + new flag(v.flag).mustBeExported(); + _r = $clone(v, Value).call("CallSlice", in$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.CallSlice }; } $f._r = _r; $f.in$1 = in$1; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.CallSlice = function(in$1) { return this.$val.CallSlice(in$1); }; + Value.ptr.prototype.Complex = function() { + var _1, k, v, x; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (15)) { + return ((x = (v.ptr).$get(), new $Complex128(x.$real, x.$imag))); + } else if (_1 === (16)) { + return (v.ptr).$get(); + } + $panic(new ValueError.ptr("reflect.Value.Complex", new flag(v.flag).kind())); + }; + Value.prototype.Complex = function() { return this.$val.Complex(); }; + Value.ptr.prototype.FieldByIndex = function(index) { + var _i, _r, _r$1, _r$2, _r$3, _ref, _v, i, index, v, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _ref = $f._ref; _v = $f._v; i = $f.i; index = $f.index; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + /* */ if (index.$length === 1) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (index.$length === 1) { */ case 1: + _r = $clone(v, Value).Field((0 >= index.$length ? ($throwRuntimeError("index out of range"), undefined) : index.$array[index.$offset + 0])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* } */ case 2: + new flag(v.flag).mustBe(25); + _ref = index; + _i = 0; + /* while (true) { */ case 4: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 5; continue; } + i = _i; + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + /* */ if (i > 0) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (i > 0) { */ case 6: + if (!($clone(v, Value).Kind() === 22)) { _v = false; $s = 10; continue s; } + _r$1 = v.typ.Elem().Kind(); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = _r$1 === 25; case 10: + /* */ if (_v) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (_v) { */ case 8: + if ($clone(v, Value).IsNil()) { + $panic(new $String("reflect: indirection through nil pointer to embedded struct")); + } + _r$2 = $clone(v, Value).Elem(); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + v = _r$2; + /* } */ case 9: + /* } */ case 7: + _r$3 = $clone(v, Value).Field(x); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + v = _r$3; + _i++; + /* } */ $s = 4; continue; case 5: + $s = -1; return v; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.FieldByIndex }; } $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._ref = _ref; $f._v = _v; $f.i = i; $f.index = index; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.FieldByIndex = function(index) { return this.$val.FieldByIndex(index); }; + Value.ptr.prototype.FieldByName = function(name$1) { + var _r, _r$1, _tuple, f, name$1, ok, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; f = $f.f; name$1 = $f.name$1; ok = $f.ok; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBe(25); + _r = v.typ.FieldByName(name$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + f = $clone(_tuple[0], StructField); + ok = _tuple[1]; + /* */ if (ok) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (ok) { */ case 2: + _r$1 = $clone(v, Value).FieldByIndex(f.Index); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return _r$1; + /* } */ case 3: + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.FieldByName }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.f = f; $f.name$1 = name$1; $f.ok = ok; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.FieldByName = function(name$1) { return this.$val.FieldByName(name$1); }; + Value.ptr.prototype.FieldByNameFunc = function(match) { + var _r, _r$1, _tuple, f, match, ok, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; f = $f.f; match = $f.match; ok = $f.ok; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + _r = v.typ.FieldByNameFunc(match); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + f = $clone(_tuple[0], StructField); + ok = _tuple[1]; + /* */ if (ok) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (ok) { */ case 2: + _r$1 = $clone(v, Value).FieldByIndex(f.Index); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return _r$1; + /* } */ case 3: + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.FieldByNameFunc }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.f = f; $f.match = match; $f.ok = ok; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.FieldByNameFunc = function(match) { return this.$val.FieldByNameFunc(match); }; + Value.ptr.prototype.Float = function() { + var _1, k, v; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (13)) { + return ((v.ptr).$get()); + } else if (_1 === (14)) { + return (v.ptr).$get(); + } + $panic(new ValueError.ptr("reflect.Value.Float", new flag(v.flag).kind())); + }; + Value.prototype.Float = function() { return this.$val.Float(); }; + Value.ptr.prototype.Int = function() { + var _1, k, p, v; + v = this; + k = new flag(v.flag).kind(); + p = v.ptr; + _1 = k; + if (_1 === (2)) { + return (new $Int64(0, (p).$get())); + } else if (_1 === (3)) { + return (new $Int64(0, (p).$get())); + } else if (_1 === (4)) { + return (new $Int64(0, (p).$get())); + } else if (_1 === (5)) { + return (new $Int64(0, (p).$get())); + } else if (_1 === (6)) { + return (p).$get(); + } + $panic(new ValueError.ptr("reflect.Value.Int", new flag(v.flag).kind())); + }; + Value.prototype.Int = function() { return this.$val.Int(); }; + Value.ptr.prototype.CanInterface = function() { + var v; + v = this; + if (v.flag === 0) { + $panic(new ValueError.ptr("reflect.Value.CanInterface", 0)); + } + return ((v.flag & 96) >>> 0) === 0; + }; + Value.prototype.CanInterface = function() { return this.$val.CanInterface(); }; + Value.ptr.prototype.Interface = function() { + var _r, i, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; i = $f.i; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + i = $ifaceNil; + v = this; + _r = valueInterface($clone(v, Value), true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + i = _r; + $s = -1; return i; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Interface }; } $f._r = _r; $f.i = i; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.Interface = function() { return this.$val.Interface(); }; + Value.ptr.prototype.IsValid = function() { + var v; + v = this; + return !((v.flag === 0)); + }; + Value.prototype.IsValid = function() { return this.$val.IsValid(); }; + Value.ptr.prototype.Kind = function() { + var v; + v = this; + return new flag(v.flag).kind(); + }; + Value.prototype.Kind = function() { return this.$val.Kind(); }; + Value.ptr.prototype.MapIndex = function(key) { + var _r, c, e, fl, k, key, tt, typ, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; c = $f.c; e = $f.e; fl = $f.fl; k = $f.k; key = $f.key; tt = $f.tt; typ = $f.typ; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBe(21); + tt = (v.typ.kindType); + _r = $clone(key, Value).assignTo("reflect.Value.MapIndex", tt.key, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + key = _r; + k = 0; + if (!((((key.flag & 128) >>> 0) === 0))) { + k = key.ptr; + } else { + k = ((key.$ptr_ptr || (key.$ptr_ptr = new ptrType$15(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, key)))); + } + e = mapaccess(v.typ, $clone(v, Value).pointer(), k); + if (e === 0) { + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + } + typ = tt.elem; + fl = new flag((((v.flag | key.flag) >>> 0))).ro(); + fl = (fl | (((typ.Kind() >>> 0)))) >>> 0; + if (!ifaceIndir(typ)) { + $s = -1; return new Value.ptr(typ, (e).$get(), fl); + } + c = unsafe_New(typ); + typedmemmove(typ, c, e); + $s = -1; return new Value.ptr(typ, c, (fl | 128) >>> 0); + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.MapIndex }; } $f._r = _r; $f.c = c; $f.e = e; $f.fl = fl; $f.k = k; $f.key = key; $f.tt = tt; $f.typ = typ; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.MapIndex = function(key) { return this.$val.MapIndex(key); }; + Value.ptr.prototype.MapKeys = function() { + var _r, a, c, fl, i, it, key, keyType, m, mlen, tt, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; a = $f.a; c = $f.c; fl = $f.fl; i = $f.i; it = $f.it; key = $f.key; keyType = $f.keyType; m = $f.m; mlen = $f.mlen; tt = $f.tt; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBe(21); + tt = (v.typ.kindType); + keyType = tt.key; + fl = (new flag(v.flag).ro() | ((keyType.Kind() >>> 0))) >>> 0; + m = $clone(v, Value).pointer(); + mlen = 0; + if (!(m === 0)) { + mlen = maplen(m); + } + it = mapiterinit(v.typ, m); + a = $makeSlice(sliceType$9, mlen); + i = 0; + i = 0; + /* while (true) { */ case 1: + /* if (!(i < a.$length)) { break; } */ if(!(i < a.$length)) { $s = 2; continue; } + _r = mapiterkey(it); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + key = _r; + if (key === 0) { + /* break; */ $s = 2; continue; + } + if (ifaceIndir(keyType)) { + c = unsafe_New(keyType); + typedmemmove(keyType, c, key); + ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i] = new Value.ptr(keyType, c, (fl | 128) >>> 0)); + } else { + ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i] = new Value.ptr(keyType, (key).$get(), fl)); + } + mapiternext(it); + i = i + (1) >> 0; + /* } */ $s = 1; continue; case 2: + $s = -1; return $subslice(a, 0, i); + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.MapKeys }; } $f._r = _r; $f.a = a; $f.c = c; $f.fl = fl; $f.i = i; $f.it = it; $f.key = key; $f.keyType = keyType; $f.m = m; $f.mlen = mlen; $f.tt = tt; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.MapKeys = function() { return this.$val.MapKeys(); }; + Value.ptr.prototype.Method = function(i) { + var fl, i, v; + v = this; + if (v.typ === ptrType$1.nil) { + $panic(new ValueError.ptr("reflect.Value.Method", 0)); + } + if (!((((v.flag & 512) >>> 0) === 0)) || ((i >>> 0)) >= ((v.typ.NumMethod() >>> 0))) { + $panic(new $String("reflect: Method index out of range")); + } + if ((v.typ.Kind() === 20) && $clone(v, Value).IsNil()) { + $panic(new $String("reflect: Method on nil interface value")); + } + fl = (v.flag & 160) >>> 0; + fl = (fl | (19)) >>> 0; + fl = (fl | ((((((i >>> 0)) << 10 >>> 0) | 512) >>> 0))) >>> 0; + return new Value.ptr(v.typ, v.ptr, fl); + }; + Value.prototype.Method = function(i) { return this.$val.Method(i); }; + Value.ptr.prototype.NumMethod = function() { + var v; + v = this; + if (v.typ === ptrType$1.nil) { + $panic(new ValueError.ptr("reflect.Value.NumMethod", 0)); + } + if (!((((v.flag & 512) >>> 0) === 0))) { + return 0; + } + return v.typ.NumMethod(); + }; + Value.prototype.NumMethod = function() { return this.$val.NumMethod(); }; + Value.ptr.prototype.MethodByName = function(name$1) { + var _r, _tuple, m, name$1, ok, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; m = $f.m; name$1 = $f.name$1; ok = $f.ok; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + if (v.typ === ptrType$1.nil) { + $panic(new ValueError.ptr("reflect.Value.MethodByName", 0)); + } + if (!((((v.flag & 512) >>> 0) === 0))) { + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + } + _r = v.typ.MethodByName(name$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + m = $clone(_tuple[0], Method); + ok = _tuple[1]; + if (!ok) { + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + } + $s = -1; return $clone(v, Value).Method(m.Index); + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.MethodByName }; } $f._r = _r; $f._tuple = _tuple; $f.m = m; $f.name$1 = name$1; $f.ok = ok; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.MethodByName = function(name$1) { return this.$val.MethodByName(name$1); }; + Value.ptr.prototype.NumField = function() { + var tt, v; + v = this; + new flag(v.flag).mustBe(25); + tt = (v.typ.kindType); + return tt.fields.$length; + }; + Value.prototype.NumField = function() { return this.$val.NumField(); }; + Value.ptr.prototype.OverflowComplex = function(x) { + var _1, k, v, x; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (15)) { + return overflowFloat32(x.$real) || overflowFloat32(x.$imag); + } else if (_1 === (16)) { + return false; + } + $panic(new ValueError.ptr("reflect.Value.OverflowComplex", new flag(v.flag).kind())); + }; + Value.prototype.OverflowComplex = function(x) { return this.$val.OverflowComplex(x); }; + Value.ptr.prototype.OverflowFloat = function(x) { + var _1, k, v, x; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (13)) { + return overflowFloat32(x); + } else if (_1 === (14)) { + return false; + } + $panic(new ValueError.ptr("reflect.Value.OverflowFloat", new flag(v.flag).kind())); + }; + Value.prototype.OverflowFloat = function(x) { return this.$val.OverflowFloat(x); }; + overflowFloat32 = function(x) { + var x; + if (x < 0) { + x = -x; + } + return 3.4028234663852886e+38 < x && x <= 1.7976931348623157e+308; + }; + Value.ptr.prototype.OverflowInt = function(x) { + var _1, bitSize, k, trunc, v, x; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { + bitSize = $imul(v.typ.size, 8) >>> 0; + trunc = $shiftRightInt64(($shiftLeft64(x, ((64 - bitSize >>> 0)))), ((64 - bitSize >>> 0))); + return !((x.$high === trunc.$high && x.$low === trunc.$low)); + } + $panic(new ValueError.ptr("reflect.Value.OverflowInt", new flag(v.flag).kind())); + }; + Value.prototype.OverflowInt = function(x) { return this.$val.OverflowInt(x); }; + Value.ptr.prototype.OverflowUint = function(x) { + var _1, bitSize, k, trunc, v, x; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if ((_1 === (7)) || (_1 === (12)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11))) { + bitSize = $imul(v.typ.size, 8) >>> 0; + trunc = $shiftRightUint64(($shiftLeft64(x, ((64 - bitSize >>> 0)))), ((64 - bitSize >>> 0))); + return !((x.$high === trunc.$high && x.$low === trunc.$low)); + } + $panic(new ValueError.ptr("reflect.Value.OverflowUint", new flag(v.flag).kind())); + }; + Value.prototype.OverflowUint = function(x) { return this.$val.OverflowUint(x); }; + Value.ptr.prototype.Recv = function() { + var _r, _tuple, ok, v, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; ok = $f.ok; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + x = new Value.ptr(ptrType$1.nil, 0, 0); + ok = false; + v = this; + new flag(v.flag).mustBe(18); + new flag(v.flag).mustBeExported(); + _r = $clone(v, Value).recv(false); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + x = _tuple[0]; + ok = _tuple[1]; + $s = -1; return [x, ok]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Recv }; } $f._r = _r; $f._tuple = _tuple; $f.ok = ok; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.Recv = function() { return this.$val.Recv(); }; + Value.ptr.prototype.recv = function(nb) { + var _r, _tuple, nb, ok, p, selected, t, tt, v, val, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; nb = $f.nb; ok = $f.ok; p = $f.p; selected = $f.selected; t = $f.t; tt = $f.tt; v = $f.v; val = $f.val; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + val = new Value.ptr(ptrType$1.nil, 0, 0); + ok = false; + v = this; + tt = (v.typ.kindType); + if ((((tt.dir >> 0)) & 1) === 0) { + $panic(new $String("reflect: recv on send-only channel")); + } + t = tt.elem; + val = new Value.ptr(t, 0, ((t.Kind() >>> 0))); + p = 0; + if (ifaceIndir(t)) { + p = unsafe_New(t); + val.ptr = p; + val.flag = (val.flag | (128)) >>> 0; + } else { + p = ((val.$ptr_ptr || (val.$ptr_ptr = new ptrType$15(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, val)))); + } + _r = chanrecv($clone(v, Value).pointer(), nb, p); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + selected = _tuple[0]; + ok = _tuple[1]; + if (!selected) { + val = new Value.ptr(ptrType$1.nil, 0, 0); + } + $s = -1; return [val, ok]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.recv }; } $f._r = _r; $f._tuple = _tuple; $f.nb = nb; $f.ok = ok; $f.p = p; $f.selected = selected; $f.t = t; $f.tt = tt; $f.v = v; $f.val = val; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.recv = function(nb) { return this.$val.recv(nb); }; + Value.ptr.prototype.Send = function(x) { + var _r, v, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBe(18); + new flag(v.flag).mustBeExported(); + _r = $clone(v, Value).send($clone(x, Value), false); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Send }; } $f._r = _r; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.Send = function(x) { return this.$val.Send(x); }; + Value.ptr.prototype.send = function(x, nb) { + var _r, _r$1, nb, p, selected, tt, v, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; nb = $f.nb; p = $f.p; selected = $f.selected; tt = $f.tt; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + selected = false; + v = this; + tt = (v.typ.kindType); + if ((((tt.dir >> 0)) & 2) === 0) { + $panic(new $String("reflect: send on recv-only channel")); + } + new flag(x.flag).mustBeExported(); + _r = $clone(x, Value).assignTo("reflect.Value.Send", tt.elem, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + x = _r; + p = 0; + if (!((((x.flag & 128) >>> 0) === 0))) { + p = x.ptr; + } else { + p = ((x.$ptr_ptr || (x.$ptr_ptr = new ptrType$15(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, x)))); + } + _r$1 = chansend($clone(v, Value).pointer(), p, nb); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + selected = _r$1; + $s = -1; return selected; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.send }; } $f._r = _r; $f._r$1 = _r$1; $f.nb = nb; $f.p = p; $f.selected = selected; $f.tt = tt; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.send = function(x, nb) { return this.$val.send(x, nb); }; + Value.ptr.prototype.SetBool = function(x) { + var v, x; + v = this; + new flag(v.flag).mustBeAssignable(); + new flag(v.flag).mustBe(1); + (v.ptr).$set(x); + }; + Value.prototype.SetBool = function(x) { return this.$val.SetBool(x); }; + Value.ptr.prototype.setRunes = function(x) { + var _r, v, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBeAssignable(); + new flag(v.flag).mustBe(23); + _r = v.typ.Elem().Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!((_r === 5))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((_r === 5))) { */ case 1: + $panic(new $String("reflect.Value.setRunes of non-rune slice")); + /* } */ case 2: + (v.ptr).$set(x); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.setRunes }; } $f._r = _r; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.setRunes = function(x) { return this.$val.setRunes(x); }; + Value.ptr.prototype.SetComplex = function(x) { + var _1, k, v, x; + v = this; + new flag(v.flag).mustBeAssignable(); + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (15)) { + (v.ptr).$set((new $Complex64(x.$real, x.$imag))); + } else if (_1 === (16)) { + (v.ptr).$set(x); + } else { + $panic(new ValueError.ptr("reflect.Value.SetComplex", new flag(v.flag).kind())); + } + }; + Value.prototype.SetComplex = function(x) { return this.$val.SetComplex(x); }; + Value.ptr.prototype.SetFloat = function(x) { + var _1, k, v, x; + v = this; + new flag(v.flag).mustBeAssignable(); + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (13)) { + (v.ptr).$set(($fround(x))); + } else if (_1 === (14)) { + (v.ptr).$set(x); + } else { + $panic(new ValueError.ptr("reflect.Value.SetFloat", new flag(v.flag).kind())); + } + }; + Value.prototype.SetFloat = function(x) { return this.$val.SetFloat(x); }; + Value.ptr.prototype.SetInt = function(x) { + var _1, k, v, x; + v = this; + new flag(v.flag).mustBeAssignable(); + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (2)) { + (v.ptr).$set((((x.$low + ((x.$high >> 31) * 4294967296)) >> 0))); + } else if (_1 === (3)) { + (v.ptr).$set((((x.$low + ((x.$high >> 31) * 4294967296)) << 24 >> 24))); + } else if (_1 === (4)) { + (v.ptr).$set((((x.$low + ((x.$high >> 31) * 4294967296)) << 16 >> 16))); + } else if (_1 === (5)) { + (v.ptr).$set((((x.$low + ((x.$high >> 31) * 4294967296)) >> 0))); + } else if (_1 === (6)) { + (v.ptr).$set(x); + } else { + $panic(new ValueError.ptr("reflect.Value.SetInt", new flag(v.flag).kind())); + } + }; + Value.prototype.SetInt = function(x) { return this.$val.SetInt(x); }; + Value.ptr.prototype.SetMapIndex = function(key, val) { + var _r, _r$1, e, k, key, tt, v, val, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; e = $f.e; k = $f.k; key = $f.key; tt = $f.tt; v = $f.v; val = $f.val; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBe(21); + new flag(v.flag).mustBeExported(); + new flag(key.flag).mustBeExported(); + tt = (v.typ.kindType); + _r = $clone(key, Value).assignTo("reflect.Value.SetMapIndex", tt.key, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + key = _r; + k = 0; + if (!((((key.flag & 128) >>> 0) === 0))) { + k = key.ptr; + } else { + k = ((key.$ptr_ptr || (key.$ptr_ptr = new ptrType$15(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, key)))); + } + if (val.typ === ptrType$1.nil) { + mapdelete(v.typ, $clone(v, Value).pointer(), k); + $s = -1; return; + } + new flag(val.flag).mustBeExported(); + _r$1 = $clone(val, Value).assignTo("reflect.Value.SetMapIndex", tt.elem, 0); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + val = _r$1; + e = 0; + if (!((((val.flag & 128) >>> 0) === 0))) { + e = val.ptr; + } else { + e = ((val.$ptr_ptr || (val.$ptr_ptr = new ptrType$15(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, val)))); + } + $r = mapassign(v.typ, $clone(v, Value).pointer(), k, e); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.SetMapIndex }; } $f._r = _r; $f._r$1 = _r$1; $f.e = e; $f.k = k; $f.key = key; $f.tt = tt; $f.v = v; $f.val = val; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.SetMapIndex = function(key, val) { return this.$val.SetMapIndex(key, val); }; + Value.ptr.prototype.SetUint = function(x) { + var _1, k, v, x; + v = this; + new flag(v.flag).mustBeAssignable(); + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (7)) { + (v.ptr).$set(((x.$low >>> 0))); + } else if (_1 === (8)) { + (v.ptr).$set(((x.$low << 24 >>> 24))); + } else if (_1 === (9)) { + (v.ptr).$set(((x.$low << 16 >>> 16))); + } else if (_1 === (10)) { + (v.ptr).$set(((x.$low >>> 0))); + } else if (_1 === (11)) { + (v.ptr).$set(x); + } else if (_1 === (12)) { + (v.ptr).$set(((x.$low >>> 0))); + } else { + $panic(new ValueError.ptr("reflect.Value.SetUint", new flag(v.flag).kind())); + } + }; + Value.prototype.SetUint = function(x) { return this.$val.SetUint(x); }; + Value.ptr.prototype.SetPointer = function(x) { + var v, x; + v = this; + new flag(v.flag).mustBeAssignable(); + new flag(v.flag).mustBe(26); + (v.ptr).$set(x); + }; + Value.prototype.SetPointer = function(x) { return this.$val.SetPointer(x); }; + Value.ptr.prototype.SetString = function(x) { + var v, x; + v = this; + new flag(v.flag).mustBeAssignable(); + new flag(v.flag).mustBe(24); + (v.ptr).$set(x); + }; + Value.prototype.SetString = function(x) { return this.$val.SetString(x); }; + Value.ptr.prototype.String = function() { + var _1, _r, k, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; k = $f.k; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (0)) { + $s = -1; return ""; + } else if (_1 === (24)) { + $s = -1; return (v.ptr).$get(); + } + _r = $clone(v, Value).Type().String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return "<" + _r + " Value>"; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.String }; } $f._1 = _1; $f._r = _r; $f.k = k; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.String = function() { return this.$val.String(); }; + Value.ptr.prototype.TryRecv = function() { + var _r, _tuple, ok, v, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; ok = $f.ok; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + x = new Value.ptr(ptrType$1.nil, 0, 0); + ok = false; + v = this; + new flag(v.flag).mustBe(18); + new flag(v.flag).mustBeExported(); + _r = $clone(v, Value).recv(true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + x = _tuple[0]; + ok = _tuple[1]; + $s = -1; return [x, ok]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.TryRecv }; } $f._r = _r; $f._tuple = _tuple; $f.ok = ok; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.TryRecv = function() { return this.$val.TryRecv(); }; + Value.ptr.prototype.TrySend = function(x) { + var _r, v, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBe(18); + new flag(v.flag).mustBeExported(); + _r = $clone(v, Value).send($clone(x, Value), true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.TrySend }; } $f._r = _r; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.TrySend = function(x) { return this.$val.TrySend(x); }; + Value.ptr.prototype.Type = function() { + var f, i, m, m$1, ms, tt, v, x; + v = this; + f = v.flag; + if (f === 0) { + $panic(new ValueError.ptr("reflect.Value.Type", 0)); + } + if (((f & 512) >>> 0) === 0) { + return v.typ; + } + i = ((v.flag >> 0)) >> 10 >> 0; + if (v.typ.Kind() === 20) { + tt = (v.typ.kindType); + if (((i >>> 0)) >= ((tt.methods.$length >>> 0))) { + $panic(new $String("reflect: internal error: invalid method index")); + } + m = (x = tt.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + return v.typ.typeOff(m.typ); + } + ms = v.typ.exportedMethods(); + if (((i >>> 0)) >= ((ms.$length >>> 0))) { + $panic(new $String("reflect: internal error: invalid method index")); + } + m$1 = $clone(((i < 0 || i >= ms.$length) ? ($throwRuntimeError("index out of range"), undefined) : ms.$array[ms.$offset + i]), method); + return v.typ.typeOff(m$1.mtyp); + }; + Value.prototype.Type = function() { return this.$val.Type(); }; + Value.ptr.prototype.Uint = function() { + var _1, k, p, v, x; + v = this; + k = new flag(v.flag).kind(); + p = v.ptr; + _1 = k; + if (_1 === (7)) { + return (new $Uint64(0, (p).$get())); + } else if (_1 === (8)) { + return (new $Uint64(0, (p).$get())); + } else if (_1 === (9)) { + return (new $Uint64(0, (p).$get())); + } else if (_1 === (10)) { + return (new $Uint64(0, (p).$get())); + } else if (_1 === (11)) { + return (p).$get(); + } else if (_1 === (12)) { + return ((x = (p).$get(), new $Uint64(0, x.constructor === Number ? x : 1))); + } + $panic(new ValueError.ptr("reflect.Value.Uint", new flag(v.flag).kind())); + }; + Value.prototype.Uint = function() { return this.$val.Uint(); }; + Value.ptr.prototype.UnsafeAddr = function() { + var v; + v = this; + if (v.typ === ptrType$1.nil) { + $panic(new ValueError.ptr("reflect.Value.UnsafeAddr", 0)); + } + if (((v.flag & 256) >>> 0) === 0) { + $panic(new $String("reflect.Value.UnsafeAddr of unaddressable value")); + } + return (v.ptr); + }; + Value.prototype.UnsafeAddr = function() { return this.$val.UnsafeAddr(); }; + New = function(typ) { + var fl, ptr, t, typ; + if ($interfaceIsEqual(typ, $ifaceNil)) { + $panic(new $String("reflect: New(nil)")); + } + t = $assertType(typ, ptrType$1); + ptr = unsafe_New(t); + fl = 22; + return new Value.ptr(t.ptrTo(), ptr, fl); + }; + $pkg.New = New; + Value.ptr.prototype.Convert = function(t) { + var _r, _r$1, _r$2, _r$3, _r$4, op, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; op = $f.op; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + /* */ if (!((((v.flag & 512) >>> 0) === 0))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((((v.flag & 512) >>> 0) === 0))) { */ case 1: + _r = makeMethodValue("Convert", $clone(v, Value)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + v = _r; + /* } */ case 2: + _r$1 = t.common(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = convertOp(_r$1, v.typ); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + op = _r$2; + /* */ if (op === $throwNilPointerError) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (op === $throwNilPointerError) { */ case 6: + _r$3 = t.String(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $panic(new $String("reflect.Value.Convert: value of type " + v.typ.String() + " cannot be converted to type " + _r$3)); + /* } */ case 7: + _r$4 = op($clone(v, Value), t); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $s = -1; return _r$4; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Convert }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f.op = op; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.Convert = function(t) { return this.$val.Convert(t); }; + convertOp = function(dst, src) { + var _1, _2, _3, _4, _5, _6, _7, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _v, _v$1, _v$2, dst, src, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _2 = $f._2; _3 = $f._3; _4 = $f._4; _5 = $f._5; _6 = $f._6; _7 = $f._7; _arg = $f._arg; _arg$1 = $f._arg$1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _v = $f._v; _v$1 = $f._v$1; _v$2 = $f._v$2; dst = $f.dst; src = $f.src; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _1 = src.Kind(); + /* */ if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { $s = 2; continue; } + /* */ if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { $s = 3; continue; } + /* */ if ((_1 === (13)) || (_1 === (14))) { $s = 4; continue; } + /* */ if ((_1 === (15)) || (_1 === (16))) { $s = 5; continue; } + /* */ if (_1 === (24)) { $s = 6; continue; } + /* */ if (_1 === (23)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { */ case 2: + _2 = dst.Kind(); + if ((_2 === (2)) || (_2 === (3)) || (_2 === (4)) || (_2 === (5)) || (_2 === (6)) || (_2 === (7)) || (_2 === (8)) || (_2 === (9)) || (_2 === (10)) || (_2 === (11)) || (_2 === (12))) { + $s = -1; return cvtInt; + } else if ((_2 === (13)) || (_2 === (14))) { + $s = -1; return cvtIntFloat; + } else if (_2 === (24)) { + $s = -1; return cvtIntString; + } + $s = 8; continue; + /* } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { */ case 3: + _3 = dst.Kind(); + if ((_3 === (2)) || (_3 === (3)) || (_3 === (4)) || (_3 === (5)) || (_3 === (6)) || (_3 === (7)) || (_3 === (8)) || (_3 === (9)) || (_3 === (10)) || (_3 === (11)) || (_3 === (12))) { + $s = -1; return cvtUint; + } else if ((_3 === (13)) || (_3 === (14))) { + $s = -1; return cvtUintFloat; + } else if (_3 === (24)) { + $s = -1; return cvtUintString; + } + $s = 8; continue; + /* } else if ((_1 === (13)) || (_1 === (14))) { */ case 4: + _4 = dst.Kind(); + if ((_4 === (2)) || (_4 === (3)) || (_4 === (4)) || (_4 === (5)) || (_4 === (6))) { + $s = -1; return cvtFloatInt; + } else if ((_4 === (7)) || (_4 === (8)) || (_4 === (9)) || (_4 === (10)) || (_4 === (11)) || (_4 === (12))) { + $s = -1; return cvtFloatUint; + } else if ((_4 === (13)) || (_4 === (14))) { + $s = -1; return cvtFloat; + } + $s = 8; continue; + /* } else if ((_1 === (15)) || (_1 === (16))) { */ case 5: + _5 = dst.Kind(); + if ((_5 === (15)) || (_5 === (16))) { + $s = -1; return cvtComplex; + } + $s = 8; continue; + /* } else if (_1 === (24)) { */ case 6: + if (!(dst.Kind() === 23)) { _v = false; $s = 11; continue s; } + _r = dst.Elem().PkgPath(); /* */ $s = 12; case 12: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r === ""; case 11: + /* */ if (_v) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (_v) { */ case 9: + _r$1 = dst.Elem().Kind(); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _6 = _r$1; + if (_6 === (8)) { + $s = -1; return cvtStringBytes; + } else if (_6 === (5)) { + $s = -1; return cvtStringRunes; + } + case 13: + /* } */ case 10: + $s = 8; continue; + /* } else if (_1 === (23)) { */ case 7: + if (!(dst.Kind() === 24)) { _v$1 = false; $s = 17; continue s; } + _r$2 = src.Elem().PkgPath(); /* */ $s = 18; case 18: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v$1 = _r$2 === ""; case 17: + /* */ if (_v$1) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (_v$1) { */ case 15: + _r$3 = src.Elem().Kind(); /* */ $s = 20; case 20: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _7 = _r$3; + if (_7 === (8)) { + $s = -1; return cvtBytesString; + } else if (_7 === (5)) { + $s = -1; return cvtRunesString; + } + case 19: + /* } */ case 16: + /* } */ case 8: + case 1: + _r$4 = haveIdenticalUnderlyingType(dst, src, false); /* */ $s = 23; case 23: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (_r$4) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (_r$4) { */ case 21: + $s = -1; return cvtDirect; + /* } */ case 22: + if (!((dst.Kind() === 22) && dst.Name() === "" && (src.Kind() === 22) && src.Name() === "")) { _v$2 = false; $s = 26; continue s; } + _r$5 = dst.Elem().common(); /* */ $s = 27; case 27: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _arg = _r$5; + _r$6 = src.Elem().common(); /* */ $s = 28; case 28: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _arg$1 = _r$6; + _r$7 = haveIdenticalUnderlyingType(_arg, _arg$1, false); /* */ $s = 29; case 29: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _v$2 = _r$7; case 26: + /* */ if (_v$2) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if (_v$2) { */ case 24: + $s = -1; return cvtDirect; + /* } */ case 25: + if (implements$1(dst, src)) { + if (src.Kind() === 20) { + $s = -1; return cvtI2I; + } + $s = -1; return cvtT2I; + } + $s = -1; return $throwNilPointerError; + /* */ } return; } if ($f === undefined) { $f = { $blk: convertOp }; } $f._1 = _1; $f._2 = _2; $f._3 = _3; $f._4 = _4; $f._5 = _5; $f._6 = _6; $f._7 = _7; $f._arg = _arg; $f._arg$1 = _arg$1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._v = _v; $f._v$1 = _v$1; $f._v$2 = _v$2; $f.dst = dst; $f.src = src; $f.$s = $s; $f.$r = $r; return $f; + }; + makeFloat = function(f, v, t) { + var _1, _r, f, ptr, t, typ, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; f = $f.f; ptr = $f.ptr; t = $f.t; typ = $f.typ; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = t.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + typ = _r; + ptr = unsafe_New(typ); + _1 = typ.size; + if (_1 === (4)) { + (ptr).$set(($fround(v))); + } else if (_1 === (8)) { + (ptr).$set(v); + } + $s = -1; return new Value.ptr(typ, ptr, (((f | 128) >>> 0) | ((typ.Kind() >>> 0))) >>> 0); + /* */ } return; } if ($f === undefined) { $f = { $blk: makeFloat }; } $f._1 = _1; $f._r = _r; $f.f = f; $f.ptr = ptr; $f.t = t; $f.typ = typ; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + makeComplex = function(f, v, t) { + var _1, _r, f, ptr, t, typ, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; f = $f.f; ptr = $f.ptr; t = $f.t; typ = $f.typ; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = t.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + typ = _r; + ptr = unsafe_New(typ); + _1 = typ.size; + if (_1 === (8)) { + (ptr).$set((new $Complex64(v.$real, v.$imag))); + } else if (_1 === (16)) { + (ptr).$set(v); + } + $s = -1; return new Value.ptr(typ, ptr, (((f | 128) >>> 0) | ((typ.Kind() >>> 0))) >>> 0); + /* */ } return; } if ($f === undefined) { $f = { $blk: makeComplex }; } $f._1 = _1; $f._r = _r; $f.f = f; $f.ptr = ptr; $f.t = t; $f.typ = typ; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + makeString = function(f, v, t) { + var _r, f, ret, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; f = $f.f; ret = $f.ret; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = $clone(New(t), Value).Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + ret = _r; + $clone(ret, Value).SetString(v); + ret.flag = (((ret.flag & ~256) >>> 0) | f) >>> 0; + $s = -1; return ret; + /* */ } return; } if ($f === undefined) { $f = { $blk: makeString }; } $f._r = _r; $f.f = f; $f.ret = ret; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + makeBytes = function(f, v, t) { + var _r, f, ret, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; f = $f.f; ret = $f.ret; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = $clone(New(t), Value).Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + ret = _r; + $r = $clone(ret, Value).SetBytes(v); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + ret.flag = (((ret.flag & ~256) >>> 0) | f) >>> 0; + $s = -1; return ret; + /* */ } return; } if ($f === undefined) { $f = { $blk: makeBytes }; } $f._r = _r; $f.f = f; $f.ret = ret; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + makeRunes = function(f, v, t) { + var _r, f, ret, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; f = $f.f; ret = $f.ret; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = $clone(New(t), Value).Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + ret = _r; + $r = $clone(ret, Value).setRunes(v); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + ret.flag = (((ret.flag & ~256) >>> 0) | f) >>> 0; + $s = -1; return ret; + /* */ } return; } if ($f === undefined) { $f = { $blk: makeRunes }; } $f._r = _r; $f.f = f; $f.ret = ret; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + cvtInt = function(v, t) { + var _r, t, v, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = makeInt(new flag(v.flag).ro(), ((x = $clone(v, Value).Int(), new $Uint64(x.$high, x.$low))), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtInt }; } $f._r = _r; $f.t = t; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + cvtUint = function(v, t) { + var _r, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = makeInt(new flag(v.flag).ro(), $clone(v, Value).Uint(), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtUint }; } $f._r = _r; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + cvtFloatInt = function(v, t) { + var _r, t, v, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = makeInt(new flag(v.flag).ro(), ((x = (new $Int64(0, $clone(v, Value).Float())), new $Uint64(x.$high, x.$low))), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtFloatInt }; } $f._r = _r; $f.t = t; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + cvtFloatUint = function(v, t) { + var _r, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = makeInt(new flag(v.flag).ro(), (new $Uint64(0, $clone(v, Value).Float())), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtFloatUint }; } $f._r = _r; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + cvtIntFloat = function(v, t) { + var _r, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = makeFloat(new flag(v.flag).ro(), ($flatten64($clone(v, Value).Int())), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtIntFloat }; } $f._r = _r; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + cvtUintFloat = function(v, t) { + var _r, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = makeFloat(new flag(v.flag).ro(), ($flatten64($clone(v, Value).Uint())), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtUintFloat }; } $f._r = _r; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + cvtFloat = function(v, t) { + var _r, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = makeFloat(new flag(v.flag).ro(), $clone(v, Value).Float(), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtFloat }; } $f._r = _r; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + cvtComplex = function(v, t) { + var _r, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = makeComplex(new flag(v.flag).ro(), $clone(v, Value).Complex(), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtComplex }; } $f._r = _r; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + cvtIntString = function(v, t) { + var _r, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = makeString(new flag(v.flag).ro(), ($encodeRune($clone(v, Value).Int().$low)), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtIntString }; } $f._r = _r; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + cvtUintString = function(v, t) { + var _r, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = makeString(new flag(v.flag).ro(), ($encodeRune($clone(v, Value).Uint().$low)), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtUintString }; } $f._r = _r; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + cvtBytesString = function(v, t) { + var _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _arg = new flag(v.flag).ro(); + _r = $clone(v, Value).Bytes(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = ($bytesToString(_r)); + _arg$2 = t; + _r$1 = makeString(_arg, _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return _r$1; + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtBytesString }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + cvtStringBytes = function(v, t) { + var _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _arg = new flag(v.flag).ro(); + _r = $clone(v, Value).String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = (new sliceType$15($stringToBytes(_r))); + _arg$2 = t; + _r$1 = makeBytes(_arg, _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return _r$1; + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtStringBytes }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + cvtRunesString = function(v, t) { + var _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _arg = new flag(v.flag).ro(); + _r = $clone(v, Value).runes(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = ($runesToString(_r)); + _arg$2 = t; + _r$1 = makeString(_arg, _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return _r$1; + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtRunesString }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + cvtStringRunes = function(v, t) { + var _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _arg = new flag(v.flag).ro(); + _r = $clone(v, Value).String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = (new sliceType$17($stringToRunes(_r))); + _arg$2 = t; + _r$1 = makeRunes(_arg, _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return _r$1; + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtStringRunes }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + cvtT2I = function(v, typ) { + var _r, _r$1, _r$2, _r$3, _r$4, target, typ, v, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; target = $f.target; typ = $f.typ; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = typ.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = unsafe_New(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + target = _r$1; + _r$2 = valueInterface($clone(v, Value), false); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + x = _r$2; + _r$3 = typ.NumMethod(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3 === 0) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_r$3 === 0) { */ case 4: + (target).$set(x); + $s = 6; continue; + /* } else { */ case 5: + ifaceE2I($assertType(typ, ptrType$1), x, target); + /* } */ case 6: + _r$4 = typ.common(); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $s = -1; return new Value.ptr(_r$4, target, (((new flag(v.flag).ro() | 128) >>> 0) | 20) >>> 0); + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtT2I }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f.target = target; $f.typ = typ; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + cvtI2I = function(v, typ) { + var _r, _r$1, _r$2, ret, typ, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; ret = $f.ret; typ = $f.typ; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ if ($clone(v, Value).IsNil()) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ($clone(v, Value).IsNil()) { */ case 1: + _r = Zero(typ); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + ret = _r; + ret.flag = (ret.flag | (new flag(v.flag).ro())) >>> 0; + $s = -1; return ret; + /* } */ case 2: + _r$1 = $clone(v, Value).Elem(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = cvtT2I($clone(_r$1, Value), typ); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $s = -1; return _r$2; + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtI2I }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.ret = ret; $f.typ = typ; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + ptrType$5.methods = [{prop: "methods", name: "methods", pkg: "reflect", typ: $funcType([], [sliceType$5], false)}, {prop: "exportedMethods", name: "exportedMethods", pkg: "reflect", typ: $funcType([], [sliceType$5], false)}]; + ptrType$16.methods = [{prop: "in$", name: "in", pkg: "reflect", typ: $funcType([], [sliceType$2], false)}, {prop: "out", name: "out", pkg: "reflect", typ: $funcType([], [sliceType$2], false)}]; + name.methods = [{prop: "name", name: "name", pkg: "reflect", typ: $funcType([], [$String], false)}, {prop: "tag", name: "tag", pkg: "reflect", typ: $funcType([], [$String], false)}, {prop: "pkgPath", name: "pkgPath", pkg: "reflect", typ: $funcType([], [$String], false)}, {prop: "isExported", name: "isExported", pkg: "reflect", typ: $funcType([], [$Bool], false)}, {prop: "data", name: "data", pkg: "reflect", typ: $funcType([$Int, $String], [ptrType$4], false)}, {prop: "nameLen", name: "nameLen", pkg: "reflect", typ: $funcType([], [$Int], false)}, {prop: "tagLen", name: "tagLen", pkg: "reflect", typ: $funcType([], [$Int], false)}]; + Kind.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$1.methods = [{prop: "uncommon", name: "uncommon", pkg: "reflect", typ: $funcType([], [ptrType$5], false)}, {prop: "nameOff", name: "nameOff", pkg: "reflect", typ: $funcType([nameOff], [name], false)}, {prop: "typeOff", name: "typeOff", pkg: "reflect", typ: $funcType([typeOff], [ptrType$1], false)}, {prop: "ptrTo", name: "ptrTo", pkg: "reflect", typ: $funcType([], [ptrType$1], false)}, {prop: "pointers", name: "pointers", pkg: "reflect", typ: $funcType([], [$Bool], false)}, {prop: "Comparable", name: "Comparable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Method], false)}, {prop: "textOff", name: "textOff", pkg: "reflect", typ: $funcType([textOff], [$UnsafePointer], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "Bits", name: "Bits", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Align", name: "Align", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "FieldAlign", name: "FieldAlign", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "common", name: "common", pkg: "reflect", typ: $funcType([], [ptrType$1], false)}, {prop: "exportedMethods", name: "exportedMethods", pkg: "reflect", typ: $funcType([], [sliceType$5], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Method, $Bool], false)}, {prop: "PkgPath", name: "PkgPath", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "ChanDir", name: "ChanDir", pkg: "", typ: $funcType([], [ChanDir], false)}, {prop: "IsVariadic", name: "IsVariadic", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [StructField], false)}, {prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$13], [StructField], false)}, {prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [StructField, $Bool], false)}, {prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$3], [StructField, $Bool], false)}, {prop: "In", name: "In", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "Key", name: "Key", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumField", name: "NumField", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumIn", name: "NumIn", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumOut", name: "NumOut", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Out", name: "Out", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "Implements", name: "Implements", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "AssignableTo", name: "AssignableTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "ConvertibleTo", name: "ConvertibleTo", pkg: "", typ: $funcType([Type], [$Bool], false)}]; + ChanDir.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$7.methods = [{prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Method], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Method, $Bool], false)}]; + ptrType$17.methods = [{prop: "offset", name: "offset", pkg: "reflect", typ: $funcType([], [$Uintptr], false)}, {prop: "embedded", name: "embedded", pkg: "reflect", typ: $funcType([], [$Bool], false)}]; + ptrType$9.methods = [{prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [StructField], false)}, {prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$13], [StructField], false)}, {prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$3], [StructField, $Bool], false)}, {prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [StructField, $Bool], false)}]; + StructTag.methods = [{prop: "Get", name: "Get", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "Lookup", name: "Lookup", pkg: "", typ: $funcType([$String], [$String, $Bool], false)}]; + Value.methods = [{prop: "object", name: "object", pkg: "reflect", typ: $funcType([], [ptrType$2], false)}, {prop: "assignTo", name: "assignTo", pkg: "reflect", typ: $funcType([$String, ptrType$1, $UnsafePointer], [Value], false)}, {prop: "call", name: "call", pkg: "reflect", typ: $funcType([$String, sliceType$9], [sliceType$9], false)}, {prop: "Cap", name: "Cap", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Value], false)}, {prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [Value], false)}, {prop: "Index", name: "Index", pkg: "", typ: $funcType([$Int], [Value], false)}, {prop: "InterfaceData", name: "InterfaceData", pkg: "", typ: $funcType([], [arrayType$12], false)}, {prop: "IsNil", name: "IsNil", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Pointer", name: "Pointer", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([Value], [], false)}, {prop: "SetBytes", name: "SetBytes", pkg: "", typ: $funcType([sliceType$15], [], false)}, {prop: "SetCap", name: "SetCap", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "SetLen", name: "SetLen", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Slice", name: "Slice", pkg: "", typ: $funcType([$Int, $Int], [Value], false)}, {prop: "Slice3", name: "Slice3", pkg: "", typ: $funcType([$Int, $Int, $Int], [Value], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [], false)}, {prop: "pointer", name: "pointer", pkg: "reflect", typ: $funcType([], [$UnsafePointer], false)}, {prop: "Addr", name: "Addr", pkg: "", typ: $funcType([], [Value], false)}, {prop: "Bool", name: "Bool", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType$15], false)}, {prop: "runes", name: "runes", pkg: "reflect", typ: $funcType([], [sliceType$17], false)}, {prop: "CanAddr", name: "CanAddr", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "CanSet", name: "CanSet", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Call", name: "Call", pkg: "", typ: $funcType([sliceType$9], [sliceType$9], false)}, {prop: "CallSlice", name: "CallSlice", pkg: "", typ: $funcType([sliceType$9], [sliceType$9], false)}, {prop: "Complex", name: "Complex", pkg: "", typ: $funcType([], [$Complex128], false)}, {prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$13], [Value], false)}, {prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [Value], false)}, {prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$3], [Value], false)}, {prop: "Float", name: "Float", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "Int", name: "Int", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "CanInterface", name: "CanInterface", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Interface", name: "Interface", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "IsValid", name: "IsValid", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "MapIndex", name: "MapIndex", pkg: "", typ: $funcType([Value], [Value], false)}, {prop: "MapKeys", name: "MapKeys", pkg: "", typ: $funcType([], [sliceType$9], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Value], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Value], false)}, {prop: "NumField", name: "NumField", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "OverflowComplex", name: "OverflowComplex", pkg: "", typ: $funcType([$Complex128], [$Bool], false)}, {prop: "OverflowFloat", name: "OverflowFloat", pkg: "", typ: $funcType([$Float64], [$Bool], false)}, {prop: "OverflowInt", name: "OverflowInt", pkg: "", typ: $funcType([$Int64], [$Bool], false)}, {prop: "OverflowUint", name: "OverflowUint", pkg: "", typ: $funcType([$Uint64], [$Bool], false)}, {prop: "Recv", name: "Recv", pkg: "", typ: $funcType([], [Value, $Bool], false)}, {prop: "recv", name: "recv", pkg: "reflect", typ: $funcType([$Bool], [Value, $Bool], false)}, {prop: "Send", name: "Send", pkg: "", typ: $funcType([Value], [], false)}, {prop: "send", name: "send", pkg: "reflect", typ: $funcType([Value, $Bool], [$Bool], false)}, {prop: "SetBool", name: "SetBool", pkg: "", typ: $funcType([$Bool], [], false)}, {prop: "setRunes", name: "setRunes", pkg: "reflect", typ: $funcType([sliceType$17], [], false)}, {prop: "SetComplex", name: "SetComplex", pkg: "", typ: $funcType([$Complex128], [], false)}, {prop: "SetFloat", name: "SetFloat", pkg: "", typ: $funcType([$Float64], [], false)}, {prop: "SetInt", name: "SetInt", pkg: "", typ: $funcType([$Int64], [], false)}, {prop: "SetMapIndex", name: "SetMapIndex", pkg: "", typ: $funcType([Value, Value], [], false)}, {prop: "SetUint", name: "SetUint", pkg: "", typ: $funcType([$Uint64], [], false)}, {prop: "SetPointer", name: "SetPointer", pkg: "", typ: $funcType([$UnsafePointer], [], false)}, {prop: "SetString", name: "SetString", pkg: "", typ: $funcType([$String], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "TryRecv", name: "TryRecv", pkg: "", typ: $funcType([], [Value, $Bool], false)}, {prop: "TrySend", name: "TrySend", pkg: "", typ: $funcType([Value], [$Bool], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Uint", name: "Uint", pkg: "", typ: $funcType([], [$Uint64], false)}, {prop: "UnsafeAddr", name: "UnsafeAddr", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "Convert", name: "Convert", pkg: "", typ: $funcType([Type], [Value], false)}]; + flag.methods = [{prop: "kind", name: "kind", pkg: "reflect", typ: $funcType([], [Kind], false)}, {prop: "ro", name: "ro", pkg: "reflect", typ: $funcType([], [flag], false)}, {prop: "mustBe", name: "mustBe", pkg: "reflect", typ: $funcType([Kind], [], false)}, {prop: "mustBeExported", name: "mustBeExported", pkg: "reflect", typ: $funcType([], [], false)}, {prop: "mustBeAssignable", name: "mustBeAssignable", pkg: "reflect", typ: $funcType([], [], false)}]; + ptrType$18.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + uncommonType.init("reflect", [{prop: "pkgPath", name: "pkgPath", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "mcount", name: "mcount", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "xcount", name: "xcount", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "moff", name: "moff", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "_methods", name: "_methods", embedded: false, exported: false, typ: sliceType$5, tag: ""}]); + funcType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: "reflect:\"func\""}, {prop: "inCount", name: "inCount", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "outCount", name: "outCount", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "_in", name: "_in", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "_out", name: "_out", embedded: false, exported: false, typ: sliceType$2, tag: ""}]); + name.init("reflect", [{prop: "bytes", name: "bytes", embedded: false, exported: false, typ: ptrType$4, tag: ""}]); + nameData.init("reflect", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "tag", name: "tag", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "exported", name: "exported", embedded: false, exported: false, typ: $Bool, tag: ""}]); + mapIter.init("reflect", [{prop: "t", name: "t", embedded: false, exported: false, typ: Type, tag: ""}, {prop: "m", name: "m", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "keys", name: "keys", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "i", name: "i", embedded: false, exported: false, typ: $Int, tag: ""}]); + Type.init([{prop: "Align", name: "Align", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "AssignableTo", name: "AssignableTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Bits", name: "Bits", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "ChanDir", name: "ChanDir", pkg: "", typ: $funcType([], [ChanDir], false)}, {prop: "Comparable", name: "Comparable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "ConvertibleTo", name: "ConvertibleTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [StructField], false)}, {prop: "FieldAlign", name: "FieldAlign", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$13], [StructField], false)}, {prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [StructField, $Bool], false)}, {prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$3], [StructField, $Bool], false)}, {prop: "Implements", name: "Implements", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "In", name: "In", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "IsVariadic", name: "IsVariadic", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Key", name: "Key", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Method], false)}, {prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Method, $Bool], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "NumField", name: "NumField", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumIn", name: "NumIn", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumOut", name: "NumOut", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Out", name: "Out", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "PkgPath", name: "PkgPath", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "common", name: "common", pkg: "reflect", typ: $funcType([], [ptrType$1], false)}, {prop: "uncommon", name: "uncommon", pkg: "reflect", typ: $funcType([], [ptrType$5], false)}]); + rtype.init("reflect", [{prop: "size", name: "size", embedded: false, exported: false, typ: $Uintptr, tag: ""}, {prop: "ptrdata", name: "ptrdata", embedded: false, exported: false, typ: $Uintptr, tag: ""}, {prop: "hash", name: "hash", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "tflag", name: "tflag", embedded: false, exported: false, typ: tflag, tag: ""}, {prop: "align", name: "align", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "fieldAlign", name: "fieldAlign", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "kind", name: "kind", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "alg", name: "alg", embedded: false, exported: false, typ: ptrType$3, tag: ""}, {prop: "gcdata", name: "gcdata", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "str", name: "str", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "ptrToThis", name: "ptrToThis", embedded: false, exported: false, typ: typeOff, tag: ""}]); + typeAlg.init("reflect", [{prop: "hash", name: "hash", embedded: false, exported: false, typ: funcType$4, tag: ""}, {prop: "equal", name: "equal", embedded: false, exported: false, typ: funcType$5, tag: ""}]); + method.init("reflect", [{prop: "name", name: "name", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "mtyp", name: "mtyp", embedded: false, exported: false, typ: typeOff, tag: ""}, {prop: "ifn", name: "ifn", embedded: false, exported: false, typ: textOff, tag: ""}, {prop: "tfn", name: "tfn", embedded: false, exported: false, typ: textOff, tag: ""}]); + arrayType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "slice", name: "slice", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "len", name: "len", embedded: false, exported: false, typ: $Uintptr, tag: ""}]); + chanType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "dir", name: "dir", embedded: false, exported: false, typ: $Uintptr, tag: ""}]); + imethod.init("reflect", [{prop: "name", name: "name", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: typeOff, tag: ""}]); + interfaceType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "pkgPath", name: "pkgPath", embedded: false, exported: false, typ: name, tag: ""}, {prop: "methods", name: "methods", embedded: false, exported: false, typ: sliceType$6, tag: ""}]); + mapType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "key", name: "key", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "bucket", name: "bucket", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "keysize", name: "keysize", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "indirectkey", name: "indirectkey", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "valuesize", name: "valuesize", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "indirectvalue", name: "indirectvalue", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "bucketsize", name: "bucketsize", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "reflexivekey", name: "reflexivekey", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "needkeyupdate", name: "needkeyupdate", embedded: false, exported: false, typ: $Bool, tag: ""}]); + ptrType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}]); + sliceType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}]); + structField.init("reflect", [{prop: "name", name: "name", embedded: false, exported: false, typ: name, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "offsetEmbed", name: "offsetEmbed", embedded: false, exported: false, typ: $Uintptr, tag: ""}]); + structType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "pkgPath", name: "pkgPath", embedded: false, exported: false, typ: name, tag: ""}, {prop: "fields", name: "fields", embedded: false, exported: false, typ: sliceType$7, tag: ""}]); + Method.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "PkgPath", name: "PkgPath", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: Type, tag: ""}, {prop: "Func", name: "Func", embedded: false, exported: true, typ: Value, tag: ""}, {prop: "Index", name: "Index", embedded: false, exported: true, typ: $Int, tag: ""}]); + StructField.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "PkgPath", name: "PkgPath", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: Type, tag: ""}, {prop: "Tag", name: "Tag", embedded: false, exported: true, typ: StructTag, tag: ""}, {prop: "Offset", name: "Offset", embedded: false, exported: true, typ: $Uintptr, tag: ""}, {prop: "Index", name: "Index", embedded: false, exported: true, typ: sliceType$13, tag: ""}, {prop: "Anonymous", name: "Anonymous", embedded: false, exported: true, typ: $Bool, tag: ""}]); + fieldScan.init("reflect", [{prop: "typ", name: "typ", embedded: false, exported: false, typ: ptrType$9, tag: ""}, {prop: "index", name: "index", embedded: false, exported: false, typ: sliceType$13, tag: ""}]); + Value.init("reflect", [{prop: "typ", name: "typ", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "ptr", name: "ptr", embedded: false, exported: false, typ: $UnsafePointer, tag: ""}, {prop: "flag", name: "flag", embedded: true, exported: false, typ: flag, tag: ""}]); + ValueError.init("", [{prop: "Method", name: "Method", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Kind", name: "Kind", embedded: false, exported: true, typ: Kind, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = js.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = math.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sync.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = unicode.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + nameOffList = sliceType$1.nil; + typeOffList = sliceType$2.nil; + initialized = false; + uncommonTypeMap = {}; + nameMap = {}; + callHelper = $assertType($internalize($call, $emptyInterface), funcType$1); + selectHelper = $assertType($internalize($select, $emptyInterface), funcType$1); + jsObjectPtr = reflectType($jsObjectPtr); + kindNames = new sliceType$4(["invalid", "bool", "int", "int8", "int16", "int32", "int64", "uint", "uint8", "uint16", "uint32", "uint64", "uintptr", "float32", "float64", "complex64", "complex128", "array", "chan", "func", "interface", "map", "ptr", "slice", "string", "struct", "unsafe.Pointer"]); + uint8Type = $assertType(TypeOf(new $Uint8(0)), ptrType$1); + $r = init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["encoding/binary"] = (function() { + var $pkg = {}, $init, errors, io, math, reflect, bigEndian, sliceType, overflow; + errors = $packages["errors"]; + io = $packages["io"]; + math = $packages["math"]; + reflect = $packages["reflect"]; + bigEndian = $pkg.bigEndian = $newType(0, $kindStruct, "binary.bigEndian", true, "encoding/binary", false, function() { + this.$val = this; + if (arguments.length === 0) { + return; + } + }); + sliceType = $sliceType($Uint8); + bigEndian.ptr.prototype.Uint16 = function(b) { + var b; + $unused((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1])); + return ((((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]) << 16 >>> 16)) | ((((0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]) << 16 >>> 16)) << 8 << 16 >>> 16)) >>> 0; + }; + bigEndian.prototype.Uint16 = function(b) { return this.$val.Uint16(b); }; + bigEndian.ptr.prototype.PutUint16 = function(b, v) { + var b, v; + $unused((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1])); + (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0] = (((v >>> 8 << 16 >>> 16) << 24 >>> 24))); + (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1] = ((v << 24 >>> 24))); + }; + bigEndian.prototype.PutUint16 = function(b, v) { return this.$val.PutUint16(b, v); }; + bigEndian.ptr.prototype.Uint32 = function(b) { + var b; + $unused((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3])); + return ((((((((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]) >>> 0)) | ((((2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]) >>> 0)) << 8 >>> 0)) >>> 0) | ((((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]) >>> 0)) << 16 >>> 0)) >>> 0) | ((((0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]) >>> 0)) << 24 >>> 0)) >>> 0; + }; + bigEndian.prototype.Uint32 = function(b) { return this.$val.Uint32(b); }; + bigEndian.ptr.prototype.PutUint32 = function(b, v) { + var b, v; + $unused((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3])); + (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0] = (((v >>> 24 >>> 0) << 24 >>> 24))); + (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1] = (((v >>> 16 >>> 0) << 24 >>> 24))); + (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2] = (((v >>> 8 >>> 0) << 24 >>> 24))); + (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3] = ((v << 24 >>> 24))); + }; + bigEndian.prototype.PutUint32 = function(b, v) { return this.$val.PutUint32(b, v); }; + bigEndian.ptr.prototype.Uint64 = function(b) { + var b, x, x$1, x$10, x$11, x$12, x$13, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + $unused((7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7])); + return (x = (x$1 = (x$2 = (x$3 = (x$4 = (x$5 = (x$6 = (new $Uint64(0, (7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7]))), x$7 = $shiftLeft64((new $Uint64(0, (6 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 6]))), 8), new $Uint64(x$6.$high | x$7.$high, (x$6.$low | x$7.$low) >>> 0)), x$8 = $shiftLeft64((new $Uint64(0, (5 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 5]))), 16), new $Uint64(x$5.$high | x$8.$high, (x$5.$low | x$8.$low) >>> 0)), x$9 = $shiftLeft64((new $Uint64(0, (4 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 4]))), 24), new $Uint64(x$4.$high | x$9.$high, (x$4.$low | x$9.$low) >>> 0)), x$10 = $shiftLeft64((new $Uint64(0, (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]))), 32), new $Uint64(x$3.$high | x$10.$high, (x$3.$low | x$10.$low) >>> 0)), x$11 = $shiftLeft64((new $Uint64(0, (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]))), 40), new $Uint64(x$2.$high | x$11.$high, (x$2.$low | x$11.$low) >>> 0)), x$12 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 48), new $Uint64(x$1.$high | x$12.$high, (x$1.$low | x$12.$low) >>> 0)), x$13 = $shiftLeft64((new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), 56), new $Uint64(x.$high | x$13.$high, (x.$low | x$13.$low) >>> 0)); + }; + bigEndian.prototype.Uint64 = function(b) { return this.$val.Uint64(b); }; + bigEndian.ptr.prototype.PutUint64 = function(b, v) { + var b, v; + $unused((7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7])); + (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0] = (($shiftRightUint64(v, 56).$low << 24 >>> 24))); + (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1] = (($shiftRightUint64(v, 48).$low << 24 >>> 24))); + (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2] = (($shiftRightUint64(v, 40).$low << 24 >>> 24))); + (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3] = (($shiftRightUint64(v, 32).$low << 24 >>> 24))); + (4 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 4] = (($shiftRightUint64(v, 24).$low << 24 >>> 24))); + (5 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 5] = (($shiftRightUint64(v, 16).$low << 24 >>> 24))); + (6 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 6] = (($shiftRightUint64(v, 8).$low << 24 >>> 24))); + (7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7] = ((v.$low << 24 >>> 24))); + }; + bigEndian.prototype.PutUint64 = function(b, v) { return this.$val.PutUint64(b, v); }; + bigEndian.ptr.prototype.String = function() { + return "BigEndian"; + }; + bigEndian.prototype.String = function() { return this.$val.String(); }; + bigEndian.ptr.prototype.GoString = function() { + return "binary.BigEndian"; + }; + bigEndian.prototype.GoString = function() { return this.$val.GoString(); }; + bigEndian.methods = [{prop: "Uint16", name: "Uint16", pkg: "", typ: $funcType([sliceType], [$Uint16], false)}, {prop: "PutUint16", name: "PutUint16", pkg: "", typ: $funcType([sliceType, $Uint16], [], false)}, {prop: "Uint32", name: "Uint32", pkg: "", typ: $funcType([sliceType], [$Uint32], false)}, {prop: "PutUint32", name: "PutUint32", pkg: "", typ: $funcType([sliceType, $Uint32], [], false)}, {prop: "Uint64", name: "Uint64", pkg: "", typ: $funcType([sliceType], [$Uint64], false)}, {prop: "PutUint64", name: "PutUint64", pkg: "", typ: $funcType([sliceType, $Uint64], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GoString", name: "GoString", pkg: "", typ: $funcType([], [$String], false)}]; + bigEndian.init("", []); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = math.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = reflect.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.BigEndian = new bigEndian.ptr(); + overflow = errors.New("binary: varint overflows a 64-bit integer"); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["encoding/base64"] = (function() { + var $pkg = {}, $init, binary, io, strconv, Encoding, CorruptInputError, arrayType, arrayType$1, sliceType, ptrType, arrayType$4, NewEncoding; + binary = $packages["encoding/binary"]; + io = $packages["io"]; + strconv = $packages["strconv"]; + Encoding = $pkg.Encoding = $newType(0, $kindStruct, "base64.Encoding", true, "encoding/base64", true, function(encode_, decodeMap_, padChar_, strict_) { + this.$val = this; + if (arguments.length === 0) { + this.encode = arrayType.zero(); + this.decodeMap = arrayType$1.zero(); + this.padChar = 0; + this.strict = false; + return; + } + this.encode = encode_; + this.decodeMap = decodeMap_; + this.padChar = padChar_; + this.strict = strict_; + }); + CorruptInputError = $pkg.CorruptInputError = $newType(8, $kindInt64, "base64.CorruptInputError", true, "encoding/base64", true, null); + arrayType = $arrayType($Uint8, 64); + arrayType$1 = $arrayType($Uint8, 256); + sliceType = $sliceType($Uint8); + ptrType = $ptrType(Encoding); + arrayType$4 = $arrayType($Uint8, 4); + NewEncoding = function(encoder$1) { + var e, encoder$1, i, i$1, i$2, x, x$1, x$2; + if (!((encoder$1.length === 64))) { + $panic(new $String("encoding alphabet is not 64-bytes long")); + } + i = 0; + while (true) { + if (!(i < encoder$1.length)) { break; } + if ((encoder$1.charCodeAt(i) === 10) || (encoder$1.charCodeAt(i) === 13)) { + $panic(new $String("encoding alphabet contains newline character")); + } + i = i + (1) >> 0; + } + e = new Encoding.ptr(arrayType.zero(), arrayType$1.zero(), 0, false); + e.padChar = 61; + $copyString(new sliceType(e.encode), encoder$1); + i$1 = 0; + while (true) { + if (!(i$1 < 256)) { break; } + (x = e.decodeMap, ((i$1 < 0 || i$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i$1] = 255)); + i$1 = i$1 + (1) >> 0; + } + i$2 = 0; + while (true) { + if (!(i$2 < encoder$1.length)) { break; } + (x$1 = e.decodeMap, x$2 = encoder$1.charCodeAt(i$2), ((x$2 < 0 || x$2 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[x$2] = ((i$2 << 24 >>> 24)))); + i$2 = i$2 + (1) >> 0; + } + return e; + }; + $pkg.NewEncoding = NewEncoding; + Encoding.ptr.prototype.WithPadding = function(padding) { + var enc, i, padding, x; + enc = this; + if ((padding === 13) || (padding === 10) || padding > 255) { + $panic(new $String("invalid padding")); + } + i = 0; + while (true) { + if (!(i < 64)) { break; } + if ((((x = enc.encode, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i])) >> 0)) === padding) { + $panic(new $String("padding contained in alphabet")); + } + i = i + (1) >> 0; + } + enc.padChar = padding; + return enc; + }; + Encoding.prototype.WithPadding = function(padding) { return this.$val.WithPadding(padding); }; + Encoding.ptr.prototype.Strict = function() { + var enc; + enc = this; + enc.strict = true; + return enc; + }; + Encoding.prototype.Strict = function() { return this.$val.Strict(); }; + Encoding.ptr.prototype.Encode = function(dst, src) { + var _1, _q, _tmp, _tmp$1, di, dst, enc, n, remain, si, src, val, val$1, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$25, x$26, x$27, x$28, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + enc = this; + if (src.$length === 0) { + return; + } + _tmp = 0; + _tmp$1 = 0; + di = _tmp; + si = _tmp$1; + n = $imul(((_q = src.$length / 3, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))), 3); + while (true) { + if (!(si < n)) { break; } + val = (((((((x = si + 0 >> 0, ((x < 0 || x >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x])) >>> 0)) << 16 >>> 0) | ((((x$1 = si + 1 >> 0, ((x$1 < 0 || x$1 >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x$1])) >>> 0)) << 8 >>> 0)) >>> 0) | (((x$2 = si + 2 >> 0, ((x$2 < 0 || x$2 >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x$2])) >>> 0))) >>> 0; + (x$5 = di + 0 >> 0, ((x$5 < 0 || x$5 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$5] = (x$3 = enc.encode, x$4 = ((val >>> 18 >>> 0) & 63) >>> 0, ((x$4 < 0 || x$4 >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[x$4])))); + (x$8 = di + 1 >> 0, ((x$8 < 0 || x$8 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$8] = (x$6 = enc.encode, x$7 = ((val >>> 12 >>> 0) & 63) >>> 0, ((x$7 < 0 || x$7 >= x$6.length) ? ($throwRuntimeError("index out of range"), undefined) : x$6[x$7])))); + (x$11 = di + 2 >> 0, ((x$11 < 0 || x$11 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$11] = (x$9 = enc.encode, x$10 = ((val >>> 6 >>> 0) & 63) >>> 0, ((x$10 < 0 || x$10 >= x$9.length) ? ($throwRuntimeError("index out of range"), undefined) : x$9[x$10])))); + (x$14 = di + 3 >> 0, ((x$14 < 0 || x$14 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$14] = (x$12 = enc.encode, x$13 = (val & 63) >>> 0, ((x$13 < 0 || x$13 >= x$12.length) ? ($throwRuntimeError("index out of range"), undefined) : x$12[x$13])))); + si = si + (3) >> 0; + di = di + (4) >> 0; + } + remain = src.$length - si >> 0; + if (remain === 0) { + return; + } + val$1 = (((x$15 = si + 0 >> 0, ((x$15 < 0 || x$15 >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x$15])) >>> 0)) << 16 >>> 0; + if (remain === 2) { + val$1 = (val$1 | (((((x$16 = si + 1 >> 0, ((x$16 < 0 || x$16 >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x$16])) >>> 0)) << 8 >>> 0))) >>> 0; + } + (x$19 = di + 0 >> 0, ((x$19 < 0 || x$19 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$19] = (x$17 = enc.encode, x$18 = ((val$1 >>> 18 >>> 0) & 63) >>> 0, ((x$18 < 0 || x$18 >= x$17.length) ? ($throwRuntimeError("index out of range"), undefined) : x$17[x$18])))); + (x$22 = di + 1 >> 0, ((x$22 < 0 || x$22 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$22] = (x$20 = enc.encode, x$21 = ((val$1 >>> 12 >>> 0) & 63) >>> 0, ((x$21 < 0 || x$21 >= x$20.length) ? ($throwRuntimeError("index out of range"), undefined) : x$20[x$21])))); + _1 = remain; + if (_1 === (2)) { + (x$25 = di + 2 >> 0, ((x$25 < 0 || x$25 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$25] = (x$23 = enc.encode, x$24 = ((val$1 >>> 6 >>> 0) & 63) >>> 0, ((x$24 < 0 || x$24 >= x$23.length) ? ($throwRuntimeError("index out of range"), undefined) : x$23[x$24])))); + if (!((enc.padChar === -1))) { + (x$26 = di + 3 >> 0, ((x$26 < 0 || x$26 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$26] = ((enc.padChar << 24 >>> 24)))); + } + } else if (_1 === (1)) { + if (!((enc.padChar === -1))) { + (x$27 = di + 2 >> 0, ((x$27 < 0 || x$27 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$27] = ((enc.padChar << 24 >>> 24)))); + (x$28 = di + 3 >> 0, ((x$28 < 0 || x$28 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$28] = ((enc.padChar << 24 >>> 24)))); + } + } + }; + Encoding.prototype.Encode = function(dst, src) { return this.$val.Encode(dst, src); }; + Encoding.ptr.prototype.EncodeToString = function(src) { + var buf, enc, src; + enc = this; + buf = $makeSlice(sliceType, enc.EncodedLen(src.$length)); + enc.Encode(buf, src); + return ($bytesToString(buf)); + }; + Encoding.prototype.EncodeToString = function(src) { return this.$val.EncodeToString(src); }; + Encoding.ptr.prototype.EncodedLen = function(n) { + var _q, _q$1, enc, n; + enc = this; + if (enc.padChar === -1) { + return (_q = ((($imul(n, 8)) + 5 >> 0)) / 6, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + } + return $imul((_q$1 = ((n + 2 >> 0)) / 3, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")), 4); + }; + Encoding.prototype.EncodedLen = function(n) { return this.$val.EncodedLen(n); }; + CorruptInputError.prototype.Error = function() { + var e; + e = this; + return "illegal base64 data at input byte " + strconv.FormatInt((new $Int64(e.$high, e.$low)), 10); + }; + $ptrType(CorruptInputError).prototype.Error = function() { return this.$get().Error(); }; + Encoding.ptr.prototype.decodeQuantum = function(dst, src, si) { + var _1, _2, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$32, _tmp$33, _tmp$34, _tmp$35, _tmp$36, _tmp$37, _tmp$38, _tmp$39, _tmp$4, _tmp$40, _tmp$41, _tmp$42, _tmp$43, _tmp$44, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, dbuf, dinc, dlen, dst, enc, err, in$1, j, n, nsi, out, si, src, val, x; + nsi = 0; + n = 0; + err = $ifaceNil; + enc = this; + dbuf = arrayType$4.zero(); + _tmp = 3; + _tmp$1 = 4; + dinc = _tmp; + dlen = _tmp$1; + j = 0; + while (true) { + if (!(j < 4)) { break; } + if (src.$length === si) { + if ((j === 0)) { + _tmp$2 = si; + _tmp$3 = 0; + _tmp$4 = $ifaceNil; + nsi = _tmp$2; + n = _tmp$3; + err = _tmp$4; + return [nsi, n, err]; + } else if (((j === 1)) || (!((enc.padChar === -1)))) { + _tmp$5 = si; + _tmp$6 = 0; + _tmp$7 = (new CorruptInputError(0, (si - j >> 0))); + nsi = _tmp$5; + n = _tmp$6; + err = _tmp$7; + return [nsi, n, err]; + } + _tmp$8 = j - 1 >> 0; + _tmp$9 = j; + dinc = _tmp$8; + dlen = _tmp$9; + break; + } + in$1 = ((si < 0 || si >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + si]); + si = si + (1) >> 0; + out = (x = enc.decodeMap, ((in$1 < 0 || in$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[in$1])); + if (!((out === 255))) { + ((j < 0 || j >= dbuf.length) ? ($throwRuntimeError("index out of range"), undefined) : dbuf[j] = out); + j = j + (1) >> 0; + continue; + } + if ((in$1 === 10) || (in$1 === 13)) { + j = j - (1) >> 0; + j = j + (1) >> 0; + continue; + } + if (!((((in$1 >> 0)) === enc.padChar))) { + _tmp$10 = si; + _tmp$11 = 0; + _tmp$12 = (new CorruptInputError(0, (si - 1 >> 0))); + nsi = _tmp$10; + n = _tmp$11; + err = _tmp$12; + return [nsi, n, err]; + } + _1 = j; + if ((_1 === (0)) || (_1 === (1))) { + _tmp$13 = si; + _tmp$14 = 0; + _tmp$15 = (new CorruptInputError(0, (si - 1 >> 0))); + nsi = _tmp$13; + n = _tmp$14; + err = _tmp$15; + return [nsi, n, err]; + } else if (_1 === (2)) { + while (true) { + if (!(si < src.$length && ((((si < 0 || si >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + si]) === 10) || (((si < 0 || si >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + si]) === 13)))) { break; } + si = si + (1) >> 0; + } + if (si === src.$length) { + _tmp$16 = si; + _tmp$17 = 0; + _tmp$18 = (new CorruptInputError(0, src.$length)); + nsi = _tmp$16; + n = _tmp$17; + err = _tmp$18; + return [nsi, n, err]; + } + if (!((((((si < 0 || si >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + si]) >> 0)) === enc.padChar))) { + _tmp$19 = si; + _tmp$20 = 0; + _tmp$21 = (new CorruptInputError(0, (si - 1 >> 0))); + nsi = _tmp$19; + n = _tmp$20; + err = _tmp$21; + return [nsi, n, err]; + } + si = si + (1) >> 0; + } + while (true) { + if (!(si < src.$length && ((((si < 0 || si >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + si]) === 10) || (((si < 0 || si >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + si]) === 13)))) { break; } + si = si + (1) >> 0; + } + if (si < src.$length) { + err = (new CorruptInputError(0, si)); + } + _tmp$22 = 3; + _tmp$23 = j; + dinc = _tmp$22; + dlen = _tmp$23; + break; + } + val = ((((((((dbuf[0] >>> 0)) << 18 >>> 0) | (((dbuf[1] >>> 0)) << 12 >>> 0)) >>> 0) | (((dbuf[2] >>> 0)) << 6 >>> 0)) >>> 0) | ((dbuf[3] >>> 0))) >>> 0; + _tmp$24 = (((val >>> 0 >>> 0) << 24 >>> 24)); + _tmp$25 = (((val >>> 8 >>> 0) << 24 >>> 24)); + _tmp$26 = (((val >>> 16 >>> 0) << 24 >>> 24)); + dbuf[2] = _tmp$24; + dbuf[1] = _tmp$25; + dbuf[0] = _tmp$26; + _2 = dlen; + if (_2 === (4)) { + (2 >= dst.$length ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + 2] = dbuf[2]); + dbuf[2] = 0; + (1 >= dst.$length ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + 1] = dbuf[1]); + if (enc.strict && !((dbuf[2] === 0))) { + _tmp$27 = si; + _tmp$28 = 0; + _tmp$29 = (new CorruptInputError(0, (si - 1 >> 0))); + nsi = _tmp$27; + n = _tmp$28; + err = _tmp$29; + return [nsi, n, err]; + } + dbuf[1] = 0; + (0 >= dst.$length ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + 0] = dbuf[0]); + if (enc.strict && (!((dbuf[1] === 0)) || !((dbuf[2] === 0)))) { + _tmp$30 = si; + _tmp$31 = 0; + _tmp$32 = (new CorruptInputError(0, (si - 2 >> 0))); + nsi = _tmp$30; + n = _tmp$31; + err = _tmp$32; + return [nsi, n, err]; + } + } else if (_2 === (3)) { + (1 >= dst.$length ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + 1] = dbuf[1]); + if (enc.strict && !((dbuf[2] === 0))) { + _tmp$33 = si; + _tmp$34 = 0; + _tmp$35 = (new CorruptInputError(0, (si - 1 >> 0))); + nsi = _tmp$33; + n = _tmp$34; + err = _tmp$35; + return [nsi, n, err]; + } + dbuf[1] = 0; + (0 >= dst.$length ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + 0] = dbuf[0]); + if (enc.strict && (!((dbuf[1] === 0)) || !((dbuf[2] === 0)))) { + _tmp$36 = si; + _tmp$37 = 0; + _tmp$38 = (new CorruptInputError(0, (si - 2 >> 0))); + nsi = _tmp$36; + n = _tmp$37; + err = _tmp$38; + return [nsi, n, err]; + } + } else if (_2 === (2)) { + (0 >= dst.$length ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + 0] = dbuf[0]); + if (enc.strict && (!((dbuf[1] === 0)) || !((dbuf[2] === 0)))) { + _tmp$39 = si; + _tmp$40 = 0; + _tmp$41 = (new CorruptInputError(0, (si - 2 >> 0))); + nsi = _tmp$39; + n = _tmp$40; + err = _tmp$41; + return [nsi, n, err]; + } + } + dst = $subslice(dst, dinc); + _tmp$42 = si; + _tmp$43 = dlen - 1 >> 0; + _tmp$44 = err; + nsi = _tmp$42; + n = _tmp$43; + err = _tmp$44; + return [nsi, n, err]; + }; + Encoding.prototype.decodeQuantum = function(dst, src, si) { return this.$val.decodeQuantum(dst, src, si); }; + Encoding.ptr.prototype.DecodeString = function(s) { + var _tuple, dbuf, enc, err, n, s; + enc = this; + dbuf = $makeSlice(sliceType, enc.DecodedLen(s.length)); + _tuple = enc.Decode(dbuf, (new sliceType($stringToBytes(s)))); + n = _tuple[0]; + err = _tuple[1]; + return [$subslice(dbuf, 0, n), err]; + }; + Encoding.prototype.DecodeString = function(s) { return this.$val.DecodeString(s); }; + Encoding.ptr.prototype.Decode = function(dst, src) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, dst, enc, err, ilen, n, ninc, ninc$1, ninc$2, ok, ok$1, olen, si, src; + n = 0; + err = $ifaceNil; + enc = this; + if (src.$length === 0) { + _tmp = 0; + _tmp$1 = $ifaceNil; + n = _tmp; + err = _tmp$1; + return [n, err]; + } + si = 0; + ilen = src.$length; + olen = dst.$length; + while (true) { + if (!(false && (ilen - si >> 0) >= 8 && (olen - n >> 0) >= 8)) { break; } + ok = enc.decode64($subslice(dst, n), $subslice(src, si)); + if (ok) { + n = n + (6) >> 0; + si = si + (8) >> 0; + } else { + ninc = 0; + _tuple = enc.decodeQuantum($subslice(dst, n), src, si); + si = _tuple[0]; + ninc = _tuple[1]; + err = _tuple[2]; + n = n + (ninc) >> 0; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp$2 = n; + _tmp$3 = err; + n = _tmp$2; + err = _tmp$3; + return [n, err]; + } + } + } + while (true) { + if (!((ilen - si >> 0) >= 4 && (olen - n >> 0) >= 4)) { break; } + ok$1 = enc.decode32($subslice(dst, n), $subslice(src, si)); + if (ok$1) { + n = n + (3) >> 0; + si = si + (4) >> 0; + } else { + ninc$1 = 0; + _tuple$1 = enc.decodeQuantum($subslice(dst, n), src, si); + si = _tuple$1[0]; + ninc$1 = _tuple$1[1]; + err = _tuple$1[2]; + n = n + (ninc$1) >> 0; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp$4 = n; + _tmp$5 = err; + n = _tmp$4; + err = _tmp$5; + return [n, err]; + } + } + } + while (true) { + if (!(si < src.$length)) { break; } + ninc$2 = 0; + _tuple$2 = enc.decodeQuantum($subslice(dst, n), src, si); + si = _tuple$2[0]; + ninc$2 = _tuple$2[1]; + err = _tuple$2[2]; + n = n + (ninc$2) >> 0; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp$6 = n; + _tmp$7 = err; + n = _tmp$6; + err = _tmp$7; + return [n, err]; + } + } + _tmp$8 = n; + _tmp$9 = err; + n = _tmp$8; + err = _tmp$9; + return [n, err]; + }; + Encoding.prototype.Decode = function(dst, src) { return this.$val.Decode(dst, src); }; + Encoding.ptr.prototype.decode32 = function(dst, src) { + var _tmp, _tmp$1, dn, dst, enc, n, src, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7; + enc = this; + _tmp = 0; + _tmp$1 = 0; + dn = _tmp; + n = _tmp$1; + n = (((x = enc.decodeMap, x$1 = (0 >= src.$length ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + 0]), ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])) >>> 0)); + if (n === 255) { + return false; + } + dn = (dn | ((n << 26 >>> 0))) >>> 0; + n = (((x$2 = enc.decodeMap, x$3 = (1 >= src.$length ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + 1]), ((x$3 < 0 || x$3 >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[x$3])) >>> 0)); + if (n === 255) { + return false; + } + dn = (dn | ((n << 20 >>> 0))) >>> 0; + n = (((x$4 = enc.decodeMap, x$5 = (2 >= src.$length ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + 2]), ((x$5 < 0 || x$5 >= x$4.length) ? ($throwRuntimeError("index out of range"), undefined) : x$4[x$5])) >>> 0)); + if (n === 255) { + return false; + } + dn = (dn | ((n << 14 >>> 0))) >>> 0; + n = (((x$6 = enc.decodeMap, x$7 = (3 >= src.$length ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + 3]), ((x$7 < 0 || x$7 >= x$6.length) ? ($throwRuntimeError("index out of range"), undefined) : x$6[x$7])) >>> 0)); + if (n === 255) { + return false; + } + dn = (dn | ((n << 8 >>> 0))) >>> 0; + $clone(binary.BigEndian, binary.bigEndian).PutUint32(dst, dn); + return true; + }; + Encoding.prototype.decode32 = function(dst, src) { return this.$val.decode32(dst, src); }; + Encoding.ptr.prototype.decode64 = function(dst, src) { + var _tmp, _tmp$1, dn, dst, enc, n, src, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + enc = this; + _tmp = new $Uint64(0, 0); + _tmp$1 = new $Uint64(0, 0); + dn = _tmp; + n = _tmp$1; + n = (new $Uint64(0, (x = enc.decodeMap, x$1 = (0 >= src.$length ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + 0]), ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])))); + if ((n.$high === 0 && n.$low === 255)) { + return false; + } + dn = (x$2 = $shiftLeft64(n, 58), new $Uint64(dn.$high | x$2.$high, (dn.$low | x$2.$low) >>> 0)); + n = (new $Uint64(0, (x$3 = enc.decodeMap, x$4 = (1 >= src.$length ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + 1]), ((x$4 < 0 || x$4 >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[x$4])))); + if ((n.$high === 0 && n.$low === 255)) { + return false; + } + dn = (x$5 = $shiftLeft64(n, 52), new $Uint64(dn.$high | x$5.$high, (dn.$low | x$5.$low) >>> 0)); + n = (new $Uint64(0, (x$6 = enc.decodeMap, x$7 = (2 >= src.$length ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + 2]), ((x$7 < 0 || x$7 >= x$6.length) ? ($throwRuntimeError("index out of range"), undefined) : x$6[x$7])))); + if ((n.$high === 0 && n.$low === 255)) { + return false; + } + dn = (x$8 = $shiftLeft64(n, 46), new $Uint64(dn.$high | x$8.$high, (dn.$low | x$8.$low) >>> 0)); + n = (new $Uint64(0, (x$9 = enc.decodeMap, x$10 = (3 >= src.$length ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + 3]), ((x$10 < 0 || x$10 >= x$9.length) ? ($throwRuntimeError("index out of range"), undefined) : x$9[x$10])))); + if ((n.$high === 0 && n.$low === 255)) { + return false; + } + dn = (x$11 = $shiftLeft64(n, 40), new $Uint64(dn.$high | x$11.$high, (dn.$low | x$11.$low) >>> 0)); + n = (new $Uint64(0, (x$12 = enc.decodeMap, x$13 = (4 >= src.$length ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + 4]), ((x$13 < 0 || x$13 >= x$12.length) ? ($throwRuntimeError("index out of range"), undefined) : x$12[x$13])))); + if ((n.$high === 0 && n.$low === 255)) { + return false; + } + dn = (x$14 = $shiftLeft64(n, 34), new $Uint64(dn.$high | x$14.$high, (dn.$low | x$14.$low) >>> 0)); + n = (new $Uint64(0, (x$15 = enc.decodeMap, x$16 = (5 >= src.$length ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + 5]), ((x$16 < 0 || x$16 >= x$15.length) ? ($throwRuntimeError("index out of range"), undefined) : x$15[x$16])))); + if ((n.$high === 0 && n.$low === 255)) { + return false; + } + dn = (x$17 = $shiftLeft64(n, 28), new $Uint64(dn.$high | x$17.$high, (dn.$low | x$17.$low) >>> 0)); + n = (new $Uint64(0, (x$18 = enc.decodeMap, x$19 = (6 >= src.$length ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + 6]), ((x$19 < 0 || x$19 >= x$18.length) ? ($throwRuntimeError("index out of range"), undefined) : x$18[x$19])))); + if ((n.$high === 0 && n.$low === 255)) { + return false; + } + dn = (x$20 = $shiftLeft64(n, 22), new $Uint64(dn.$high | x$20.$high, (dn.$low | x$20.$low) >>> 0)); + n = (new $Uint64(0, (x$21 = enc.decodeMap, x$22 = (7 >= src.$length ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + 7]), ((x$22 < 0 || x$22 >= x$21.length) ? ($throwRuntimeError("index out of range"), undefined) : x$21[x$22])))); + if ((n.$high === 0 && n.$low === 255)) { + return false; + } + dn = (x$23 = $shiftLeft64(n, 16), new $Uint64(dn.$high | x$23.$high, (dn.$low | x$23.$low) >>> 0)); + $clone(binary.BigEndian, binary.bigEndian).PutUint64(dst, dn); + return true; + }; + Encoding.prototype.decode64 = function(dst, src) { return this.$val.decode64(dst, src); }; + Encoding.ptr.prototype.DecodedLen = function(n) { + var _q, _q$1, enc, n; + enc = this; + if (enc.padChar === -1) { + return (_q = ($imul(n, 6)) / 8, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + } + return $imul((_q$1 = n / 4, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")), 3); + }; + Encoding.prototype.DecodedLen = function(n) { return this.$val.DecodedLen(n); }; + Encoding.methods = [{prop: "WithPadding", name: "WithPadding", pkg: "", typ: $funcType([$Int32], [ptrType], false)}, {prop: "Strict", name: "Strict", pkg: "", typ: $funcType([], [ptrType], false)}]; + ptrType.methods = [{prop: "Encode", name: "Encode", pkg: "", typ: $funcType([sliceType, sliceType], [], false)}, {prop: "EncodeToString", name: "EncodeToString", pkg: "", typ: $funcType([sliceType], [$String], false)}, {prop: "EncodedLen", name: "EncodedLen", pkg: "", typ: $funcType([$Int], [$Int], false)}, {prop: "decodeQuantum", name: "decodeQuantum", pkg: "encoding/base64", typ: $funcType([sliceType, sliceType, $Int], [$Int, $Int, $error], false)}, {prop: "DecodeString", name: "DecodeString", pkg: "", typ: $funcType([$String], [sliceType, $error], false)}, {prop: "Decode", name: "Decode", pkg: "", typ: $funcType([sliceType, sliceType], [$Int, $error], false)}, {prop: "decode32", name: "decode32", pkg: "encoding/base64", typ: $funcType([sliceType, sliceType], [$Bool], false)}, {prop: "decode64", name: "decode64", pkg: "encoding/base64", typ: $funcType([sliceType, sliceType], [$Bool], false)}, {prop: "DecodedLen", name: "DecodedLen", pkg: "", typ: $funcType([$Int], [$Int], false)}]; + CorruptInputError.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + Encoding.init("encoding/base64", [{prop: "encode", name: "encode", embedded: false, exported: false, typ: arrayType, tag: ""}, {prop: "decodeMap", name: "decodeMap", embedded: false, exported: false, typ: arrayType$1, tag: ""}, {prop: "padChar", name: "padChar", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "strict", name: "strict", embedded: false, exported: false, typ: $Bool, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = binary.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.StdEncoding = NewEncoding("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"); + $pkg.URLEncoding = NewEncoding("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"); + $pkg.RawStdEncoding = $clone($pkg.StdEncoding, Encoding).WithPadding(-1); + $pkg.RawURLEncoding = $clone($pkg.URLEncoding, Encoding).WithPadding(-1); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["syscall"] = (function() { + var $pkg = {}, $init, errors, js, race, runtime, sync, SockaddrDatalink, mmapper, Errno, Sockaddr, SockaddrInet4, SockaddrInet6, SockaddrUnix, Timespec, Stat_t, RawSockaddrInet4, RawSockaddrInet6, RawSockaddrUnix, RawSockaddrDatalink, RawSockaddr, RawSockaddrAny, _Socklen, Linger, Iovec, IPMreq, IPv6Mreq, Msghdr, sliceType, sliceType$1, ptrType$2, arrayType, arrayType$1, ptrType$11, arrayType$3, arrayType$4, arrayType$5, arrayType$6, arrayType$10, ptrType$16, arrayType$11, ptrType$17, ptrType$18, structType, ptrType$20, ptrType$21, ptrType$27, mapType, funcType$2, funcType$3, ptrType$28, ptrType$29, ptrType$30, ptrType$31, arrayType$15, ptrType$32, warningPrinted, lineBuffer, syscallModule, alreadyTriedToLoad, minusOne, envs, freebsdConfArch, minRoutingSockaddrLen, mapper, errEAGAIN, errEINVAL, errENOENT, ioSync, ioSync$24ptr, errors$1, init, printWarning, printToConsole, Exit, indexByte, runtime_envs, syscall, Syscall, Syscall6, BytePtrFromString, readInt, readIntBE, readIntLE, ParseDirent, CloseOnExec, SetNonblock, msanRead, msanWrite, rsaAlignOf, itoa, uitoa, ReadDirent, anyToSockaddr, Accept, Recvmsg, SendmsgN, direntIno, direntReclen, direntNamlen, errnoErr, Read, Write, Recvfrom, Sendto, SetsockoptByte, SetsockoptInt, SetsockoptInet4Addr, SetsockoptIPMreq, SetsockoptIPv6Mreq, SetsockoptLinger, accept, setsockopt, Shutdown, recvfrom, sendto, recvmsg, sendmsg, fcntl, Chmod, Close, Dup, Fchdir, Fchmod, Fchown, Fstat, Fsync, Ftruncate, Getdirentries, Lstat, Open, Pread, Pwrite, read, Seek, Stat, write, mmap, munmap; + errors = $packages["errors"]; + js = $packages["github.com/gopherjs/gopherjs/js"]; + race = $packages["internal/race"]; + runtime = $packages["runtime"]; + sync = $packages["sync"]; + SockaddrDatalink = $pkg.SockaddrDatalink = $newType(0, $kindStruct, "syscall.SockaddrDatalink", true, "syscall", true, function(Len_, Family_, Index_, Type_, Nlen_, Alen_, Slen_, Data_, raw_) { + this.$val = this; + if (arguments.length === 0) { + this.Len = 0; + this.Family = 0; + this.Index = 0; + this.Type = 0; + this.Nlen = 0; + this.Alen = 0; + this.Slen = 0; + this.Data = arrayType$3.zero(); + this.raw = new RawSockaddrDatalink.ptr(0, 0, 0, 0, 0, 0, 0, arrayType$3.zero()); + return; + } + this.Len = Len_; + this.Family = Family_; + this.Index = Index_; + this.Type = Type_; + this.Nlen = Nlen_; + this.Alen = Alen_; + this.Slen = Slen_; + this.Data = Data_; + this.raw = raw_; + }); + mmapper = $pkg.mmapper = $newType(0, $kindStruct, "syscall.mmapper", true, "syscall", false, function(Mutex_, active_, mmap_, munmap_) { + this.$val = this; + if (arguments.length === 0) { + this.Mutex = new sync.Mutex.ptr(0, 0); + this.active = false; + this.mmap = $throwNilPointerError; + this.munmap = $throwNilPointerError; + return; + } + this.Mutex = Mutex_; + this.active = active_; + this.mmap = mmap_; + this.munmap = munmap_; + }); + Errno = $pkg.Errno = $newType(4, $kindUintptr, "syscall.Errno", true, "syscall", true, null); + Sockaddr = $pkg.Sockaddr = $newType(8, $kindInterface, "syscall.Sockaddr", true, "syscall", true, null); + SockaddrInet4 = $pkg.SockaddrInet4 = $newType(0, $kindStruct, "syscall.SockaddrInet4", true, "syscall", true, function(Port_, Addr_, raw_) { + this.$val = this; + if (arguments.length === 0) { + this.Port = 0; + this.Addr = arrayType$1.zero(); + this.raw = new RawSockaddrInet4.ptr(0, 0, 0, arrayType$1.zero(), arrayType$6.zero()); + return; + } + this.Port = Port_; + this.Addr = Addr_; + this.raw = raw_; + }); + SockaddrInet6 = $pkg.SockaddrInet6 = $newType(0, $kindStruct, "syscall.SockaddrInet6", true, "syscall", true, function(Port_, ZoneId_, Addr_, raw_) { + this.$val = this; + if (arguments.length === 0) { + this.Port = 0; + this.ZoneId = 0; + this.Addr = arrayType.zero(); + this.raw = new RawSockaddrInet6.ptr(0, 0, 0, 0, arrayType.zero(), 0); + return; + } + this.Port = Port_; + this.ZoneId = ZoneId_; + this.Addr = Addr_; + this.raw = raw_; + }); + SockaddrUnix = $pkg.SockaddrUnix = $newType(0, $kindStruct, "syscall.SockaddrUnix", true, "syscall", true, function(Name_, raw_) { + this.$val = this; + if (arguments.length === 0) { + this.Name = ""; + this.raw = new RawSockaddrUnix.ptr(0, 0, arrayType$11.zero()); + return; + } + this.Name = Name_; + this.raw = raw_; + }); + Timespec = $pkg.Timespec = $newType(0, $kindStruct, "syscall.Timespec", true, "syscall", true, function(Sec_, Nsec_) { + this.$val = this; + if (arguments.length === 0) { + this.Sec = new $Int64(0, 0); + this.Nsec = new $Int64(0, 0); + return; + } + this.Sec = Sec_; + this.Nsec = Nsec_; + }); + Stat_t = $pkg.Stat_t = $newType(0, $kindStruct, "syscall.Stat_t", true, "syscall", true, function(Dev_, Mode_, Nlink_, Ino_, Uid_, Gid_, Rdev_, Pad_cgo_0_, Atimespec_, Mtimespec_, Ctimespec_, Birthtimespec_, Size_, Blocks_, Blksize_, Flags_, Gen_, Lspare_, Qspare_) { + this.$val = this; + if (arguments.length === 0) { + this.Dev = 0; + this.Mode = 0; + this.Nlink = 0; + this.Ino = new $Uint64(0, 0); + this.Uid = 0; + this.Gid = 0; + this.Rdev = 0; + this.Pad_cgo_0 = arrayType$1.zero(); + this.Atimespec = new Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)); + this.Mtimespec = new Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)); + this.Ctimespec = new Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)); + this.Birthtimespec = new Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)); + this.Size = new $Int64(0, 0); + this.Blocks = new $Int64(0, 0); + this.Blksize = 0; + this.Flags = 0; + this.Gen = 0; + this.Lspare = 0; + this.Qspare = arrayType$15.zero(); + return; + } + this.Dev = Dev_; + this.Mode = Mode_; + this.Nlink = Nlink_; + this.Ino = Ino_; + this.Uid = Uid_; + this.Gid = Gid_; + this.Rdev = Rdev_; + this.Pad_cgo_0 = Pad_cgo_0_; + this.Atimespec = Atimespec_; + this.Mtimespec = Mtimespec_; + this.Ctimespec = Ctimespec_; + this.Birthtimespec = Birthtimespec_; + this.Size = Size_; + this.Blocks = Blocks_; + this.Blksize = Blksize_; + this.Flags = Flags_; + this.Gen = Gen_; + this.Lspare = Lspare_; + this.Qspare = Qspare_; + }); + RawSockaddrInet4 = $pkg.RawSockaddrInet4 = $newType(0, $kindStruct, "syscall.RawSockaddrInet4", true, "syscall", true, function(Len_, Family_, Port_, Addr_, Zero_) { + this.$val = this; + if (arguments.length === 0) { + this.Len = 0; + this.Family = 0; + this.Port = 0; + this.Addr = arrayType$1.zero(); + this.Zero = arrayType$6.zero(); + return; + } + this.Len = Len_; + this.Family = Family_; + this.Port = Port_; + this.Addr = Addr_; + this.Zero = Zero_; + }); + RawSockaddrInet6 = $pkg.RawSockaddrInet6 = $newType(0, $kindStruct, "syscall.RawSockaddrInet6", true, "syscall", true, function(Len_, Family_, Port_, Flowinfo_, Addr_, Scope_id_) { + this.$val = this; + if (arguments.length === 0) { + this.Len = 0; + this.Family = 0; + this.Port = 0; + this.Flowinfo = 0; + this.Addr = arrayType.zero(); + this.Scope_id = 0; + return; + } + this.Len = Len_; + this.Family = Family_; + this.Port = Port_; + this.Flowinfo = Flowinfo_; + this.Addr = Addr_; + this.Scope_id = Scope_id_; + }); + RawSockaddrUnix = $pkg.RawSockaddrUnix = $newType(0, $kindStruct, "syscall.RawSockaddrUnix", true, "syscall", true, function(Len_, Family_, Path_) { + this.$val = this; + if (arguments.length === 0) { + this.Len = 0; + this.Family = 0; + this.Path = arrayType$11.zero(); + return; + } + this.Len = Len_; + this.Family = Family_; + this.Path = Path_; + }); + RawSockaddrDatalink = $pkg.RawSockaddrDatalink = $newType(0, $kindStruct, "syscall.RawSockaddrDatalink", true, "syscall", true, function(Len_, Family_, Index_, Type_, Nlen_, Alen_, Slen_, Data_) { + this.$val = this; + if (arguments.length === 0) { + this.Len = 0; + this.Family = 0; + this.Index = 0; + this.Type = 0; + this.Nlen = 0; + this.Alen = 0; + this.Slen = 0; + this.Data = arrayType$3.zero(); + return; + } + this.Len = Len_; + this.Family = Family_; + this.Index = Index_; + this.Type = Type_; + this.Nlen = Nlen_; + this.Alen = Alen_; + this.Slen = Slen_; + this.Data = Data_; + }); + RawSockaddr = $pkg.RawSockaddr = $newType(0, $kindStruct, "syscall.RawSockaddr", true, "syscall", true, function(Len_, Family_, Data_) { + this.$val = this; + if (arguments.length === 0) { + this.Len = 0; + this.Family = 0; + this.Data = arrayType$4.zero(); + return; + } + this.Len = Len_; + this.Family = Family_; + this.Data = Data_; + }); + RawSockaddrAny = $pkg.RawSockaddrAny = $newType(0, $kindStruct, "syscall.RawSockaddrAny", true, "syscall", true, function(Addr_, Pad_) { + this.$val = this; + if (arguments.length === 0) { + this.Addr = new RawSockaddr.ptr(0, 0, arrayType$4.zero()); + this.Pad = arrayType$5.zero(); + return; + } + this.Addr = Addr_; + this.Pad = Pad_; + }); + _Socklen = $pkg._Socklen = $newType(4, $kindUint32, "syscall._Socklen", true, "syscall", false, null); + Linger = $pkg.Linger = $newType(0, $kindStruct, "syscall.Linger", true, "syscall", true, function(Onoff_, Linger_) { + this.$val = this; + if (arguments.length === 0) { + this.Onoff = 0; + this.Linger = 0; + return; + } + this.Onoff = Onoff_; + this.Linger = Linger_; + }); + Iovec = $pkg.Iovec = $newType(0, $kindStruct, "syscall.Iovec", true, "syscall", true, function(Base_, Len_) { + this.$val = this; + if (arguments.length === 0) { + this.Base = ptrType$2.nil; + this.Len = new $Uint64(0, 0); + return; + } + this.Base = Base_; + this.Len = Len_; + }); + IPMreq = $pkg.IPMreq = $newType(0, $kindStruct, "syscall.IPMreq", true, "syscall", true, function(Multiaddr_, Interface_) { + this.$val = this; + if (arguments.length === 0) { + this.Multiaddr = arrayType$1.zero(); + this.Interface = arrayType$1.zero(); + return; + } + this.Multiaddr = Multiaddr_; + this.Interface = Interface_; + }); + IPv6Mreq = $pkg.IPv6Mreq = $newType(0, $kindStruct, "syscall.IPv6Mreq", true, "syscall", true, function(Multiaddr_, Interface_) { + this.$val = this; + if (arguments.length === 0) { + this.Multiaddr = arrayType.zero(); + this.Interface = 0; + return; + } + this.Multiaddr = Multiaddr_; + this.Interface = Interface_; + }); + Msghdr = $pkg.Msghdr = $newType(0, $kindStruct, "syscall.Msghdr", true, "syscall", true, function(Name_, Namelen_, Pad_cgo_0_, Iov_, Iovlen_, Pad_cgo_1_, Control_, Controllen_, Flags_) { + this.$val = this; + if (arguments.length === 0) { + this.Name = ptrType$2.nil; + this.Namelen = 0; + this.Pad_cgo_0 = arrayType$1.zero(); + this.Iov = ptrType$18.nil; + this.Iovlen = 0; + this.Pad_cgo_1 = arrayType$1.zero(); + this.Control = ptrType$2.nil; + this.Controllen = 0; + this.Flags = 0; + return; + } + this.Name = Name_; + this.Namelen = Namelen_; + this.Pad_cgo_0 = Pad_cgo_0_; + this.Iov = Iov_; + this.Iovlen = Iovlen_; + this.Pad_cgo_1 = Pad_cgo_1_; + this.Control = Control_; + this.Controllen = Controllen_; + this.Flags = Flags_; + }); + sliceType = $sliceType($Uint8); + sliceType$1 = $sliceType($String); + ptrType$2 = $ptrType($Uint8); + arrayType = $arrayType($Uint8, 16); + arrayType$1 = $arrayType($Uint8, 4); + ptrType$11 = $ptrType(SockaddrDatalink); + arrayType$3 = $arrayType($Int8, 12); + arrayType$4 = $arrayType($Int8, 14); + arrayType$5 = $arrayType($Int8, 92); + arrayType$6 = $arrayType($Int8, 8); + arrayType$10 = $arrayType($Uint8, 32); + ptrType$16 = $ptrType($Uint16); + arrayType$11 = $arrayType($Int8, 104); + ptrType$17 = $ptrType(_Socklen); + ptrType$18 = $ptrType(Iovec); + structType = $structType("syscall", [{prop: "addr", name: "addr", embedded: false, exported: false, typ: $Uintptr, tag: ""}, {prop: "len", name: "len", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "cap", name: "cap", embedded: false, exported: false, typ: $Int, tag: ""}]); + ptrType$20 = $ptrType($Int64); + ptrType$21 = $ptrType($Int32); + ptrType$27 = $ptrType(mmapper); + mapType = $mapType(ptrType$2, sliceType); + funcType$2 = $funcType([$Uintptr, $Uintptr, $Int, $Int, $Int, $Int64], [$Uintptr, $error], false); + funcType$3 = $funcType([$Uintptr, $Uintptr], [$error], false); + ptrType$28 = $ptrType(SockaddrInet4); + ptrType$29 = $ptrType(SockaddrInet6); + ptrType$30 = $ptrType(SockaddrUnix); + ptrType$31 = $ptrType(Timespec); + arrayType$15 = $arrayType($Int64, 2); + ptrType$32 = $ptrType(Msghdr); + init = function() { + $flushConsole = (function() { + if (!((lineBuffer.$length === 0))) { + $global.console.log($externalize(($bytesToString(lineBuffer)), $String)); + lineBuffer = sliceType.nil; + } + }); + }; + printWarning = function() { + if (!warningPrinted) { + $global.console.error($externalize("warning: system calls not available, see https://github.com/gopherjs/gopherjs/blob/master/doc/syscalls.md", $String)); + } + warningPrinted = true; + }; + printToConsole = function(b) { + var b, goPrintToConsole, i; + goPrintToConsole = $global.goPrintToConsole; + if (!(goPrintToConsole === undefined)) { + goPrintToConsole(b); + return; + } + lineBuffer = $appendSlice(lineBuffer, b); + while (true) { + i = indexByte(lineBuffer, 10); + if (i === -1) { + break; + } + $global.console.log($externalize(($bytesToString($subslice(lineBuffer, 0, i))), $String)); + lineBuffer = $subslice(lineBuffer, (i + 1 >> 0)); + } + }; + Exit = function(code) { + var code; + Syscall(1, ((code >>> 0)), 0, 0); + }; + $pkg.Exit = Exit; + indexByte = function(s, c) { + var _i, _ref, b, c, i, s; + _ref = s; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + b = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (b === c) { + return i; + } + _i++; + } + return -1; + }; + runtime_envs = function() { + var envkeys, envs$1, i, jsEnv, key, process; + process = $global.process; + if (process === undefined) { + return sliceType$1.nil; + } + jsEnv = process.env; + envkeys = $global.Object.keys(jsEnv); + envs$1 = $makeSlice(sliceType$1, $parseInt(envkeys.length)); + i = 0; + while (true) { + if (!(i < $parseInt(envkeys.length))) { break; } + key = $internalize(envkeys[i], $String); + ((i < 0 || i >= envs$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : envs$1.$array[envs$1.$offset + i] = key + "=" + $internalize(jsEnv[$externalize(key, $String)], $String)); + i = i + (1) >> 0; + } + return envs$1; + }; + syscall = function(name) { + var name, require, $deferred; + /* */ var $err = null; try { $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + $deferred.push([(function() { + $recover(); + }), []]); + if (syscallModule === null) { + if (alreadyTriedToLoad) { + return null; + } + alreadyTriedToLoad = true; + require = $global.require; + if (require === undefined) { + $panic(new $String("")); + } + syscallModule = require($externalize("syscall", $String)); + } + return syscallModule[$externalize(name, $String)]; + /* */ } catch(err) { $err = err; return null; } finally { $callDeferred($deferred, $err); } + }; + Syscall = function(trap, a1, a2, a3) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, a1, a2, a3, array, err, f, r, r1, r2, slice, trap; + r1 = 0; + r2 = 0; + err = 0; + f = syscall("Syscall"); + if (!(f === null)) { + r = f(trap, a1, a2, a3); + _tmp = ((($parseInt(r[0]) >> 0) >>> 0)); + _tmp$1 = ((($parseInt(r[1]) >> 0) >>> 0)); + _tmp$2 = ((($parseInt(r[2]) >> 0) >>> 0)); + r1 = _tmp; + r2 = _tmp$1; + err = _tmp$2; + return [r1, r2, err]; + } + if ((trap === 4) && ((a1 === 1) || (a1 === 2))) { + array = a2; + slice = $makeSlice(sliceType, $parseInt(array.length)); + slice.$array = array; + printToConsole(slice); + _tmp$3 = (($parseInt(array.length) >>> 0)); + _tmp$4 = 0; + _tmp$5 = 0; + r1 = _tmp$3; + r2 = _tmp$4; + err = _tmp$5; + return [r1, r2, err]; + } + if (trap === 1) { + runtime.Goexit(); + } + printWarning(); + _tmp$6 = ((minusOne >>> 0)); + _tmp$7 = 0; + _tmp$8 = 13; + r1 = _tmp$6; + r2 = _tmp$7; + err = _tmp$8; + return [r1, r2, err]; + }; + $pkg.Syscall = Syscall; + Syscall6 = function(trap, a1, a2, a3, a4, a5, a6) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, a1, a2, a3, a4, a5, a6, err, f, r, r1, r2, trap; + r1 = 0; + r2 = 0; + err = 0; + f = syscall("Syscall6"); + if (!(f === null)) { + r = f(trap, a1, a2, a3, a4, a5, a6); + _tmp = ((($parseInt(r[0]) >> 0) >>> 0)); + _tmp$1 = ((($parseInt(r[1]) >> 0) >>> 0)); + _tmp$2 = ((($parseInt(r[2]) >> 0) >>> 0)); + r1 = _tmp; + r2 = _tmp$1; + err = _tmp$2; + return [r1, r2, err]; + } + if (!((trap === 202))) { + printWarning(); + } + _tmp$3 = ((minusOne >>> 0)); + _tmp$4 = 0; + _tmp$5 = 13; + r1 = _tmp$3; + r2 = _tmp$4; + err = _tmp$5; + return [r1, r2, err]; + }; + $pkg.Syscall6 = Syscall6; + BytePtrFromString = function(s) { + var _i, _ref, array, b, i, s; + array = new ($global.Uint8Array)(s.length + 1 >> 0); + _ref = (new sliceType($stringToBytes(s))); + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + b = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (b === 0) { + return [ptrType$2.nil, new Errno(22)]; + } + array[i] = b; + _i++; + } + array[s.length] = 0; + return [((array)), $ifaceNil]; + }; + $pkg.BytePtrFromString = BytePtrFromString; + readInt = function(b, off, size) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, b, off, ok, size, u; + u = new $Uint64(0, 0); + ok = false; + if (b.$length < (((off + size >>> 0) >> 0))) { + _tmp = new $Uint64(0, 0); + _tmp$1 = false; + u = _tmp; + ok = _tmp$1; + return [u, ok]; + } + if (false) { + _tmp$2 = readIntBE($subslice(b, off), size); + _tmp$3 = true; + u = _tmp$2; + ok = _tmp$3; + return [u, ok]; + } + _tmp$4 = readIntLE($subslice(b, off), size); + _tmp$5 = true; + u = _tmp$4; + ok = _tmp$5; + return [u, ok]; + }; + readIntBE = function(b, size) { + var _1, b, size, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + _1 = size; + if (_1 === (1)) { + return (new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))); + } else if (_1 === (2)) { + $unused((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1])); + return (x = (new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), x$1 = $shiftLeft64((new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), 8), new $Uint64(x.$high | x$1.$high, (x.$low | x$1.$low) >>> 0)); + } else if (_1 === (4)) { + $unused((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3])); + return (x$2 = (x$3 = (x$4 = (new $Uint64(0, (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]))), x$5 = $shiftLeft64((new $Uint64(0, (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]))), 8), new $Uint64(x$4.$high | x$5.$high, (x$4.$low | x$5.$low) >>> 0)), x$6 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 16), new $Uint64(x$3.$high | x$6.$high, (x$3.$low | x$6.$low) >>> 0)), x$7 = $shiftLeft64((new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), 24), new $Uint64(x$2.$high | x$7.$high, (x$2.$low | x$7.$low) >>> 0)); + } else if (_1 === (8)) { + $unused((7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7])); + return (x$8 = (x$9 = (x$10 = (x$11 = (x$12 = (x$13 = (x$14 = (new $Uint64(0, (7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7]))), x$15 = $shiftLeft64((new $Uint64(0, (6 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 6]))), 8), new $Uint64(x$14.$high | x$15.$high, (x$14.$low | x$15.$low) >>> 0)), x$16 = $shiftLeft64((new $Uint64(0, (5 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 5]))), 16), new $Uint64(x$13.$high | x$16.$high, (x$13.$low | x$16.$low) >>> 0)), x$17 = $shiftLeft64((new $Uint64(0, (4 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 4]))), 24), new $Uint64(x$12.$high | x$17.$high, (x$12.$low | x$17.$low) >>> 0)), x$18 = $shiftLeft64((new $Uint64(0, (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]))), 32), new $Uint64(x$11.$high | x$18.$high, (x$11.$low | x$18.$low) >>> 0)), x$19 = $shiftLeft64((new $Uint64(0, (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]))), 40), new $Uint64(x$10.$high | x$19.$high, (x$10.$low | x$19.$low) >>> 0)), x$20 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 48), new $Uint64(x$9.$high | x$20.$high, (x$9.$low | x$20.$low) >>> 0)), x$21 = $shiftLeft64((new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), 56), new $Uint64(x$8.$high | x$21.$high, (x$8.$low | x$21.$low) >>> 0)); + } else { + $panic(new $String("syscall: readInt with unsupported size")); + } + }; + readIntLE = function(b, size) { + var _1, b, size, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + _1 = size; + if (_1 === (1)) { + return (new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))); + } else if (_1 === (2)) { + $unused((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1])); + return (x = (new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), x$1 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 8), new $Uint64(x.$high | x$1.$high, (x.$low | x$1.$low) >>> 0)); + } else if (_1 === (4)) { + $unused((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3])); + return (x$2 = (x$3 = (x$4 = (new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), x$5 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 8), new $Uint64(x$4.$high | x$5.$high, (x$4.$low | x$5.$low) >>> 0)), x$6 = $shiftLeft64((new $Uint64(0, (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]))), 16), new $Uint64(x$3.$high | x$6.$high, (x$3.$low | x$6.$low) >>> 0)), x$7 = $shiftLeft64((new $Uint64(0, (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]))), 24), new $Uint64(x$2.$high | x$7.$high, (x$2.$low | x$7.$low) >>> 0)); + } else if (_1 === (8)) { + $unused((7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7])); + return (x$8 = (x$9 = (x$10 = (x$11 = (x$12 = (x$13 = (x$14 = (new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), x$15 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 8), new $Uint64(x$14.$high | x$15.$high, (x$14.$low | x$15.$low) >>> 0)), x$16 = $shiftLeft64((new $Uint64(0, (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]))), 16), new $Uint64(x$13.$high | x$16.$high, (x$13.$low | x$16.$low) >>> 0)), x$17 = $shiftLeft64((new $Uint64(0, (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]))), 24), new $Uint64(x$12.$high | x$17.$high, (x$12.$low | x$17.$low) >>> 0)), x$18 = $shiftLeft64((new $Uint64(0, (4 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 4]))), 32), new $Uint64(x$11.$high | x$18.$high, (x$11.$low | x$18.$low) >>> 0)), x$19 = $shiftLeft64((new $Uint64(0, (5 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 5]))), 40), new $Uint64(x$10.$high | x$19.$high, (x$10.$low | x$19.$low) >>> 0)), x$20 = $shiftLeft64((new $Uint64(0, (6 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 6]))), 48), new $Uint64(x$9.$high | x$20.$high, (x$9.$low | x$20.$low) >>> 0)), x$21 = $shiftLeft64((new $Uint64(0, (7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7]))), 56), new $Uint64(x$8.$high | x$21.$high, (x$8.$low | x$21.$low) >>> 0)); + } else { + $panic(new $String("syscall: readInt with unsupported size")); + } + }; + ParseDirent = function(buf, max, names) { + var _i, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$2, buf, c, consumed, count, i, ino, max, name, names, namlen, newnames, ok, origlen, rec, reclen, x, x$1, x$2; + consumed = 0; + count = 0; + newnames = sliceType$1.nil; + origlen = buf.$length; + count = 0; + while (true) { + if (!(!((max === 0)) && buf.$length > 0)) { break; } + _tuple = direntReclen(buf); + reclen = _tuple[0]; + ok = _tuple[1]; + if (!ok || (x = (new $Uint64(0, buf.$length)), (reclen.$high > x.$high || (reclen.$high === x.$high && reclen.$low > x.$low)))) { + _tmp = origlen; + _tmp$1 = count; + _tmp$2 = names; + consumed = _tmp; + count = _tmp$1; + newnames = _tmp$2; + return [consumed, count, newnames]; + } + rec = $subslice(buf, 0, $flatten64(reclen)); + buf = $subslice(buf, $flatten64(reclen)); + _tuple$1 = direntIno(rec); + ino = _tuple$1[0]; + ok = _tuple$1[1]; + if (!ok) { + break; + } + if ((ino.$high === 0 && ino.$low === 0)) { + continue; + } + _tuple$2 = direntNamlen(rec); + namlen = _tuple$2[0]; + ok = _tuple$2[1]; + if (!ok || (x$1 = new $Uint64(0 + namlen.$high, 21 + namlen.$low), x$2 = (new $Uint64(0, rec.$length)), (x$1.$high > x$2.$high || (x$1.$high === x$2.$high && x$1.$low > x$2.$low)))) { + break; + } + name = $subslice(rec, 21, $flatten64(new $Uint64(0 + namlen.$high, 21 + namlen.$low))); + _ref = name; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (c === 0) { + name = $subslice(name, 0, i); + break; + } + _i++; + } + if (($bytesToString(name)) === "." || ($bytesToString(name)) === "..") { + continue; + } + max = max - (1) >> 0; + count = count + (1) >> 0; + names = $append(names, ($bytesToString(name))); + } + _tmp$3 = origlen - buf.$length >> 0; + _tmp$4 = count; + _tmp$5 = names; + consumed = _tmp$3; + count = _tmp$4; + newnames = _tmp$5; + return [consumed, count, newnames]; + }; + $pkg.ParseDirent = ParseDirent; + CloseOnExec = function(fd) { + var fd; + fcntl(fd, 2, 1); + }; + $pkg.CloseOnExec = CloseOnExec; + SetNonblock = function(fd, nonblocking) { + var _tuple, _tuple$1, err, fd, flag, nonblocking; + err = $ifaceNil; + _tuple = fcntl(fd, 3, 0); + flag = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + err = err; + return err; + } + if (nonblocking) { + flag = flag | (4); + } else { + flag = (flag & ~(4)) >> 0; + } + _tuple$1 = fcntl(fd, 4, flag); + err = _tuple$1[1]; + err = err; + return err; + }; + $pkg.SetNonblock = SetNonblock; + msanRead = function(addr, len) { + var addr, len; + }; + msanWrite = function(addr, len) { + var addr, len; + }; + rsaAlignOf = function(salen) { + var salen, salign; + salign = 8; + if (true) { + salign = 4; + } else if (false) { + salign = 8; + } else if (false) { + if (freebsdConfArch === "amd64") { + salign = 8; + } + } + if (salen === 0) { + return salign; + } + return (((salen + salign >> 0) - 1 >> 0)) & (~((salign - 1 >> 0)) >> 0); + }; + itoa = function(val) { + var val; + if (val < 0) { + return "-" + uitoa(((-val >>> 0))); + } + return uitoa(((val >>> 0))); + }; + uitoa = function(val) { + var _q, _r, buf, i, val; + buf = arrayType$10.zero(); + i = 31; + while (true) { + if (!(val >= 10)) { break; } + ((i < 0 || i >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i] = ((((_r = val % 10, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) + 48 >>> 0) << 24 >>> 24))); + i = i - (1) >> 0; + val = (_q = val / (10), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + } + ((i < 0 || i >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i] = (((val + 48 >>> 0) << 24 >>> 24))); + return ($bytesToString($subslice(new sliceType(buf), i))); + }; + Timespec.ptr.prototype.Unix = function() { + var _tmp, _tmp$1, nsec, sec, ts; + sec = new $Int64(0, 0); + nsec = new $Int64(0, 0); + ts = this; + _tmp = (ts.Sec); + _tmp$1 = (ts.Nsec); + sec = _tmp; + nsec = _tmp$1; + return [sec, nsec]; + }; + Timespec.prototype.Unix = function() { return this.$val.Unix(); }; + Timespec.ptr.prototype.Nano = function() { + var ts, x, x$1; + ts = this; + return (x = $mul64((ts.Sec), new $Int64(0, 1000000000)), x$1 = (ts.Nsec), new $Int64(x.$high + x$1.$high, x.$low + x$1.$low)); + }; + Timespec.prototype.Nano = function() { return this.$val.Nano(); }; + ReadDirent = function(fd, buf) { + var _tuple, base, buf, err, fd, n; + n = 0; + err = $ifaceNil; + base = ((new Uint8Array(8))); + _tuple = Getdirentries(fd, buf, base); + n = _tuple[0]; + err = _tuple[1]; + return [n, err]; + }; + $pkg.ReadDirent = ReadDirent; + SockaddrInet4.ptr.prototype.sockaddr = function() { + var _array, _struct, _view, i, p, sa, x, x$1, x$2; + sa = this; + if (sa.Port < 0 || sa.Port > 65535) { + return [0, 0, new Errno(22)]; + } + sa.raw.Len = 16; + sa.raw.Family = 2; + p = (((x = sa.raw, (x.$ptr_Port || (x.$ptr_Port = new ptrType$16(function() { return this.$target.Port; }, function($v) { this.$target.Port = $v; }, x)))))); + p.nilCheck, p[0] = (((sa.Port >> 8 >> 0) << 24 >>> 24)); + p.nilCheck, p[1] = ((sa.Port << 24 >>> 24)); + i = 0; + while (true) { + if (!(i < 4)) { break; } + (x$2 = sa.raw.Addr, ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i] = (x$1 = sa.Addr, ((i < 0 || i >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[i])))); + i = i + (1) >> 0; + } + _array = new Uint8Array(16); + return [(_array), ((sa.raw.Len >>> 0)), $ifaceNil]; + }; + SockaddrInet4.prototype.sockaddr = function() { return this.$val.sockaddr(); }; + SockaddrInet6.ptr.prototype.sockaddr = function() { + var _array, _struct, _view, i, p, sa, x, x$1, x$2; + sa = this; + if (sa.Port < 0 || sa.Port > 65535) { + return [0, 0, new Errno(22)]; + } + sa.raw.Len = 28; + sa.raw.Family = 30; + p = (((x = sa.raw, (x.$ptr_Port || (x.$ptr_Port = new ptrType$16(function() { return this.$target.Port; }, function($v) { this.$target.Port = $v; }, x)))))); + p.nilCheck, p[0] = (((sa.Port >> 8 >> 0) << 24 >>> 24)); + p.nilCheck, p[1] = ((sa.Port << 24 >>> 24)); + sa.raw.Scope_id = sa.ZoneId; + i = 0; + while (true) { + if (!(i < 16)) { break; } + (x$2 = sa.raw.Addr, ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i] = (x$1 = sa.Addr, ((i < 0 || i >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[i])))); + i = i + (1) >> 0; + } + _array = new Uint8Array(28); + return [(_array), ((sa.raw.Len >>> 0)), $ifaceNil]; + }; + SockaddrInet6.prototype.sockaddr = function() { return this.$val.sockaddr(); }; + SockaddrUnix.ptr.prototype.sockaddr = function() { + var _array, _struct, _view, i, n, name, sa, x; + sa = this; + name = sa.Name; + n = name.length; + if (n >= 104 || (n === 0)) { + return [0, 0, new Errno(22)]; + } + sa.raw.Len = (((3 + n >> 0) << 24 >>> 24)); + sa.raw.Family = 1; + i = 0; + while (true) { + if (!(i < n)) { break; } + (x = sa.raw.Path, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i] = ((name.charCodeAt(i) << 24 >> 24)))); + i = i + (1) >> 0; + } + _array = new Uint8Array(106); + return [(_array), ((sa.raw.Len >>> 0)), $ifaceNil]; + }; + SockaddrUnix.prototype.sockaddr = function() { return this.$val.sockaddr(); }; + SockaddrDatalink.ptr.prototype.sockaddr = function() { + var _array, _struct, _view, i, sa, x, x$1; + sa = this; + if (sa.Index === 0) { + return [0, 0, new Errno(22)]; + } + sa.raw.Len = sa.Len; + sa.raw.Family = 18; + sa.raw.Index = sa.Index; + sa.raw.Type = sa.Type; + sa.raw.Nlen = sa.Nlen; + sa.raw.Alen = sa.Alen; + sa.raw.Slen = sa.Slen; + i = 0; + while (true) { + if (!(i < 12)) { break; } + (x$1 = sa.raw.Data, ((i < 0 || i >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[i] = (x = sa.Data, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i])))); + i = i + (1) >> 0; + } + _array = new Uint8Array(20); + return [(_array), 20, $ifaceNil]; + }; + SockaddrDatalink.prototype.sockaddr = function() { return this.$val.sockaddr(); }; + anyToSockaddr = function(rsa) { + var _1, _array, _array$1, _array$2, _array$3, _array$4, _array$5, _array$6, _array$7, _struct, _struct$1, _struct$2, _struct$3, _struct$4, _struct$5, _struct$6, _struct$7, _view, _view$1, _view$2, _view$3, _view$4, _view$5, _view$6, _view$7, bytes, i, i$1, i$2, i$3, n, p, p$1, pp, pp$1, pp$2, pp$3, rsa, sa, sa$1, sa$2, sa$3, x, x$1, x$2, x$3, x$4, x$5, x$6; + _1 = rsa.Addr.Family; + if (_1 === (18)) { + _array$1 = new Uint8Array(108); + pp = ((_array = (_array$1), _struct = new RawSockaddrDatalink.ptr(0, 0, 0, 0, 0, 0, 0, arrayType$3.zero()), _view = new DataView(_array.buffer, _array.byteOffset), _struct.Len = _view.getUint8(0, true), _struct.Family = _view.getUint8(1, true), _struct.Index = _view.getUint16(2, true), _struct.Type = _view.getUint8(4, true), _struct.Nlen = _view.getUint8(5, true), _struct.Alen = _view.getUint8(6, true), _struct.Slen = _view.getUint8(7, true), _struct.Data = new ($nativeArray($kindInt8))(_array.buffer, $min(_array.byteOffset + 8, _array.buffer.byteLength)), _struct)); + _struct$1 = rsa, _view$1 = new DataView(_array$1.buffer, _array$1.byteOffset), _struct$1.Addr.Len = _view$1.getUint8(0, true), _struct$1.Addr.Family = _view$1.getUint8(1, true), _struct$1.Addr.Data = new ($nativeArray($kindInt8))(_array$1.buffer, $min(_array$1.byteOffset + 2, _array$1.buffer.byteLength)), _struct$1.Pad = new ($nativeArray($kindInt8))(_array$1.buffer, $min(_array$1.byteOffset + 16, _array$1.buffer.byteLength)); + sa = new SockaddrDatalink.ptr(0, 0, 0, 0, 0, 0, 0, arrayType$3.zero(), new RawSockaddrDatalink.ptr(0, 0, 0, 0, 0, 0, 0, arrayType$3.zero())); + sa.Len = pp.Len; + sa.Family = pp.Family; + sa.Index = pp.Index; + sa.Type = pp.Type; + sa.Nlen = pp.Nlen; + sa.Alen = pp.Alen; + sa.Slen = pp.Slen; + i = 0; + while (true) { + if (!(i < 12)) { break; } + (x$1 = sa.Data, ((i < 0 || i >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[i] = (x = pp.Data, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i])))); + i = i + (1) >> 0; + } + return [sa, $ifaceNil]; + } else if (_1 === (1)) { + _array$3 = new Uint8Array(108); + pp$1 = ((_array$2 = (_array$3), _struct$2 = new RawSockaddrUnix.ptr(0, 0, arrayType$11.zero()), _view$2 = new DataView(_array$2.buffer, _array$2.byteOffset), _struct$2.Len = _view$2.getUint8(0, true), _struct$2.Family = _view$2.getUint8(1, true), _struct$2.Path = new ($nativeArray($kindInt8))(_array$2.buffer, $min(_array$2.byteOffset + 2, _array$2.buffer.byteLength)), _struct$2)); + _struct$3 = rsa, _view$3 = new DataView(_array$3.buffer, _array$3.byteOffset), _struct$3.Addr.Len = _view$3.getUint8(0, true), _struct$3.Addr.Family = _view$3.getUint8(1, true), _struct$3.Addr.Data = new ($nativeArray($kindInt8))(_array$3.buffer, $min(_array$3.byteOffset + 2, _array$3.buffer.byteLength)), _struct$3.Pad = new ($nativeArray($kindInt8))(_array$3.buffer, $min(_array$3.byteOffset + 16, _array$3.buffer.byteLength)); + if (pp$1.Len < 2 || pp$1.Len > 106) { + return [$ifaceNil, new Errno(22)]; + } + sa$1 = new SockaddrUnix.ptr("", new RawSockaddrUnix.ptr(0, 0, arrayType$11.zero())); + n = ((pp$1.Len >> 0)) - 2 >> 0; + i$1 = 0; + while (true) { + if (!(i$1 < n)) { break; } + if ((x$2 = pp$1.Path, ((i$1 < 0 || i$1 >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i$1])) === 0) { + n = i$1; + break; + } + i$1 = i$1 + (1) >> 0; + } + bytes = $subslice(new sliceType((($sliceToArray(new sliceType(pp$1.Path))))), 0, n); + sa$1.Name = ($bytesToString(bytes)); + return [sa$1, $ifaceNil]; + } else if (_1 === (2)) { + _array$5 = new Uint8Array(108); + pp$2 = ((_array$4 = (_array$5), _struct$4 = new RawSockaddrInet4.ptr(0, 0, 0, arrayType$1.zero(), arrayType$6.zero()), _view$4 = new DataView(_array$4.buffer, _array$4.byteOffset), _struct$4.Len = _view$4.getUint8(0, true), _struct$4.Family = _view$4.getUint8(1, true), _struct$4.Port = _view$4.getUint16(2, true), _struct$4.Addr = new ($nativeArray($kindUint8))(_array$4.buffer, $min(_array$4.byteOffset + 4, _array$4.buffer.byteLength)), _struct$4.Zero = new ($nativeArray($kindInt8))(_array$4.buffer, $min(_array$4.byteOffset + 8, _array$4.buffer.byteLength)), _struct$4)); + _struct$5 = rsa, _view$5 = new DataView(_array$5.buffer, _array$5.byteOffset), _struct$5.Addr.Len = _view$5.getUint8(0, true), _struct$5.Addr.Family = _view$5.getUint8(1, true), _struct$5.Addr.Data = new ($nativeArray($kindInt8))(_array$5.buffer, $min(_array$5.byteOffset + 2, _array$5.buffer.byteLength)), _struct$5.Pad = new ($nativeArray($kindInt8))(_array$5.buffer, $min(_array$5.byteOffset + 16, _array$5.buffer.byteLength)); + sa$2 = new SockaddrInet4.ptr(0, arrayType$1.zero(), new RawSockaddrInet4.ptr(0, 0, 0, arrayType$1.zero(), arrayType$6.zero())); + p = (((pp$2.$ptr_Port || (pp$2.$ptr_Port = new ptrType$16(function() { return this.$target.Port; }, function($v) { this.$target.Port = $v; }, pp$2))))); + sa$2.Port = ((((p.nilCheck, p[0]) >> 0)) << 8 >> 0) + (((p.nilCheck, p[1]) >> 0)) >> 0; + i$2 = 0; + while (true) { + if (!(i$2 < 4)) { break; } + (x$4 = sa$2.Addr, ((i$2 < 0 || i$2 >= x$4.length) ? ($throwRuntimeError("index out of range"), undefined) : x$4[i$2] = (x$3 = pp$2.Addr, ((i$2 < 0 || i$2 >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[i$2])))); + i$2 = i$2 + (1) >> 0; + } + return [sa$2, $ifaceNil]; + } else if (_1 === (30)) { + _array$7 = new Uint8Array(108); + pp$3 = ((_array$6 = (_array$7), _struct$6 = new RawSockaddrInet6.ptr(0, 0, 0, 0, arrayType.zero(), 0), _view$6 = new DataView(_array$6.buffer, _array$6.byteOffset), _struct$6.Len = _view$6.getUint8(0, true), _struct$6.Family = _view$6.getUint8(1, true), _struct$6.Port = _view$6.getUint16(2, true), _struct$6.Flowinfo = _view$6.getUint32(4, true), _struct$6.Addr = new ($nativeArray($kindUint8))(_array$6.buffer, $min(_array$6.byteOffset + 8, _array$6.buffer.byteLength)), _struct$6.Scope_id = _view$6.getUint32(24, true), _struct$6)); + _struct$7 = rsa, _view$7 = new DataView(_array$7.buffer, _array$7.byteOffset), _struct$7.Addr.Len = _view$7.getUint8(0, true), _struct$7.Addr.Family = _view$7.getUint8(1, true), _struct$7.Addr.Data = new ($nativeArray($kindInt8))(_array$7.buffer, $min(_array$7.byteOffset + 2, _array$7.buffer.byteLength)), _struct$7.Pad = new ($nativeArray($kindInt8))(_array$7.buffer, $min(_array$7.byteOffset + 16, _array$7.buffer.byteLength)); + sa$3 = new SockaddrInet6.ptr(0, 0, arrayType.zero(), new RawSockaddrInet6.ptr(0, 0, 0, 0, arrayType.zero(), 0)); + p$1 = (((pp$3.$ptr_Port || (pp$3.$ptr_Port = new ptrType$16(function() { return this.$target.Port; }, function($v) { this.$target.Port = $v; }, pp$3))))); + sa$3.Port = ((((p$1.nilCheck, p$1[0]) >> 0)) << 8 >> 0) + (((p$1.nilCheck, p$1[1]) >> 0)) >> 0; + sa$3.ZoneId = pp$3.Scope_id; + i$3 = 0; + while (true) { + if (!(i$3 < 16)) { break; } + (x$6 = sa$3.Addr, ((i$3 < 0 || i$3 >= x$6.length) ? ($throwRuntimeError("index out of range"), undefined) : x$6[i$3] = (x$5 = pp$3.Addr, ((i$3 < 0 || i$3 >= x$5.length) ? ($throwRuntimeError("index out of range"), undefined) : x$5[i$3])))); + i$3 = i$3 + (1) >> 0; + } + return [sa$3, $ifaceNil]; + } + return [$ifaceNil, new Errno(47)]; + }; + Accept = function(fd) { + var _tmp, _tmp$1, _tmp$2, _tuple, _tuple$1, err, fd, len, len$24ptr, nfd, rsa, sa; + nfd = 0; + sa = $ifaceNil; + err = $ifaceNil; + rsa = new RawSockaddrAny.ptr(new RawSockaddr.ptr(0, 0, arrayType$4.zero()), arrayType$5.zero()); + len = 108; + _tuple = accept(fd, rsa, (len$24ptr || (len$24ptr = new ptrType$17(function() { return len; }, function($v) { len = $v; })))); + nfd = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + return [nfd, sa, err]; + } + if (true && (len === 0)) { + Close(nfd); + _tmp = 0; + _tmp$1 = $ifaceNil; + _tmp$2 = new Errno(53); + nfd = _tmp; + sa = _tmp$1; + err = _tmp$2; + return [nfd, sa, err]; + } + _tuple$1 = anyToSockaddr(rsa); + sa = _tuple$1[0]; + err = _tuple$1[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + Close(nfd); + nfd = 0; + } + return [nfd, sa, err]; + }; + $pkg.Accept = Accept; + Recvmsg = function(fd, p, oob, flags) { + var _array, _struct, _tuple, _tuple$1, _view, dummy, dummy$24ptr, err, fd, flags, from, iov, msg, n, oob, oobn, p, recvflags, rsa; + n = 0; + oobn = 0; + recvflags = 0; + from = $ifaceNil; + err = $ifaceNil; + msg = new Msghdr.ptr(ptrType$2.nil, 0, arrayType$1.zero(), ptrType$18.nil, 0, arrayType$1.zero(), ptrType$2.nil, 0, 0); + rsa = new RawSockaddrAny.ptr(new RawSockaddr.ptr(0, 0, arrayType$4.zero()), arrayType$5.zero()); + _array = new Uint8Array(108); + msg.Name = ((_array)); + _struct = rsa, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Addr.Len = _view.getUint8(0, true), _struct.Addr.Family = _view.getUint8(1, true), _struct.Addr.Data = new ($nativeArray($kindInt8))(_array.buffer, $min(_array.byteOffset + 2, _array.buffer.byteLength)), _struct.Pad = new ($nativeArray($kindInt8))(_array.buffer, $min(_array.byteOffset + 16, _array.buffer.byteLength)); + msg.Namelen = 108; + iov = new Iovec.ptr(ptrType$2.nil, new $Uint64(0, 0)); + if (p.$length > 0) { + iov.Base = (($sliceToArray(p))); + iov.SetLen(p.$length); + } + dummy = 0; + if (oob.$length > 0) { + if (p.$length === 0) { + iov.Base = (dummy$24ptr || (dummy$24ptr = new ptrType$2(function() { return dummy; }, function($v) { dummy = $v; }))); + iov.SetLen(1); + } + msg.Control = (($sliceToArray(oob))); + msg.SetControllen(oob.$length); + } + msg.Iov = iov; + msg.Iovlen = 1; + _tuple = recvmsg(fd, msg, flags); + n = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + return [n, oobn, recvflags, from, err]; + } + oobn = ((msg.Controllen >> 0)); + recvflags = ((msg.Flags >> 0)); + if (!((rsa.Addr.Family === 0))) { + _tuple$1 = anyToSockaddr(rsa); + from = _tuple$1[0]; + err = _tuple$1[1]; + } + return [n, oobn, recvflags, from, err]; + }; + $pkg.Recvmsg = Recvmsg; + SendmsgN = function(fd, p, oob, to, flags) { + var _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, dummy, err, fd, flags, iov, msg, n, oob, p, ptr, salen, to, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; dummy = $f.dummy; err = $f.err; fd = $f.fd; flags = $f.flags; iov = $f.iov; msg = $f.msg; n = $f.n; oob = $f.oob; p = $f.p; ptr = $f.ptr; salen = $f.salen; to = $f.to; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + dummy = [dummy]; + iov = [iov]; + msg = [msg]; + n = 0; + err = $ifaceNil; + ptr = 0; + salen = 0; + /* */ if (!($interfaceIsEqual(to, $ifaceNil))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!($interfaceIsEqual(to, $ifaceNil))) { */ case 1: + _r = to.sockaddr(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + ptr = _tuple[0]; + salen = _tuple[1]; + err = _tuple[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp = 0; + _tmp$1 = err; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + } + /* } */ case 2: + msg[0] = new Msghdr.ptr(ptrType$2.nil, 0, arrayType$1.zero(), ptrType$18.nil, 0, arrayType$1.zero(), ptrType$2.nil, 0, 0); + msg[0].Name = ((ptr)); + msg[0].Namelen = ((salen >>> 0)); + iov[0] = new Iovec.ptr(ptrType$2.nil, new $Uint64(0, 0)); + if (p.$length > 0) { + iov[0].Base = (($sliceToArray(p))); + iov[0].SetLen(p.$length); + } + dummy[0] = 0; + if (oob.$length > 0) { + if (p.$length === 0) { + iov[0].Base = (dummy.$ptr || (dummy.$ptr = new ptrType$2(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, dummy))); + iov[0].SetLen(1); + } + msg[0].Control = (($sliceToArray(oob))); + msg[0].SetControllen(oob.$length); + } + msg[0].Iov = iov[0]; + msg[0].Iovlen = 1; + _tuple$1 = sendmsg(fd, msg[0], flags); + n = _tuple$1[0]; + err = _tuple$1[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp$2 = 0; + _tmp$3 = err; + n = _tmp$2; + err = _tmp$3; + $s = -1; return [n, err]; + } + if (oob.$length > 0 && (p.$length === 0)) { + n = 0; + } + _tmp$4 = n; + _tmp$5 = $ifaceNil; + n = _tmp$4; + err = _tmp$5; + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: SendmsgN }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.dummy = dummy; $f.err = err; $f.fd = fd; $f.flags = flags; $f.iov = iov; $f.msg = msg; $f.n = n; $f.oob = oob; $f.p = p; $f.ptr = ptr; $f.salen = salen; $f.to = to; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.SendmsgN = SendmsgN; + direntIno = function(buf) { + var buf; + return readInt(buf, 0, 8); + }; + direntReclen = function(buf) { + var buf; + return readInt(buf, 16, 2); + }; + direntNamlen = function(buf) { + var buf; + return readInt(buf, 18, 2); + }; + Iovec.ptr.prototype.SetLen = function(length) { + var iov, length; + iov = this; + iov.Len = (new $Uint64(0, length)); + }; + Iovec.prototype.SetLen = function(length) { return this.$val.SetLen(length); }; + Msghdr.ptr.prototype.SetControllen = function(length) { + var length, msghdr; + msghdr = this; + msghdr.Controllen = ((length >>> 0)); + }; + Msghdr.prototype.SetControllen = function(length) { return this.$val.SetControllen(length); }; + mmapper.ptr.prototype.Mmap = function(fd, offset, length, prot, flags) { + var _key, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, addr, b, data, err, errno, fd, flags, length, m, offset, p, prot, sl, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _key = $f._key; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tuple = $f._tuple; addr = $f.addr; b = $f.b; data = $f.data; err = $f.err; errno = $f.errno; fd = $f.fd; flags = $f.flags; length = $f.length; m = $f.m; offset = $f.offset; p = $f.p; prot = $f.prot; sl = $f.sl; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + sl = [sl]; + data = sliceType.nil; + err = $ifaceNil; + m = this; + if (length <= 0) { + _tmp = sliceType.nil; + _tmp$1 = new Errno(22); + data = _tmp; + err = _tmp$1; + $s = -1; return [data, err]; + } + _r = m.mmap(0, ((length >>> 0)), prot, flags, fd, offset); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + addr = _tuple[0]; + errno = _tuple[1]; + if (!($interfaceIsEqual(errno, $ifaceNil))) { + _tmp$2 = sliceType.nil; + _tmp$3 = errno; + data = _tmp$2; + err = _tmp$3; + $s = -1; return [data, err]; + } + sl[0] = new structType.ptr(addr, length, length); + b = sl[0]; + p = $indexPtr(b.$array, b.$offset + (b.$capacity - 1 >> 0), ptrType$2); + $r = m.Mutex.Lock(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(m.Mutex, "Unlock"), []]); + _key = p; (m.active || $throwRuntimeError("assignment to entry in nil map"))[ptrType$2.keyFor(_key)] = { k: _key, v: b }; + _tmp$4 = b; + _tmp$5 = $ifaceNil; + data = _tmp$4; + err = _tmp$5; + $s = -1; return [data, err]; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [data, err]; } if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: mmapper.ptr.prototype.Mmap }; } $f._key = _key; $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tuple = _tuple; $f.addr = addr; $f.b = b; $f.data = data; $f.err = err; $f.errno = errno; $f.fd = fd; $f.flags = flags; $f.length = length; $f.m = m; $f.offset = offset; $f.p = p; $f.prot = prot; $f.sl = sl; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + mmapper.prototype.Mmap = function(fd, offset, length, prot, flags) { return this.$val.Mmap(fd, offset, length, prot, flags); }; + mmapper.ptr.prototype.Munmap = function(data) { + var _entry, _r, b, data, err, errno, m, p, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _r = $f._r; b = $f.b; data = $f.data; err = $f.err; errno = $f.errno; m = $f.m; p = $f.p; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + err = $ifaceNil; + m = this; + if ((data.$length === 0) || !((data.$length === data.$capacity))) { + err = new Errno(22); + $s = -1; return err; + } + p = $indexPtr(data.$array, data.$offset + (data.$capacity - 1 >> 0), ptrType$2); + $r = m.Mutex.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(m.Mutex, "Unlock"), []]); + b = (_entry = m.active[ptrType$2.keyFor(p)], _entry !== undefined ? _entry.v : sliceType.nil); + if (b === sliceType.nil || !($indexPtr(b.$array, b.$offset + 0, ptrType$2) === $indexPtr(data.$array, data.$offset + 0, ptrType$2))) { + err = new Errno(22); + $s = -1; return err; + } + _r = m.munmap((($sliceToArray(b))), ((b.$length >>> 0))); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + errno = _r; + if (!($interfaceIsEqual(errno, $ifaceNil))) { + err = errno; + $s = -1; return err; + } + delete m.active[ptrType$2.keyFor(p)]; + err = $ifaceNil; + $s = -1; return err; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return err; } if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: mmapper.ptr.prototype.Munmap }; } $f._entry = _entry; $f._r = _r; $f.b = b; $f.data = data; $f.err = err; $f.errno = errno; $f.m = m; $f.p = p; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + mmapper.prototype.Munmap = function(data) { return this.$val.Munmap(data); }; + Errno.prototype.Error = function() { + var e, s; + e = this.$val; + if (0 <= ((e >> 0)) && ((e >> 0)) < 106) { + s = ((e < 0 || e >= errors$1.length) ? ($throwRuntimeError("index out of range"), undefined) : errors$1[e]); + if (!(s === "")) { + return s; + } + } + return "errno " + itoa(((e >> 0))); + }; + $ptrType(Errno).prototype.Error = function() { return new Errno(this.$get()).Error(); }; + Errno.prototype.Temporary = function() { + var e; + e = this.$val; + return (e === 4) || (e === 24) || new Errno(e).Timeout(); + }; + $ptrType(Errno).prototype.Temporary = function() { return new Errno(this.$get()).Temporary(); }; + Errno.prototype.Timeout = function() { + var e; + e = this.$val; + return (e === 35) || (e === 35) || (e === 60); + }; + $ptrType(Errno).prototype.Timeout = function() { return new Errno(this.$get()).Timeout(); }; + errnoErr = function(e) { + var _1, e; + _1 = e; + if (_1 === (0)) { + return $ifaceNil; + } else if (_1 === (35)) { + return errEAGAIN; + } else if (_1 === (22)) { + return errEINVAL; + } else if (_1 === (2)) { + return errENOENT; + } + return new Errno(e); + }; + Read = function(fd, p) { + var _tuple, err, fd, n, p; + n = 0; + err = $ifaceNil; + _tuple = read(fd, p); + n = _tuple[0]; + err = _tuple[1]; + if (false) { + if (n > 0) { + race.WriteRange(($sliceToArray(p)), n); + } + if ($interfaceIsEqual(err, $ifaceNil)) { + race.Acquire(((ioSync$24ptr || (ioSync$24ptr = new ptrType$20(function() { return ioSync; }, function($v) { ioSync = $v; }))))); + } + } + if (false && n > 0) { + msanWrite(($sliceToArray(p)), n); + } + return [n, err]; + }; + $pkg.Read = Read; + Write = function(fd, p) { + var _tuple, err, fd, n, p; + n = 0; + err = $ifaceNil; + if (false) { + race.ReleaseMerge(((ioSync$24ptr || (ioSync$24ptr = new ptrType$20(function() { return ioSync; }, function($v) { ioSync = $v; }))))); + } + _tuple = write(fd, p); + n = _tuple[0]; + err = _tuple[1]; + if (false && n > 0) { + race.ReadRange(($sliceToArray(p)), n); + } + if (false && n > 0) { + msanRead(($sliceToArray(p)), n); + } + return [n, err]; + }; + $pkg.Write = Write; + Recvfrom = function(fd, p, flags) { + var _tuple, _tuple$1, err, fd, flags, from, len, len$24ptr, n, p, rsa; + n = 0; + from = $ifaceNil; + err = $ifaceNil; + rsa = new RawSockaddrAny.ptr(new RawSockaddr.ptr(0, 0, arrayType$4.zero()), arrayType$5.zero()); + len = 108; + _tuple = recvfrom(fd, p, flags, rsa, (len$24ptr || (len$24ptr = new ptrType$17(function() { return len; }, function($v) { len = $v; })))); + n = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + return [n, from, err]; + } + if (!((rsa.Addr.Family === 0))) { + _tuple$1 = anyToSockaddr(rsa); + from = _tuple$1[0]; + err = _tuple$1[1]; + } + return [n, from, err]; + }; + $pkg.Recvfrom = Recvfrom; + Sendto = function(fd, p, flags, to) { + var _r, _tuple, err, fd, flags, n, p, ptr, to, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; fd = $f.fd; flags = $f.flags; n = $f.n; p = $f.p; ptr = $f.ptr; to = $f.to; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + err = $ifaceNil; + _r = to.sockaddr(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + ptr = _tuple[0]; + n = _tuple[1]; + err = _tuple[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + err = err; + $s = -1; return err; + } + err = sendto(fd, p, flags, ptr, n); + $s = -1; return err; + /* */ } return; } if ($f === undefined) { $f = { $blk: Sendto }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.fd = fd; $f.flags = flags; $f.n = n; $f.p = p; $f.ptr = ptr; $f.to = to; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Sendto = Sendto; + SetsockoptByte = function(fd, level, opt, value) { + var err, fd, level, opt, value, value$24ptr; + err = $ifaceNil; + err = setsockopt(fd, level, opt, ((value$24ptr || (value$24ptr = new ptrType$2(function() { return value; }, function($v) { value = $v; })))), 1); + return err; + }; + $pkg.SetsockoptByte = SetsockoptByte; + SetsockoptInt = function(fd, level, opt, value) { + var err, fd, level, n, n$24ptr, opt, value; + err = $ifaceNil; + n = ((value >> 0)); + err = setsockopt(fd, level, opt, ((n$24ptr || (n$24ptr = new ptrType$21(function() { return n; }, function($v) { n = $v; })))), 4); + return err; + }; + $pkg.SetsockoptInt = SetsockoptInt; + SetsockoptInet4Addr = function(fd, level, opt, value) { + var err, fd, level, opt, value; + err = $ifaceNil; + err = setsockopt(fd, level, opt, ($sliceToArray(new sliceType(value))), 4); + return err; + }; + $pkg.SetsockoptInet4Addr = SetsockoptInet4Addr; + SetsockoptIPMreq = function(fd, level, opt, mreq) { + var _array, _struct, _view, err, fd, level, mreq, opt; + err = $ifaceNil; + _array = new Uint8Array(8); + err = setsockopt(fd, level, opt, (_array), 8); + _struct = mreq, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Multiaddr = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 0, _array.buffer.byteLength)), _struct.Interface = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 4, _array.buffer.byteLength)); + return err; + }; + $pkg.SetsockoptIPMreq = SetsockoptIPMreq; + SetsockoptIPv6Mreq = function(fd, level, opt, mreq) { + var _array, _struct, _view, err, fd, level, mreq, opt; + err = $ifaceNil; + _array = new Uint8Array(20); + err = setsockopt(fd, level, opt, (_array), 20); + _struct = mreq, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Multiaddr = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 0, _array.buffer.byteLength)), _struct.Interface = _view.getUint32(16, true); + return err; + }; + $pkg.SetsockoptIPv6Mreq = SetsockoptIPv6Mreq; + SetsockoptLinger = function(fd, level, opt, l) { + var _array, _struct, _view, err, fd, l, level, opt; + err = $ifaceNil; + _array = new Uint8Array(8); + err = setsockopt(fd, level, opt, (_array), 8); + _struct = l, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Onoff = _view.getInt32(0, true), _struct.Linger = _view.getInt32(4, true); + return err; + }; + $pkg.SetsockoptLinger = SetsockoptLinger; + accept = function(s, rsa, addrlen) { + var _array, _struct, _tuple, _view, addrlen, e1, err, fd, r0, rsa, s; + fd = 0; + err = $ifaceNil; + _array = new Uint8Array(108); + _tuple = Syscall(30, ((s >>> 0)), ((_array)), ((addrlen))); + _struct = rsa, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Addr.Len = _view.getUint8(0, true), _struct.Addr.Family = _view.getUint8(1, true), _struct.Addr.Data = new ($nativeArray($kindInt8))(_array.buffer, $min(_array.byteOffset + 2, _array.buffer.byteLength)), _struct.Pad = new ($nativeArray($kindInt8))(_array.buffer, $min(_array.byteOffset + 16, _array.buffer.byteLength)); + r0 = _tuple[0]; + e1 = _tuple[2]; + fd = ((r0 >> 0)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return [fd, err]; + }; + setsockopt = function(s, level, name, val, vallen) { + var _tuple, e1, err, level, name, s, val, vallen; + err = $ifaceNil; + _tuple = Syscall6(105, ((s >>> 0)), ((level >>> 0)), ((name >>> 0)), (val), (vallen), 0); + e1 = _tuple[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return err; + }; + Shutdown = function(s, how) { + var _tuple, e1, err, how, s; + err = $ifaceNil; + _tuple = Syscall(134, ((s >>> 0)), ((how >>> 0)), 0); + e1 = _tuple[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return err; + }; + $pkg.Shutdown = Shutdown; + recvfrom = function(fd, p, flags, from, fromlen) { + var _array, _p0, _struct, _tuple, _view, e1, err, fd, flags, from, fromlen, n, p, r0; + n = 0; + err = $ifaceNil; + _p0 = 0; + if (p.$length > 0) { + _p0 = ($sliceToArray(p)); + } else { + _p0 = (new Uint8Array(0)); + } + _array = new Uint8Array(108); + _tuple = Syscall6(29, ((fd >>> 0)), (_p0), ((p.$length >>> 0)), ((flags >>> 0)), ((_array)), ((fromlen))); + _struct = from, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Addr.Len = _view.getUint8(0, true), _struct.Addr.Family = _view.getUint8(1, true), _struct.Addr.Data = new ($nativeArray($kindInt8))(_array.buffer, $min(_array.byteOffset + 2, _array.buffer.byteLength)), _struct.Pad = new ($nativeArray($kindInt8))(_array.buffer, $min(_array.byteOffset + 16, _array.buffer.byteLength)); + r0 = _tuple[0]; + e1 = _tuple[2]; + n = ((r0 >> 0)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return [n, err]; + }; + sendto = function(s, buf, flags, to, addrlen) { + var _p0, _tuple, addrlen, buf, e1, err, flags, s, to; + err = $ifaceNil; + _p0 = 0; + if (buf.$length > 0) { + _p0 = ($sliceToArray(buf)); + } else { + _p0 = (new Uint8Array(0)); + } + _tuple = Syscall6(133, ((s >>> 0)), (_p0), ((buf.$length >>> 0)), ((flags >>> 0)), (to), ((addrlen >>> 0))); + e1 = _tuple[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return err; + }; + recvmsg = function(s, msg, flags) { + var _array, _struct, _tuple, _view, e1, err, flags, msg, n, r0, s; + n = 0; + err = $ifaceNil; + _array = new Uint8Array(36); + _tuple = Syscall(27, ((s >>> 0)), ((_array)), ((flags >>> 0))); + _struct = msg, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Namelen = _view.getUint32(4, true), _struct.Pad_cgo_0 = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 8, _array.buffer.byteLength)), _struct.Iovlen = _view.getInt32(16, true), _struct.Pad_cgo_1 = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 20, _array.buffer.byteLength)), _struct.Controllen = _view.getUint32(28, true), _struct.Flags = _view.getInt32(32, true); + r0 = _tuple[0]; + e1 = _tuple[2]; + n = ((r0 >> 0)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return [n, err]; + }; + sendmsg = function(s, msg, flags) { + var _array, _struct, _tuple, _view, e1, err, flags, msg, n, r0, s; + n = 0; + err = $ifaceNil; + _array = new Uint8Array(36); + _tuple = Syscall(28, ((s >>> 0)), ((_array)), ((flags >>> 0))); + _struct = msg, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Namelen = _view.getUint32(4, true), _struct.Pad_cgo_0 = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 8, _array.buffer.byteLength)), _struct.Iovlen = _view.getInt32(16, true), _struct.Pad_cgo_1 = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 20, _array.buffer.byteLength)), _struct.Controllen = _view.getUint32(28, true), _struct.Flags = _view.getInt32(32, true); + r0 = _tuple[0]; + e1 = _tuple[2]; + n = ((r0 >> 0)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return [n, err]; + }; + fcntl = function(fd, cmd, arg) { + var _tuple, arg, cmd, e1, err, fd, r0, val; + val = 0; + err = $ifaceNil; + _tuple = Syscall(92, ((fd >>> 0)), ((cmd >>> 0)), ((arg >>> 0))); + r0 = _tuple[0]; + e1 = _tuple[2]; + val = ((r0 >> 0)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return [val, err]; + }; + Chmod = function(path, mode) { + var _p0, _tuple, _tuple$1, e1, err, mode, path; + err = $ifaceNil; + _p0 = ptrType$2.nil; + _tuple = BytePtrFromString(path); + _p0 = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + return err; + } + _tuple$1 = Syscall(15, ((_p0)), ((mode >>> 0)), 0); + e1 = _tuple$1[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return err; + }; + $pkg.Chmod = Chmod; + Close = function(fd) { + var _tuple, e1, err, fd; + err = $ifaceNil; + _tuple = Syscall(6, ((fd >>> 0)), 0, 0); + e1 = _tuple[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return err; + }; + $pkg.Close = Close; + Dup = function(fd) { + var _tuple, e1, err, fd, nfd, r0; + nfd = 0; + err = $ifaceNil; + _tuple = Syscall(41, ((fd >>> 0)), 0, 0); + r0 = _tuple[0]; + e1 = _tuple[2]; + nfd = ((r0 >> 0)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return [nfd, err]; + }; + $pkg.Dup = Dup; + Fchdir = function(fd) { + var _tuple, e1, err, fd; + err = $ifaceNil; + _tuple = Syscall(13, ((fd >>> 0)), 0, 0); + e1 = _tuple[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return err; + }; + $pkg.Fchdir = Fchdir; + Fchmod = function(fd, mode) { + var _tuple, e1, err, fd, mode; + err = $ifaceNil; + _tuple = Syscall(124, ((fd >>> 0)), ((mode >>> 0)), 0); + e1 = _tuple[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return err; + }; + $pkg.Fchmod = Fchmod; + Fchown = function(fd, uid, gid) { + var _tuple, e1, err, fd, gid, uid; + err = $ifaceNil; + _tuple = Syscall(123, ((fd >>> 0)), ((uid >>> 0)), ((gid >>> 0))); + e1 = _tuple[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return err; + }; + $pkg.Fchown = Fchown; + Fstat = function(fd, stat) { + var _array, _struct, _tuple, _view, e1, err, fd, stat; + err = $ifaceNil; + _array = new Uint8Array(144); + _tuple = Syscall(339, ((fd >>> 0)), ((_array)), 0); + _struct = stat, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Dev = _view.getInt32(0, true), _struct.Mode = _view.getUint16(4, true), _struct.Nlink = _view.getUint16(6, true), _struct.Ino = new $Uint64(_view.getUint32(12, true), _view.getUint32(8, true)), _struct.Uid = _view.getUint32(16, true), _struct.Gid = _view.getUint32(20, true), _struct.Rdev = _view.getInt32(24, true), _struct.Pad_cgo_0 = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 28, _array.buffer.byteLength)), _struct.Atimespec.Sec = new $Int64(_view.getUint32(36, true), _view.getUint32(32, true)), _struct.Atimespec.Nsec = new $Int64(_view.getUint32(44, true), _view.getUint32(40, true)), _struct.Mtimespec.Sec = new $Int64(_view.getUint32(52, true), _view.getUint32(48, true)), _struct.Mtimespec.Nsec = new $Int64(_view.getUint32(60, true), _view.getUint32(56, true)), _struct.Ctimespec.Sec = new $Int64(_view.getUint32(68, true), _view.getUint32(64, true)), _struct.Ctimespec.Nsec = new $Int64(_view.getUint32(76, true), _view.getUint32(72, true)), _struct.Birthtimespec.Sec = new $Int64(_view.getUint32(84, true), _view.getUint32(80, true)), _struct.Birthtimespec.Nsec = new $Int64(_view.getUint32(92, true), _view.getUint32(88, true)), _struct.Size = new $Int64(_view.getUint32(100, true), _view.getUint32(96, true)), _struct.Blocks = new $Int64(_view.getUint32(108, true), _view.getUint32(104, true)), _struct.Blksize = _view.getInt32(112, true), _struct.Flags = _view.getUint32(116, true), _struct.Gen = _view.getUint32(120, true), _struct.Lspare = _view.getInt32(124, true), _struct.Qspare = new ($nativeArray($kindInt64))(_array.buffer, $min(_array.byteOffset + 128, _array.buffer.byteLength)); + e1 = _tuple[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return err; + }; + $pkg.Fstat = Fstat; + Fsync = function(fd) { + var _tuple, e1, err, fd; + err = $ifaceNil; + _tuple = Syscall(95, ((fd >>> 0)), 0, 0); + e1 = _tuple[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return err; + }; + $pkg.Fsync = Fsync; + Ftruncate = function(fd, length) { + var _tuple, e1, err, fd, length; + err = $ifaceNil; + _tuple = Syscall(201, ((fd >>> 0)), ((length.$low >>> 0)), 0); + e1 = _tuple[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return err; + }; + $pkg.Ftruncate = Ftruncate; + Getdirentries = function(fd, buf, basep) { + var _p0, _tuple, basep, buf, e1, err, fd, n, r0; + n = 0; + err = $ifaceNil; + _p0 = 0; + if (buf.$length > 0) { + _p0 = ($sliceToArray(buf)); + } else { + _p0 = (new Uint8Array(0)); + } + _tuple = Syscall6(344, ((fd >>> 0)), (_p0), ((buf.$length >>> 0)), ((basep)), 0, 0); + r0 = _tuple[0]; + e1 = _tuple[2]; + n = ((r0 >> 0)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return [n, err]; + }; + $pkg.Getdirentries = Getdirentries; + Lstat = function(path, stat) { + var _array, _p0, _struct, _tuple, _tuple$1, _view, e1, err, path, stat; + err = $ifaceNil; + _p0 = ptrType$2.nil; + _tuple = BytePtrFromString(path); + _p0 = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + return err; + } + _array = new Uint8Array(144); + _tuple$1 = Syscall(340, ((_p0)), ((_array)), 0); + _struct = stat, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Dev = _view.getInt32(0, true), _struct.Mode = _view.getUint16(4, true), _struct.Nlink = _view.getUint16(6, true), _struct.Ino = new $Uint64(_view.getUint32(12, true), _view.getUint32(8, true)), _struct.Uid = _view.getUint32(16, true), _struct.Gid = _view.getUint32(20, true), _struct.Rdev = _view.getInt32(24, true), _struct.Pad_cgo_0 = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 28, _array.buffer.byteLength)), _struct.Atimespec.Sec = new $Int64(_view.getUint32(36, true), _view.getUint32(32, true)), _struct.Atimespec.Nsec = new $Int64(_view.getUint32(44, true), _view.getUint32(40, true)), _struct.Mtimespec.Sec = new $Int64(_view.getUint32(52, true), _view.getUint32(48, true)), _struct.Mtimespec.Nsec = new $Int64(_view.getUint32(60, true), _view.getUint32(56, true)), _struct.Ctimespec.Sec = new $Int64(_view.getUint32(68, true), _view.getUint32(64, true)), _struct.Ctimespec.Nsec = new $Int64(_view.getUint32(76, true), _view.getUint32(72, true)), _struct.Birthtimespec.Sec = new $Int64(_view.getUint32(84, true), _view.getUint32(80, true)), _struct.Birthtimespec.Nsec = new $Int64(_view.getUint32(92, true), _view.getUint32(88, true)), _struct.Size = new $Int64(_view.getUint32(100, true), _view.getUint32(96, true)), _struct.Blocks = new $Int64(_view.getUint32(108, true), _view.getUint32(104, true)), _struct.Blksize = _view.getInt32(112, true), _struct.Flags = _view.getUint32(116, true), _struct.Gen = _view.getUint32(120, true), _struct.Lspare = _view.getInt32(124, true), _struct.Qspare = new ($nativeArray($kindInt64))(_array.buffer, $min(_array.byteOffset + 128, _array.buffer.byteLength)); + e1 = _tuple$1[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return err; + }; + $pkg.Lstat = Lstat; + Open = function(path, mode, perm) { + var _p0, _tuple, _tuple$1, e1, err, fd, mode, path, perm, r0; + fd = 0; + err = $ifaceNil; + _p0 = ptrType$2.nil; + _tuple = BytePtrFromString(path); + _p0 = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + return [fd, err]; + } + _tuple$1 = Syscall(5, ((_p0)), ((mode >>> 0)), ((perm >>> 0))); + r0 = _tuple$1[0]; + e1 = _tuple$1[2]; + fd = ((r0 >> 0)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return [fd, err]; + }; + $pkg.Open = Open; + Pread = function(fd, p, offset) { + var _p0, _tuple, e1, err, fd, n, offset, p, r0; + n = 0; + err = $ifaceNil; + _p0 = 0; + if (p.$length > 0) { + _p0 = ($sliceToArray(p)); + } else { + _p0 = (new Uint8Array(0)); + } + _tuple = Syscall6(153, ((fd >>> 0)), (_p0), ((p.$length >>> 0)), ((offset.$low >>> 0)), 0, 0); + r0 = _tuple[0]; + e1 = _tuple[2]; + n = ((r0 >> 0)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return [n, err]; + }; + $pkg.Pread = Pread; + Pwrite = function(fd, p, offset) { + var _p0, _tuple, e1, err, fd, n, offset, p, r0; + n = 0; + err = $ifaceNil; + _p0 = 0; + if (p.$length > 0) { + _p0 = ($sliceToArray(p)); + } else { + _p0 = (new Uint8Array(0)); + } + _tuple = Syscall6(154, ((fd >>> 0)), (_p0), ((p.$length >>> 0)), ((offset.$low >>> 0)), 0, 0); + r0 = _tuple[0]; + e1 = _tuple[2]; + n = ((r0 >> 0)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return [n, err]; + }; + $pkg.Pwrite = Pwrite; + read = function(fd, p) { + var _p0, _tuple, e1, err, fd, n, p, r0; + n = 0; + err = $ifaceNil; + _p0 = 0; + if (p.$length > 0) { + _p0 = ($sliceToArray(p)); + } else { + _p0 = (new Uint8Array(0)); + } + _tuple = Syscall(3, ((fd >>> 0)), (_p0), ((p.$length >>> 0))); + r0 = _tuple[0]; + e1 = _tuple[2]; + n = ((r0 >> 0)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return [n, err]; + }; + Seek = function(fd, offset, whence) { + var _tuple, e1, err, fd, newoffset, offset, r0, whence; + newoffset = new $Int64(0, 0); + err = $ifaceNil; + _tuple = Syscall(199, ((fd >>> 0)), ((offset.$low >>> 0)), ((whence >>> 0))); + r0 = _tuple[0]; + e1 = _tuple[2]; + newoffset = (new $Int64(0, r0.constructor === Number ? r0 : 1)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return [newoffset, err]; + }; + $pkg.Seek = Seek; + Stat = function(path, stat) { + var _array, _p0, _struct, _tuple, _tuple$1, _view, e1, err, path, stat; + err = $ifaceNil; + _p0 = ptrType$2.nil; + _tuple = BytePtrFromString(path); + _p0 = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + return err; + } + _array = new Uint8Array(144); + _tuple$1 = Syscall(338, ((_p0)), ((_array)), 0); + _struct = stat, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Dev = _view.getInt32(0, true), _struct.Mode = _view.getUint16(4, true), _struct.Nlink = _view.getUint16(6, true), _struct.Ino = new $Uint64(_view.getUint32(12, true), _view.getUint32(8, true)), _struct.Uid = _view.getUint32(16, true), _struct.Gid = _view.getUint32(20, true), _struct.Rdev = _view.getInt32(24, true), _struct.Pad_cgo_0 = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 28, _array.buffer.byteLength)), _struct.Atimespec.Sec = new $Int64(_view.getUint32(36, true), _view.getUint32(32, true)), _struct.Atimespec.Nsec = new $Int64(_view.getUint32(44, true), _view.getUint32(40, true)), _struct.Mtimespec.Sec = new $Int64(_view.getUint32(52, true), _view.getUint32(48, true)), _struct.Mtimespec.Nsec = new $Int64(_view.getUint32(60, true), _view.getUint32(56, true)), _struct.Ctimespec.Sec = new $Int64(_view.getUint32(68, true), _view.getUint32(64, true)), _struct.Ctimespec.Nsec = new $Int64(_view.getUint32(76, true), _view.getUint32(72, true)), _struct.Birthtimespec.Sec = new $Int64(_view.getUint32(84, true), _view.getUint32(80, true)), _struct.Birthtimespec.Nsec = new $Int64(_view.getUint32(92, true), _view.getUint32(88, true)), _struct.Size = new $Int64(_view.getUint32(100, true), _view.getUint32(96, true)), _struct.Blocks = new $Int64(_view.getUint32(108, true), _view.getUint32(104, true)), _struct.Blksize = _view.getInt32(112, true), _struct.Flags = _view.getUint32(116, true), _struct.Gen = _view.getUint32(120, true), _struct.Lspare = _view.getInt32(124, true), _struct.Qspare = new ($nativeArray($kindInt64))(_array.buffer, $min(_array.byteOffset + 128, _array.buffer.byteLength)); + e1 = _tuple$1[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return err; + }; + $pkg.Stat = Stat; + write = function(fd, p) { + var _p0, _tuple, e1, err, fd, n, p, r0; + n = 0; + err = $ifaceNil; + _p0 = 0; + if (p.$length > 0) { + _p0 = ($sliceToArray(p)); + } else { + _p0 = (new Uint8Array(0)); + } + _tuple = Syscall(4, ((fd >>> 0)), (_p0), ((p.$length >>> 0))); + r0 = _tuple[0]; + e1 = _tuple[2]; + n = ((r0 >> 0)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return [n, err]; + }; + mmap = function(addr, length, prot, flag, fd, pos) { + var _tuple, addr, e1, err, fd, flag, length, pos, prot, r0, ret; + ret = 0; + err = $ifaceNil; + _tuple = Syscall6(197, (addr), (length), ((prot >>> 0)), ((flag >>> 0)), ((fd >>> 0)), ((pos.$low >>> 0))); + r0 = _tuple[0]; + e1 = _tuple[2]; + ret = (r0); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return [ret, err]; + }; + munmap = function(addr, length) { + var _tuple, addr, e1, err, length; + err = $ifaceNil; + _tuple = Syscall(73, (addr), (length), 0); + e1 = _tuple[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return err; + }; + ptrType$11.methods = [{prop: "sockaddr", name: "sockaddr", pkg: "syscall", typ: $funcType([], [$UnsafePointer, _Socklen, $error], false)}]; + ptrType$27.methods = [{prop: "Mmap", name: "Mmap", pkg: "", typ: $funcType([$Int, $Int64, $Int, $Int, $Int], [sliceType, $error], false)}, {prop: "Munmap", name: "Munmap", pkg: "", typ: $funcType([sliceType], [$error], false)}]; + Errno.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Temporary", name: "Temporary", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType$28.methods = [{prop: "sockaddr", name: "sockaddr", pkg: "syscall", typ: $funcType([], [$UnsafePointer, _Socklen, $error], false)}]; + ptrType$29.methods = [{prop: "sockaddr", name: "sockaddr", pkg: "syscall", typ: $funcType([], [$UnsafePointer, _Socklen, $error], false)}]; + ptrType$30.methods = [{prop: "sockaddr", name: "sockaddr", pkg: "syscall", typ: $funcType([], [$UnsafePointer, _Socklen, $error], false)}]; + ptrType$31.methods = [{prop: "Unix", name: "Unix", pkg: "", typ: $funcType([], [$Int64, $Int64], false)}, {prop: "Nano", name: "Nano", pkg: "", typ: $funcType([], [$Int64], false)}]; + ptrType$18.methods = [{prop: "SetLen", name: "SetLen", pkg: "", typ: $funcType([$Int], [], false)}]; + ptrType$32.methods = [{prop: "SetControllen", name: "SetControllen", pkg: "", typ: $funcType([$Int], [], false)}]; + SockaddrDatalink.init("syscall", [{prop: "Len", name: "Len", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Family", name: "Family", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Index", name: "Index", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Nlen", name: "Nlen", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Alen", name: "Alen", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Slen", name: "Slen", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Data", name: "Data", embedded: false, exported: true, typ: arrayType$3, tag: ""}, {prop: "raw", name: "raw", embedded: false, exported: false, typ: RawSockaddrDatalink, tag: ""}]); + mmapper.init("syscall", [{prop: "Mutex", name: "Mutex", embedded: true, exported: true, typ: sync.Mutex, tag: ""}, {prop: "active", name: "active", embedded: false, exported: false, typ: mapType, tag: ""}, {prop: "mmap", name: "mmap", embedded: false, exported: false, typ: funcType$2, tag: ""}, {prop: "munmap", name: "munmap", embedded: false, exported: false, typ: funcType$3, tag: ""}]); + Sockaddr.init([{prop: "sockaddr", name: "sockaddr", pkg: "syscall", typ: $funcType([], [$UnsafePointer, _Socklen, $error], false)}]); + SockaddrInet4.init("syscall", [{prop: "Port", name: "Port", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Addr", name: "Addr", embedded: false, exported: true, typ: arrayType$1, tag: ""}, {prop: "raw", name: "raw", embedded: false, exported: false, typ: RawSockaddrInet4, tag: ""}]); + SockaddrInet6.init("syscall", [{prop: "Port", name: "Port", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "ZoneId", name: "ZoneId", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Addr", name: "Addr", embedded: false, exported: true, typ: arrayType, tag: ""}, {prop: "raw", name: "raw", embedded: false, exported: false, typ: RawSockaddrInet6, tag: ""}]); + SockaddrUnix.init("syscall", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "raw", name: "raw", embedded: false, exported: false, typ: RawSockaddrUnix, tag: ""}]); + Timespec.init("", [{prop: "Sec", name: "Sec", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "Nsec", name: "Nsec", embedded: false, exported: true, typ: $Int64, tag: ""}]); + Stat_t.init("", [{prop: "Dev", name: "Dev", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "Mode", name: "Mode", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Nlink", name: "Nlink", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Ino", name: "Ino", embedded: false, exported: true, typ: $Uint64, tag: ""}, {prop: "Uid", name: "Uid", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Gid", name: "Gid", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Rdev", name: "Rdev", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "Pad_cgo_0", name: "Pad_cgo_0", embedded: false, exported: true, typ: arrayType$1, tag: ""}, {prop: "Atimespec", name: "Atimespec", embedded: false, exported: true, typ: Timespec, tag: ""}, {prop: "Mtimespec", name: "Mtimespec", embedded: false, exported: true, typ: Timespec, tag: ""}, {prop: "Ctimespec", name: "Ctimespec", embedded: false, exported: true, typ: Timespec, tag: ""}, {prop: "Birthtimespec", name: "Birthtimespec", embedded: false, exported: true, typ: Timespec, tag: ""}, {prop: "Size", name: "Size", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "Blocks", name: "Blocks", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "Blksize", name: "Blksize", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "Flags", name: "Flags", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Gen", name: "Gen", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Lspare", name: "Lspare", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "Qspare", name: "Qspare", embedded: false, exported: true, typ: arrayType$15, tag: ""}]); + RawSockaddrInet4.init("", [{prop: "Len", name: "Len", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Family", name: "Family", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Port", name: "Port", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Addr", name: "Addr", embedded: false, exported: true, typ: arrayType$1, tag: ""}, {prop: "Zero", name: "Zero", embedded: false, exported: true, typ: arrayType$6, tag: ""}]); + RawSockaddrInet6.init("", [{prop: "Len", name: "Len", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Family", name: "Family", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Port", name: "Port", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Flowinfo", name: "Flowinfo", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Addr", name: "Addr", embedded: false, exported: true, typ: arrayType, tag: ""}, {prop: "Scope_id", name: "Scope_id", embedded: false, exported: true, typ: $Uint32, tag: ""}]); + RawSockaddrUnix.init("", [{prop: "Len", name: "Len", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Family", name: "Family", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Path", name: "Path", embedded: false, exported: true, typ: arrayType$11, tag: ""}]); + RawSockaddrDatalink.init("", [{prop: "Len", name: "Len", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Family", name: "Family", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Index", name: "Index", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Nlen", name: "Nlen", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Alen", name: "Alen", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Slen", name: "Slen", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Data", name: "Data", embedded: false, exported: true, typ: arrayType$3, tag: ""}]); + RawSockaddr.init("", [{prop: "Len", name: "Len", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Family", name: "Family", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Data", name: "Data", embedded: false, exported: true, typ: arrayType$4, tag: ""}]); + RawSockaddrAny.init("", [{prop: "Addr", name: "Addr", embedded: false, exported: true, typ: RawSockaddr, tag: ""}, {prop: "Pad", name: "Pad", embedded: false, exported: true, typ: arrayType$5, tag: ""}]); + Linger.init("", [{prop: "Onoff", name: "Onoff", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "Linger", name: "Linger", embedded: false, exported: true, typ: $Int32, tag: ""}]); + Iovec.init("", [{prop: "Base", name: "Base", embedded: false, exported: true, typ: ptrType$2, tag: ""}, {prop: "Len", name: "Len", embedded: false, exported: true, typ: $Uint64, tag: ""}]); + IPMreq.init("", [{prop: "Multiaddr", name: "Multiaddr", embedded: false, exported: true, typ: arrayType$1, tag: ""}, {prop: "Interface", name: "Interface", embedded: false, exported: true, typ: arrayType$1, tag: ""}]); + IPv6Mreq.init("", [{prop: "Multiaddr", name: "Multiaddr", embedded: false, exported: true, typ: arrayType, tag: ""}, {prop: "Interface", name: "Interface", embedded: false, exported: true, typ: $Uint32, tag: ""}]); + Msghdr.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: ptrType$2, tag: ""}, {prop: "Namelen", name: "Namelen", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Pad_cgo_0", name: "Pad_cgo_0", embedded: false, exported: true, typ: arrayType$1, tag: ""}, {prop: "Iov", name: "Iov", embedded: false, exported: true, typ: ptrType$18, tag: ""}, {prop: "Iovlen", name: "Iovlen", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "Pad_cgo_1", name: "Pad_cgo_1", embedded: false, exported: true, typ: arrayType$1, tag: ""}, {prop: "Control", name: "Control", embedded: false, exported: true, typ: ptrType$2, tag: ""}, {prop: "Controllen", name: "Controllen", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Flags", name: "Flags", embedded: false, exported: true, typ: $Int32, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = js.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = race.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sync.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + lineBuffer = sliceType.nil; + syscallModule = null; + $pkg.ForkLock = new sync.RWMutex.ptr(new sync.Mutex.ptr(0, 0), 0, 0, 0, 0); + freebsdConfArch = ""; + ioSync = new $Int64(0, 0); + warningPrinted = false; + alreadyTriedToLoad = false; + minusOne = -1; + envs = runtime_envs(); + $pkg.Stdin = 0; + $pkg.Stdout = 1; + $pkg.Stderr = 2; + errEAGAIN = new Errno(35); + errEINVAL = new Errno(22); + errENOENT = new Errno(2); + errors$1 = $toNativeArray($kindString, ["", "operation not permitted", "no such file or directory", "no such process", "interrupted system call", "input/output error", "device not configured", "argument list too long", "exec format error", "bad file descriptor", "no child processes", "resource deadlock avoided", "cannot allocate memory", "permission denied", "bad address", "block device required", "resource busy", "file exists", "cross-device link", "operation not supported by device", "not a directory", "is a directory", "invalid argument", "too many open files in system", "too many open files", "inappropriate ioctl for device", "text file busy", "file too large", "no space left on device", "illegal seek", "read-only file system", "too many links", "broken pipe", "numerical argument out of domain", "result too large", "resource temporarily unavailable", "operation now in progress", "operation already in progress", "socket operation on non-socket", "destination address required", "message too long", "protocol wrong type for socket", "protocol not available", "protocol not supported", "socket type not supported", "operation not supported", "protocol family not supported", "address family not supported by protocol family", "address already in use", "can't assign requested address", "network is down", "network is unreachable", "network dropped connection on reset", "software caused connection abort", "connection reset by peer", "no buffer space available", "socket is already connected", "socket is not connected", "can't send after socket shutdown", "too many references: can't splice", "operation timed out", "connection refused", "too many levels of symbolic links", "file name too long", "host is down", "no route to host", "directory not empty", "too many processes", "too many users", "disc quota exceeded", "stale NFS file handle", "too many levels of remote in path", "RPC struct is bad", "RPC version wrong", "RPC prog. not avail", "program version wrong", "bad procedure for program", "no locks available", "function not implemented", "inappropriate file type or format", "authentication error", "need authenticator", "device power is off", "device error", "value too large to be stored in data type", "bad executable (or shared library)", "bad CPU type in executable", "shared library version mismatch", "malformed Mach-o file", "operation canceled", "identifier removed", "no message of desired type", "illegal byte sequence", "attribute not found", "bad message", "EMULTIHOP (Reserved)", "no message available on STREAM", "ENOLINK (Reserved)", "no STREAM resources", "not a STREAM", "protocol error", "STREAM ioctl timeout", "operation not supported on socket", "policy not found", "state not recoverable", "previous owner died"]); + mapper = new mmapper.ptr(new sync.Mutex.ptr(0, 0), {}, mmap, munmap); + minRoutingSockaddrLen = rsaAlignOf(0); + init(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["github.com/gopherjs/gopherjs/nosync"] = (function() { + var $pkg = {}, $init, Mutex, Once, ptrType$1, funcType$1, ptrType$4; + Mutex = $pkg.Mutex = $newType(0, $kindStruct, "nosync.Mutex", true, "github.com/gopherjs/gopherjs/nosync", true, function(locked_) { + this.$val = this; + if (arguments.length === 0) { + this.locked = false; + return; + } + this.locked = locked_; + }); + Once = $pkg.Once = $newType(0, $kindStruct, "nosync.Once", true, "github.com/gopherjs/gopherjs/nosync", true, function(doing_, done_) { + this.$val = this; + if (arguments.length === 0) { + this.doing = false; + this.done = false; + return; + } + this.doing = doing_; + this.done = done_; + }); + ptrType$1 = $ptrType(Mutex); + funcType$1 = $funcType([], [], false); + ptrType$4 = $ptrType(Once); + Mutex.ptr.prototype.Lock = function() { + var m; + m = this; + if (m.locked) { + $panic(new $String("nosync: mutex is already locked")); + } + m.locked = true; + }; + Mutex.prototype.Lock = function() { return this.$val.Lock(); }; + Mutex.ptr.prototype.Unlock = function() { + var m; + m = this; + if (!m.locked) { + $panic(new $String("nosync: unlock of unlocked mutex")); + } + m.locked = false; + }; + Mutex.prototype.Unlock = function() { return this.$val.Unlock(); }; + Once.ptr.prototype.Do = function(f) { + var f, o, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; f = $f.f; o = $f.o; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + o = [o]; + o[0] = this; + if (o[0].done) { + $s = -1; return; + } + if (o[0].doing) { + $panic(new $String("nosync: Do called within f")); + } + o[0].doing = true; + $deferred.push([(function(o) { return function() { + o[0].doing = false; + o[0].done = true; + }; })(o), []]); + $r = f(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: Once.ptr.prototype.Do }; } $f.f = f; $f.o = o; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + Once.prototype.Do = function(f) { return this.$val.Do(f); }; + ptrType$1.methods = [{prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}]; + ptrType$4.methods = [{prop: "Do", name: "Do", pkg: "", typ: $funcType([funcType$1], [], false)}]; + Mutex.init("github.com/gopherjs/gopherjs/nosync", [{prop: "locked", name: "locked", embedded: false, exported: false, typ: $Bool, tag: ""}]); + Once.init("github.com/gopherjs/gopherjs/nosync", [{prop: "doing", name: "doing", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "done", name: "done", embedded: false, exported: false, typ: $Bool, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["time"] = (function() { + var $pkg = {}, $init, errors, js, nosync, runtime, syscall, ParseError, Time, Month, Weekday, Duration, Location, zone, zoneTrans, sliceType, sliceType$1, ptrType, sliceType$2, arrayType, sliceType$3, arrayType$1, arrayType$2, ptrType$2, arrayType$3, ptrType$4, ptrType$7, zoneSources, std0x, longDayNames, shortDayNames, shortMonthNames, longMonthNames, atoiError, errBad, errLeadingInt, months, days, daysBefore, utcLoc, utcLoc$24ptr, localLoc, localLoc$24ptr, localOnce, errLocation, badData, init, initLocal, runtimeNano, now, indexByte, startsWithLowerCase, nextStdChunk, match, lookup, appendInt, atoi, formatNano, quote, isDigit, getnum, cutspace, skip, Parse, parse, parseTimeZone, parseGMT, parseSignedOffset, parseNanoseconds, leadingInt, absWeekday, absClock, fmtFrac, fmtInt, lessThanHalf, absDate, daysIn, Now, unixTime, Unix, isLeap, norm, Date, div, FixedZone; + errors = $packages["errors"]; + js = $packages["github.com/gopherjs/gopherjs/js"]; + nosync = $packages["github.com/gopherjs/gopherjs/nosync"]; + runtime = $packages["runtime"]; + syscall = $packages["syscall"]; + ParseError = $pkg.ParseError = $newType(0, $kindStruct, "time.ParseError", true, "time", true, function(Layout_, Value_, LayoutElem_, ValueElem_, Message_) { + this.$val = this; + if (arguments.length === 0) { + this.Layout = ""; + this.Value = ""; + this.LayoutElem = ""; + this.ValueElem = ""; + this.Message = ""; + return; + } + this.Layout = Layout_; + this.Value = Value_; + this.LayoutElem = LayoutElem_; + this.ValueElem = ValueElem_; + this.Message = Message_; + }); + Time = $pkg.Time = $newType(0, $kindStruct, "time.Time", true, "time", true, function(wall_, ext_, loc_) { + this.$val = this; + if (arguments.length === 0) { + this.wall = new $Uint64(0, 0); + this.ext = new $Int64(0, 0); + this.loc = ptrType$2.nil; + return; + } + this.wall = wall_; + this.ext = ext_; + this.loc = loc_; + }); + Month = $pkg.Month = $newType(4, $kindInt, "time.Month", true, "time", true, null); + Weekday = $pkg.Weekday = $newType(4, $kindInt, "time.Weekday", true, "time", true, null); + Duration = $pkg.Duration = $newType(8, $kindInt64, "time.Duration", true, "time", true, null); + Location = $pkg.Location = $newType(0, $kindStruct, "time.Location", true, "time", true, function(name_, zone_, tx_, cacheStart_, cacheEnd_, cacheZone_) { + this.$val = this; + if (arguments.length === 0) { + this.name = ""; + this.zone = sliceType.nil; + this.tx = sliceType$1.nil; + this.cacheStart = new $Int64(0, 0); + this.cacheEnd = new $Int64(0, 0); + this.cacheZone = ptrType.nil; + return; + } + this.name = name_; + this.zone = zone_; + this.tx = tx_; + this.cacheStart = cacheStart_; + this.cacheEnd = cacheEnd_; + this.cacheZone = cacheZone_; + }); + zone = $pkg.zone = $newType(0, $kindStruct, "time.zone", true, "time", false, function(name_, offset_, isDST_) { + this.$val = this; + if (arguments.length === 0) { + this.name = ""; + this.offset = 0; + this.isDST = false; + return; + } + this.name = name_; + this.offset = offset_; + this.isDST = isDST_; + }); + zoneTrans = $pkg.zoneTrans = $newType(0, $kindStruct, "time.zoneTrans", true, "time", false, function(when_, index_, isstd_, isutc_) { + this.$val = this; + if (arguments.length === 0) { + this.when = new $Int64(0, 0); + this.index = 0; + this.isstd = false; + this.isutc = false; + return; + } + this.when = when_; + this.index = index_; + this.isstd = isstd_; + this.isutc = isutc_; + }); + sliceType = $sliceType(zone); + sliceType$1 = $sliceType(zoneTrans); + ptrType = $ptrType(zone); + sliceType$2 = $sliceType($String); + arrayType = $arrayType($Uint8, 20); + sliceType$3 = $sliceType($Uint8); + arrayType$1 = $arrayType($Uint8, 9); + arrayType$2 = $arrayType($Uint8, 64); + ptrType$2 = $ptrType(Location); + arrayType$3 = $arrayType($Uint8, 32); + ptrType$4 = $ptrType(ParseError); + ptrType$7 = $ptrType(Time); + init = function() { + $unused(Unix(new $Int64(0, 0), new $Int64(0, 0))); + }; + initLocal = function() { + var d, i, j, s; + d = new ($global.Date)(); + s = $internalize(d, $String); + i = indexByte(s, 40); + j = indexByte(s, 41); + if ((i === -1) || (j === -1)) { + localLoc.name = "UTC"; + return; + } + localLoc.name = $substring(s, (i + 1 >> 0), j); + localLoc.zone = new sliceType([new zone.ptr(localLoc.name, $imul(($parseInt(d.getTimezoneOffset()) >> 0), -60), false)]); + }; + runtimeNano = function() { + return $mul64($internalize(new ($global.Date)().getTime(), $Int64), new $Int64(0, 1000000)); + }; + now = function() { + var _tmp, _tmp$1, _tmp$2, mono, n, nsec, sec, x; + sec = new $Int64(0, 0); + nsec = 0; + mono = new $Int64(0, 0); + n = runtimeNano(); + _tmp = $div64(n, new $Int64(0, 1000000000), false); + _tmp$1 = (((x = $div64(n, new $Int64(0, 1000000000), true), x.$low + ((x.$high >> 31) * 4294967296)) >> 0)); + _tmp$2 = n; + sec = _tmp; + nsec = _tmp$1; + mono = _tmp$2; + return [sec, nsec, mono]; + }; + indexByte = function(s, c) { + var c, s; + return $parseInt(s.indexOf($global.String.fromCharCode(c))) >> 0; + }; + startsWithLowerCase = function(str) { + var c, str; + if (str.length === 0) { + return false; + } + c = str.charCodeAt(0); + return 97 <= c && c <= 122; + }; + nextStdChunk = function(layout) { + var _1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$32, _tmp$33, _tmp$34, _tmp$35, _tmp$36, _tmp$37, _tmp$38, _tmp$39, _tmp$4, _tmp$40, _tmp$41, _tmp$42, _tmp$43, _tmp$44, _tmp$45, _tmp$46, _tmp$47, _tmp$48, _tmp$49, _tmp$5, _tmp$50, _tmp$51, _tmp$52, _tmp$53, _tmp$54, _tmp$55, _tmp$56, _tmp$57, _tmp$58, _tmp$59, _tmp$6, _tmp$60, _tmp$61, _tmp$62, _tmp$63, _tmp$64, _tmp$65, _tmp$66, _tmp$67, _tmp$68, _tmp$69, _tmp$7, _tmp$70, _tmp$71, _tmp$72, _tmp$73, _tmp$74, _tmp$75, _tmp$76, _tmp$77, _tmp$78, _tmp$79, _tmp$8, _tmp$80, _tmp$81, _tmp$82, _tmp$83, _tmp$84, _tmp$85, _tmp$86, _tmp$9, c, ch, i, j, layout, prefix, std, std$1, suffix, x; + prefix = ""; + std = 0; + suffix = ""; + i = 0; + while (true) { + if (!(i < layout.length)) { break; } + c = ((layout.charCodeAt(i) >> 0)); + _1 = c; + if (_1 === (74)) { + if (layout.length >= (i + 3 >> 0) && $substring(layout, i, (i + 3 >> 0)) === "Jan") { + if (layout.length >= (i + 7 >> 0) && $substring(layout, i, (i + 7 >> 0)) === "January") { + _tmp = $substring(layout, 0, i); + _tmp$1 = 257; + _tmp$2 = $substring(layout, (i + 7 >> 0)); + prefix = _tmp; + std = _tmp$1; + suffix = _tmp$2; + return [prefix, std, suffix]; + } + if (!startsWithLowerCase($substring(layout, (i + 3 >> 0)))) { + _tmp$3 = $substring(layout, 0, i); + _tmp$4 = 258; + _tmp$5 = $substring(layout, (i + 3 >> 0)); + prefix = _tmp$3; + std = _tmp$4; + suffix = _tmp$5; + return [prefix, std, suffix]; + } + } + } else if (_1 === (77)) { + if (layout.length >= (i + 3 >> 0)) { + if ($substring(layout, i, (i + 3 >> 0)) === "Mon") { + if (layout.length >= (i + 6 >> 0) && $substring(layout, i, (i + 6 >> 0)) === "Monday") { + _tmp$6 = $substring(layout, 0, i); + _tmp$7 = 261; + _tmp$8 = $substring(layout, (i + 6 >> 0)); + prefix = _tmp$6; + std = _tmp$7; + suffix = _tmp$8; + return [prefix, std, suffix]; + } + if (!startsWithLowerCase($substring(layout, (i + 3 >> 0)))) { + _tmp$9 = $substring(layout, 0, i); + _tmp$10 = 262; + _tmp$11 = $substring(layout, (i + 3 >> 0)); + prefix = _tmp$9; + std = _tmp$10; + suffix = _tmp$11; + return [prefix, std, suffix]; + } + } + if ($substring(layout, i, (i + 3 >> 0)) === "MST") { + _tmp$12 = $substring(layout, 0, i); + _tmp$13 = 21; + _tmp$14 = $substring(layout, (i + 3 >> 0)); + prefix = _tmp$12; + std = _tmp$13; + suffix = _tmp$14; + return [prefix, std, suffix]; + } + } + } else if (_1 === (48)) { + if (layout.length >= (i + 2 >> 0) && 49 <= layout.charCodeAt((i + 1 >> 0)) && layout.charCodeAt((i + 1 >> 0)) <= 54) { + _tmp$15 = $substring(layout, 0, i); + _tmp$16 = (x = layout.charCodeAt((i + 1 >> 0)) - 49 << 24 >>> 24, ((x < 0 || x >= std0x.length) ? ($throwRuntimeError("index out of range"), undefined) : std0x[x])); + _tmp$17 = $substring(layout, (i + 2 >> 0)); + prefix = _tmp$15; + std = _tmp$16; + suffix = _tmp$17; + return [prefix, std, suffix]; + } + } else if (_1 === (49)) { + if (layout.length >= (i + 2 >> 0) && (layout.charCodeAt((i + 1 >> 0)) === 53)) { + _tmp$18 = $substring(layout, 0, i); + _tmp$19 = 522; + _tmp$20 = $substring(layout, (i + 2 >> 0)); + prefix = _tmp$18; + std = _tmp$19; + suffix = _tmp$20; + return [prefix, std, suffix]; + } + _tmp$21 = $substring(layout, 0, i); + _tmp$22 = 259; + _tmp$23 = $substring(layout, (i + 1 >> 0)); + prefix = _tmp$21; + std = _tmp$22; + suffix = _tmp$23; + return [prefix, std, suffix]; + } else if (_1 === (50)) { + if (layout.length >= (i + 4 >> 0) && $substring(layout, i, (i + 4 >> 0)) === "2006") { + _tmp$24 = $substring(layout, 0, i); + _tmp$25 = 273; + _tmp$26 = $substring(layout, (i + 4 >> 0)); + prefix = _tmp$24; + std = _tmp$25; + suffix = _tmp$26; + return [prefix, std, suffix]; + } + _tmp$27 = $substring(layout, 0, i); + _tmp$28 = 263; + _tmp$29 = $substring(layout, (i + 1 >> 0)); + prefix = _tmp$27; + std = _tmp$28; + suffix = _tmp$29; + return [prefix, std, suffix]; + } else if (_1 === (95)) { + if (layout.length >= (i + 2 >> 0) && (layout.charCodeAt((i + 1 >> 0)) === 50)) { + if (layout.length >= (i + 5 >> 0) && $substring(layout, (i + 1 >> 0), (i + 5 >> 0)) === "2006") { + _tmp$30 = $substring(layout, 0, (i + 1 >> 0)); + _tmp$31 = 273; + _tmp$32 = $substring(layout, (i + 5 >> 0)); + prefix = _tmp$30; + std = _tmp$31; + suffix = _tmp$32; + return [prefix, std, suffix]; + } + _tmp$33 = $substring(layout, 0, i); + _tmp$34 = 264; + _tmp$35 = $substring(layout, (i + 2 >> 0)); + prefix = _tmp$33; + std = _tmp$34; + suffix = _tmp$35; + return [prefix, std, suffix]; + } + } else if (_1 === (51)) { + _tmp$36 = $substring(layout, 0, i); + _tmp$37 = 523; + _tmp$38 = $substring(layout, (i + 1 >> 0)); + prefix = _tmp$36; + std = _tmp$37; + suffix = _tmp$38; + return [prefix, std, suffix]; + } else if (_1 === (52)) { + _tmp$39 = $substring(layout, 0, i); + _tmp$40 = 525; + _tmp$41 = $substring(layout, (i + 1 >> 0)); + prefix = _tmp$39; + std = _tmp$40; + suffix = _tmp$41; + return [prefix, std, suffix]; + } else if (_1 === (53)) { + _tmp$42 = $substring(layout, 0, i); + _tmp$43 = 527; + _tmp$44 = $substring(layout, (i + 1 >> 0)); + prefix = _tmp$42; + std = _tmp$43; + suffix = _tmp$44; + return [prefix, std, suffix]; + } else if (_1 === (80)) { + if (layout.length >= (i + 2 >> 0) && (layout.charCodeAt((i + 1 >> 0)) === 77)) { + _tmp$45 = $substring(layout, 0, i); + _tmp$46 = 531; + _tmp$47 = $substring(layout, (i + 2 >> 0)); + prefix = _tmp$45; + std = _tmp$46; + suffix = _tmp$47; + return [prefix, std, suffix]; + } + } else if (_1 === (112)) { + if (layout.length >= (i + 2 >> 0) && (layout.charCodeAt((i + 1 >> 0)) === 109)) { + _tmp$48 = $substring(layout, 0, i); + _tmp$49 = 532; + _tmp$50 = $substring(layout, (i + 2 >> 0)); + prefix = _tmp$48; + std = _tmp$49; + suffix = _tmp$50; + return [prefix, std, suffix]; + } + } else if (_1 === (45)) { + if (layout.length >= (i + 7 >> 0) && $substring(layout, i, (i + 7 >> 0)) === "-070000") { + _tmp$51 = $substring(layout, 0, i); + _tmp$52 = 28; + _tmp$53 = $substring(layout, (i + 7 >> 0)); + prefix = _tmp$51; + std = _tmp$52; + suffix = _tmp$53; + return [prefix, std, suffix]; + } + if (layout.length >= (i + 9 >> 0) && $substring(layout, i, (i + 9 >> 0)) === "-07:00:00") { + _tmp$54 = $substring(layout, 0, i); + _tmp$55 = 31; + _tmp$56 = $substring(layout, (i + 9 >> 0)); + prefix = _tmp$54; + std = _tmp$55; + suffix = _tmp$56; + return [prefix, std, suffix]; + } + if (layout.length >= (i + 5 >> 0) && $substring(layout, i, (i + 5 >> 0)) === "-0700") { + _tmp$57 = $substring(layout, 0, i); + _tmp$58 = 27; + _tmp$59 = $substring(layout, (i + 5 >> 0)); + prefix = _tmp$57; + std = _tmp$58; + suffix = _tmp$59; + return [prefix, std, suffix]; + } + if (layout.length >= (i + 6 >> 0) && $substring(layout, i, (i + 6 >> 0)) === "-07:00") { + _tmp$60 = $substring(layout, 0, i); + _tmp$61 = 30; + _tmp$62 = $substring(layout, (i + 6 >> 0)); + prefix = _tmp$60; + std = _tmp$61; + suffix = _tmp$62; + return [prefix, std, suffix]; + } + if (layout.length >= (i + 3 >> 0) && $substring(layout, i, (i + 3 >> 0)) === "-07") { + _tmp$63 = $substring(layout, 0, i); + _tmp$64 = 29; + _tmp$65 = $substring(layout, (i + 3 >> 0)); + prefix = _tmp$63; + std = _tmp$64; + suffix = _tmp$65; + return [prefix, std, suffix]; + } + } else if (_1 === (90)) { + if (layout.length >= (i + 7 >> 0) && $substring(layout, i, (i + 7 >> 0)) === "Z070000") { + _tmp$66 = $substring(layout, 0, i); + _tmp$67 = 23; + _tmp$68 = $substring(layout, (i + 7 >> 0)); + prefix = _tmp$66; + std = _tmp$67; + suffix = _tmp$68; + return [prefix, std, suffix]; + } + if (layout.length >= (i + 9 >> 0) && $substring(layout, i, (i + 9 >> 0)) === "Z07:00:00") { + _tmp$69 = $substring(layout, 0, i); + _tmp$70 = 26; + _tmp$71 = $substring(layout, (i + 9 >> 0)); + prefix = _tmp$69; + std = _tmp$70; + suffix = _tmp$71; + return [prefix, std, suffix]; + } + if (layout.length >= (i + 5 >> 0) && $substring(layout, i, (i + 5 >> 0)) === "Z0700") { + _tmp$72 = $substring(layout, 0, i); + _tmp$73 = 22; + _tmp$74 = $substring(layout, (i + 5 >> 0)); + prefix = _tmp$72; + std = _tmp$73; + suffix = _tmp$74; + return [prefix, std, suffix]; + } + if (layout.length >= (i + 6 >> 0) && $substring(layout, i, (i + 6 >> 0)) === "Z07:00") { + _tmp$75 = $substring(layout, 0, i); + _tmp$76 = 25; + _tmp$77 = $substring(layout, (i + 6 >> 0)); + prefix = _tmp$75; + std = _tmp$76; + suffix = _tmp$77; + return [prefix, std, suffix]; + } + if (layout.length >= (i + 3 >> 0) && $substring(layout, i, (i + 3 >> 0)) === "Z07") { + _tmp$78 = $substring(layout, 0, i); + _tmp$79 = 24; + _tmp$80 = $substring(layout, (i + 3 >> 0)); + prefix = _tmp$78; + std = _tmp$79; + suffix = _tmp$80; + return [prefix, std, suffix]; + } + } else if (_1 === (46)) { + if ((i + 1 >> 0) < layout.length && ((layout.charCodeAt((i + 1 >> 0)) === 48) || (layout.charCodeAt((i + 1 >> 0)) === 57))) { + ch = layout.charCodeAt((i + 1 >> 0)); + j = i + 1 >> 0; + while (true) { + if (!(j < layout.length && (layout.charCodeAt(j) === ch))) { break; } + j = j + (1) >> 0; + } + if (!isDigit(layout, j)) { + std$1 = 32; + if (layout.charCodeAt((i + 1 >> 0)) === 57) { + std$1 = 33; + } + std$1 = std$1 | ((((j - ((i + 1 >> 0)) >> 0)) << 16 >> 0)); + _tmp$81 = $substring(layout, 0, i); + _tmp$82 = std$1; + _tmp$83 = $substring(layout, j); + prefix = _tmp$81; + std = _tmp$82; + suffix = _tmp$83; + return [prefix, std, suffix]; + } + } + } + i = i + (1) >> 0; + } + _tmp$84 = layout; + _tmp$85 = 0; + _tmp$86 = ""; + prefix = _tmp$84; + std = _tmp$85; + suffix = _tmp$86; + return [prefix, std, suffix]; + }; + match = function(s1, s2) { + var c1, c2, i, s1, s2; + i = 0; + while (true) { + if (!(i < s1.length)) { break; } + c1 = s1.charCodeAt(i); + c2 = s2.charCodeAt(i); + if (!((c1 === c2))) { + c1 = (c1 | (32)) >>> 0; + c2 = (c2 | (32)) >>> 0; + if (!((c1 === c2)) || c1 < 97 || c1 > 122) { + return false; + } + } + i = i + (1) >> 0; + } + return true; + }; + lookup = function(tab, val) { + var _i, _ref, i, tab, v, val; + _ref = tab; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (val.length >= v.length && match($substring(val, 0, v.length), v)) { + return [i, $substring(val, v.length), $ifaceNil]; + } + _i++; + } + return [-1, val, errBad]; + }; + appendInt = function(b, x, width) { + var _q, b, buf, i, q, u, w, width, x; + u = ((x >>> 0)); + if (x < 0) { + b = $append(b, 45); + u = ((-x >>> 0)); + } + buf = arrayType.zero(); + i = 20; + while (true) { + if (!(u >= 10)) { break; } + i = i - (1) >> 0; + q = (_q = u / 10, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + ((i < 0 || i >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i] = ((((48 + u >>> 0) - (q * 10 >>> 0) >>> 0) << 24 >>> 24))); + u = q; + } + i = i - (1) >> 0; + ((i < 0 || i >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i] = (((48 + u >>> 0) << 24 >>> 24))); + w = 20 - i >> 0; + while (true) { + if (!(w < width)) { break; } + b = $append(b, 48); + w = w + (1) >> 0; + } + return $appendSlice(b, $subslice(new sliceType$3(buf), i)); + }; + atoi = function(s) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, err, neg, q, rem, s, x; + x = 0; + err = $ifaceNil; + neg = false; + if (!(s === "") && ((s.charCodeAt(0) === 45) || (s.charCodeAt(0) === 43))) { + neg = s.charCodeAt(0) === 45; + s = $substring(s, 1); + } + _tuple = leadingInt(s); + q = _tuple[0]; + rem = _tuple[1]; + err = _tuple[2]; + x = (((q.$low + ((q.$high >> 31) * 4294967296)) >> 0)); + if (!($interfaceIsEqual(err, $ifaceNil)) || !(rem === "")) { + _tmp = 0; + _tmp$1 = atoiError; + x = _tmp; + err = _tmp$1; + return [x, err]; + } + if (neg) { + x = -x; + } + _tmp$2 = x; + _tmp$3 = $ifaceNil; + x = _tmp$2; + err = _tmp$3; + return [x, err]; + }; + formatNano = function(b, nanosec, n, trim) { + var _q, _r, b, buf, n, nanosec, start, trim, u, x; + u = nanosec; + buf = arrayType$1.zero(); + start = 9; + while (true) { + if (!(start > 0)) { break; } + start = start - (1) >> 0; + ((start < 0 || start >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[start] = ((((_r = u % 10, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) + 48 >>> 0) << 24 >>> 24))); + u = (_q = u / (10), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + } + if (n > 9) { + n = 9; + } + if (trim) { + while (true) { + if (!(n > 0 && ((x = n - 1 >> 0, ((x < 0 || x >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[x])) === 48))) { break; } + n = n - (1) >> 0; + } + if (n === 0) { + return b; + } + } + b = $append(b, 46); + return $appendSlice(b, $subslice(new sliceType$3(buf), 0, n)); + }; + Time.ptr.prototype.String = function() { + var _r, _tmp, _tmp$1, _tmp$2, _tmp$3, buf, m0, m1, m2, s, sign, t, wid, x, x$1, x$2, x$3, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; buf = $f.buf; m0 = $f.m0; m1 = $f.m1; m2 = $f.m2; s = $f.s; sign = $f.sign; t = $f.t; wid = $f.wid; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = $clone(t, Time).Format("2006-01-02 15:04:05.999999999 -0700 MST"); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + s = _r; + if (!((x = (x$1 = t.wall, new $Uint64(x$1.$high & 2147483648, (x$1.$low & 0) >>> 0)), (x.$high === 0 && x.$low === 0)))) { + m2 = ((x$2 = t.ext, new $Uint64(x$2.$high, x$2.$low))); + sign = 43; + if ((x$3 = t.ext, (x$3.$high < 0 || (x$3.$high === 0 && x$3.$low < 0)))) { + sign = 45; + m2 = new $Uint64(-m2.$high, -m2.$low); + } + _tmp = $div64(m2, new $Uint64(0, 1000000000), false); + _tmp$1 = $div64(m2, new $Uint64(0, 1000000000), true); + m1 = _tmp; + m2 = _tmp$1; + _tmp$2 = $div64(m1, new $Uint64(0, 1000000000), false); + _tmp$3 = $div64(m1, new $Uint64(0, 1000000000), true); + m0 = _tmp$2; + m1 = _tmp$3; + buf = sliceType$3.nil; + buf = $appendSlice(buf, " m="); + buf = $append(buf, sign); + wid = 0; + if (!((m0.$high === 0 && m0.$low === 0))) { + buf = appendInt(buf, ((m0.$low >> 0)), 0); + wid = 9; + } + buf = appendInt(buf, ((m1.$low >> 0)), wid); + buf = $append(buf, 46); + buf = appendInt(buf, ((m2.$low >> 0)), 9); + s = s + (($bytesToString(buf))); + } + $s = -1; return s; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.String }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f.buf = buf; $f.m0 = m0; $f.m1 = m1; $f.m2 = m2; $f.s = s; $f.sign = sign; $f.t = t; $f.wid = wid; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.String = function() { return this.$val.String(); }; + Time.ptr.prototype.Format = function(layout) { + var _r, b, buf, layout, max, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; b = $f.b; buf = $f.buf; layout = $f.layout; max = $f.max; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + b = sliceType$3.nil; + max = layout.length + 10 >> 0; + if (max < 64) { + buf = arrayType$2.zero(); + b = $subslice(new sliceType$3(buf), 0, 0); + } else { + b = $makeSlice(sliceType$3, 0, max); + } + _r = $clone(t, Time).AppendFormat(b, layout); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + b = _r; + $s = -1; return ($bytesToString(b)); + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Format }; } $f._r = _r; $f.b = b; $f.buf = buf; $f.layout = layout; $f.max = max; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.Format = function(layout) { return this.$val.Format(layout); }; + Time.ptr.prototype.AppendFormat = function(b, layout) { + var _1, _q, _q$1, _q$2, _q$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, _tuple$2, _tuple$3, abs, absoffset, b, day, hour, hr, hr$1, layout, m, min, month, name, offset, prefix, s, sec, std, suffix, t, y, year, zone$1, zone$2, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _q = $f._q; _q$1 = $f._q$1; _q$2 = $f._q$2; _q$3 = $f._q$3; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; abs = $f.abs; absoffset = $f.absoffset; b = $f.b; day = $f.day; hour = $f.hour; hr = $f.hr; hr$1 = $f.hr$1; layout = $f.layout; m = $f.m; min = $f.min; month = $f.month; name = $f.name; offset = $f.offset; prefix = $f.prefix; s = $f.s; sec = $f.sec; std = $f.std; suffix = $f.suffix; t = $f.t; y = $f.y; year = $f.year; zone$1 = $f.zone$1; zone$2 = $f.zone$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = $clone(t, Time).locabs(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + name = _tuple[0]; + offset = _tuple[1]; + abs = _tuple[2]; + year = -1; + month = 0; + day = 0; + hour = -1; + min = 0; + sec = 0; + while (true) { + if (!(!(layout === ""))) { break; } + _tuple$1 = nextStdChunk(layout); + prefix = _tuple$1[0]; + std = _tuple$1[1]; + suffix = _tuple$1[2]; + if (!(prefix === "")) { + b = $appendSlice(b, prefix); + } + if (std === 0) { + break; + } + layout = suffix; + if (year < 0 && !(((std & 256) === 0))) { + _tuple$2 = absDate(abs, true); + year = _tuple$2[0]; + month = _tuple$2[1]; + day = _tuple$2[2]; + } + if (hour < 0 && !(((std & 512) === 0))) { + _tuple$3 = absClock(abs); + hour = _tuple$3[0]; + min = _tuple$3[1]; + sec = _tuple$3[2]; + } + switch (0) { default: + _1 = std & 65535; + if (_1 === (274)) { + y = year; + if (y < 0) { + y = -y; + } + b = appendInt(b, (_r$1 = y % 100, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")), 2); + } else if (_1 === (273)) { + b = appendInt(b, year, 4); + } else if (_1 === (258)) { + b = $appendSlice(b, $substring(new Month(month).String(), 0, 3)); + } else if (_1 === (257)) { + m = new Month(month).String(); + b = $appendSlice(b, m); + } else if (_1 === (259)) { + b = appendInt(b, ((month >> 0)), 0); + } else if (_1 === (260)) { + b = appendInt(b, ((month >> 0)), 2); + } else if (_1 === (262)) { + b = $appendSlice(b, $substring(new Weekday(absWeekday(abs)).String(), 0, 3)); + } else if (_1 === (261)) { + s = new Weekday(absWeekday(abs)).String(); + b = $appendSlice(b, s); + } else if (_1 === (263)) { + b = appendInt(b, day, 0); + } else if (_1 === (264)) { + if (day < 10) { + b = $append(b, 32); + } + b = appendInt(b, day, 0); + } else if (_1 === (265)) { + b = appendInt(b, day, 2); + } else if (_1 === (522)) { + b = appendInt(b, hour, 2); + } else if (_1 === (523)) { + hr = (_r$2 = hour % 12, _r$2 === _r$2 ? _r$2 : $throwRuntimeError("integer divide by zero")); + if (hr === 0) { + hr = 12; + } + b = appendInt(b, hr, 0); + } else if (_1 === (524)) { + hr$1 = (_r$3 = hour % 12, _r$3 === _r$3 ? _r$3 : $throwRuntimeError("integer divide by zero")); + if (hr$1 === 0) { + hr$1 = 12; + } + b = appendInt(b, hr$1, 2); + } else if (_1 === (525)) { + b = appendInt(b, min, 0); + } else if (_1 === (526)) { + b = appendInt(b, min, 2); + } else if (_1 === (527)) { + b = appendInt(b, sec, 0); + } else if (_1 === (528)) { + b = appendInt(b, sec, 2); + } else if (_1 === (531)) { + if (hour >= 12) { + b = $appendSlice(b, "PM"); + } else { + b = $appendSlice(b, "AM"); + } + } else if (_1 === (532)) { + if (hour >= 12) { + b = $appendSlice(b, "pm"); + } else { + b = $appendSlice(b, "am"); + } + } else if ((_1 === (22)) || (_1 === (25)) || (_1 === (23)) || (_1 === (24)) || (_1 === (26)) || (_1 === (27)) || (_1 === (30)) || (_1 === (28)) || (_1 === (29)) || (_1 === (31))) { + if ((offset === 0) && ((std === 22) || (std === 25) || (std === 23) || (std === 24) || (std === 26))) { + b = $append(b, 90); + break; + } + zone$1 = (_q = offset / 60, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + absoffset = offset; + if (zone$1 < 0) { + b = $append(b, 45); + zone$1 = -zone$1; + absoffset = -absoffset; + } else { + b = $append(b, 43); + } + b = appendInt(b, (_q$1 = zone$1 / 60, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")), 2); + if ((std === 25) || (std === 30) || (std === 26) || (std === 31)) { + b = $append(b, 58); + } + if (!((std === 29)) && !((std === 24))) { + b = appendInt(b, (_r$4 = zone$1 % 60, _r$4 === _r$4 ? _r$4 : $throwRuntimeError("integer divide by zero")), 2); + } + if ((std === 23) || (std === 28) || (std === 31) || (std === 26)) { + if ((std === 31) || (std === 26)) { + b = $append(b, 58); + } + b = appendInt(b, (_r$5 = absoffset % 60, _r$5 === _r$5 ? _r$5 : $throwRuntimeError("integer divide by zero")), 2); + } + } else if (_1 === (21)) { + if (!(name === "")) { + b = $appendSlice(b, name); + break; + } + zone$2 = (_q$2 = offset / 60, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero")); + if (zone$2 < 0) { + b = $append(b, 45); + zone$2 = -zone$2; + } else { + b = $append(b, 43); + } + b = appendInt(b, (_q$3 = zone$2 / 60, (_q$3 === _q$3 && _q$3 !== 1/0 && _q$3 !== -1/0) ? _q$3 >> 0 : $throwRuntimeError("integer divide by zero")), 2); + b = appendInt(b, (_r$6 = zone$2 % 60, _r$6 === _r$6 ? _r$6 : $throwRuntimeError("integer divide by zero")), 2); + } else if ((_1 === (32)) || (_1 === (33))) { + b = formatNano(b, (($clone(t, Time).Nanosecond() >>> 0)), std >> 16 >> 0, (std & 65535) === 33); + } + } + } + $s = -1; return b; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.AppendFormat }; } $f._1 = _1; $f._q = _q; $f._q$1 = _q$1; $f._q$2 = _q$2; $f._q$3 = _q$3; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f.abs = abs; $f.absoffset = absoffset; $f.b = b; $f.day = day; $f.hour = hour; $f.hr = hr; $f.hr$1 = hr$1; $f.layout = layout; $f.m = m; $f.min = min; $f.month = month; $f.name = name; $f.offset = offset; $f.prefix = prefix; $f.s = s; $f.sec = sec; $f.std = std; $f.suffix = suffix; $f.t = t; $f.y = y; $f.year = year; $f.zone$1 = zone$1; $f.zone$2 = zone$2; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.AppendFormat = function(b, layout) { return this.$val.AppendFormat(b, layout); }; + quote = function(s) { + var s; + return "\"" + s + "\""; + }; + ParseError.ptr.prototype.Error = function() { + var e; + e = this; + if (e.Message === "") { + return "parsing time " + quote(e.Value) + " as " + quote(e.Layout) + ": cannot parse " + quote(e.ValueElem) + " as " + quote(e.LayoutElem); + } + return "parsing time " + quote(e.Value) + e.Message; + }; + ParseError.prototype.Error = function() { return this.$val.Error(); }; + isDigit = function(s, i) { + var c, i, s; + if (s.length <= i) { + return false; + } + c = s.charCodeAt(i); + return 48 <= c && c <= 57; + }; + getnum = function(s, fixed) { + var fixed, s; + if (!isDigit(s, 0)) { + return [0, s, errBad]; + } + if (!isDigit(s, 1)) { + if (fixed) { + return [0, s, errBad]; + } + return [(((s.charCodeAt(0) - 48 << 24 >>> 24) >> 0)), $substring(s, 1), $ifaceNil]; + } + return [($imul((((s.charCodeAt(0) - 48 << 24 >>> 24) >> 0)), 10)) + (((s.charCodeAt(1) - 48 << 24 >>> 24) >> 0)) >> 0, $substring(s, 2), $ifaceNil]; + }; + cutspace = function(s) { + var s; + while (true) { + if (!(s.length > 0 && (s.charCodeAt(0) === 32))) { break; } + s = $substring(s, 1); + } + return s; + }; + skip = function(value, prefix) { + var prefix, value; + while (true) { + if (!(prefix.length > 0)) { break; } + if (prefix.charCodeAt(0) === 32) { + if (value.length > 0 && !((value.charCodeAt(0) === 32))) { + return [value, errBad]; + } + prefix = cutspace(prefix); + value = cutspace(value); + continue; + } + if ((value.length === 0) || !((value.charCodeAt(0) === prefix.charCodeAt(0)))) { + return [value, errBad]; + } + prefix = $substring(prefix, 1); + value = $substring(value, 1); + } + return [value, $ifaceNil]; + }; + Parse = function(layout, value) { + var _r, layout, value, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; layout = $f.layout; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = parse(layout, value, $pkg.UTC, $pkg.Local); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: Parse }; } $f._r = _r; $f.layout = layout; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Parse = Parse; + parse = function(layout, value, defaultLocation, local) { + var _1, _2, _3, _4, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$32, _tmp$33, _tmp$34, _tmp$35, _tmp$36, _tmp$37, _tmp$38, _tmp$39, _tmp$4, _tmp$40, _tmp$41, _tmp$42, _tmp$43, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$19, _tuple$2, _tuple$20, _tuple$21, _tuple$22, _tuple$23, _tuple$24, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, alayout, amSet, avalue, day, defaultLocation, err, hour, hour$1, hr, i, layout, local, min, min$1, mm, month, n, n$1, name, ndigit, nsec, offset, offset$1, ok, ok$1, p, pmSet, prefix, rangeErrString, sec, seconds, sign, ss, std, stdstr, suffix, t, t$1, value, x, x$1, year, z, zoneName, zoneOffset, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _2 = $f._2; _3 = $f._3; _4 = $f._4; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$10 = $f._tmp$10; _tmp$11 = $f._tmp$11; _tmp$12 = $f._tmp$12; _tmp$13 = $f._tmp$13; _tmp$14 = $f._tmp$14; _tmp$15 = $f._tmp$15; _tmp$16 = $f._tmp$16; _tmp$17 = $f._tmp$17; _tmp$18 = $f._tmp$18; _tmp$19 = $f._tmp$19; _tmp$2 = $f._tmp$2; _tmp$20 = $f._tmp$20; _tmp$21 = $f._tmp$21; _tmp$22 = $f._tmp$22; _tmp$23 = $f._tmp$23; _tmp$24 = $f._tmp$24; _tmp$25 = $f._tmp$25; _tmp$26 = $f._tmp$26; _tmp$27 = $f._tmp$27; _tmp$28 = $f._tmp$28; _tmp$29 = $f._tmp$29; _tmp$3 = $f._tmp$3; _tmp$30 = $f._tmp$30; _tmp$31 = $f._tmp$31; _tmp$32 = $f._tmp$32; _tmp$33 = $f._tmp$33; _tmp$34 = $f._tmp$34; _tmp$35 = $f._tmp$35; _tmp$36 = $f._tmp$36; _tmp$37 = $f._tmp$37; _tmp$38 = $f._tmp$38; _tmp$39 = $f._tmp$39; _tmp$4 = $f._tmp$4; _tmp$40 = $f._tmp$40; _tmp$41 = $f._tmp$41; _tmp$42 = $f._tmp$42; _tmp$43 = $f._tmp$43; _tmp$5 = $f._tmp$5; _tmp$6 = $f._tmp$6; _tmp$7 = $f._tmp$7; _tmp$8 = $f._tmp$8; _tmp$9 = $f._tmp$9; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$10 = $f._tuple$10; _tuple$11 = $f._tuple$11; _tuple$12 = $f._tuple$12; _tuple$13 = $f._tuple$13; _tuple$14 = $f._tuple$14; _tuple$15 = $f._tuple$15; _tuple$16 = $f._tuple$16; _tuple$17 = $f._tuple$17; _tuple$18 = $f._tuple$18; _tuple$19 = $f._tuple$19; _tuple$2 = $f._tuple$2; _tuple$20 = $f._tuple$20; _tuple$21 = $f._tuple$21; _tuple$22 = $f._tuple$22; _tuple$23 = $f._tuple$23; _tuple$24 = $f._tuple$24; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; _tuple$5 = $f._tuple$5; _tuple$6 = $f._tuple$6; _tuple$7 = $f._tuple$7; _tuple$8 = $f._tuple$8; _tuple$9 = $f._tuple$9; alayout = $f.alayout; amSet = $f.amSet; avalue = $f.avalue; day = $f.day; defaultLocation = $f.defaultLocation; err = $f.err; hour = $f.hour; hour$1 = $f.hour$1; hr = $f.hr; i = $f.i; layout = $f.layout; local = $f.local; min = $f.min; min$1 = $f.min$1; mm = $f.mm; month = $f.month; n = $f.n; n$1 = $f.n$1; name = $f.name; ndigit = $f.ndigit; nsec = $f.nsec; offset = $f.offset; offset$1 = $f.offset$1; ok = $f.ok; ok$1 = $f.ok$1; p = $f.p; pmSet = $f.pmSet; prefix = $f.prefix; rangeErrString = $f.rangeErrString; sec = $f.sec; seconds = $f.seconds; sign = $f.sign; ss = $f.ss; std = $f.std; stdstr = $f.stdstr; suffix = $f.suffix; t = $f.t; t$1 = $f.t$1; value = $f.value; x = $f.x; x$1 = $f.x$1; year = $f.year; z = $f.z; zoneName = $f.zoneName; zoneOffset = $f.zoneOffset; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _tmp = layout; + _tmp$1 = value; + alayout = _tmp; + avalue = _tmp$1; + rangeErrString = ""; + amSet = false; + pmSet = false; + year = 0; + month = 1; + day = 1; + hour = 0; + min = 0; + sec = 0; + nsec = 0; + z = ptrType$2.nil; + zoneOffset = -1; + zoneName = ""; + while (true) { + err = $ifaceNil; + _tuple = nextStdChunk(layout); + prefix = _tuple[0]; + std = _tuple[1]; + suffix = _tuple[2]; + stdstr = $substring(layout, prefix.length, (layout.length - suffix.length >> 0)); + _tuple$1 = skip(value, prefix); + value = _tuple$1[0]; + err = _tuple$1[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil), new ParseError.ptr(alayout, avalue, prefix, value, "")]; + } + if (std === 0) { + if (!((value.length === 0))) { + $s = -1; return [new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil), new ParseError.ptr(alayout, avalue, "", value, ": extra text: " + value)]; + } + break; + } + layout = suffix; + p = ""; + switch (0) { default: + _1 = std & 65535; + if (_1 === (274)) { + if (value.length < 2) { + err = errBad; + break; + } + _tmp$2 = $substring(value, 0, 2); + _tmp$3 = $substring(value, 2); + p = _tmp$2; + value = _tmp$3; + _tuple$2 = atoi(p); + year = _tuple$2[0]; + err = _tuple$2[1]; + if (year >= 69) { + year = year + (1900) >> 0; + } else { + year = year + (2000) >> 0; + } + } else if (_1 === (273)) { + if (value.length < 4 || !isDigit(value, 0)) { + err = errBad; + break; + } + _tmp$4 = $substring(value, 0, 4); + _tmp$5 = $substring(value, 4); + p = _tmp$4; + value = _tmp$5; + _tuple$3 = atoi(p); + year = _tuple$3[0]; + err = _tuple$3[1]; + } else if (_1 === (258)) { + _tuple$4 = lookup(shortMonthNames, value); + month = _tuple$4[0]; + value = _tuple$4[1]; + err = _tuple$4[2]; + month = month + (1) >> 0; + } else if (_1 === (257)) { + _tuple$5 = lookup(longMonthNames, value); + month = _tuple$5[0]; + value = _tuple$5[1]; + err = _tuple$5[2]; + month = month + (1) >> 0; + } else if ((_1 === (259)) || (_1 === (260))) { + _tuple$6 = getnum(value, std === 260); + month = _tuple$6[0]; + value = _tuple$6[1]; + err = _tuple$6[2]; + if (month <= 0 || 12 < month) { + rangeErrString = "month"; + } + } else if (_1 === (262)) { + _tuple$7 = lookup(shortDayNames, value); + value = _tuple$7[1]; + err = _tuple$7[2]; + } else if (_1 === (261)) { + _tuple$8 = lookup(longDayNames, value); + value = _tuple$8[1]; + err = _tuple$8[2]; + } else if ((_1 === (263)) || (_1 === (264)) || (_1 === (265))) { + if ((std === 264) && value.length > 0 && (value.charCodeAt(0) === 32)) { + value = $substring(value, 1); + } + _tuple$9 = getnum(value, std === 265); + day = _tuple$9[0]; + value = _tuple$9[1]; + err = _tuple$9[2]; + if (day < 0) { + rangeErrString = "day"; + } + } else if (_1 === (522)) { + _tuple$10 = getnum(value, false); + hour = _tuple$10[0]; + value = _tuple$10[1]; + err = _tuple$10[2]; + if (hour < 0 || 24 <= hour) { + rangeErrString = "hour"; + } + } else if ((_1 === (523)) || (_1 === (524))) { + _tuple$11 = getnum(value, std === 524); + hour = _tuple$11[0]; + value = _tuple$11[1]; + err = _tuple$11[2]; + if (hour < 0 || 12 < hour) { + rangeErrString = "hour"; + } + } else if ((_1 === (525)) || (_1 === (526))) { + _tuple$12 = getnum(value, std === 526); + min = _tuple$12[0]; + value = _tuple$12[1]; + err = _tuple$12[2]; + if (min < 0 || 60 <= min) { + rangeErrString = "minute"; + } + } else if ((_1 === (527)) || (_1 === (528))) { + _tuple$13 = getnum(value, std === 528); + sec = _tuple$13[0]; + value = _tuple$13[1]; + err = _tuple$13[2]; + if (sec < 0 || 60 <= sec) { + rangeErrString = "second"; + break; + } + if (value.length >= 2 && (value.charCodeAt(0) === 46) && isDigit(value, 1)) { + _tuple$14 = nextStdChunk(layout); + std = _tuple$14[1]; + std = std & (65535); + if ((std === 32) || (std === 33)) { + break; + } + n = 2; + while (true) { + if (!(n < value.length && isDigit(value, n))) { break; } + n = n + (1) >> 0; + } + _tuple$15 = parseNanoseconds(value, n); + nsec = _tuple$15[0]; + rangeErrString = _tuple$15[1]; + err = _tuple$15[2]; + value = $substring(value, n); + } + } else if (_1 === (531)) { + if (value.length < 2) { + err = errBad; + break; + } + _tmp$6 = $substring(value, 0, 2); + _tmp$7 = $substring(value, 2); + p = _tmp$6; + value = _tmp$7; + _2 = p; + if (_2 === ("PM")) { + pmSet = true; + } else if (_2 === ("AM")) { + amSet = true; + } else { + err = errBad; + } + } else if (_1 === (532)) { + if (value.length < 2) { + err = errBad; + break; + } + _tmp$8 = $substring(value, 0, 2); + _tmp$9 = $substring(value, 2); + p = _tmp$8; + value = _tmp$9; + _3 = p; + if (_3 === ("pm")) { + pmSet = true; + } else if (_3 === ("am")) { + amSet = true; + } else { + err = errBad; + } + } else if ((_1 === (22)) || (_1 === (25)) || (_1 === (23)) || (_1 === (24)) || (_1 === (26)) || (_1 === (27)) || (_1 === (29)) || (_1 === (30)) || (_1 === (28)) || (_1 === (31))) { + if (((std === 22) || (std === 24) || (std === 25)) && value.length >= 1 && (value.charCodeAt(0) === 90)) { + value = $substring(value, 1); + z = $pkg.UTC; + break; + } + _tmp$10 = ""; + _tmp$11 = ""; + _tmp$12 = ""; + _tmp$13 = ""; + sign = _tmp$10; + hour$1 = _tmp$11; + min$1 = _tmp$12; + seconds = _tmp$13; + if ((std === 25) || (std === 30)) { + if (value.length < 6) { + err = errBad; + break; + } + if (!((value.charCodeAt(3) === 58))) { + err = errBad; + break; + } + _tmp$14 = $substring(value, 0, 1); + _tmp$15 = $substring(value, 1, 3); + _tmp$16 = $substring(value, 4, 6); + _tmp$17 = "00"; + _tmp$18 = $substring(value, 6); + sign = _tmp$14; + hour$1 = _tmp$15; + min$1 = _tmp$16; + seconds = _tmp$17; + value = _tmp$18; + } else if ((std === 29) || (std === 24)) { + if (value.length < 3) { + err = errBad; + break; + } + _tmp$19 = $substring(value, 0, 1); + _tmp$20 = $substring(value, 1, 3); + _tmp$21 = "00"; + _tmp$22 = "00"; + _tmp$23 = $substring(value, 3); + sign = _tmp$19; + hour$1 = _tmp$20; + min$1 = _tmp$21; + seconds = _tmp$22; + value = _tmp$23; + } else if ((std === 26) || (std === 31)) { + if (value.length < 9) { + err = errBad; + break; + } + if (!((value.charCodeAt(3) === 58)) || !((value.charCodeAt(6) === 58))) { + err = errBad; + break; + } + _tmp$24 = $substring(value, 0, 1); + _tmp$25 = $substring(value, 1, 3); + _tmp$26 = $substring(value, 4, 6); + _tmp$27 = $substring(value, 7, 9); + _tmp$28 = $substring(value, 9); + sign = _tmp$24; + hour$1 = _tmp$25; + min$1 = _tmp$26; + seconds = _tmp$27; + value = _tmp$28; + } else if ((std === 23) || (std === 28)) { + if (value.length < 7) { + err = errBad; + break; + } + _tmp$29 = $substring(value, 0, 1); + _tmp$30 = $substring(value, 1, 3); + _tmp$31 = $substring(value, 3, 5); + _tmp$32 = $substring(value, 5, 7); + _tmp$33 = $substring(value, 7); + sign = _tmp$29; + hour$1 = _tmp$30; + min$1 = _tmp$31; + seconds = _tmp$32; + value = _tmp$33; + } else { + if (value.length < 5) { + err = errBad; + break; + } + _tmp$34 = $substring(value, 0, 1); + _tmp$35 = $substring(value, 1, 3); + _tmp$36 = $substring(value, 3, 5); + _tmp$37 = "00"; + _tmp$38 = $substring(value, 5); + sign = _tmp$34; + hour$1 = _tmp$35; + min$1 = _tmp$36; + seconds = _tmp$37; + value = _tmp$38; + } + _tmp$39 = 0; + _tmp$40 = 0; + _tmp$41 = 0; + hr = _tmp$39; + mm = _tmp$40; + ss = _tmp$41; + _tuple$16 = atoi(hour$1); + hr = _tuple$16[0]; + err = _tuple$16[1]; + if ($interfaceIsEqual(err, $ifaceNil)) { + _tuple$17 = atoi(min$1); + mm = _tuple$17[0]; + err = _tuple$17[1]; + } + if ($interfaceIsEqual(err, $ifaceNil)) { + _tuple$18 = atoi(seconds); + ss = _tuple$18[0]; + err = _tuple$18[1]; + } + zoneOffset = ($imul(((($imul(hr, 60)) + mm >> 0)), 60)) + ss >> 0; + _4 = sign.charCodeAt(0); + if (_4 === (43)) { + } else if (_4 === (45)) { + zoneOffset = -zoneOffset; + } else { + err = errBad; + } + } else if (_1 === (21)) { + if (value.length >= 3 && $substring(value, 0, 3) === "UTC") { + z = $pkg.UTC; + value = $substring(value, 3); + break; + } + _tuple$19 = parseTimeZone(value); + n$1 = _tuple$19[0]; + ok = _tuple$19[1]; + if (!ok) { + err = errBad; + break; + } + _tmp$42 = $substring(value, 0, n$1); + _tmp$43 = $substring(value, n$1); + zoneName = _tmp$42; + value = _tmp$43; + } else if (_1 === (32)) { + ndigit = 1 + ((std >> 16 >> 0)) >> 0; + if (value.length < ndigit) { + err = errBad; + break; + } + _tuple$20 = parseNanoseconds(value, ndigit); + nsec = _tuple$20[0]; + rangeErrString = _tuple$20[1]; + err = _tuple$20[2]; + value = $substring(value, ndigit); + } else if (_1 === (33)) { + if (value.length < 2 || !((value.charCodeAt(0) === 46)) || value.charCodeAt(1) < 48 || 57 < value.charCodeAt(1)) { + break; + } + i = 0; + while (true) { + if (!(i < 9 && (i + 1 >> 0) < value.length && 48 <= value.charCodeAt((i + 1 >> 0)) && value.charCodeAt((i + 1 >> 0)) <= 57)) { break; } + i = i + (1) >> 0; + } + _tuple$21 = parseNanoseconds(value, 1 + i >> 0); + nsec = _tuple$21[0]; + rangeErrString = _tuple$21[1]; + err = _tuple$21[2]; + value = $substring(value, (1 + i >> 0)); + } + } + if (!(rangeErrString === "")) { + $s = -1; return [new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil), new ParseError.ptr(alayout, avalue, stdstr, value, ": " + rangeErrString + " out of range")]; + } + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil), new ParseError.ptr(alayout, avalue, stdstr, value, "")]; + } + } + if (pmSet && hour < 12) { + hour = hour + (12) >> 0; + } else if (amSet && (hour === 12)) { + hour = 0; + } + if (day < 1 || day > daysIn(((month >> 0)), year)) { + $s = -1; return [new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil), new ParseError.ptr(alayout, avalue, "", value, ": day out of range")]; + } + /* */ if (!(z === ptrType$2.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(z === ptrType$2.nil)) { */ case 1: + _r = Date(year, ((month >> 0)), day, hour, min, sec, nsec, z); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return [_r, $ifaceNil]; + /* } */ case 2: + /* */ if (!((zoneOffset === -1))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!((zoneOffset === -1))) { */ case 4: + _r$1 = Date(year, ((month >> 0)), day, hour, min, sec, nsec, $pkg.UTC); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + t = $clone(_r$1, Time); + t.addSec((x = (new $Int64(0, zoneOffset)), new $Int64(-x.$high, -x.$low))); + _r$2 = local.lookup(t.unixSec()); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$22 = _r$2; + name = _tuple$22[0]; + offset = _tuple$22[1]; + if ((offset === zoneOffset) && (zoneName === "" || name === zoneName)) { + t.setLoc(local); + $s = -1; return [t, $ifaceNil]; + } + t.setLoc(FixedZone(zoneName, zoneOffset)); + $s = -1; return [t, $ifaceNil]; + /* } */ case 5: + /* */ if (!(zoneName === "")) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!(zoneName === "")) { */ case 8: + _r$3 = Date(year, ((month >> 0)), day, hour, min, sec, nsec, $pkg.UTC); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + t$1 = $clone(_r$3, Time); + _r$4 = local.lookupName(zoneName, t$1.unixSec()); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$23 = _r$4; + offset$1 = _tuple$23[0]; + ok$1 = _tuple$23[1]; + if (ok$1) { + t$1.addSec((x$1 = (new $Int64(0, offset$1)), new $Int64(-x$1.$high, -x$1.$low))); + t$1.setLoc(local); + $s = -1; return [t$1, $ifaceNil]; + } + if (zoneName.length > 3 && $substring(zoneName, 0, 3) === "GMT") { + _tuple$24 = atoi($substring(zoneName, 3)); + offset$1 = _tuple$24[0]; + offset$1 = $imul(offset$1, (3600)); + } + t$1.setLoc(FixedZone(zoneName, offset$1)); + $s = -1; return [t$1, $ifaceNil]; + /* } */ case 9: + _r$5 = Date(year, ((month >> 0)), day, hour, min, sec, nsec, defaultLocation); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $s = -1; return [_r$5, $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: parse }; } $f._1 = _1; $f._2 = _2; $f._3 = _3; $f._4 = _4; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$10 = _tmp$10; $f._tmp$11 = _tmp$11; $f._tmp$12 = _tmp$12; $f._tmp$13 = _tmp$13; $f._tmp$14 = _tmp$14; $f._tmp$15 = _tmp$15; $f._tmp$16 = _tmp$16; $f._tmp$17 = _tmp$17; $f._tmp$18 = _tmp$18; $f._tmp$19 = _tmp$19; $f._tmp$2 = _tmp$2; $f._tmp$20 = _tmp$20; $f._tmp$21 = _tmp$21; $f._tmp$22 = _tmp$22; $f._tmp$23 = _tmp$23; $f._tmp$24 = _tmp$24; $f._tmp$25 = _tmp$25; $f._tmp$26 = _tmp$26; $f._tmp$27 = _tmp$27; $f._tmp$28 = _tmp$28; $f._tmp$29 = _tmp$29; $f._tmp$3 = _tmp$3; $f._tmp$30 = _tmp$30; $f._tmp$31 = _tmp$31; $f._tmp$32 = _tmp$32; $f._tmp$33 = _tmp$33; $f._tmp$34 = _tmp$34; $f._tmp$35 = _tmp$35; $f._tmp$36 = _tmp$36; $f._tmp$37 = _tmp$37; $f._tmp$38 = _tmp$38; $f._tmp$39 = _tmp$39; $f._tmp$4 = _tmp$4; $f._tmp$40 = _tmp$40; $f._tmp$41 = _tmp$41; $f._tmp$42 = _tmp$42; $f._tmp$43 = _tmp$43; $f._tmp$5 = _tmp$5; $f._tmp$6 = _tmp$6; $f._tmp$7 = _tmp$7; $f._tmp$8 = _tmp$8; $f._tmp$9 = _tmp$9; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$10 = _tuple$10; $f._tuple$11 = _tuple$11; $f._tuple$12 = _tuple$12; $f._tuple$13 = _tuple$13; $f._tuple$14 = _tuple$14; $f._tuple$15 = _tuple$15; $f._tuple$16 = _tuple$16; $f._tuple$17 = _tuple$17; $f._tuple$18 = _tuple$18; $f._tuple$19 = _tuple$19; $f._tuple$2 = _tuple$2; $f._tuple$20 = _tuple$20; $f._tuple$21 = _tuple$21; $f._tuple$22 = _tuple$22; $f._tuple$23 = _tuple$23; $f._tuple$24 = _tuple$24; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f._tuple$5 = _tuple$5; $f._tuple$6 = _tuple$6; $f._tuple$7 = _tuple$7; $f._tuple$8 = _tuple$8; $f._tuple$9 = _tuple$9; $f.alayout = alayout; $f.amSet = amSet; $f.avalue = avalue; $f.day = day; $f.defaultLocation = defaultLocation; $f.err = err; $f.hour = hour; $f.hour$1 = hour$1; $f.hr = hr; $f.i = i; $f.layout = layout; $f.local = local; $f.min = min; $f.min$1 = min$1; $f.mm = mm; $f.month = month; $f.n = n; $f.n$1 = n$1; $f.name = name; $f.ndigit = ndigit; $f.nsec = nsec; $f.offset = offset; $f.offset$1 = offset$1; $f.ok = ok; $f.ok$1 = ok$1; $f.p = p; $f.pmSet = pmSet; $f.prefix = prefix; $f.rangeErrString = rangeErrString; $f.sec = sec; $f.seconds = seconds; $f.sign = sign; $f.ss = ss; $f.std = std; $f.stdstr = stdstr; $f.suffix = suffix; $f.t = t; $f.t$1 = t$1; $f.value = value; $f.x = x; $f.x$1 = x$1; $f.year = year; $f.z = z; $f.zoneName = zoneName; $f.zoneOffset = zoneOffset; $f.$s = $s; $f.$r = $r; return $f; + }; + parseTimeZone = function(value) { + var _1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, c, length, nUpper, ok, value; + length = 0; + ok = false; + if (value.length < 3) { + _tmp = 0; + _tmp$1 = false; + length = _tmp; + ok = _tmp$1; + return [length, ok]; + } + if (value.length >= 4 && ($substring(value, 0, 4) === "ChST" || $substring(value, 0, 4) === "MeST")) { + _tmp$2 = 4; + _tmp$3 = true; + length = _tmp$2; + ok = _tmp$3; + return [length, ok]; + } + if ($substring(value, 0, 3) === "GMT") { + length = parseGMT(value); + _tmp$4 = length; + _tmp$5 = true; + length = _tmp$4; + ok = _tmp$5; + return [length, ok]; + } + if ((value.charCodeAt(0) === 43) || (value.charCodeAt(0) === 45)) { + length = parseSignedOffset(value); + _tmp$6 = length; + _tmp$7 = true; + length = _tmp$6; + ok = _tmp$7; + return [length, ok]; + } + nUpper = 0; + nUpper = 0; + while (true) { + if (!(nUpper < 6)) { break; } + if (nUpper >= value.length) { + break; + } + c = value.charCodeAt(nUpper); + if (c < 65 || 90 < c) { + break; + } + nUpper = nUpper + (1) >> 0; + } + _1 = nUpper; + if ((_1 === (0)) || (_1 === (1)) || (_1 === (2)) || (_1 === (6))) { + _tmp$8 = 0; + _tmp$9 = false; + length = _tmp$8; + ok = _tmp$9; + return [length, ok]; + } else if (_1 === (5)) { + if (value.charCodeAt(4) === 84) { + _tmp$10 = 5; + _tmp$11 = true; + length = _tmp$10; + ok = _tmp$11; + return [length, ok]; + } + } else if (_1 === (4)) { + if ((value.charCodeAt(3) === 84) || $substring(value, 0, 4) === "WITA") { + _tmp$12 = 4; + _tmp$13 = true; + length = _tmp$12; + ok = _tmp$13; + return [length, ok]; + } + } else if (_1 === (3)) { + _tmp$14 = 3; + _tmp$15 = true; + length = _tmp$14; + ok = _tmp$15; + return [length, ok]; + } + _tmp$16 = 0; + _tmp$17 = false; + length = _tmp$16; + ok = _tmp$17; + return [length, ok]; + }; + parseGMT = function(value) { + var value; + value = $substring(value, 3); + if (value.length === 0) { + return 3; + } + return 3 + parseSignedOffset(value) >> 0; + }; + parseSignedOffset = function(value) { + var _tuple, err, rem, sign, value, x; + sign = value.charCodeAt(0); + if (!((sign === 45)) && !((sign === 43))) { + return 0; + } + _tuple = leadingInt($substring(value, 1)); + x = _tuple[0]; + rem = _tuple[1]; + err = _tuple[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + return 0; + } + if (sign === 45) { + x = new $Int64(-x.$high, -x.$low); + } + if ((x.$high === 0 && x.$low === 0) || (x.$high < -1 || (x.$high === -1 && x.$low < 4294967282)) || (0 < x.$high || (0 === x.$high && 12 < x.$low))) { + return 0; + } + return value.length - rem.length >> 0; + }; + parseNanoseconds = function(value, nbytes) { + var _tuple, err, i, nbytes, ns, rangeErrString, scaleDigits, value; + ns = 0; + rangeErrString = ""; + err = $ifaceNil; + if (!((value.charCodeAt(0) === 46))) { + err = errBad; + return [ns, rangeErrString, err]; + } + _tuple = atoi($substring(value, 1, nbytes)); + ns = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + return [ns, rangeErrString, err]; + } + if (ns < 0 || 1000000000 <= ns) { + rangeErrString = "fractional second"; + return [ns, rangeErrString, err]; + } + scaleDigits = 10 - nbytes >> 0; + i = 0; + while (true) { + if (!(i < scaleDigits)) { break; } + ns = $imul(ns, (10)); + i = i + (1) >> 0; + } + return [ns, rangeErrString, err]; + }; + leadingInt = function(s) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, c, err, i, rem, s, x, x$1, x$2, x$3; + x = new $Int64(0, 0); + rem = ""; + err = $ifaceNil; + i = 0; + while (true) { + if (!(i < s.length)) { break; } + c = s.charCodeAt(i); + if (c < 48 || c > 57) { + break; + } + if ((x.$high > 214748364 || (x.$high === 214748364 && x.$low > 3435973836))) { + _tmp = new $Int64(0, 0); + _tmp$1 = ""; + _tmp$2 = errLeadingInt; + x = _tmp; + rem = _tmp$1; + err = _tmp$2; + return [x, rem, err]; + } + x = (x$1 = (x$2 = $mul64(x, new $Int64(0, 10)), x$3 = (new $Int64(0, c)), new $Int64(x$2.$high + x$3.$high, x$2.$low + x$3.$low)), new $Int64(x$1.$high - 0, x$1.$low - 48)); + if ((x.$high < 0 || (x.$high === 0 && x.$low < 0))) { + _tmp$3 = new $Int64(0, 0); + _tmp$4 = ""; + _tmp$5 = errLeadingInt; + x = _tmp$3; + rem = _tmp$4; + err = _tmp$5; + return [x, rem, err]; + } + i = i + (1) >> 0; + } + _tmp$6 = x; + _tmp$7 = $substring(s, i); + _tmp$8 = $ifaceNil; + x = _tmp$6; + rem = _tmp$7; + err = _tmp$8; + return [x, rem, err]; + }; + Time.ptr.prototype.nsec = function() { + var t, x; + t = this; + return (((x = t.wall, new $Uint64(x.$high & 0, (x.$low & 1073741823) >>> 0)).$low >> 0)); + }; + Time.prototype.nsec = function() { return this.$val.nsec(); }; + Time.ptr.prototype.sec = function() { + var t, x, x$1, x$2, x$3; + t = this; + if (!((x = (x$1 = t.wall, new $Uint64(x$1.$high & 2147483648, (x$1.$low & 0) >>> 0)), (x.$high === 0 && x.$low === 0)))) { + return (x$2 = ((x$3 = $shiftRightUint64($shiftLeft64(t.wall, 1), 31), new $Int64(x$3.$high, x$3.$low))), new $Int64(13 + x$2.$high, 3618733952 + x$2.$low)); + } + return t.ext; + }; + Time.prototype.sec = function() { return this.$val.sec(); }; + Time.ptr.prototype.unixSec = function() { + var t, x; + t = this; + return (x = t.sec(), new $Int64(x.$high + -15, x.$low + 2288912640)); + }; + Time.prototype.unixSec = function() { return this.$val.unixSec(); }; + Time.ptr.prototype.addSec = function(d) { + var d, dsec, sec, t, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8; + t = this; + if (!((x = (x$1 = t.wall, new $Uint64(x$1.$high & 2147483648, (x$1.$low & 0) >>> 0)), (x.$high === 0 && x.$low === 0)))) { + sec = ((x$2 = $shiftRightUint64($shiftLeft64(t.wall, 1), 31), new $Int64(x$2.$high, x$2.$low))); + dsec = new $Int64(sec.$high + d.$high, sec.$low + d.$low); + if ((0 < dsec.$high || (0 === dsec.$high && 0 <= dsec.$low)) && (dsec.$high < 1 || (dsec.$high === 1 && dsec.$low <= 4294967295))) { + t.wall = (x$3 = (x$4 = (x$5 = t.wall, new $Uint64(x$5.$high & 0, (x$5.$low & 1073741823) >>> 0)), x$6 = $shiftLeft64((new $Uint64(dsec.$high, dsec.$low)), 30), new $Uint64(x$4.$high | x$6.$high, (x$4.$low | x$6.$low) >>> 0)), new $Uint64(x$3.$high | 2147483648, (x$3.$low | 0) >>> 0)); + return; + } + t.stripMono(); + } + t.ext = (x$7 = t.ext, x$8 = d, new $Int64(x$7.$high + x$8.$high, x$7.$low + x$8.$low)); + }; + Time.prototype.addSec = function(d) { return this.$val.addSec(d); }; + Time.ptr.prototype.setLoc = function(loc) { + var loc, t; + t = this; + if (loc === utcLoc) { + loc = ptrType$2.nil; + } + t.stripMono(); + t.loc = loc; + }; + Time.prototype.setLoc = function(loc) { return this.$val.setLoc(loc); }; + Time.ptr.prototype.stripMono = function() { + var t, x, x$1, x$2, x$3; + t = this; + if (!((x = (x$1 = t.wall, new $Uint64(x$1.$high & 2147483648, (x$1.$low & 0) >>> 0)), (x.$high === 0 && x.$low === 0)))) { + t.ext = t.sec(); + t.wall = (x$2 = t.wall, x$3 = new $Uint64(0, 1073741823), new $Uint64(x$2.$high & x$3.$high, (x$2.$low & x$3.$low) >>> 0)); + } + }; + Time.prototype.stripMono = function() { return this.$val.stripMono(); }; + Time.ptr.prototype.After = function(u) { + var t, ts, u, us, x, x$1, x$2, x$3, x$4, x$5; + t = this; + if (!((x = (x$1 = (x$2 = t.wall, x$3 = u.wall, new $Uint64(x$2.$high & x$3.$high, (x$2.$low & x$3.$low) >>> 0)), new $Uint64(x$1.$high & 2147483648, (x$1.$low & 0) >>> 0)), (x.$high === 0 && x.$low === 0)))) { + return (x$4 = t.ext, x$5 = u.ext, (x$4.$high > x$5.$high || (x$4.$high === x$5.$high && x$4.$low > x$5.$low))); + } + ts = t.sec(); + us = u.sec(); + return (ts.$high > us.$high || (ts.$high === us.$high && ts.$low > us.$low)) || (ts.$high === us.$high && ts.$low === us.$low) && t.nsec() > u.nsec(); + }; + Time.prototype.After = function(u) { return this.$val.After(u); }; + Time.ptr.prototype.Before = function(u) { + var t, u, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + t = this; + if (!((x = (x$1 = (x$2 = t.wall, x$3 = u.wall, new $Uint64(x$2.$high & x$3.$high, (x$2.$low & x$3.$low) >>> 0)), new $Uint64(x$1.$high & 2147483648, (x$1.$low & 0) >>> 0)), (x.$high === 0 && x.$low === 0)))) { + return (x$4 = t.ext, x$5 = u.ext, (x$4.$high < x$5.$high || (x$4.$high === x$5.$high && x$4.$low < x$5.$low))); + } + return (x$6 = t.sec(), x$7 = u.sec(), (x$6.$high < x$7.$high || (x$6.$high === x$7.$high && x$6.$low < x$7.$low))) || (x$8 = t.sec(), x$9 = u.sec(), (x$8.$high === x$9.$high && x$8.$low === x$9.$low)) && t.nsec() < u.nsec(); + }; + Time.prototype.Before = function(u) { return this.$val.Before(u); }; + Time.ptr.prototype.Equal = function(u) { + var t, u, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7; + t = this; + if (!((x = (x$1 = (x$2 = t.wall, x$3 = u.wall, new $Uint64(x$2.$high & x$3.$high, (x$2.$low & x$3.$low) >>> 0)), new $Uint64(x$1.$high & 2147483648, (x$1.$low & 0) >>> 0)), (x.$high === 0 && x.$low === 0)))) { + return (x$4 = t.ext, x$5 = u.ext, (x$4.$high === x$5.$high && x$4.$low === x$5.$low)); + } + return (x$6 = t.sec(), x$7 = u.sec(), (x$6.$high === x$7.$high && x$6.$low === x$7.$low)) && (t.nsec() === u.nsec()); + }; + Time.prototype.Equal = function(u) { return this.$val.Equal(u); }; + Month.prototype.String = function() { + var buf, m, n, x; + m = this.$val; + if (1 <= m && m <= 12) { + return (x = m - 1 >> 0, ((x < 0 || x >= months.length) ? ($throwRuntimeError("index out of range"), undefined) : months[x])); + } + buf = $makeSlice(sliceType$3, 20); + n = fmtInt(buf, (new $Uint64(0, m))); + return "%!Month(" + ($bytesToString($subslice(buf, n))) + ")"; + }; + $ptrType(Month).prototype.String = function() { return new Month(this.$get()).String(); }; + Weekday.prototype.String = function() { + var buf, d, n; + d = this.$val; + if (0 <= d && d <= 6) { + return ((d < 0 || d >= days.length) ? ($throwRuntimeError("index out of range"), undefined) : days[d]); + } + buf = $makeSlice(sliceType$3, 20); + n = fmtInt(buf, (new $Uint64(0, d))); + return "%!Weekday(" + ($bytesToString($subslice(buf, n))) + ")"; + }; + $ptrType(Weekday).prototype.String = function() { return new Weekday(this.$get()).String(); }; + Time.ptr.prototype.IsZero = function() { + var t, x; + t = this; + return (x = t.sec(), (x.$high === 0 && x.$low === 0)) && (t.nsec() === 0); + }; + Time.prototype.IsZero = function() { return this.$val.IsZero(); }; + Time.ptr.prototype.abs = function() { + var _r, _r$1, _tuple, l, offset, sec, t, x, x$1, x$2, x$3, x$4, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; l = $f.l; offset = $f.offset; sec = $f.sec; t = $f.t; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + l = t.loc; + /* */ if (l === ptrType$2.nil || l === localLoc) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (l === ptrType$2.nil || l === localLoc) { */ case 1: + _r = l.get(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + l = _r; + /* } */ case 2: + sec = t.unixSec(); + /* */ if (!(l === utcLoc)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!(l === utcLoc)) { */ case 4: + /* */ if (!(l.cacheZone === ptrType.nil) && (x = l.cacheStart, (x.$high < sec.$high || (x.$high === sec.$high && x.$low <= sec.$low))) && (x$1 = l.cacheEnd, (sec.$high < x$1.$high || (sec.$high === x$1.$high && sec.$low < x$1.$low)))) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (!(l.cacheZone === ptrType.nil) && (x = l.cacheStart, (x.$high < sec.$high || (x.$high === sec.$high && x.$low <= sec.$low))) && (x$1 = l.cacheEnd, (sec.$high < x$1.$high || (sec.$high === x$1.$high && sec.$low < x$1.$low)))) { */ case 6: + sec = (x$2 = (new $Int64(0, l.cacheZone.offset)), new $Int64(sec.$high + x$2.$high, sec.$low + x$2.$low)); + $s = 8; continue; + /* } else { */ case 7: + _r$1 = l.lookup(sec); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + offset = _tuple[1]; + sec = (x$3 = (new $Int64(0, offset)), new $Int64(sec.$high + x$3.$high, sec.$low + x$3.$low)); + /* } */ case 8: + /* } */ case 5: + $s = -1; return ((x$4 = new $Int64(sec.$high + 2147483646, sec.$low + 450480384), new $Uint64(x$4.$high, x$4.$low))); + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.abs }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.l = l; $f.offset = offset; $f.sec = sec; $f.t = t; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.abs = function() { return this.$val.abs(); }; + Time.ptr.prototype.locabs = function() { + var _r, _r$1, _tuple, abs, l, name, offset, sec, t, x, x$1, x$2, x$3, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; abs = $f.abs; l = $f.l; name = $f.name; offset = $f.offset; sec = $f.sec; t = $f.t; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + name = ""; + offset = 0; + abs = new $Uint64(0, 0); + t = this; + l = t.loc; + /* */ if (l === ptrType$2.nil || l === localLoc) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (l === ptrType$2.nil || l === localLoc) { */ case 1: + _r = l.get(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + l = _r; + /* } */ case 2: + sec = t.unixSec(); + /* */ if (!(l === utcLoc)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!(l === utcLoc)) { */ case 4: + /* */ if (!(l.cacheZone === ptrType.nil) && (x = l.cacheStart, (x.$high < sec.$high || (x.$high === sec.$high && x.$low <= sec.$low))) && (x$1 = l.cacheEnd, (sec.$high < x$1.$high || (sec.$high === x$1.$high && sec.$low < x$1.$low)))) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!(l.cacheZone === ptrType.nil) && (x = l.cacheStart, (x.$high < sec.$high || (x.$high === sec.$high && x.$low <= sec.$low))) && (x$1 = l.cacheEnd, (sec.$high < x$1.$high || (sec.$high === x$1.$high && sec.$low < x$1.$low)))) { */ case 7: + name = l.cacheZone.name; + offset = l.cacheZone.offset; + $s = 9; continue; + /* } else { */ case 8: + _r$1 = l.lookup(sec); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + name = _tuple[0]; + offset = _tuple[1]; + /* } */ case 9: + sec = (x$2 = (new $Int64(0, offset)), new $Int64(sec.$high + x$2.$high, sec.$low + x$2.$low)); + $s = 6; continue; + /* } else { */ case 5: + name = "UTC"; + /* } */ case 6: + abs = ((x$3 = new $Int64(sec.$high + 2147483646, sec.$low + 450480384), new $Uint64(x$3.$high, x$3.$low))); + $s = -1; return [name, offset, abs]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.locabs }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.abs = abs; $f.l = l; $f.name = name; $f.offset = offset; $f.sec = sec; $f.t = t; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.locabs = function() { return this.$val.locabs(); }; + Time.ptr.prototype.Date = function() { + var _r, _tuple, day, month, t, year, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; day = $f.day; month = $f.month; t = $f.t; year = $f.year; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + year = 0; + month = 0; + day = 0; + t = this; + _r = $clone(t, Time).date(true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + year = _tuple[0]; + month = _tuple[1]; + day = _tuple[2]; + $s = -1; return [year, month, day]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Date }; } $f._r = _r; $f._tuple = _tuple; $f.day = day; $f.month = month; $f.t = t; $f.year = year; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.Date = function() { return this.$val.Date(); }; + Time.ptr.prototype.Year = function() { + var _r, _tuple, t, year, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; t = $f.t; year = $f.year; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = $clone(t, Time).date(false); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + year = _tuple[0]; + $s = -1; return year; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Year }; } $f._r = _r; $f._tuple = _tuple; $f.t = t; $f.year = year; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.Year = function() { return this.$val.Year(); }; + Time.ptr.prototype.Month = function() { + var _r, _tuple, month, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; month = $f.month; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = $clone(t, Time).date(true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + month = _tuple[1]; + $s = -1; return month; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Month }; } $f._r = _r; $f._tuple = _tuple; $f.month = month; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.Month = function() { return this.$val.Month(); }; + Time.ptr.prototype.Day = function() { + var _r, _tuple, day, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; day = $f.day; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = $clone(t, Time).date(true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + day = _tuple[2]; + $s = -1; return day; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Day }; } $f._r = _r; $f._tuple = _tuple; $f.day = day; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.Day = function() { return this.$val.Day(); }; + Time.ptr.prototype.Weekday = function() { + var _r, _r$1, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = $clone(t, Time).abs(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = absWeekday(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return _r$1; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Weekday }; } $f._r = _r; $f._r$1 = _r$1; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.Weekday = function() { return this.$val.Weekday(); }; + absWeekday = function(abs) { + var _q, abs, sec; + sec = $div64((new $Uint64(abs.$high + 0, abs.$low + 86400)), new $Uint64(0, 604800), true); + return (((_q = ((sec.$low >> 0)) / 86400, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0)); + }; + Time.ptr.prototype.ISOWeek = function() { + var _q, _r, _r$1, _r$2, _r$3, _r$4, _tuple, day, dec31wday, jan1wday, month, t, wday, week, yday, year, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _tuple = $f._tuple; day = $f.day; dec31wday = $f.dec31wday; jan1wday = $f.jan1wday; month = $f.month; t = $f.t; wday = $f.wday; week = $f.week; yday = $f.yday; year = $f.year; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + year = 0; + week = 0; + t = this; + _r = $clone(t, Time).date(true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + year = _tuple[0]; + month = _tuple[1]; + day = _tuple[2]; + yday = _tuple[3]; + _r$2 = $clone(t, Time).Weekday(); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + wday = (_r$1 = (((_r$2 + 6 >> 0) >> 0)) % 7, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")); + week = (_q = (((yday - wday >> 0) + 7 >> 0)) / 7, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + jan1wday = (_r$3 = (((wday - yday >> 0) + 371 >> 0)) % 7, _r$3 === _r$3 ? _r$3 : $throwRuntimeError("integer divide by zero")); + if (1 <= jan1wday && jan1wday <= 3) { + week = week + (1) >> 0; + } + if (week === 0) { + year = year - (1) >> 0; + week = 52; + if ((jan1wday === 4) || ((jan1wday === 5) && isLeap(year))) { + week = week + (1) >> 0; + } + } + if ((month === 12) && day >= 29 && wday < 3) { + dec31wday = (_r$4 = (((wday + 31 >> 0) - day >> 0)) % 7, _r$4 === _r$4 ? _r$4 : $throwRuntimeError("integer divide by zero")); + if (0 <= dec31wday && dec31wday <= 2) { + year = year + (1) >> 0; + week = 1; + } + } + $s = -1; return [year, week]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.ISOWeek }; } $f._q = _q; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._tuple = _tuple; $f.day = day; $f.dec31wday = dec31wday; $f.jan1wday = jan1wday; $f.month = month; $f.t = t; $f.wday = wday; $f.week = week; $f.yday = yday; $f.year = year; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.ISOWeek = function() { return this.$val.ISOWeek(); }; + Time.ptr.prototype.Clock = function() { + var _r, _r$1, _tuple, hour, min, sec, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; hour = $f.hour; min = $f.min; sec = $f.sec; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + hour = 0; + min = 0; + sec = 0; + t = this; + _r = $clone(t, Time).abs(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = absClock(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + hour = _tuple[0]; + min = _tuple[1]; + sec = _tuple[2]; + $s = -1; return [hour, min, sec]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Clock }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.hour = hour; $f.min = min; $f.sec = sec; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.Clock = function() { return this.$val.Clock(); }; + absClock = function(abs) { + var _q, _q$1, abs, hour, min, sec; + hour = 0; + min = 0; + sec = 0; + sec = (($div64(abs, new $Uint64(0, 86400), true).$low >> 0)); + hour = (_q = sec / 3600, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + sec = sec - (($imul(hour, 3600))) >> 0; + min = (_q$1 = sec / 60, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")); + sec = sec - (($imul(min, 60))) >> 0; + return [hour, min, sec]; + }; + Time.ptr.prototype.Hour = function() { + var _q, _r, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _r = $f._r; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = $clone(t, Time).abs(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return (_q = (($div64(_r, new $Uint64(0, 86400), true).$low >> 0)) / 3600, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Hour }; } $f._q = _q; $f._r = _r; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.Hour = function() { return this.$val.Hour(); }; + Time.ptr.prototype.Minute = function() { + var _q, _r, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _r = $f._r; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = $clone(t, Time).abs(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return (_q = (($div64(_r, new $Uint64(0, 3600), true).$low >> 0)) / 60, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Minute }; } $f._q = _q; $f._r = _r; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.Minute = function() { return this.$val.Minute(); }; + Time.ptr.prototype.Second = function() { + var _r, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = $clone(t, Time).abs(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return (($div64(_r, new $Uint64(0, 60), true).$low >> 0)); + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Second }; } $f._r = _r; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.Second = function() { return this.$val.Second(); }; + Time.ptr.prototype.Nanosecond = function() { + var t; + t = this; + return ((t.nsec() >> 0)); + }; + Time.prototype.Nanosecond = function() { return this.$val.Nanosecond(); }; + Time.ptr.prototype.YearDay = function() { + var _r, _tuple, t, yday, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; t = $f.t; yday = $f.yday; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = $clone(t, Time).date(false); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + yday = _tuple[3]; + $s = -1; return yday + 1 >> 0; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.YearDay }; } $f._r = _r; $f._tuple = _tuple; $f.t = t; $f.yday = yday; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.YearDay = function() { return this.$val.YearDay(); }; + Duration.prototype.String = function() { + var _tuple, _tuple$1, buf, d, neg, prec, u, w; + d = this; + buf = arrayType$3.zero(); + w = 32; + u = (new $Uint64(d.$high, d.$low)); + neg = (d.$high < 0 || (d.$high === 0 && d.$low < 0)); + if (neg) { + u = new $Uint64(-u.$high, -u.$low); + } + if ((u.$high < 0 || (u.$high === 0 && u.$low < 1000000000))) { + prec = 0; + w = w - (1) >> 0; + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 115); + w = w - (1) >> 0; + if ((u.$high === 0 && u.$low === 0)) { + return "0s"; + } else if ((u.$high < 0 || (u.$high === 0 && u.$low < 1000))) { + prec = 0; + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 110); + } else if ((u.$high < 0 || (u.$high === 0 && u.$low < 1000000))) { + prec = 3; + w = w - (1) >> 0; + $copyString($subslice(new sliceType$3(buf), w), "\xC2\xB5"); + } else { + prec = 6; + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 109); + } + _tuple = fmtFrac($subslice(new sliceType$3(buf), 0, w), u, prec); + w = _tuple[0]; + u = _tuple[1]; + w = fmtInt($subslice(new sliceType$3(buf), 0, w), u); + } else { + w = w - (1) >> 0; + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 115); + _tuple$1 = fmtFrac($subslice(new sliceType$3(buf), 0, w), u, 9); + w = _tuple$1[0]; + u = _tuple$1[1]; + w = fmtInt($subslice(new sliceType$3(buf), 0, w), $div64(u, new $Uint64(0, 60), true)); + u = $div64(u, (new $Uint64(0, 60)), false); + if ((u.$high > 0 || (u.$high === 0 && u.$low > 0))) { + w = w - (1) >> 0; + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 109); + w = fmtInt($subslice(new sliceType$3(buf), 0, w), $div64(u, new $Uint64(0, 60), true)); + u = $div64(u, (new $Uint64(0, 60)), false); + if ((u.$high > 0 || (u.$high === 0 && u.$low > 0))) { + w = w - (1) >> 0; + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 104); + w = fmtInt($subslice(new sliceType$3(buf), 0, w), u); + } + } + } + if (neg) { + w = w - (1) >> 0; + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 45); + } + return ($bytesToString($subslice(new sliceType$3(buf), w))); + }; + $ptrType(Duration).prototype.String = function() { return this.$get().String(); }; + fmtFrac = function(buf, v, prec) { + var _tmp, _tmp$1, buf, digit, i, nv, nw, prec, print, v, w; + nw = 0; + nv = new $Uint64(0, 0); + w = buf.$length; + print = false; + i = 0; + while (true) { + if (!(i < prec)) { break; } + digit = $div64(v, new $Uint64(0, 10), true); + print = print || !((digit.$high === 0 && digit.$low === 0)); + if (print) { + w = w - (1) >> 0; + ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = (((digit.$low << 24 >>> 24)) + 48 << 24 >>> 24)); + } + v = $div64(v, (new $Uint64(0, 10)), false); + i = i + (1) >> 0; + } + if (print) { + w = w - (1) >> 0; + ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = 46); + } + _tmp = w; + _tmp$1 = v; + nw = _tmp; + nv = _tmp$1; + return [nw, nv]; + }; + fmtInt = function(buf, v) { + var buf, v, w; + w = buf.$length; + if ((v.$high === 0 && v.$low === 0)) { + w = w - (1) >> 0; + ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = 48); + } else { + while (true) { + if (!((v.$high > 0 || (v.$high === 0 && v.$low > 0)))) { break; } + w = w - (1) >> 0; + ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = ((($div64(v, new $Uint64(0, 10), true).$low << 24 >>> 24)) + 48 << 24 >>> 24)); + v = $div64(v, (new $Uint64(0, 10)), false); + } + } + return w; + }; + Duration.prototype.Nanoseconds = function() { + var d; + d = this; + return (new $Int64(d.$high, d.$low)); + }; + $ptrType(Duration).prototype.Nanoseconds = function() { return this.$get().Nanoseconds(); }; + Duration.prototype.Seconds = function() { + var d, nsec, sec; + d = this; + sec = $div64(d, new Duration(0, 1000000000), false); + nsec = $div64(d, new Duration(0, 1000000000), true); + return ($flatten64(sec)) + ($flatten64(nsec)) / 1e+09; + }; + $ptrType(Duration).prototype.Seconds = function() { return this.$get().Seconds(); }; + Duration.prototype.Minutes = function() { + var d, min, nsec; + d = this; + min = $div64(d, new Duration(13, 4165425152), false); + nsec = $div64(d, new Duration(13, 4165425152), true); + return ($flatten64(min)) + ($flatten64(nsec)) / 6e+10; + }; + $ptrType(Duration).prototype.Minutes = function() { return this.$get().Minutes(); }; + Duration.prototype.Hours = function() { + var d, hour, nsec; + d = this; + hour = $div64(d, new Duration(838, 817405952), false); + nsec = $div64(d, new Duration(838, 817405952), true); + return ($flatten64(hour)) + ($flatten64(nsec)) / 3.6e+12; + }; + $ptrType(Duration).prototype.Hours = function() { return this.$get().Hours(); }; + Duration.prototype.Truncate = function(m) { + var d, m, x; + d = this; + if ((m.$high < 0 || (m.$high === 0 && m.$low <= 0))) { + return d; + } + return (x = $div64(d, m, true), new Duration(d.$high - x.$high, d.$low - x.$low)); + }; + $ptrType(Duration).prototype.Truncate = function(m) { return this.$get().Truncate(m); }; + lessThanHalf = function(x, y) { + var x, x$1, x$2, x$3, x$4, y; + return (x$1 = (x$2 = (new $Uint64(x.$high, x.$low)), x$3 = (new $Uint64(x.$high, x.$low)), new $Uint64(x$2.$high + x$3.$high, x$2.$low + x$3.$low)), x$4 = (new $Uint64(y.$high, y.$low)), (x$1.$high < x$4.$high || (x$1.$high === x$4.$high && x$1.$low < x$4.$low))); + }; + Duration.prototype.Round = function(m) { + var d, d1, d1$1, m, r, x, x$1; + d = this; + if ((m.$high < 0 || (m.$high === 0 && m.$low <= 0))) { + return d; + } + r = $div64(d, m, true); + if ((d.$high < 0 || (d.$high === 0 && d.$low < 0))) { + r = new Duration(-r.$high, -r.$low); + if (lessThanHalf(r, m)) { + return new Duration(d.$high + r.$high, d.$low + r.$low); + } + d1 = (x = new Duration(d.$high - m.$high, d.$low - m.$low), new Duration(x.$high + r.$high, x.$low + r.$low)); + if ((d1.$high < d.$high || (d1.$high === d.$high && d1.$low < d.$low))) { + return d1; + } + return new Duration(-2147483648, 0); + } + if (lessThanHalf(r, m)) { + return new Duration(d.$high - r.$high, d.$low - r.$low); + } + d1$1 = (x$1 = new Duration(d.$high + m.$high, d.$low + m.$low), new Duration(x$1.$high - r.$high, x$1.$low - r.$low)); + if ((d1$1.$high > d.$high || (d1$1.$high === d.$high && d1$1.$low > d.$low))) { + return d1$1; + } + return new Duration(2147483647, 4294967295); + }; + $ptrType(Duration).prototype.Round = function(m) { return this.$get().Round(m); }; + Time.ptr.prototype.Add = function(d) { + var d, dsec, nsec, t, te, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + t = this; + dsec = ((x = $div64(d, new Duration(0, 1000000000), false), new $Int64(x.$high, x.$low))); + nsec = t.nsec() + (((x$1 = $div64(d, new Duration(0, 1000000000), true), x$1.$low + ((x$1.$high >> 31) * 4294967296)) >> 0)) >> 0; + if (nsec >= 1000000000) { + dsec = (x$2 = new $Int64(0, 1), new $Int64(dsec.$high + x$2.$high, dsec.$low + x$2.$low)); + nsec = nsec - (1000000000) >> 0; + } else if (nsec < 0) { + dsec = (x$3 = new $Int64(0, 1), new $Int64(dsec.$high - x$3.$high, dsec.$low - x$3.$low)); + nsec = nsec + (1000000000) >> 0; + } + t.wall = (x$4 = (x$5 = t.wall, new $Uint64(x$5.$high & ~0, (x$5.$low & ~1073741823) >>> 0)), x$6 = (new $Uint64(0, nsec)), new $Uint64(x$4.$high | x$6.$high, (x$4.$low | x$6.$low) >>> 0)); + t.addSec(dsec); + if (!((x$7 = (x$8 = t.wall, new $Uint64(x$8.$high & 2147483648, (x$8.$low & 0) >>> 0)), (x$7.$high === 0 && x$7.$low === 0)))) { + te = (x$9 = t.ext, x$10 = (new $Int64(d.$high, d.$low)), new $Int64(x$9.$high + x$10.$high, x$9.$low + x$10.$low)); + if ((d.$high < 0 || (d.$high === 0 && d.$low < 0)) && (x$11 = t.ext, (te.$high > x$11.$high || (te.$high === x$11.$high && te.$low > x$11.$low))) || (d.$high > 0 || (d.$high === 0 && d.$low > 0)) && (x$12 = t.ext, (te.$high < x$12.$high || (te.$high === x$12.$high && te.$low < x$12.$low)))) { + t.stripMono(); + } else { + t.ext = te; + } + } + return t; + }; + Time.prototype.Add = function(d) { return this.$val.Add(d); }; + Time.ptr.prototype.Sub = function(u) { + var d, d$1, t, te, u, ue, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + t = this; + if (!((x = (x$1 = (x$2 = t.wall, x$3 = u.wall, new $Uint64(x$2.$high & x$3.$high, (x$2.$low & x$3.$low) >>> 0)), new $Uint64(x$1.$high & 2147483648, (x$1.$low & 0) >>> 0)), (x.$high === 0 && x.$low === 0)))) { + te = t.ext; + ue = u.ext; + d = ((x$4 = new $Int64(te.$high - ue.$high, te.$low - ue.$low), new Duration(x$4.$high, x$4.$low))); + if ((d.$high < 0 || (d.$high === 0 && d.$low < 0)) && (te.$high > ue.$high || (te.$high === ue.$high && te.$low > ue.$low))) { + return new Duration(2147483647, 4294967295); + } + if ((d.$high > 0 || (d.$high === 0 && d.$low > 0)) && (te.$high < ue.$high || (te.$high === ue.$high && te.$low < ue.$low))) { + return new Duration(-2147483648, 0); + } + return d; + } + d$1 = (x$5 = $mul64(((x$6 = (x$7 = t.sec(), x$8 = u.sec(), new $Int64(x$7.$high - x$8.$high, x$7.$low - x$8.$low)), new Duration(x$6.$high, x$6.$low))), new Duration(0, 1000000000)), x$9 = (new Duration(0, (t.nsec() - u.nsec() >> 0))), new Duration(x$5.$high + x$9.$high, x$5.$low + x$9.$low)); + if ($clone($clone(u, Time).Add(d$1), Time).Equal($clone(t, Time))) { + return d$1; + } else if ($clone(t, Time).Before($clone(u, Time))) { + return new Duration(-2147483648, 0); + } else { + return new Duration(2147483647, 4294967295); + } + }; + Time.prototype.Sub = function(u) { return this.$val.Sub(u); }; + Time.ptr.prototype.AddDate = function(years, months$1, days$1) { + var _r, _r$1, _r$2, _tuple, _tuple$1, day, days$1, hour, min, month, months$1, sec, t, year, years, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; day = $f.day; days$1 = $f.days$1; hour = $f.hour; min = $f.min; month = $f.month; months$1 = $f.months$1; sec = $f.sec; t = $f.t; year = $f.year; years = $f.years; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = $clone(t, Time).Date(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + year = _tuple[0]; + month = _tuple[1]; + day = _tuple[2]; + _r$1 = $clone(t, Time).Clock(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + hour = _tuple$1[0]; + min = _tuple$1[1]; + sec = _tuple$1[2]; + _r$2 = Date(year + years >> 0, month + ((months$1 >> 0)) >> 0, day + days$1 >> 0, hour, min, sec, ((t.nsec() >> 0)), $clone(t, Time).Location()); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $s = -1; return _r$2; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.AddDate }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.day = day; $f.days$1 = days$1; $f.hour = hour; $f.min = min; $f.month = month; $f.months$1 = months$1; $f.sec = sec; $f.t = t; $f.year = year; $f.years = years; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.AddDate = function(years, months$1, days$1) { return this.$val.AddDate(years, months$1, days$1); }; + Time.ptr.prototype.date = function(full) { + var _r, _r$1, _tuple, day, full, month, t, yday, year, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; day = $f.day; full = $f.full; month = $f.month; t = $f.t; yday = $f.yday; year = $f.year; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + year = 0; + month = 0; + day = 0; + yday = 0; + t = this; + _r = $clone(t, Time).abs(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = absDate(_r, full); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + year = _tuple[0]; + month = _tuple[1]; + day = _tuple[2]; + yday = _tuple[3]; + $s = -1; return [year, month, day, yday]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.date }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.day = day; $f.full = full; $f.month = month; $f.t = t; $f.yday = yday; $f.year = year; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.date = function(full) { return this.$val.date(full); }; + absDate = function(abs, full) { + var _q, abs, begin, d, day, end, full, month, n, x, x$1, x$10, x$11, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, y, yday, year; + year = 0; + month = 0; + day = 0; + yday = 0; + d = $div64(abs, new $Uint64(0, 86400), false); + n = $div64(d, new $Uint64(0, 146097), false); + y = $mul64(new $Uint64(0, 400), n); + d = (x = $mul64(new $Uint64(0, 146097), n), new $Uint64(d.$high - x.$high, d.$low - x.$low)); + n = $div64(d, new $Uint64(0, 36524), false); + n = (x$1 = $shiftRightUint64(n, 2), new $Uint64(n.$high - x$1.$high, n.$low - x$1.$low)); + y = (x$2 = $mul64(new $Uint64(0, 100), n), new $Uint64(y.$high + x$2.$high, y.$low + x$2.$low)); + d = (x$3 = $mul64(new $Uint64(0, 36524), n), new $Uint64(d.$high - x$3.$high, d.$low - x$3.$low)); + n = $div64(d, new $Uint64(0, 1461), false); + y = (x$4 = $mul64(new $Uint64(0, 4), n), new $Uint64(y.$high + x$4.$high, y.$low + x$4.$low)); + d = (x$5 = $mul64(new $Uint64(0, 1461), n), new $Uint64(d.$high - x$5.$high, d.$low - x$5.$low)); + n = $div64(d, new $Uint64(0, 365), false); + n = (x$6 = $shiftRightUint64(n, 2), new $Uint64(n.$high - x$6.$high, n.$low - x$6.$low)); + y = (x$7 = n, new $Uint64(y.$high + x$7.$high, y.$low + x$7.$low)); + d = (x$8 = $mul64(new $Uint64(0, 365), n), new $Uint64(d.$high - x$8.$high, d.$low - x$8.$low)); + year = (((x$9 = (x$10 = (new $Int64(y.$high, y.$low)), new $Int64(x$10.$high + -69, x$10.$low + 4075721025)), x$9.$low + ((x$9.$high >> 31) * 4294967296)) >> 0)); + yday = ((d.$low >> 0)); + if (!full) { + return [year, month, day, yday]; + } + day = yday; + if (isLeap(year)) { + if (day > 59) { + day = day - (1) >> 0; + } else if ((day === 59)) { + month = 2; + day = 29; + return [year, month, day, yday]; + } + } + month = (((_q = day / 31, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0)); + end = (((x$11 = month + 1 >> 0, ((x$11 < 0 || x$11 >= daysBefore.length) ? ($throwRuntimeError("index out of range"), undefined) : daysBefore[x$11])) >> 0)); + begin = 0; + if (day >= end) { + month = month + (1) >> 0; + begin = end; + } else { + begin = ((((month < 0 || month >= daysBefore.length) ? ($throwRuntimeError("index out of range"), undefined) : daysBefore[month]) >> 0)); + } + month = month + (1) >> 0; + day = (day - begin >> 0) + 1 >> 0; + return [year, month, day, yday]; + }; + daysIn = function(m, year) { + var m, x, year; + if ((m === 2) && isLeap(year)) { + return 29; + } + return (((((m < 0 || m >= daysBefore.length) ? ($throwRuntimeError("index out of range"), undefined) : daysBefore[m]) - (x = m - 1 >> 0, ((x < 0 || x >= daysBefore.length) ? ($throwRuntimeError("index out of range"), undefined) : daysBefore[x])) >> 0) >> 0)); + }; + Now = function() { + var _tuple, mono, nsec, sec, x, x$1, x$2, x$3, x$4; + _tuple = now(); + sec = _tuple[0]; + nsec = _tuple[1]; + mono = _tuple[2]; + sec = (x = new $Int64(0, 2682288000), new $Int64(sec.$high + x.$high, sec.$low + x.$low)); + if (!((x$1 = $shiftRightUint64((new $Uint64(sec.$high, sec.$low)), 33), (x$1.$high === 0 && x$1.$low === 0)))) { + return new Time.ptr((new $Uint64(0, nsec)), new $Int64(sec.$high + 13, sec.$low + 3618733952), $pkg.Local); + } + return new Time.ptr((x$2 = (x$3 = $shiftLeft64((new $Uint64(sec.$high, sec.$low)), 30), new $Uint64(2147483648 | x$3.$high, (0 | x$3.$low) >>> 0)), x$4 = (new $Uint64(0, nsec)), new $Uint64(x$2.$high | x$4.$high, (x$2.$low | x$4.$low) >>> 0)), mono, $pkg.Local); + }; + $pkg.Now = Now; + unixTime = function(sec, nsec) { + var nsec, sec; + return new Time.ptr((new $Uint64(0, nsec)), new $Int64(sec.$high + 14, sec.$low + 2006054656), $pkg.Local); + }; + Time.ptr.prototype.UTC = function() { + var t; + t = this; + t.setLoc(utcLoc); + return t; + }; + Time.prototype.UTC = function() { return this.$val.UTC(); }; + Time.ptr.prototype.Local = function() { + var t; + t = this; + t.setLoc($pkg.Local); + return t; + }; + Time.prototype.Local = function() { return this.$val.Local(); }; + Time.ptr.prototype.In = function(loc) { + var loc, t; + t = this; + if (loc === ptrType$2.nil) { + $panic(new $String("time: missing Location in call to Time.In")); + } + t.setLoc(loc); + return t; + }; + Time.prototype.In = function(loc) { return this.$val.In(loc); }; + Time.ptr.prototype.Location = function() { + var l, t; + t = this; + l = t.loc; + if (l === ptrType$2.nil) { + l = $pkg.UTC; + } + return l; + }; + Time.prototype.Location = function() { return this.$val.Location(); }; + Time.ptr.prototype.Zone = function() { + var _r, _tuple, name, offset, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; name = $f.name; offset = $f.offset; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + name = ""; + offset = 0; + t = this; + _r = t.loc.lookup(t.unixSec()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + name = _tuple[0]; + offset = _tuple[1]; + $s = -1; return [name, offset]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Zone }; } $f._r = _r; $f._tuple = _tuple; $f.name = name; $f.offset = offset; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.Zone = function() { return this.$val.Zone(); }; + Time.ptr.prototype.Unix = function() { + var t; + t = this; + return t.unixSec(); + }; + Time.prototype.Unix = function() { return this.$val.Unix(); }; + Time.ptr.prototype.UnixNano = function() { + var t, x, x$1; + t = this; + return (x = $mul64((t.unixSec()), new $Int64(0, 1000000000)), x$1 = (new $Int64(0, t.nsec())), new $Int64(x.$high + x$1.$high, x.$low + x$1.$low)); + }; + Time.prototype.UnixNano = function() { return this.$val.UnixNano(); }; + Time.ptr.prototype.MarshalBinary = function() { + var _q, _r, _r$1, _tuple, enc, nsec, offset, offsetMin, sec, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; enc = $f.enc; nsec = $f.nsec; offset = $f.offset; offsetMin = $f.offsetMin; sec = $f.sec; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + offsetMin = 0; + /* */ if ($clone(t, Time).Location() === $pkg.UTC) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ($clone(t, Time).Location() === $pkg.UTC) { */ case 1: + offsetMin = -1; + $s = 3; continue; + /* } else { */ case 2: + _r = $clone(t, Time).Zone(); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + offset = _tuple[1]; + if (!(((_r$1 = offset % 60, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) === 0))) { + $s = -1; return [sliceType$3.nil, errors.New("Time.MarshalBinary: zone offset has fractional minute")]; + } + offset = (_q = offset / (60), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + if (offset < -32768 || (offset === -1) || offset > 32767) { + $s = -1; return [sliceType$3.nil, errors.New("Time.MarshalBinary: unexpected zone offset")]; + } + offsetMin = ((offset << 16 >> 16)); + /* } */ case 3: + sec = t.sec(); + nsec = t.nsec(); + enc = new sliceType$3([1, (($shiftRightInt64(sec, 56).$low << 24 >>> 24)), (($shiftRightInt64(sec, 48).$low << 24 >>> 24)), (($shiftRightInt64(sec, 40).$low << 24 >>> 24)), (($shiftRightInt64(sec, 32).$low << 24 >>> 24)), (($shiftRightInt64(sec, 24).$low << 24 >>> 24)), (($shiftRightInt64(sec, 16).$low << 24 >>> 24)), (($shiftRightInt64(sec, 8).$low << 24 >>> 24)), ((sec.$low << 24 >>> 24)), (((nsec >> 24 >> 0) << 24 >>> 24)), (((nsec >> 16 >> 0) << 24 >>> 24)), (((nsec >> 8 >> 0) << 24 >>> 24)), ((nsec << 24 >>> 24)), (((offsetMin >> 8 << 16 >> 16) << 24 >>> 24)), ((offsetMin << 24 >>> 24))]); + $s = -1; return [enc, $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.MarshalBinary }; } $f._q = _q; $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.enc = enc; $f.nsec = nsec; $f.offset = offset; $f.offsetMin = offsetMin; $f.sec = sec; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.MarshalBinary = function() { return this.$val.MarshalBinary(); }; + Time.ptr.prototype.UnmarshalBinary = function(data) { + var _r, _tuple, buf, data, localoff, nsec, offset, sec, t, x, x$1, x$10, x$11, x$12, x$13, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; buf = $f.buf; data = $f.data; localoff = $f.localoff; nsec = $f.nsec; offset = $f.offset; sec = $f.sec; t = $f.t; x = $f.x; x$1 = $f.x$1; x$10 = $f.x$10; x$11 = $f.x$11; x$12 = $f.x$12; x$13 = $f.x$13; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; x$8 = $f.x$8; x$9 = $f.x$9; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + buf = data; + if (buf.$length === 0) { + $s = -1; return errors.New("Time.UnmarshalBinary: no data"); + } + if (!(((0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]) === 1))) { + $s = -1; return errors.New("Time.UnmarshalBinary: unsupported version"); + } + if (!((buf.$length === 15))) { + $s = -1; return errors.New("Time.UnmarshalBinary: invalid length"); + } + buf = $subslice(buf, 1); + sec = (x = (x$1 = (x$2 = (x$3 = (x$4 = (x$5 = (x$6 = (new $Int64(0, (7 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 7]))), x$7 = $shiftLeft64((new $Int64(0, (6 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 6]))), 8), new $Int64(x$6.$high | x$7.$high, (x$6.$low | x$7.$low) >>> 0)), x$8 = $shiftLeft64((new $Int64(0, (5 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 5]))), 16), new $Int64(x$5.$high | x$8.$high, (x$5.$low | x$8.$low) >>> 0)), x$9 = $shiftLeft64((new $Int64(0, (4 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 4]))), 24), new $Int64(x$4.$high | x$9.$high, (x$4.$low | x$9.$low) >>> 0)), x$10 = $shiftLeft64((new $Int64(0, (3 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 3]))), 32), new $Int64(x$3.$high | x$10.$high, (x$3.$low | x$10.$low) >>> 0)), x$11 = $shiftLeft64((new $Int64(0, (2 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 2]))), 40), new $Int64(x$2.$high | x$11.$high, (x$2.$low | x$11.$low) >>> 0)), x$12 = $shiftLeft64((new $Int64(0, (1 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 1]))), 48), new $Int64(x$1.$high | x$12.$high, (x$1.$low | x$12.$low) >>> 0)), x$13 = $shiftLeft64((new $Int64(0, (0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]))), 56), new $Int64(x.$high | x$13.$high, (x.$low | x$13.$low) >>> 0)); + buf = $subslice(buf, 8); + nsec = (((((3 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 3]) >> 0)) | ((((2 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 2]) >> 0)) << 8 >> 0)) | ((((1 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 1]) >> 0)) << 16 >> 0)) | ((((0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]) >> 0)) << 24 >> 0); + buf = $subslice(buf, 4); + offset = $imul(((((((1 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 1]) << 16 >> 16)) | ((((0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]) << 16 >> 16)) << 8 << 16 >> 16)) >> 0)), 60); + Time.copy(t, new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil)); + t.wall = (new $Uint64(0, nsec)); + t.ext = sec; + /* */ if (offset === -60) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (offset === -60) { */ case 1: + t.setLoc(utcLoc); + $s = 3; continue; + /* } else { */ case 2: + _r = $pkg.Local.lookup(t.unixSec()); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + localoff = _tuple[1]; + if (offset === localoff) { + t.setLoc($pkg.Local); + } else { + t.setLoc(FixedZone("", offset)); + } + /* } */ case 3: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.UnmarshalBinary }; } $f._r = _r; $f._tuple = _tuple; $f.buf = buf; $f.data = data; $f.localoff = localoff; $f.nsec = nsec; $f.offset = offset; $f.sec = sec; $f.t = t; $f.x = x; $f.x$1 = x$1; $f.x$10 = x$10; $f.x$11 = x$11; $f.x$12 = x$12; $f.x$13 = x$13; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.x$8 = x$8; $f.x$9 = x$9; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.UnmarshalBinary = function(data) { return this.$val.UnmarshalBinary(data); }; + Time.ptr.prototype.GobEncode = function() { + var _r, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = $clone(t, Time).MarshalBinary(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.GobEncode }; } $f._r = _r; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.GobEncode = function() { return this.$val.GobEncode(); }; + Time.ptr.prototype.GobDecode = function(data) { + var _r, data, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; data = $f.data; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = t.UnmarshalBinary(data); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.GobDecode }; } $f._r = _r; $f.data = data; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.GobDecode = function(data) { return this.$val.GobDecode(data); }; + Time.ptr.prototype.MarshalJSON = function() { + var _r, _r$1, b, t, y, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; b = $f.b; t = $f.t; y = $f.y; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = $clone(t, Time).Year(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + y = _r; + if (y < 0 || y >= 10000) { + $s = -1; return [sliceType$3.nil, errors.New("Time.MarshalJSON: year outside of range [0,9999]")]; + } + b = $makeSlice(sliceType$3, 0, 37); + b = $append(b, 34); + _r$1 = $clone(t, Time).AppendFormat(b, "2006-01-02T15:04:05.999999999Z07:00"); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + b = _r$1; + b = $append(b, 34); + $s = -1; return [b, $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.MarshalJSON }; } $f._r = _r; $f._r$1 = _r$1; $f.b = b; $f.t = t; $f.y = y; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.MarshalJSON = function() { return this.$val.MarshalJSON(); }; + Time.ptr.prototype.UnmarshalJSON = function(data) { + var _r, _tuple, data, err, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; data = $f.data; err = $f.err; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + if (($bytesToString(data)) === "null") { + $s = -1; return $ifaceNil; + } + err = $ifaceNil; + _r = Parse("\"2006-01-02T15:04:05Z07:00\"", ($bytesToString(data))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + Time.copy(t, _tuple[0]); + err = _tuple[1]; + $s = -1; return err; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.UnmarshalJSON }; } $f._r = _r; $f._tuple = _tuple; $f.data = data; $f.err = err; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.UnmarshalJSON = function(data) { return this.$val.UnmarshalJSON(data); }; + Time.ptr.prototype.MarshalText = function() { + var _r, _r$1, b, t, y, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; b = $f.b; t = $f.t; y = $f.y; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = $clone(t, Time).Year(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + y = _r; + if (y < 0 || y >= 10000) { + $s = -1; return [sliceType$3.nil, errors.New("Time.MarshalText: year outside of range [0,9999]")]; + } + b = $makeSlice(sliceType$3, 0, 35); + _r$1 = $clone(t, Time).AppendFormat(b, "2006-01-02T15:04:05.999999999Z07:00"); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return [_r$1, $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.MarshalText }; } $f._r = _r; $f._r$1 = _r$1; $f.b = b; $f.t = t; $f.y = y; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.MarshalText = function() { return this.$val.MarshalText(); }; + Time.ptr.prototype.UnmarshalText = function(data) { + var _r, _tuple, data, err, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; data = $f.data; err = $f.err; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + err = $ifaceNil; + _r = Parse("2006-01-02T15:04:05Z07:00", ($bytesToString(data))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + Time.copy(t, _tuple[0]); + err = _tuple[1]; + $s = -1; return err; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.UnmarshalText }; } $f._r = _r; $f._tuple = _tuple; $f.data = data; $f.err = err; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.UnmarshalText = function(data) { return this.$val.UnmarshalText(data); }; + Unix = function(sec, nsec) { + var n, nsec, sec, x, x$1, x$2, x$3; + if ((nsec.$high < 0 || (nsec.$high === 0 && nsec.$low < 0)) || (nsec.$high > 0 || (nsec.$high === 0 && nsec.$low >= 1000000000))) { + n = $div64(nsec, new $Int64(0, 1000000000), false); + sec = (x = n, new $Int64(sec.$high + x.$high, sec.$low + x.$low)); + nsec = (x$1 = $mul64(n, new $Int64(0, 1000000000)), new $Int64(nsec.$high - x$1.$high, nsec.$low - x$1.$low)); + if ((nsec.$high < 0 || (nsec.$high === 0 && nsec.$low < 0))) { + nsec = (x$2 = new $Int64(0, 1000000000), new $Int64(nsec.$high + x$2.$high, nsec.$low + x$2.$low)); + sec = (x$3 = new $Int64(0, 1), new $Int64(sec.$high - x$3.$high, sec.$low - x$3.$low)); + } + } + return unixTime(sec, (((nsec.$low + ((nsec.$high >> 31) * 4294967296)) >> 0))); + }; + $pkg.Unix = Unix; + isLeap = function(year) { + var _r, _r$1, _r$2, year; + return ((_r = year % 4, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) === 0) && (!(((_r$1 = year % 100, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) === 0)) || ((_r$2 = year % 400, _r$2 === _r$2 ? _r$2 : $throwRuntimeError("integer divide by zero")) === 0)); + }; + norm = function(hi, lo, base) { + var _q, _q$1, _tmp, _tmp$1, base, hi, lo, n, n$1, nhi, nlo; + nhi = 0; + nlo = 0; + if (lo < 0) { + n = (_q = ((-lo - 1 >> 0)) / base, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0; + hi = hi - (n) >> 0; + lo = lo + (($imul(n, base))) >> 0; + } + if (lo >= base) { + n$1 = (_q$1 = lo / base, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")); + hi = hi + (n$1) >> 0; + lo = lo - (($imul(n$1, base))) >> 0; + } + _tmp = hi; + _tmp$1 = lo; + nhi = _tmp; + nlo = _tmp$1; + return [nhi, nlo]; + }; + Date = function(year, month, day, hour, min, sec, nsec, loc) { + var _r, _r$1, _r$2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, abs, d, day, end, hour, loc, m, min, month, n, nsec, offset, sec, start, t, unix, utc, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, y, year, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; _tuple$5 = $f._tuple$5; _tuple$6 = $f._tuple$6; _tuple$7 = $f._tuple$7; abs = $f.abs; d = $f.d; day = $f.day; end = $f.end; hour = $f.hour; loc = $f.loc; m = $f.m; min = $f.min; month = $f.month; n = $f.n; nsec = $f.nsec; offset = $f.offset; sec = $f.sec; start = $f.start; t = $f.t; unix = $f.unix; utc = $f.utc; x = $f.x; x$1 = $f.x$1; x$10 = $f.x$10; x$11 = $f.x$11; x$12 = $f.x$12; x$13 = $f.x$13; x$14 = $f.x$14; x$15 = $f.x$15; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; x$8 = $f.x$8; x$9 = $f.x$9; y = $f.y; year = $f.year; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + if (loc === ptrType$2.nil) { + $panic(new $String("time: missing Location in call to Date")); + } + m = ((month >> 0)) - 1 >> 0; + _tuple = norm(year, m, 12); + year = _tuple[0]; + m = _tuple[1]; + month = ((m >> 0)) + 1 >> 0; + _tuple$1 = norm(sec, nsec, 1000000000); + sec = _tuple$1[0]; + nsec = _tuple$1[1]; + _tuple$2 = norm(min, sec, 60); + min = _tuple$2[0]; + sec = _tuple$2[1]; + _tuple$3 = norm(hour, min, 60); + hour = _tuple$3[0]; + min = _tuple$3[1]; + _tuple$4 = norm(day, hour, 24); + day = _tuple$4[0]; + hour = _tuple$4[1]; + y = ((x = (x$1 = (new $Int64(0, year)), new $Int64(x$1.$high - -69, x$1.$low - 4075721025)), new $Uint64(x.$high, x.$low))); + n = $div64(y, new $Uint64(0, 400), false); + y = (x$2 = $mul64(new $Uint64(0, 400), n), new $Uint64(y.$high - x$2.$high, y.$low - x$2.$low)); + d = $mul64(new $Uint64(0, 146097), n); + n = $div64(y, new $Uint64(0, 100), false); + y = (x$3 = $mul64(new $Uint64(0, 100), n), new $Uint64(y.$high - x$3.$high, y.$low - x$3.$low)); + d = (x$4 = $mul64(new $Uint64(0, 36524), n), new $Uint64(d.$high + x$4.$high, d.$low + x$4.$low)); + n = $div64(y, new $Uint64(0, 4), false); + y = (x$5 = $mul64(new $Uint64(0, 4), n), new $Uint64(y.$high - x$5.$high, y.$low - x$5.$low)); + d = (x$6 = $mul64(new $Uint64(0, 1461), n), new $Uint64(d.$high + x$6.$high, d.$low + x$6.$low)); + n = y; + d = (x$7 = $mul64(new $Uint64(0, 365), n), new $Uint64(d.$high + x$7.$high, d.$low + x$7.$low)); + d = (x$8 = (new $Uint64(0, (x$9 = month - 1 >> 0, ((x$9 < 0 || x$9 >= daysBefore.length) ? ($throwRuntimeError("index out of range"), undefined) : daysBefore[x$9])))), new $Uint64(d.$high + x$8.$high, d.$low + x$8.$low)); + if (isLeap(year) && month >= 3) { + d = (x$10 = new $Uint64(0, 1), new $Uint64(d.$high + x$10.$high, d.$low + x$10.$low)); + } + d = (x$11 = (new $Uint64(0, (day - 1 >> 0))), new $Uint64(d.$high + x$11.$high, d.$low + x$11.$low)); + abs = $mul64(d, new $Uint64(0, 86400)); + abs = (x$12 = (new $Uint64(0, ((($imul(hour, 3600)) + ($imul(min, 60)) >> 0) + sec >> 0))), new $Uint64(abs.$high + x$12.$high, abs.$low + x$12.$low)); + unix = (x$13 = (new $Int64(abs.$high, abs.$low)), new $Int64(x$13.$high + -2147483647, x$13.$low + 3844486912)); + _r = loc.lookup(unix); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple$5 = _r; + offset = _tuple$5[1]; + start = _tuple$5[2]; + end = _tuple$5[3]; + /* */ if (!((offset === 0))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!((offset === 0))) { */ case 2: + utc = (x$14 = (new $Int64(0, offset)), new $Int64(unix.$high - x$14.$high, unix.$low - x$14.$low)); + /* */ if ((utc.$high < start.$high || (utc.$high === start.$high && utc.$low < start.$low))) { $s = 5; continue; } + /* */ if ((utc.$high > end.$high || (utc.$high === end.$high && utc.$low >= end.$low))) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if ((utc.$high < start.$high || (utc.$high === start.$high && utc.$low < start.$low))) { */ case 5: + _r$1 = loc.lookup(new $Int64(start.$high - 0, start.$low - 1)); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$6 = _r$1; + offset = _tuple$6[1]; + $s = 7; continue; + /* } else if ((utc.$high > end.$high || (utc.$high === end.$high && utc.$low >= end.$low))) { */ case 6: + _r$2 = loc.lookup(end); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$7 = _r$2; + offset = _tuple$7[1]; + /* } */ case 7: + case 4: + unix = (x$15 = (new $Int64(0, offset)), new $Int64(unix.$high - x$15.$high, unix.$low - x$15.$low)); + /* } */ case 3: + t = $clone(unixTime(unix, ((nsec >> 0))), Time); + t.setLoc(loc); + $s = -1; return t; + /* */ } return; } if ($f === undefined) { $f = { $blk: Date }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f._tuple$5 = _tuple$5; $f._tuple$6 = _tuple$6; $f._tuple$7 = _tuple$7; $f.abs = abs; $f.d = d; $f.day = day; $f.end = end; $f.hour = hour; $f.loc = loc; $f.m = m; $f.min = min; $f.month = month; $f.n = n; $f.nsec = nsec; $f.offset = offset; $f.sec = sec; $f.start = start; $f.t = t; $f.unix = unix; $f.utc = utc; $f.x = x; $f.x$1 = x$1; $f.x$10 = x$10; $f.x$11 = x$11; $f.x$12 = x$12; $f.x$13 = x$13; $f.x$14 = x$14; $f.x$15 = x$15; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.x$8 = x$8; $f.x$9 = x$9; $f.y = y; $f.year = year; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Date = Date; + Time.ptr.prototype.Truncate = function(d) { + var _tuple, d, r, t; + t = this; + t.stripMono(); + if ((d.$high < 0 || (d.$high === 0 && d.$low <= 0))) { + return t; + } + _tuple = div($clone(t, Time), d); + r = _tuple[1]; + return $clone(t, Time).Add(new Duration(-r.$high, -r.$low)); + }; + Time.prototype.Truncate = function(d) { return this.$val.Truncate(d); }; + Time.ptr.prototype.Round = function(d) { + var _tuple, d, r, t; + t = this; + t.stripMono(); + if ((d.$high < 0 || (d.$high === 0 && d.$low <= 0))) { + return t; + } + _tuple = div($clone(t, Time), d); + r = _tuple[1]; + if (lessThanHalf(r, d)) { + return $clone(t, Time).Add(new Duration(-r.$high, -r.$low)); + } + return $clone(t, Time).Add(new Duration(d.$high - r.$high, d.$low - r.$low)); + }; + Time.prototype.Round = function(d) { return this.$val.Round(d); }; + div = function(t, d) { + var _q, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, d, d0, d1, d1$1, neg, nsec, qmod2, r, sec, sec$1, t, tmp, u0, u0x, u1, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + qmod2 = 0; + r = new Duration(0, 0); + neg = false; + nsec = t.nsec(); + sec = t.sec(); + if ((sec.$high < 0 || (sec.$high === 0 && sec.$low < 0))) { + neg = true; + sec = new $Int64(-sec.$high, -sec.$low); + nsec = -nsec; + if (nsec < 0) { + nsec = nsec + (1000000000) >> 0; + sec = (x = new $Int64(0, 1), new $Int64(sec.$high - x.$high, sec.$low - x.$low)); + } + } + if ((d.$high < 0 || (d.$high === 0 && d.$low < 1000000000)) && (x$1 = $div64(new Duration(0, 1000000000), (new Duration(d.$high + d.$high, d.$low + d.$low)), true), (x$1.$high === 0 && x$1.$low === 0))) { + qmod2 = (((_q = nsec / (((d.$low + ((d.$high >> 31) * 4294967296)) >> 0)), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0)) & 1; + r = (new Duration(0, (_r = nsec % (((d.$low + ((d.$high >> 31) * 4294967296)) >> 0)), _r === _r ? _r : $throwRuntimeError("integer divide by zero")))); + } else if ((x$2 = $div64(d, new Duration(0, 1000000000), true), (x$2.$high === 0 && x$2.$low === 0))) { + d1 = ((x$3 = $div64(d, new Duration(0, 1000000000), false), new $Int64(x$3.$high, x$3.$low))); + qmod2 = (((x$4 = $div64(sec, d1, false), x$4.$low + ((x$4.$high >> 31) * 4294967296)) >> 0)) & 1; + r = (x$5 = $mul64(((x$6 = $div64(sec, d1, true), new Duration(x$6.$high, x$6.$low))), new Duration(0, 1000000000)), x$7 = (new Duration(0, nsec)), new Duration(x$5.$high + x$7.$high, x$5.$low + x$7.$low)); + } else { + sec$1 = (new $Uint64(sec.$high, sec.$low)); + tmp = $mul64(($shiftRightUint64(sec$1, 32)), new $Uint64(0, 1000000000)); + u1 = $shiftRightUint64(tmp, 32); + u0 = $shiftLeft64(tmp, 32); + tmp = $mul64((new $Uint64(sec$1.$high & 0, (sec$1.$low & 4294967295) >>> 0)), new $Uint64(0, 1000000000)); + _tmp = u0; + _tmp$1 = new $Uint64(u0.$high + tmp.$high, u0.$low + tmp.$low); + u0x = _tmp; + u0 = _tmp$1; + if ((u0.$high < u0x.$high || (u0.$high === u0x.$high && u0.$low < u0x.$low))) { + u1 = (x$8 = new $Uint64(0, 1), new $Uint64(u1.$high + x$8.$high, u1.$low + x$8.$low)); + } + _tmp$2 = u0; + _tmp$3 = (x$9 = (new $Uint64(0, nsec)), new $Uint64(u0.$high + x$9.$high, u0.$low + x$9.$low)); + u0x = _tmp$2; + u0 = _tmp$3; + if ((u0.$high < u0x.$high || (u0.$high === u0x.$high && u0.$low < u0x.$low))) { + u1 = (x$10 = new $Uint64(0, 1), new $Uint64(u1.$high + x$10.$high, u1.$low + x$10.$low)); + } + d1$1 = (new $Uint64(d.$high, d.$low)); + while (true) { + if (!(!((x$11 = $shiftRightUint64(d1$1, 63), (x$11.$high === 0 && x$11.$low === 1))))) { break; } + d1$1 = $shiftLeft64(d1$1, (1)); + } + d0 = new $Uint64(0, 0); + while (true) { + qmod2 = 0; + if ((u1.$high > d1$1.$high || (u1.$high === d1$1.$high && u1.$low > d1$1.$low)) || (u1.$high === d1$1.$high && u1.$low === d1$1.$low) && (u0.$high > d0.$high || (u0.$high === d0.$high && u0.$low >= d0.$low))) { + qmod2 = 1; + _tmp$4 = u0; + _tmp$5 = new $Uint64(u0.$high - d0.$high, u0.$low - d0.$low); + u0x = _tmp$4; + u0 = _tmp$5; + if ((u0.$high > u0x.$high || (u0.$high === u0x.$high && u0.$low > u0x.$low))) { + u1 = (x$12 = new $Uint64(0, 1), new $Uint64(u1.$high - x$12.$high, u1.$low - x$12.$low)); + } + u1 = (x$13 = d1$1, new $Uint64(u1.$high - x$13.$high, u1.$low - x$13.$low)); + } + if ((d1$1.$high === 0 && d1$1.$low === 0) && (x$14 = (new $Uint64(d.$high, d.$low)), (d0.$high === x$14.$high && d0.$low === x$14.$low))) { + break; + } + d0 = $shiftRightUint64(d0, (1)); + d0 = (x$15 = $shiftLeft64((new $Uint64(d1$1.$high & 0, (d1$1.$low & 1) >>> 0)), 63), new $Uint64(d0.$high | x$15.$high, (d0.$low | x$15.$low) >>> 0)); + d1$1 = $shiftRightUint64(d1$1, (1)); + } + r = (new Duration(u0.$high, u0.$low)); + } + if (neg && !((r.$high === 0 && r.$low === 0))) { + qmod2 = (qmod2 ^ (1)) >> 0; + r = new Duration(d.$high - r.$high, d.$low - r.$low); + } + return [qmod2, r]; + }; + Location.ptr.prototype.get = function() { + var l, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; l = $f.l; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + l = this; + if (l === ptrType$2.nil) { + $s = -1; return utcLoc; + } + /* */ if (l === localLoc) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (l === localLoc) { */ case 1: + $r = localOnce.Do(initLocal); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $s = -1; return l; + /* */ } return; } if ($f === undefined) { $f = { $blk: Location.ptr.prototype.get }; } $f.l = l; $f.$s = $s; $f.$r = $r; return $f; + }; + Location.prototype.get = function() { return this.$val.get(); }; + Location.ptr.prototype.String = function() { + var _r, l, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; l = $f.l; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + l = this; + _r = l.get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r.name; + /* */ } return; } if ($f === undefined) { $f = { $blk: Location.ptr.prototype.String }; } $f._r = _r; $f.l = l; $f.$s = $s; $f.$r = $r; return $f; + }; + Location.prototype.String = function() { return this.$val.String(); }; + FixedZone = function(name, offset) { + var l, name, offset, x; + l = new Location.ptr(name, new sliceType([new zone.ptr(name, offset, false)]), new sliceType$1([new zoneTrans.ptr(new $Int64(-2147483648, 0), 0, false, false)]), new $Int64(-2147483648, 0), new $Int64(2147483647, 4294967295), ptrType.nil); + l.cacheZone = (x = l.zone, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); + return l; + }; + $pkg.FixedZone = FixedZone; + Location.ptr.prototype.lookup = function(sec) { + var _q, _r, end, hi, l, lim, lo, m, name, offset, sec, start, tx, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, zone$1, zone$2, zone$3, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _r = $f._r; end = $f.end; hi = $f.hi; l = $f.l; lim = $f.lim; lo = $f.lo; m = $f.m; name = $f.name; offset = $f.offset; sec = $f.sec; start = $f.start; tx = $f.tx; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; x$8 = $f.x$8; zone$1 = $f.zone$1; zone$2 = $f.zone$2; zone$3 = $f.zone$3; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + name = ""; + offset = 0; + start = new $Int64(0, 0); + end = new $Int64(0, 0); + l = this; + _r = l.get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + l = _r; + if (l.zone.$length === 0) { + name = "UTC"; + offset = 0; + start = new $Int64(-2147483648, 0); + end = new $Int64(2147483647, 4294967295); + $s = -1; return [name, offset, start, end]; + } + zone$1 = l.cacheZone; + if (!(zone$1 === ptrType.nil) && (x = l.cacheStart, (x.$high < sec.$high || (x.$high === sec.$high && x.$low <= sec.$low))) && (x$1 = l.cacheEnd, (sec.$high < x$1.$high || (sec.$high === x$1.$high && sec.$low < x$1.$low)))) { + name = zone$1.name; + offset = zone$1.offset; + start = l.cacheStart; + end = l.cacheEnd; + $s = -1; return [name, offset, start, end]; + } + if ((l.tx.$length === 0) || (x$2 = (x$3 = l.tx, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])).when, (sec.$high < x$2.$high || (sec.$high === x$2.$high && sec.$low < x$2.$low)))) { + zone$2 = (x$4 = l.zone, x$5 = l.lookupFirstZone(), ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])); + name = zone$2.name; + offset = zone$2.offset; + start = new $Int64(-2147483648, 0); + if (l.tx.$length > 0) { + end = (x$6 = l.tx, (0 >= x$6.$length ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + 0])).when; + } else { + end = new $Int64(2147483647, 4294967295); + } + $s = -1; return [name, offset, start, end]; + } + tx = l.tx; + end = new $Int64(2147483647, 4294967295); + lo = 0; + hi = tx.$length; + while (true) { + if (!((hi - lo >> 0) > 1)) { break; } + m = lo + (_q = ((hi - lo >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0; + lim = ((m < 0 || m >= tx.$length) ? ($throwRuntimeError("index out of range"), undefined) : tx.$array[tx.$offset + m]).when; + if ((sec.$high < lim.$high || (sec.$high === lim.$high && sec.$low < lim.$low))) { + end = lim; + hi = m; + } else { + lo = m; + } + } + zone$3 = (x$7 = l.zone, x$8 = ((lo < 0 || lo >= tx.$length) ? ($throwRuntimeError("index out of range"), undefined) : tx.$array[tx.$offset + lo]).index, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8])); + name = zone$3.name; + offset = zone$3.offset; + start = ((lo < 0 || lo >= tx.$length) ? ($throwRuntimeError("index out of range"), undefined) : tx.$array[tx.$offset + lo]).when; + $s = -1; return [name, offset, start, end]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Location.ptr.prototype.lookup }; } $f._q = _q; $f._r = _r; $f.end = end; $f.hi = hi; $f.l = l; $f.lim = lim; $f.lo = lo; $f.m = m; $f.name = name; $f.offset = offset; $f.sec = sec; $f.start = start; $f.tx = tx; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.x$8 = x$8; $f.zone$1 = zone$1; $f.zone$2 = zone$2; $f.zone$3 = zone$3; $f.$s = $s; $f.$r = $r; return $f; + }; + Location.prototype.lookup = function(sec) { return this.$val.lookup(sec); }; + Location.ptr.prototype.lookupFirstZone = function() { + var _i, _ref, l, x, x$1, x$2, x$3, x$4, x$5, zi, zi$1; + l = this; + if (!l.firstZoneUsed()) { + return 0; + } + if (l.tx.$length > 0 && (x = l.zone, x$1 = (x$2 = l.tx, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])).index, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).isDST) { + zi = (((x$3 = l.tx, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])).index >> 0)) - 1 >> 0; + while (true) { + if (!(zi >= 0)) { break; } + if (!(x$4 = l.zone, ((zi < 0 || zi >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + zi])).isDST) { + return zi; + } + zi = zi - (1) >> 0; + } + } + _ref = l.zone; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + zi$1 = _i; + if (!(x$5 = l.zone, ((zi$1 < 0 || zi$1 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + zi$1])).isDST) { + return zi$1; + } + _i++; + } + return 0; + }; + Location.prototype.lookupFirstZone = function() { return this.$val.lookupFirstZone(); }; + Location.ptr.prototype.firstZoneUsed = function() { + var _i, _ref, l, tx; + l = this; + _ref = l.tx; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + tx = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), zoneTrans); + if (tx.index === 0) { + return true; + } + _i++; + } + return false; + }; + Location.prototype.firstZoneUsed = function() { return this.$val.firstZoneUsed(); }; + Location.ptr.prototype.lookupName = function(name, unix) { + var _i, _i$1, _r, _r$1, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, i, i$1, l, nam, name, offset, offset$1, ok, unix, x, x$1, x$2, zone$1, zone$2, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _i$1 = $f._i$1; _r = $f._r; _r$1 = $f._r$1; _ref = $f._ref; _ref$1 = $f._ref$1; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tuple = $f._tuple; i = $f.i; i$1 = $f.i$1; l = $f.l; nam = $f.nam; name = $f.name; offset = $f.offset; offset$1 = $f.offset$1; ok = $f.ok; unix = $f.unix; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; zone$1 = $f.zone$1; zone$2 = $f.zone$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + offset = 0; + ok = false; + l = this; + _r = l.get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + l = _r; + _ref = l.zone; + _i = 0; + /* while (true) { */ case 2: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } + i = _i; + zone$1 = (x = l.zone, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + /* */ if (zone$1.name === name) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (zone$1.name === name) { */ case 4: + _r$1 = l.lookup((x$1 = (new $Int64(0, zone$1.offset)), new $Int64(unix.$high - x$1.$high, unix.$low - x$1.$low))); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + nam = _tuple[0]; + offset$1 = _tuple[1]; + if (nam === zone$1.name) { + _tmp = offset$1; + _tmp$1 = true; + offset = _tmp; + ok = _tmp$1; + $s = -1; return [offset, ok]; + } + /* } */ case 5: + _i++; + /* } */ $s = 2; continue; case 3: + _ref$1 = l.zone; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i$1 = _i$1; + zone$2 = (x$2 = l.zone, ((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$1])); + if (zone$2.name === name) { + _tmp$2 = zone$2.offset; + _tmp$3 = true; + offset = _tmp$2; + ok = _tmp$3; + $s = -1; return [offset, ok]; + } + _i$1++; + } + $s = -1; return [offset, ok]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Location.ptr.prototype.lookupName }; } $f._i = _i; $f._i$1 = _i$1; $f._r = _r; $f._r$1 = _r$1; $f._ref = _ref; $f._ref$1 = _ref$1; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tuple = _tuple; $f.i = i; $f.i$1 = i$1; $f.l = l; $f.nam = nam; $f.name = name; $f.offset = offset; $f.offset$1 = offset$1; $f.ok = ok; $f.unix = unix; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.zone$1 = zone$1; $f.zone$2 = zone$2; $f.$s = $s; $f.$r = $r; return $f; + }; + Location.prototype.lookupName = function(name, unix) { return this.$val.lookupName(name, unix); }; + ptrType$4.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + Time.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Format", name: "Format", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "AppendFormat", name: "AppendFormat", pkg: "", typ: $funcType([sliceType$3, $String], [sliceType$3], false)}, {prop: "After", name: "After", pkg: "", typ: $funcType([Time], [$Bool], false)}, {prop: "Before", name: "Before", pkg: "", typ: $funcType([Time], [$Bool], false)}, {prop: "Equal", name: "Equal", pkg: "", typ: $funcType([Time], [$Bool], false)}, {prop: "IsZero", name: "IsZero", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "abs", name: "abs", pkg: "time", typ: $funcType([], [$Uint64], false)}, {prop: "locabs", name: "locabs", pkg: "time", typ: $funcType([], [$String, $Int, $Uint64], false)}, {prop: "Date", name: "Date", pkg: "", typ: $funcType([], [$Int, Month, $Int], false)}, {prop: "Year", name: "Year", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Month", name: "Month", pkg: "", typ: $funcType([], [Month], false)}, {prop: "Day", name: "Day", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Weekday", name: "Weekday", pkg: "", typ: $funcType([], [Weekday], false)}, {prop: "ISOWeek", name: "ISOWeek", pkg: "", typ: $funcType([], [$Int, $Int], false)}, {prop: "Clock", name: "Clock", pkg: "", typ: $funcType([], [$Int, $Int, $Int], false)}, {prop: "Hour", name: "Hour", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Minute", name: "Minute", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Second", name: "Second", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Nanosecond", name: "Nanosecond", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "YearDay", name: "YearDay", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Add", name: "Add", pkg: "", typ: $funcType([Duration], [Time], false)}, {prop: "Sub", name: "Sub", pkg: "", typ: $funcType([Time], [Duration], false)}, {prop: "AddDate", name: "AddDate", pkg: "", typ: $funcType([$Int, $Int, $Int], [Time], false)}, {prop: "date", name: "date", pkg: "time", typ: $funcType([$Bool], [$Int, Month, $Int, $Int], false)}, {prop: "UTC", name: "UTC", pkg: "", typ: $funcType([], [Time], false)}, {prop: "Local", name: "Local", pkg: "", typ: $funcType([], [Time], false)}, {prop: "In", name: "In", pkg: "", typ: $funcType([ptrType$2], [Time], false)}, {prop: "Location", name: "Location", pkg: "", typ: $funcType([], [ptrType$2], false)}, {prop: "Zone", name: "Zone", pkg: "", typ: $funcType([], [$String, $Int], false)}, {prop: "Unix", name: "Unix", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "UnixNano", name: "UnixNano", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "MarshalBinary", name: "MarshalBinary", pkg: "", typ: $funcType([], [sliceType$3, $error], false)}, {prop: "GobEncode", name: "GobEncode", pkg: "", typ: $funcType([], [sliceType$3, $error], false)}, {prop: "MarshalJSON", name: "MarshalJSON", pkg: "", typ: $funcType([], [sliceType$3, $error], false)}, {prop: "MarshalText", name: "MarshalText", pkg: "", typ: $funcType([], [sliceType$3, $error], false)}, {prop: "Truncate", name: "Truncate", pkg: "", typ: $funcType([Duration], [Time], false)}, {prop: "Round", name: "Round", pkg: "", typ: $funcType([Duration], [Time], false)}]; + ptrType$7.methods = [{prop: "nsec", name: "nsec", pkg: "time", typ: $funcType([], [$Int32], false)}, {prop: "sec", name: "sec", pkg: "time", typ: $funcType([], [$Int64], false)}, {prop: "unixSec", name: "unixSec", pkg: "time", typ: $funcType([], [$Int64], false)}, {prop: "addSec", name: "addSec", pkg: "time", typ: $funcType([$Int64], [], false)}, {prop: "setLoc", name: "setLoc", pkg: "time", typ: $funcType([ptrType$2], [], false)}, {prop: "stripMono", name: "stripMono", pkg: "time", typ: $funcType([], [], false)}, {prop: "setMono", name: "setMono", pkg: "time", typ: $funcType([$Int64], [], false)}, {prop: "mono", name: "mono", pkg: "time", typ: $funcType([], [$Int64], false)}, {prop: "UnmarshalBinary", name: "UnmarshalBinary", pkg: "", typ: $funcType([sliceType$3], [$error], false)}, {prop: "GobDecode", name: "GobDecode", pkg: "", typ: $funcType([sliceType$3], [$error], false)}, {prop: "UnmarshalJSON", name: "UnmarshalJSON", pkg: "", typ: $funcType([sliceType$3], [$error], false)}, {prop: "UnmarshalText", name: "UnmarshalText", pkg: "", typ: $funcType([sliceType$3], [$error], false)}]; + Month.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + Weekday.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + Duration.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Nanoseconds", name: "Nanoseconds", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Seconds", name: "Seconds", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "Minutes", name: "Minutes", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "Hours", name: "Hours", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "Truncate", name: "Truncate", pkg: "", typ: $funcType([Duration], [Duration], false)}, {prop: "Round", name: "Round", pkg: "", typ: $funcType([Duration], [Duration], false)}]; + ptrType$2.methods = [{prop: "get", name: "get", pkg: "time", typ: $funcType([], [ptrType$2], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "lookup", name: "lookup", pkg: "time", typ: $funcType([$Int64], [$String, $Int, $Int64, $Int64], false)}, {prop: "lookupFirstZone", name: "lookupFirstZone", pkg: "time", typ: $funcType([], [$Int], false)}, {prop: "firstZoneUsed", name: "firstZoneUsed", pkg: "time", typ: $funcType([], [$Bool], false)}, {prop: "lookupName", name: "lookupName", pkg: "time", typ: $funcType([$String, $Int64], [$Int, $Bool], false)}]; + ParseError.init("", [{prop: "Layout", name: "Layout", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Value", name: "Value", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "LayoutElem", name: "LayoutElem", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "ValueElem", name: "ValueElem", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Message", name: "Message", embedded: false, exported: true, typ: $String, tag: ""}]); + Time.init("time", [{prop: "wall", name: "wall", embedded: false, exported: false, typ: $Uint64, tag: ""}, {prop: "ext", name: "ext", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "loc", name: "loc", embedded: false, exported: false, typ: ptrType$2, tag: ""}]); + Location.init("time", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "zone", name: "zone", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "tx", name: "tx", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "cacheStart", name: "cacheStart", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "cacheEnd", name: "cacheEnd", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "cacheZone", name: "cacheZone", embedded: false, exported: false, typ: ptrType, tag: ""}]); + zone.init("time", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "offset", name: "offset", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "isDST", name: "isDST", embedded: false, exported: false, typ: $Bool, tag: ""}]); + zoneTrans.init("time", [{prop: "when", name: "when", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "index", name: "index", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "isstd", name: "isstd", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "isutc", name: "isutc", embedded: false, exported: false, typ: $Bool, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = js.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = nosync.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = syscall.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + localLoc = new Location.ptr("", sliceType.nil, sliceType$1.nil, new $Int64(0, 0), new $Int64(0, 0), ptrType.nil); + localOnce = new nosync.Once.ptr(false, false); + zoneSources = new sliceType$2([runtime.GOROOT() + "/lib/time/zoneinfo.zip"]); + std0x = $toNativeArray($kindInt, [260, 265, 524, 526, 528, 274]); + longDayNames = new sliceType$2(["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]); + shortDayNames = new sliceType$2(["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]); + shortMonthNames = new sliceType$2(["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]); + longMonthNames = new sliceType$2(["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]); + atoiError = errors.New("time: invalid number"); + errBad = errors.New("bad value for field"); + errLeadingInt = errors.New("time: bad [0-9]*"); + months = $toNativeArray($kindString, ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]); + days = $toNativeArray($kindString, ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]); + daysBefore = $toNativeArray($kindInt32, [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365]); + utcLoc = new Location.ptr("UTC", sliceType.nil, sliceType$1.nil, new $Int64(0, 0), new $Int64(0, 0), ptrType.nil); + $pkg.UTC = utcLoc; + $pkg.Local = localLoc; + errLocation = errors.New("time: invalid location name"); + badData = errors.New("malformed time zone information"); + init(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["internal/poll"] = (function() { + var $pkg = {}, $init, errors, io, runtime, atomic, syscall, time, pollDesc, TimeoutError, fdMutex, FD, ptrType, chanType, sliceType, ptrType$1, ptrType$2, arrayType, sliceType$1, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, sliceType$2, ptrType$9, funcType, funcType$1, ptrType$10, ptrType$11, ptrType$12, sliceType$3, ptrType$13, semWaiters, tryDupCloexec, tryDupCloexec$24ptr, runtime_Semacquire, runtime_Semrelease, errClosing, consume, DupCloseOnExec, dupCloseOnExecOld, accept; + errors = $packages["errors"]; + io = $packages["io"]; + runtime = $packages["runtime"]; + atomic = $packages["sync/atomic"]; + syscall = $packages["syscall"]; + time = $packages["time"]; + pollDesc = $pkg.pollDesc = $newType(0, $kindStruct, "poll.pollDesc", true, "internal/poll", false, function(closing_) { + this.$val = this; + if (arguments.length === 0) { + this.closing = false; + return; + } + this.closing = closing_; + }); + TimeoutError = $pkg.TimeoutError = $newType(0, $kindStruct, "poll.TimeoutError", true, "internal/poll", true, function() { + this.$val = this; + if (arguments.length === 0) { + return; + } + }); + fdMutex = $pkg.fdMutex = $newType(0, $kindStruct, "poll.fdMutex", true, "internal/poll", false, function(state_, rsema_, wsema_) { + this.$val = this; + if (arguments.length === 0) { + this.state = new $Uint64(0, 0); + this.rsema = 0; + this.wsema = 0; + return; + } + this.state = state_; + this.rsema = rsema_; + this.wsema = wsema_; + }); + FD = $pkg.FD = $newType(0, $kindStruct, "poll.FD", true, "internal/poll", true, function(fdmu_, Sysfd_, pd_, iovecs_, csema_, isBlocking_, IsStream_, ZeroReadIsEOF_, isFile_) { + this.$val = this; + if (arguments.length === 0) { + this.fdmu = new fdMutex.ptr(new $Uint64(0, 0), 0, 0); + this.Sysfd = 0; + this.pd = new pollDesc.ptr(false); + this.iovecs = ptrType$3.nil; + this.csema = 0; + this.isBlocking = 0; + this.IsStream = false; + this.ZeroReadIsEOF = false; + this.isFile = false; + return; + } + this.fdmu = fdmu_; + this.Sysfd = Sysfd_; + this.pd = pd_; + this.iovecs = iovecs_; + this.csema = csema_; + this.isBlocking = isBlocking_; + this.IsStream = IsStream_; + this.ZeroReadIsEOF = ZeroReadIsEOF_; + this.isFile = isFile_; + }); + ptrType = $ptrType($Uint32); + chanType = $chanType($Bool, false, false); + sliceType = $sliceType(chanType); + ptrType$1 = $ptrType($Uint64); + ptrType$2 = $ptrType($Int32); + arrayType = $arrayType($Uint8, 4); + sliceType$1 = $sliceType(syscall.Iovec); + ptrType$3 = $ptrType(sliceType$1); + ptrType$4 = $ptrType($Uint8); + ptrType$5 = $ptrType(FD); + ptrType$6 = $ptrType(pollDesc); + ptrType$7 = $ptrType(TimeoutError); + ptrType$8 = $ptrType(fdMutex); + sliceType$2 = $sliceType($Uint8); + ptrType$9 = $ptrType(syscall.Stat_t); + funcType = $funcType([$Uintptr], [], false); + funcType$1 = $funcType([$Uintptr], [$Bool], false); + ptrType$10 = $ptrType(syscall.Linger); + ptrType$11 = $ptrType(syscall.IPMreq); + ptrType$12 = $ptrType(syscall.IPv6Mreq); + sliceType$3 = $sliceType(sliceType$2); + ptrType$13 = $ptrType(sliceType$3); + pollDesc.ptr.prototype.init = function(fd) { + var fd, pd; + pd = this; + return $ifaceNil; + }; + pollDesc.prototype.init = function(fd) { return this.$val.init(fd); }; + pollDesc.ptr.prototype.close = function() { + var pd; + pd = this; + }; + pollDesc.prototype.close = function() { return this.$val.close(); }; + pollDesc.ptr.prototype.evict = function() { + var pd; + pd = this; + pd.closing = true; + }; + pollDesc.prototype.evict = function() { return this.$val.evict(); }; + pollDesc.ptr.prototype.prepare = function(mode, isFile) { + var isFile, mode, pd; + pd = this; + if (pd.closing) { + return errClosing(isFile); + } + return $ifaceNil; + }; + pollDesc.prototype.prepare = function(mode, isFile) { return this.$val.prepare(mode, isFile); }; + pollDesc.ptr.prototype.prepareRead = function(isFile) { + var isFile, pd; + pd = this; + return pd.prepare(114, isFile); + }; + pollDesc.prototype.prepareRead = function(isFile) { return this.$val.prepareRead(isFile); }; + pollDesc.ptr.prototype.prepareWrite = function(isFile) { + var isFile, pd; + pd = this; + return pd.prepare(119, isFile); + }; + pollDesc.prototype.prepareWrite = function(isFile) { return this.$val.prepareWrite(isFile); }; + pollDesc.ptr.prototype.wait = function(mode, isFile) { + var isFile, mode, pd; + pd = this; + if (pd.closing) { + return errClosing(isFile); + } + return $pkg.ErrTimeout; + }; + pollDesc.prototype.wait = function(mode, isFile) { return this.$val.wait(mode, isFile); }; + pollDesc.ptr.prototype.waitRead = function(isFile) { + var isFile, pd; + pd = this; + return pd.wait(114, isFile); + }; + pollDesc.prototype.waitRead = function(isFile) { return this.$val.waitRead(isFile); }; + pollDesc.ptr.prototype.waitWrite = function(isFile) { + var isFile, pd; + pd = this; + return pd.wait(119, isFile); + }; + pollDesc.prototype.waitWrite = function(isFile) { return this.$val.waitWrite(isFile); }; + pollDesc.ptr.prototype.pollable = function() { + return true; + }; + pollDesc.prototype.pollable = function() { return this.$val.pollable(); }; + FD.ptr.prototype.SetDeadline = function(t) { + var t; + return $ifaceNil; + }; + FD.prototype.SetDeadline = function(t) { return this.$val.SetDeadline(t); }; + FD.ptr.prototype.SetReadDeadline = function(t) { + var t; + return $ifaceNil; + }; + FD.prototype.SetReadDeadline = function(t) { return this.$val.SetReadDeadline(t); }; + FD.ptr.prototype.SetWriteDeadline = function(t) { + var t; + return $ifaceNil; + }; + FD.prototype.SetWriteDeadline = function(t) { return this.$val.SetWriteDeadline(t); }; + runtime_Semacquire = function(s) { + var _entry, _key, _r, ch, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _key = $f._key; _r = $f._r; ch = $f.ch; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ if (s.$get() === 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (s.$get() === 0) { */ case 1: + ch = new $Chan($Bool, 0); + _key = s; (semWaiters || $throwRuntimeError("assignment to entry in nil map"))[ptrType.keyFor(_key)] = { k: _key, v: $append((_entry = semWaiters[ptrType.keyFor(s)], _entry !== undefined ? _entry.v : sliceType.nil), ch) }; + _r = $recv(ch); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r[0]; + /* } */ case 2: + s.$set(s.$get() - (1) >>> 0); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: runtime_Semacquire }; } $f._entry = _entry; $f._key = _key; $f._r = _r; $f.ch = ch; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + runtime_Semrelease = function(s) { + var _entry, _key, ch, s, w, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _key = $f._key; ch = $f.ch; s = $f.s; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + s.$set(s.$get() + (1) >>> 0); + w = (_entry = semWaiters[ptrType.keyFor(s)], _entry !== undefined ? _entry.v : sliceType.nil); + if (w.$length === 0) { + $s = -1; return; + } + ch = (0 >= w.$length ? ($throwRuntimeError("index out of range"), undefined) : w.$array[w.$offset + 0]); + w = $subslice(w, 1); + _key = s; (semWaiters || $throwRuntimeError("assignment to entry in nil map"))[ptrType.keyFor(_key)] = { k: _key, v: w }; + if (w.$length === 0) { + delete semWaiters[ptrType.keyFor(s)]; + } + $r = $send(ch, true); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: runtime_Semrelease }; } $f._entry = _entry; $f._key = _key; $f.ch = ch; $f.s = s; $f.w = w; $f.$s = $s; $f.$r = $r; return $f; + }; + errClosing = function(isFile) { + var isFile; + if (isFile) { + return $pkg.ErrFileClosing; + } + return $pkg.ErrNetClosing; + }; + TimeoutError.ptr.prototype.Error = function() { + var e; + e = this; + return "i/o timeout"; + }; + TimeoutError.prototype.Error = function() { return this.$val.Error(); }; + TimeoutError.ptr.prototype.Timeout = function() { + var e; + e = this; + return true; + }; + TimeoutError.prototype.Timeout = function() { return this.$val.Timeout(); }; + TimeoutError.ptr.prototype.Temporary = function() { + var e; + e = this; + return true; + }; + TimeoutError.prototype.Temporary = function() { return this.$val.Temporary(); }; + consume = function(v, n) { + var ln0, n, v, x, x$1, x$2, x$3; + while (true) { + if (!(v.$get().$length > 0)) { break; } + ln0 = (new $Int64(0, (x = v.$get(), (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).$length)); + if ((ln0.$high > n.$high || (ln0.$high === n.$high && ln0.$low > n.$low))) { + (x$2 = v.$get(), (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0] = $subslice((x$1 = v.$get(), (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])), $flatten64(n)))); + return; + } + n = (x$3 = ln0, new $Int64(n.$high - x$3.$high, n.$low - x$3.$low)); + v.$set($subslice((v.$get()), 1)); + } + }; + fdMutex.ptr.prototype.incref = function() { + var mu, new$1, old, x, x$1; + mu = this; + while (true) { + old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))); + if (!((x = new $Uint64(old.$high & 0, (old.$low & 1) >>> 0), (x.$high === 0 && x.$low === 0)))) { + return false; + } + new$1 = new $Uint64(old.$high + 0, old.$low + 8); + if ((x$1 = new $Uint64(new$1.$high & 0, (new$1.$low & 8388600) >>> 0), (x$1.$high === 0 && x$1.$low === 0))) { + $panic(new $String("too many concurrent operations on a single file or socket (max 1048575)")); + } + if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { + return true; + } + } + }; + fdMutex.prototype.incref = function() { return this.$val.incref(); }; + fdMutex.ptr.prototype.increfAndClose = function() { + var mu, new$1, old, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; mu = $f.mu; new$1 = $f.new$1; old = $f.old; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + mu = this; + /* while (true) { */ case 1: + old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))); + if (!((x = new $Uint64(old.$high & 0, (old.$low & 1) >>> 0), (x.$high === 0 && x.$low === 0)))) { + $s = -1; return false; + } + new$1 = (x$1 = new $Uint64(old.$high | 0, (old.$low | 1) >>> 0), new $Uint64(x$1.$high + 0, x$1.$low + 8)); + if ((x$2 = new $Uint64(new$1.$high & 0, (new$1.$low & 8388600) >>> 0), (x$2.$high === 0 && x$2.$low === 0))) { + $panic(new $String("too many concurrent operations on a single file or socket (max 1048575)")); + } + new$1 = (x$3 = new $Uint64(2147483647, 4286578688), new $Uint64(new$1.$high & ~x$3.$high, (new$1.$low & ~x$3.$low) >>> 0)); + /* */ if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { */ case 3: + /* while (true) { */ case 5: + /* if (!(!((x$4 = new $Uint64(old.$high & 2047, (old.$low & 4286578688) >>> 0), (x$4.$high === 0 && x$4.$low === 0))))) { break; } */ if(!(!((x$4 = new $Uint64(old.$high & 2047, (old.$low & 4286578688) >>> 0), (x$4.$high === 0 && x$4.$low === 0))))) { $s = 6; continue; } + old = (x$5 = new $Uint64(0, 8388608), new $Uint64(old.$high - x$5.$high, old.$low - x$5.$low)); + $r = runtime_Semrelease((mu.$ptr_rsema || (mu.$ptr_rsema = new ptrType(function() { return this.$target.rsema; }, function($v) { this.$target.rsema = $v; }, mu)))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ $s = 5; continue; case 6: + /* while (true) { */ case 8: + /* if (!(!((x$6 = new $Uint64(old.$high & 2147481600, (old.$low & 0) >>> 0), (x$6.$high === 0 && x$6.$low === 0))))) { break; } */ if(!(!((x$6 = new $Uint64(old.$high & 2147481600, (old.$low & 0) >>> 0), (x$6.$high === 0 && x$6.$low === 0))))) { $s = 9; continue; } + old = (x$7 = new $Uint64(2048, 0), new $Uint64(old.$high - x$7.$high, old.$low - x$7.$low)); + $r = runtime_Semrelease((mu.$ptr_wsema || (mu.$ptr_wsema = new ptrType(function() { return this.$target.wsema; }, function($v) { this.$target.wsema = $v; }, mu)))); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ $s = 8; continue; case 9: + $s = -1; return true; + /* } */ case 4: + /* } */ $s = 1; continue; case 2: + $s = -1; return false; + /* */ } return; } if ($f === undefined) { $f = { $blk: fdMutex.ptr.prototype.increfAndClose }; } $f.mu = mu; $f.new$1 = new$1; $f.old = old; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.$s = $s; $f.$r = $r; return $f; + }; + fdMutex.prototype.increfAndClose = function() { return this.$val.increfAndClose(); }; + fdMutex.ptr.prototype.decref = function() { + var mu, new$1, old, x, x$1; + mu = this; + while (true) { + old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))); + if ((x = new $Uint64(old.$high & 0, (old.$low & 8388600) >>> 0), (x.$high === 0 && x.$low === 0))) { + $panic(new $String("inconsistent poll.fdMutex")); + } + new$1 = new $Uint64(old.$high - 0, old.$low - 8); + if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { + return (x$1 = new $Uint64(new$1.$high & 0, (new$1.$low & 8388601) >>> 0), (x$1.$high === 0 && x$1.$low === 1)); + } + } + }; + fdMutex.prototype.decref = function() { return this.$val.decref(); }; + fdMutex.ptr.prototype.rwlock = function(read) { + var _tmp, _tmp$1, _tmp$2, mu, mutexBit, mutexMask, mutexSema, mutexWait, new$1, old, read, x, x$1, x$2, x$3, x$4, x$5, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; mu = $f.mu; mutexBit = $f.mutexBit; mutexMask = $f.mutexMask; mutexSema = $f.mutexSema; mutexWait = $f.mutexWait; new$1 = $f.new$1; old = $f.old; read = $f.read; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + mu = this; + _tmp = new $Uint64(0, 0); + _tmp$1 = new $Uint64(0, 0); + _tmp$2 = new $Uint64(0, 0); + mutexBit = _tmp; + mutexWait = _tmp$1; + mutexMask = _tmp$2; + mutexSema = ptrType.nil; + if (read) { + mutexBit = new $Uint64(0, 2); + mutexWait = new $Uint64(0, 8388608); + mutexMask = new $Uint64(2047, 4286578688); + mutexSema = (mu.$ptr_rsema || (mu.$ptr_rsema = new ptrType(function() { return this.$target.rsema; }, function($v) { this.$target.rsema = $v; }, mu))); + } else { + mutexBit = new $Uint64(0, 4); + mutexWait = new $Uint64(2048, 0); + mutexMask = new $Uint64(2147481600, 0); + mutexSema = (mu.$ptr_wsema || (mu.$ptr_wsema = new ptrType(function() { return this.$target.wsema; }, function($v) { this.$target.wsema = $v; }, mu))); + } + /* while (true) { */ case 1: + old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))); + if (!((x = new $Uint64(old.$high & 0, (old.$low & 1) >>> 0), (x.$high === 0 && x.$low === 0)))) { + $s = -1; return false; + } + new$1 = new $Uint64(0, 0); + if ((x$1 = new $Uint64(old.$high & mutexBit.$high, (old.$low & mutexBit.$low) >>> 0), (x$1.$high === 0 && x$1.$low === 0))) { + new$1 = (x$2 = new $Uint64(old.$high | mutexBit.$high, (old.$low | mutexBit.$low) >>> 0), new $Uint64(x$2.$high + 0, x$2.$low + 8)); + if ((x$3 = new $Uint64(new$1.$high & 0, (new$1.$low & 8388600) >>> 0), (x$3.$high === 0 && x$3.$low === 0))) { + $panic(new $String("too many concurrent operations on a single file or socket (max 1048575)")); + } + } else { + new$1 = new $Uint64(old.$high + mutexWait.$high, old.$low + mutexWait.$low); + if ((x$4 = new $Uint64(new$1.$high & mutexMask.$high, (new$1.$low & mutexMask.$low) >>> 0), (x$4.$high === 0 && x$4.$low === 0))) { + $panic(new $String("too many concurrent operations on a single file or socket (max 1048575)")); + } + } + /* */ if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { */ case 3: + if ((x$5 = new $Uint64(old.$high & mutexBit.$high, (old.$low & mutexBit.$low) >>> 0), (x$5.$high === 0 && x$5.$low === 0))) { + $s = -1; return true; + } + $r = runtime_Semacquire(mutexSema); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 4: + /* } */ $s = 1; continue; case 2: + $s = -1; return false; + /* */ } return; } if ($f === undefined) { $f = { $blk: fdMutex.ptr.prototype.rwlock }; } $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f.mu = mu; $f.mutexBit = mutexBit; $f.mutexMask = mutexMask; $f.mutexSema = mutexSema; $f.mutexWait = mutexWait; $f.new$1 = new$1; $f.old = old; $f.read = read; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.$s = $s; $f.$r = $r; return $f; + }; + fdMutex.prototype.rwlock = function(read) { return this.$val.rwlock(read); }; + fdMutex.ptr.prototype.rwunlock = function(read) { + var _tmp, _tmp$1, _tmp$2, mu, mutexBit, mutexMask, mutexSema, mutexWait, new$1, old, read, x, x$1, x$2, x$3, x$4, x$5, x$6, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; mu = $f.mu; mutexBit = $f.mutexBit; mutexMask = $f.mutexMask; mutexSema = $f.mutexSema; mutexWait = $f.mutexWait; new$1 = $f.new$1; old = $f.old; read = $f.read; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + mu = this; + _tmp = new $Uint64(0, 0); + _tmp$1 = new $Uint64(0, 0); + _tmp$2 = new $Uint64(0, 0); + mutexBit = _tmp; + mutexWait = _tmp$1; + mutexMask = _tmp$2; + mutexSema = ptrType.nil; + if (read) { + mutexBit = new $Uint64(0, 2); + mutexWait = new $Uint64(0, 8388608); + mutexMask = new $Uint64(2047, 4286578688); + mutexSema = (mu.$ptr_rsema || (mu.$ptr_rsema = new ptrType(function() { return this.$target.rsema; }, function($v) { this.$target.rsema = $v; }, mu))); + } else { + mutexBit = new $Uint64(0, 4); + mutexWait = new $Uint64(2048, 0); + mutexMask = new $Uint64(2147481600, 0); + mutexSema = (mu.$ptr_wsema || (mu.$ptr_wsema = new ptrType(function() { return this.$target.wsema; }, function($v) { this.$target.wsema = $v; }, mu))); + } + /* while (true) { */ case 1: + old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))); + if ((x = new $Uint64(old.$high & mutexBit.$high, (old.$low & mutexBit.$low) >>> 0), (x.$high === 0 && x.$low === 0)) || (x$1 = new $Uint64(old.$high & 0, (old.$low & 8388600) >>> 0), (x$1.$high === 0 && x$1.$low === 0))) { + $panic(new $String("inconsistent poll.fdMutex")); + } + new$1 = (x$2 = new $Uint64(old.$high & ~mutexBit.$high, (old.$low & ~mutexBit.$low) >>> 0), new $Uint64(x$2.$high - 0, x$2.$low - 8)); + if (!((x$3 = new $Uint64(old.$high & mutexMask.$high, (old.$low & mutexMask.$low) >>> 0), (x$3.$high === 0 && x$3.$low === 0)))) { + new$1 = (x$4 = mutexWait, new $Uint64(new$1.$high - x$4.$high, new$1.$low - x$4.$low)); + } + /* */ if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { */ case 3: + /* */ if (!((x$5 = new $Uint64(old.$high & mutexMask.$high, (old.$low & mutexMask.$low) >>> 0), (x$5.$high === 0 && x$5.$low === 0)))) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!((x$5 = new $Uint64(old.$high & mutexMask.$high, (old.$low & mutexMask.$low) >>> 0), (x$5.$high === 0 && x$5.$low === 0)))) { */ case 5: + $r = runtime_Semrelease(mutexSema); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + $s = -1; return (x$6 = new $Uint64(new$1.$high & 0, (new$1.$low & 8388601) >>> 0), (x$6.$high === 0 && x$6.$low === 1)); + /* } */ case 4: + /* } */ $s = 1; continue; case 2: + $s = -1; return false; + /* */ } return; } if ($f === undefined) { $f = { $blk: fdMutex.ptr.prototype.rwunlock }; } $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f.mu = mu; $f.mutexBit = mutexBit; $f.mutexMask = mutexMask; $f.mutexSema = mutexSema; $f.mutexWait = mutexWait; $f.new$1 = new$1; $f.old = old; $f.read = read; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.$s = $s; $f.$r = $r; return $f; + }; + fdMutex.prototype.rwunlock = function(read) { return this.$val.rwunlock(read); }; + FD.ptr.prototype.incref = function() { + var fd; + fd = this; + if (!fd.fdmu.incref()) { + return errClosing(fd.isFile); + } + return $ifaceNil; + }; + FD.prototype.incref = function() { return this.$val.incref(); }; + FD.ptr.prototype.decref = function() { + var _r, fd, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; fd = $f.fd; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + fd = this; + /* */ if (fd.fdmu.decref()) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (fd.fdmu.decref()) { */ case 1: + _r = fd.destroy(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* } */ case 2: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: FD.ptr.prototype.decref }; } $f._r = _r; $f.fd = fd; $f.$s = $s; $f.$r = $r; return $f; + }; + FD.prototype.decref = function() { return this.$val.decref(); }; + FD.ptr.prototype.readLock = function() { + var _r, fd, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; fd = $f.fd; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + fd = this; + _r = fd.fdmu.rwlock(true); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!_r) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!_r) { */ case 1: + $s = -1; return errClosing(fd.isFile); + /* } */ case 2: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: FD.ptr.prototype.readLock }; } $f._r = _r; $f.fd = fd; $f.$s = $s; $f.$r = $r; return $f; + }; + FD.prototype.readLock = function() { return this.$val.readLock(); }; + FD.ptr.prototype.readUnlock = function() { + var _r, _r$1, fd, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; fd = $f.fd; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + fd = this; + _r = fd.fdmu.rwunlock(true); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r) { */ case 1: + _r$1 = fd.destroy(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + /* } */ case 2: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: FD.ptr.prototype.readUnlock }; } $f._r = _r; $f._r$1 = _r$1; $f.fd = fd; $f.$s = $s; $f.$r = $r; return $f; + }; + FD.prototype.readUnlock = function() { return this.$val.readUnlock(); }; + FD.ptr.prototype.writeLock = function() { + var _r, fd, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; fd = $f.fd; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + fd = this; + _r = fd.fdmu.rwlock(false); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!_r) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!_r) { */ case 1: + $s = -1; return errClosing(fd.isFile); + /* } */ case 2: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: FD.ptr.prototype.writeLock }; } $f._r = _r; $f.fd = fd; $f.$s = $s; $f.$r = $r; return $f; + }; + FD.prototype.writeLock = function() { return this.$val.writeLock(); }; + FD.ptr.prototype.writeUnlock = function() { + var _r, _r$1, fd, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; fd = $f.fd; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + fd = this; + _r = fd.fdmu.rwunlock(false); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r) { */ case 1: + _r$1 = fd.destroy(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + /* } */ case 2: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: FD.ptr.prototype.writeUnlock }; } $f._r = _r; $f._r$1 = _r$1; $f.fd = fd; $f.$s = $s; $f.$r = $r; return $f; + }; + FD.prototype.writeUnlock = function() { return this.$val.writeUnlock(); }; + FD.ptr.prototype.eofError = function(n, err) { + var err, fd, n; + fd = this; + if ((n === 0) && $interfaceIsEqual(err, $ifaceNil) && fd.ZeroReadIsEOF) { + return io.EOF; + } + return err; + }; + FD.prototype.eofError = function(n, err) { return this.$val.eofError(n, err); }; + FD.ptr.prototype.Fchmod = function(mode) { + var err, fd, mode, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; mode = $f.mode; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + $s = -1; return syscall.Fchmod(fd.Sysfd, mode); + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Fchmod }; } $f.err = err; $f.fd = fd; $f.mode = mode; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.Fchmod = function(mode) { return this.$val.Fchmod(mode); }; + FD.ptr.prototype.Fchown = function(uid, gid) { + var err, fd, gid, uid, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; gid = $f.gid; uid = $f.uid; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + $s = -1; return syscall.Fchown(fd.Sysfd, uid, gid); + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Fchown }; } $f.err = err; $f.fd = fd; $f.gid = gid; $f.uid = uid; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.Fchown = function(uid, gid) { return this.$val.Fchown(uid, gid); }; + FD.ptr.prototype.Ftruncate = function(size) { + var err, fd, size, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; size = $f.size; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + $s = -1; return syscall.Ftruncate(fd.Sysfd, size); + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Ftruncate }; } $f.err = err; $f.fd = fd; $f.size = size; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.Ftruncate = function(size) { return this.$val.Ftruncate(size); }; + FD.ptr.prototype.Fsync = function() { + var err, fd, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + $s = -1; return syscall.Fsync(fd.Sysfd); + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Fsync }; } $f.err = err; $f.fd = fd; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.Fsync = function() { return this.$val.Fsync(); }; + FD.ptr.prototype.Init = function(net, pollable) { + var err, fd, net, pollable; + fd = this; + if (net === "file") { + fd.isFile = true; + } + if (!pollable) { + fd.isBlocking = 1; + return $ifaceNil; + } + err = fd.pd.init(fd); + if (!($interfaceIsEqual(err, $ifaceNil))) { + fd.isBlocking = 1; + } + return err; + }; + FD.prototype.Init = function(net, pollable) { return this.$val.Init(net, pollable); }; + FD.ptr.prototype.destroy = function() { + var _r, err, fd, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; err = $f.err; fd = $f.fd; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + fd = this; + fd.pd.close(); + _r = $pkg.CloseFunc(fd.Sysfd); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + fd.Sysfd = -1; + $r = runtime_Semrelease((fd.$ptr_csema || (fd.$ptr_csema = new ptrType(function() { return this.$target.csema; }, function($v) { this.$target.csema = $v; }, fd)))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return err; + /* */ } return; } if ($f === undefined) { $f = { $blk: FD.ptr.prototype.destroy }; } $f._r = _r; $f.err = err; $f.fd = fd; $f.$s = $s; $f.$r = $r; return $f; + }; + FD.prototype.destroy = function() { return this.$val.destroy(); }; + FD.ptr.prototype.Close = function() { + var _r, _r$1, err, fd, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; err = $f.err; fd = $f.fd; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + fd = this; + _r = fd.fdmu.increfAndClose(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!_r) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!_r) { */ case 1: + $s = -1; return errClosing(fd.isFile); + /* } */ case 2: + fd.pd.evict(); + _r$1 = fd.decref(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + err = _r$1; + /* */ if (fd.isBlocking === 0) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (fd.isBlocking === 0) { */ case 5: + $r = runtime_Semacquire((fd.$ptr_csema || (fd.$ptr_csema = new ptrType(function() { return this.$target.csema; }, function($v) { this.$target.csema = $v; }, fd)))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + $s = -1; return err; + /* */ } return; } if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Close }; } $f._r = _r; $f._r$1 = _r$1; $f.err = err; $f.fd = fd; $f.$s = $s; $f.$r = $r; return $f; + }; + FD.prototype.Close = function() { return this.$val.Close(); }; + FD.ptr.prototype.Shutdown = function(how) { + var err, fd, how, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; how = $f.how; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + $s = -1; return syscall.Shutdown(fd.Sysfd, how); + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Shutdown }; } $f.err = err; $f.fd = fd; $f.how = how; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.Shutdown = function(how) { return this.$val.Shutdown(how); }; + FD.ptr.prototype.SetBlocking = function() { + var err, fd, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + atomic.StoreUint32((fd.$ptr_isBlocking || (fd.$ptr_isBlocking = new ptrType(function() { return this.$target.isBlocking; }, function($v) { this.$target.isBlocking = $v; }, fd))), 1); + $s = -1; return syscall.SetNonblock(fd.Sysfd, false); + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.SetBlocking }; } $f.err = err; $f.fd = fd; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.SetBlocking = function() { return this.$val.SetBlocking(); }; + FD.ptr.prototype.Read = function(p) { + var _r, _tuple, err, err$1, err$2, fd, n, p, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; fd = $f.fd; n = $f.n; p = $f.p; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.readLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, err]; + } + $deferred.push([$methodVal(fd, "readUnlock"), []]); + if (p.$length === 0) { + $s = -1; return [0, $ifaceNil]; + } + err$1 = fd.pd.prepareRead(fd.isFile); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return [0, err$1]; + } + if (fd.IsStream && p.$length > 1073741824) { + p = $subslice(p, 0, 1073741824); + } + while (true) { + _tuple = syscall.Read(fd.Sysfd, p); + n = _tuple[0]; + err$2 = _tuple[1]; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + n = 0; + if ($interfaceIsEqual(err$2, new syscall.Errno(35)) && fd.pd.pollable()) { + err$2 = fd.pd.waitRead(fd.isFile); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + continue; + } + } + if (true && $interfaceIsEqual(err$2, new syscall.Errno(4))) { + continue; + } + } + err$2 = fd.eofError(n, err$2); + $s = -1; return [n, err$2]; + } + $s = -1; return [0, $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Read }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.fd = fd; $f.n = n; $f.p = p; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.Read = function(p) { return this.$val.Read(p); }; + FD.ptr.prototype.Pread = function(p, off) { + var _r, _tuple, err, err$1, fd, n, off, p, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; err$1 = $f.err$1; fd = $f.fd; n = $f.n; off = $f.off; p = $f.p; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, err]; + } + if (fd.IsStream && p.$length > 1073741824) { + p = $subslice(p, 0, 1073741824); + } + _tuple = syscall.Pread(fd.Sysfd, p, off); + n = _tuple[0]; + err$1 = _tuple[1]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + n = 0; + } + _r = fd.decref(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + err$1 = fd.eofError(n, err$1); + $s = -1; return [n, err$1]; + /* */ } return; } if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Pread }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.err$1 = err$1; $f.fd = fd; $f.n = n; $f.off = off; $f.p = p; $f.$s = $s; $f.$r = $r; return $f; + }; + FD.prototype.Pread = function(p, off) { return this.$val.Pread(p, off); }; + FD.ptr.prototype.ReadFrom = function(p) { + var _r, _tuple, err, err$1, err$2, fd, n, p, sa, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; fd = $f.fd; n = $f.n; p = $f.p; sa = $f.sa; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.readLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, $ifaceNil, err]; + } + $deferred.push([$methodVal(fd, "readUnlock"), []]); + err$1 = fd.pd.prepareRead(fd.isFile); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return [0, $ifaceNil, err$1]; + } + while (true) { + _tuple = syscall.Recvfrom(fd.Sysfd, p, 0); + n = _tuple[0]; + sa = _tuple[1]; + err$2 = _tuple[2]; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + n = 0; + if ($interfaceIsEqual(err$2, new syscall.Errno(35)) && fd.pd.pollable()) { + err$2 = fd.pd.waitRead(fd.isFile); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + continue; + } + } + } + err$2 = fd.eofError(n, err$2); + $s = -1; return [n, sa, err$2]; + } + $s = -1; return [0, $ifaceNil, $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.ReadFrom }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.fd = fd; $f.n = n; $f.p = p; $f.sa = sa; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.ReadFrom = function(p) { return this.$val.ReadFrom(p); }; + FD.ptr.prototype.ReadMsg = function(p, oob) { + var _r, _tuple, err, err$1, err$2, fd, flags, n, oob, oobn, p, sa, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; fd = $f.fd; flags = $f.flags; n = $f.n; oob = $f.oob; oobn = $f.oobn; p = $f.p; sa = $f.sa; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.readLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, 0, 0, $ifaceNil, err]; + } + $deferred.push([$methodVal(fd, "readUnlock"), []]); + err$1 = fd.pd.prepareRead(fd.isFile); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return [0, 0, 0, $ifaceNil, err$1]; + } + while (true) { + _tuple = syscall.Recvmsg(fd.Sysfd, p, oob, 0); + n = _tuple[0]; + oobn = _tuple[1]; + flags = _tuple[2]; + sa = _tuple[3]; + err$2 = _tuple[4]; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + if ($interfaceIsEqual(err$2, new syscall.Errno(35)) && fd.pd.pollable()) { + err$2 = fd.pd.waitRead(fd.isFile); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + continue; + } + } + } + err$2 = fd.eofError(n, err$2); + $s = -1; return [n, oobn, flags, sa, err$2]; + } + $s = -1; return [0, 0, 0, $ifaceNil, $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, 0, 0, $ifaceNil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.ReadMsg }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.fd = fd; $f.flags = flags; $f.n = n; $f.oob = oob; $f.oobn = oobn; $f.p = p; $f.sa = sa; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.ReadMsg = function(p, oob) { return this.$val.ReadMsg(p, oob); }; + FD.ptr.prototype.Write = function(p) { + var _r, _tuple, err, err$1, err$2, fd, max, n, nn, p, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; fd = $f.fd; max = $f.max; n = $f.n; nn = $f.nn; p = $f.p; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.writeLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, err]; + } + $deferred.push([$methodVal(fd, "writeUnlock"), []]); + err$1 = fd.pd.prepareWrite(fd.isFile); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return [0, err$1]; + } + nn = 0; + while (true) { + max = p.$length; + if (fd.IsStream && (max - nn >> 0) > 1073741824) { + max = nn + 1073741824 >> 0; + } + _tuple = syscall.Write(fd.Sysfd, $subslice(p, nn, max)); + n = _tuple[0]; + err$2 = _tuple[1]; + if (n > 0) { + nn = nn + (n) >> 0; + } + if (nn === p.$length) { + $s = -1; return [nn, err$2]; + } + if ($interfaceIsEqual(err$2, new syscall.Errno(35)) && fd.pd.pollable()) { + err$2 = fd.pd.waitWrite(fd.isFile); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + continue; + } + } + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + $s = -1; return [nn, err$2]; + } + if (n === 0) { + $s = -1; return [nn, io.ErrUnexpectedEOF]; + } + } + $s = -1; return [0, $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Write }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.fd = fd; $f.max = max; $f.n = n; $f.nn = nn; $f.p = p; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.Write = function(p) { return this.$val.Write(p); }; + FD.ptr.prototype.Pwrite = function(p, off) { + var _tuple, err, err$1, fd, max, n, nn, off, p, x, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _tuple = $f._tuple; err = $f.err; err$1 = $f.err$1; fd = $f.fd; max = $f.max; n = $f.n; nn = $f.nn; off = $f.off; p = $f.p; x = $f.x; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, err]; + } + $deferred.push([$methodVal(fd, "decref"), []]); + nn = 0; + while (true) { + max = p.$length; + if (fd.IsStream && (max - nn >> 0) > 1073741824) { + max = nn + 1073741824 >> 0; + } + _tuple = syscall.Pwrite(fd.Sysfd, $subslice(p, nn, max), (x = (new $Int64(0, nn)), new $Int64(off.$high + x.$high, off.$low + x.$low))); + n = _tuple[0]; + err$1 = _tuple[1]; + if (n > 0) { + nn = nn + (n) >> 0; + } + if (nn === p.$length) { + $s = -1; return [nn, err$1]; + } + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return [nn, err$1]; + } + if (n === 0) { + $s = -1; return [nn, io.ErrUnexpectedEOF]; + } + } + $s = -1; return [0, $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Pwrite }; } $f._tuple = _tuple; $f.err = err; $f.err$1 = err$1; $f.fd = fd; $f.max = max; $f.n = n; $f.nn = nn; $f.off = off; $f.p = p; $f.x = x; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.Pwrite = function(p, off) { return this.$val.Pwrite(p, off); }; + FD.ptr.prototype.WriteTo = function(p, sa) { + var _r, _r$1, err, err$1, err$2, fd, p, sa, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; fd = $f.fd; p = $f.p; sa = $f.sa; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.writeLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, err]; + } + $deferred.push([$methodVal(fd, "writeUnlock"), []]); + err$1 = fd.pd.prepareWrite(fd.isFile); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return [0, err$1]; + } + /* while (true) { */ case 2: + _r$1 = syscall.Sendto(fd.Sysfd, p, 0, sa); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + err$2 = _r$1; + if ($interfaceIsEqual(err$2, new syscall.Errno(35)) && fd.pd.pollable()) { + err$2 = fd.pd.waitWrite(fd.isFile); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + /* continue; */ $s = 2; continue; + } + } + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + $s = -1; return [0, err$2]; + } + $s = -1; return [p.$length, $ifaceNil]; + /* } */ $s = 2; continue; case 3: + $s = -1; return [0, $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.WriteTo }; } $f._r = _r; $f._r$1 = _r$1; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.fd = fd; $f.p = p; $f.sa = sa; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.WriteTo = function(p, sa) { return this.$val.WriteTo(p, sa); }; + FD.ptr.prototype.WriteMsg = function(p, oob, sa) { + var _r, _r$1, _tuple, err, err$1, err$2, fd, n, oob, p, sa, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; fd = $f.fd; n = $f.n; oob = $f.oob; p = $f.p; sa = $f.sa; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.writeLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, 0, err]; + } + $deferred.push([$methodVal(fd, "writeUnlock"), []]); + err$1 = fd.pd.prepareWrite(fd.isFile); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return [0, 0, err$1]; + } + /* while (true) { */ case 2: + _r$1 = syscall.SendmsgN(fd.Sysfd, p, oob, sa, 0); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + n = _tuple[0]; + err$2 = _tuple[1]; + if ($interfaceIsEqual(err$2, new syscall.Errno(35)) && fd.pd.pollable()) { + err$2 = fd.pd.waitWrite(fd.isFile); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + /* continue; */ $s = 2; continue; + } + } + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + $s = -1; return [n, 0, err$2]; + } + $s = -1; return [n, oob.$length, err$2]; + /* } */ $s = 2; continue; case 3: + $s = -1; return [0, 0, $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, 0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.WriteMsg }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.fd = fd; $f.n = n; $f.oob = oob; $f.p = p; $f.sa = sa; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.WriteMsg = function(p, oob, sa) { return this.$val.WriteMsg(p, oob, sa); }; + FD.ptr.prototype.Accept = function() { + var _1, _r, _r$1, _tuple, err, err$1, err$2, errcall, fd, rsa, s, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; errcall = $f.errcall; fd = $f.fd; rsa = $f.rsa; s = $f.s; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.readLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [-1, $ifaceNil, "", err]; + } + $deferred.push([$methodVal(fd, "readUnlock"), []]); + err$1 = fd.pd.prepareRead(fd.isFile); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return [-1, $ifaceNil, "", err$1]; + } + /* while (true) { */ case 2: + _r$1 = accept(fd.Sysfd); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + s = _tuple[0]; + rsa = _tuple[1]; + errcall = _tuple[2]; + err$2 = _tuple[3]; + if ($interfaceIsEqual(err$2, $ifaceNil)) { + $s = -1; return [s, rsa, "", err$2]; + } + _1 = err$2; + if ($interfaceIsEqual(_1, new syscall.Errno((35)))) { + if (fd.pd.pollable()) { + err$2 = fd.pd.waitRead(fd.isFile); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + /* continue; */ $s = 2; continue; + } + } + } else if ($interfaceIsEqual(_1, new syscall.Errno((53)))) { + /* continue; */ $s = 2; continue; + } + $s = -1; return [-1, $ifaceNil, errcall, err$2]; + /* } */ $s = 2; continue; case 3: + $s = -1; return [0, $ifaceNil, "", $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil, "", $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Accept }; } $f._1 = _1; $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.errcall = errcall; $f.fd = fd; $f.rsa = rsa; $f.s = s; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.Accept = function() { return this.$val.Accept(); }; + FD.ptr.prototype.Seek = function(offset, whence) { + var err, fd, offset, whence, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; offset = $f.offset; whence = $f.whence; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [new $Int64(0, 0), err]; + } + $deferred.push([$methodVal(fd, "decref"), []]); + $s = -1; return syscall.Seek(fd.Sysfd, offset, whence); + /* */ } return; } } catch(err) { $err = err; $s = -1; return [new $Int64(0, 0), $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Seek }; } $f.err = err; $f.fd = fd; $f.offset = offset; $f.whence = whence; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.Seek = function(offset, whence) { return this.$val.Seek(offset, whence); }; + FD.ptr.prototype.ReadDirent = function(buf) { + var _tuple, buf, err, err$1, fd, n, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _tuple = $f._tuple; buf = $f.buf; err = $f.err; err$1 = $f.err$1; fd = $f.fd; n = $f.n; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, err]; + } + $deferred.push([$methodVal(fd, "decref"), []]); + while (true) { + _tuple = syscall.ReadDirent(fd.Sysfd, buf); + n = _tuple[0]; + err$1 = _tuple[1]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + n = 0; + if ($interfaceIsEqual(err$1, new syscall.Errno(35)) && fd.pd.pollable()) { + err$1 = fd.pd.waitRead(fd.isFile); + if ($interfaceIsEqual(err$1, $ifaceNil)) { + continue; + } + } + } + $s = -1; return [n, err$1]; + } + $s = -1; return [0, $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.ReadDirent }; } $f._tuple = _tuple; $f.buf = buf; $f.err = err; $f.err$1 = err$1; $f.fd = fd; $f.n = n; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.ReadDirent = function(buf) { return this.$val.ReadDirent(buf); }; + FD.ptr.prototype.Fchdir = function() { + var err, fd, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + $s = -1; return syscall.Fchdir(fd.Sysfd); + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Fchdir }; } $f.err = err; $f.fd = fd; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.Fchdir = function() { return this.$val.Fchdir(); }; + FD.ptr.prototype.Fstat = function(s) { + var err, fd, s, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; s = $f.s; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + $s = -1; return syscall.Fstat(fd.Sysfd, s); + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Fstat }; } $f.err = err; $f.fd = fd; $f.s = s; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.Fstat = function(s) { return this.$val.Fstat(s); }; + DupCloseOnExec = function(fd) { + var _1, _r, _tuple, e1, fd, r0, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _tuple = $f._tuple; e1 = $f.e1; fd = $f.fd; r0 = $f.r0; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + if (atomic.LoadInt32((tryDupCloexec$24ptr || (tryDupCloexec$24ptr = new ptrType$2(function() { return tryDupCloexec; }, function($v) { tryDupCloexec = $v; })))) === 1) { + _tuple = syscall.Syscall(92, ((fd >>> 0)), 67, 0); + r0 = _tuple[0]; + e1 = _tuple[2]; + _1 = e1; + if (_1 === (0)) { + $s = -1; return [((r0 >> 0)), "", $ifaceNil]; + } else if ((_1 === (22)) || (_1 === (78))) { + atomic.StoreInt32((tryDupCloexec$24ptr || (tryDupCloexec$24ptr = new ptrType$2(function() { return tryDupCloexec; }, function($v) { tryDupCloexec = $v; }))), 0); + } else { + $s = -1; return [-1, "fcntl", new syscall.Errno(e1)]; + } + } + _r = dupCloseOnExecOld(fd); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: DupCloseOnExec }; } $f._1 = _1; $f._r = _r; $f._tuple = _tuple; $f.e1 = e1; $f.fd = fd; $f.r0 = r0; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.DupCloseOnExec = DupCloseOnExec; + dupCloseOnExecOld = function(fd) { + var _tuple, err, fd, newfd, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _tuple = $f._tuple; err = $f.err; fd = $f.fd; newfd = $f.newfd; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + $r = syscall.ForkLock.RLock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(syscall.ForkLock, "RUnlock"), []]); + _tuple = syscall.Dup(fd); + newfd = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [-1, "dup", err]; + } + syscall.CloseOnExec(newfd); + $s = -1; return [newfd, "", $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, "", $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: dupCloseOnExecOld }; } $f._tuple = _tuple; $f.err = err; $f.fd = fd; $f.newfd = newfd; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.ptr.prototype.Dup = function() { + var _r, err, fd, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; err = $f.err; fd = $f.fd; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [-1, "", err]; + } + $deferred.push([$methodVal(fd, "decref"), []]); + _r = DupCloseOnExec(fd.Sysfd); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, "", $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Dup }; } $f._r = _r; $f.err = err; $f.fd = fd; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.Dup = function() { return this.$val.Dup(); }; + FD.ptr.prototype.WaitWrite = function() { + var fd; + fd = this; + return fd.pd.waitWrite(fd.isFile); + }; + FD.prototype.WaitWrite = function() { return this.$val.WaitWrite(); }; + FD.ptr.prototype.WriteOnce = function(p) { + var _r, err, fd, p, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; err = $f.err; fd = $f.fd; p = $f.p; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.writeLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, err]; + } + $deferred.push([$methodVal(fd, "writeUnlock"), []]); + $s = -1; return syscall.Write(fd.Sysfd, p); + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.WriteOnce }; } $f._r = _r; $f.err = err; $f.fd = fd; $f.p = p; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.WriteOnce = function(p) { return this.$val.WriteOnce(p); }; + FD.ptr.prototype.RawControl = function(f) { + var err, f, fd, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; f = $f.f; fd = $f.fd; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + $r = f(((fd.Sysfd >>> 0))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return $ifaceNil; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.RawControl }; } $f.err = err; $f.f = f; $f.fd = fd; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.RawControl = function(f) { return this.$val.RawControl(f); }; + FD.ptr.prototype.RawRead = function(f) { + var _r, _r$1, err, err$1, err$2, f, fd, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; f = $f.f; fd = $f.fd; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.readLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "readUnlock"), []]); + err$1 = fd.pd.prepareRead(fd.isFile); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return err$1; + } + /* while (true) { */ case 2: + _r$1 = f(((fd.Sysfd >>> 0))); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_r$1) { */ case 4: + $s = -1; return $ifaceNil; + /* } */ case 5: + err$2 = fd.pd.waitRead(fd.isFile); + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + $s = -1; return err$2; + } + /* } */ $s = 2; continue; case 3: + $s = -1; return $ifaceNil; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.RawRead }; } $f._r = _r; $f._r$1 = _r$1; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.f = f; $f.fd = fd; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.RawRead = function(f) { return this.$val.RawRead(f); }; + FD.ptr.prototype.RawWrite = function(f) { + var _r, _r$1, err, err$1, err$2, f, fd, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; f = $f.f; fd = $f.fd; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.writeLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "writeUnlock"), []]); + err$1 = fd.pd.prepareWrite(fd.isFile); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return err$1; + } + /* while (true) { */ case 2: + _r$1 = f(((fd.Sysfd >>> 0))); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_r$1) { */ case 4: + $s = -1; return $ifaceNil; + /* } */ case 5: + err$2 = fd.pd.waitWrite(fd.isFile); + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + $s = -1; return err$2; + } + /* } */ $s = 2; continue; case 3: + $s = -1; return $ifaceNil; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.RawWrite }; } $f._r = _r; $f._r$1 = _r$1; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.f = f; $f.fd = fd; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.RawWrite = function(f) { return this.$val.RawWrite(f); }; + FD.ptr.prototype.SetsockoptInt = function(level, name, arg) { + var arg, err, fd, level, name, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; arg = $f.arg; err = $f.err; fd = $f.fd; level = $f.level; name = $f.name; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + $s = -1; return syscall.SetsockoptInt(fd.Sysfd, level, name, arg); + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.SetsockoptInt }; } $f.arg = arg; $f.err = err; $f.fd = fd; $f.level = level; $f.name = name; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.SetsockoptInt = function(level, name, arg) { return this.$val.SetsockoptInt(level, name, arg); }; + FD.ptr.prototype.SetsockoptInet4Addr = function(level, name, arg) { + var arg, err, fd, level, name, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; arg = $f.arg; err = $f.err; fd = $f.fd; level = $f.level; name = $f.name; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + $s = -1; return syscall.SetsockoptInet4Addr(fd.Sysfd, level, name, $clone(arg, arrayType)); + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.SetsockoptInet4Addr }; } $f.arg = arg; $f.err = err; $f.fd = fd; $f.level = level; $f.name = name; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.SetsockoptInet4Addr = function(level, name, arg) { return this.$val.SetsockoptInet4Addr(level, name, arg); }; + FD.ptr.prototype.SetsockoptLinger = function(level, name, l) { + var err, fd, l, level, name, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; l = $f.l; level = $f.level; name = $f.name; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + $s = -1; return syscall.SetsockoptLinger(fd.Sysfd, level, name, l); + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.SetsockoptLinger }; } $f.err = err; $f.fd = fd; $f.l = l; $f.level = level; $f.name = name; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.SetsockoptLinger = function(level, name, l) { return this.$val.SetsockoptLinger(level, name, l); }; + FD.ptr.prototype.SetsockoptByte = function(level, name, arg) { + var arg, err, fd, level, name, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; arg = $f.arg; err = $f.err; fd = $f.fd; level = $f.level; name = $f.name; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + $s = -1; return syscall.SetsockoptByte(fd.Sysfd, level, name, arg); + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.SetsockoptByte }; } $f.arg = arg; $f.err = err; $f.fd = fd; $f.level = level; $f.name = name; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.SetsockoptByte = function(level, name, arg) { return this.$val.SetsockoptByte(level, name, arg); }; + FD.ptr.prototype.SetsockoptIPMreq = function(level, name, mreq) { + var err, fd, level, mreq, name, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; level = $f.level; mreq = $f.mreq; name = $f.name; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + $s = -1; return syscall.SetsockoptIPMreq(fd.Sysfd, level, name, mreq); + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.SetsockoptIPMreq }; } $f.err = err; $f.fd = fd; $f.level = level; $f.mreq = mreq; $f.name = name; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.SetsockoptIPMreq = function(level, name, mreq) { return this.$val.SetsockoptIPMreq(level, name, mreq); }; + FD.ptr.prototype.SetsockoptIPv6Mreq = function(level, name, mreq) { + var err, fd, level, mreq, name, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; level = $f.level; mreq = $f.mreq; name = $f.name; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + $s = -1; return syscall.SetsockoptIPv6Mreq(fd.Sysfd, level, name, mreq); + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.SetsockoptIPv6Mreq }; } $f.err = err; $f.fd = fd; $f.level = level; $f.mreq = mreq; $f.name = name; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.SetsockoptIPv6Mreq = function(level, name, mreq) { return this.$val.SetsockoptIPv6Mreq(level, name, mreq); }; + accept = function(s) { + var _r, _r$1, _tuple, err, ns, s, sa, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; err = $f.err; ns = $f.ns; s = $f.s; sa = $f.sa; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = $pkg.AcceptFunc(s); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + ns = _tuple[0]; + sa = _tuple[1]; + err = _tuple[2]; + if ($interfaceIsEqual(err, $ifaceNil)) { + syscall.CloseOnExec(ns); + } + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [-1, $ifaceNil, "accept", err]; + } + err = syscall.SetNonblock(ns, true); + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2: + _r$1 = $pkg.CloseFunc(ns); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + $s = -1; return [-1, $ifaceNil, "setnonblock", err]; + /* } */ case 3: + $s = -1; return [ns, sa, "", $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: accept }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.err = err; $f.ns = ns; $f.s = s; $f.sa = sa; $f.$s = $s; $f.$r = $r; return $f; + }; + FD.ptr.prototype.Writev = function(v) { + var _i, _r, _ref, _tuple, chunk, e0, err, err$1, err$2, fd, iovecs, maxVec, n, v, wrote, x, x$1, x$2, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; _tuple = $f._tuple; chunk = $f.chunk; e0 = $f.e0; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; fd = $f.fd; iovecs = $f.iovecs; maxVec = $f.maxVec; n = $f.n; v = $f.v; wrote = $f.wrote; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + iovecs = [iovecs]; + fd = this; + _r = fd.writeLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [new $Int64(0, 0), err]; + } + $deferred.push([$methodVal(fd, "writeUnlock"), []]); + err$1 = fd.pd.prepareWrite(fd.isFile); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return [new $Int64(0, 0), err$1]; + } + iovecs[0] = sliceType$1.nil; + if (!(fd.iovecs === ptrType$3.nil)) { + iovecs[0] = fd.iovecs.$get(); + } + maxVec = 1024; + n = new $Int64(0, 0); + err$2 = $ifaceNil; + /* while (true) { */ case 2: + /* if (!(v.$get().$length > 0)) { break; } */ if(!(v.$get().$length > 0)) { $s = 3; continue; } + iovecs[0] = $subslice(iovecs[0], 0, 0); + _ref = v.$get(); + _i = 0; + /* while (true) { */ case 4: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 5; continue; } + chunk = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (chunk.$length === 0) { + _i++; + /* continue; */ $s = 4; continue; + } + iovecs[0] = $append(iovecs[0], new syscall.Iovec.ptr($indexPtr(chunk.$array, chunk.$offset + 0, ptrType$4), new $Uint64(0, 0))); + if (fd.IsStream && chunk.$length > 1073741824) { + (x = iovecs[0].$length - 1 >> 0, ((x < 0 || x >= iovecs[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : iovecs[0].$array[iovecs[0].$offset + x])).SetLen(1073741824); + /* break; */ $s = 5; continue; + } + (x$1 = iovecs[0].$length - 1 >> 0, ((x$1 < 0 || x$1 >= iovecs[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : iovecs[0].$array[iovecs[0].$offset + x$1])).SetLen(chunk.$length); + if (iovecs[0].$length === maxVec) { + /* break; */ $s = 5; continue; + } + _i++; + /* } */ $s = 4; continue; case 5: + if (iovecs[0].$length === 0) { + /* break; */ $s = 3; continue; + } + fd.iovecs = (iovecs.$ptr || (iovecs.$ptr = new ptrType$3(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, iovecs))); + _tuple = syscall.Syscall(121, ((fd.Sysfd >>> 0)), (($sliceToArray(iovecs[0]))), ((iovecs[0].$length >>> 0))); + wrote = _tuple[0]; + e0 = _tuple[2]; + if (wrote === 4294967295) { + wrote = 0; + } + $r = $pkg.TestHookDidWritev(((wrote >> 0))); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + n = (x$2 = (new $Int64(0, wrote.constructor === Number ? wrote : 1)), new $Int64(n.$high + x$2.$high, n.$low + x$2.$low)); + consume(v, (new $Int64(0, wrote.constructor === Number ? wrote : 1))); + if (e0 === 35) { + err$2 = fd.pd.waitWrite(fd.isFile); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + /* continue; */ $s = 2; continue; + } + } else if (!((e0 === 0))) { + err$2 = new syscall.Errno((e0)); + } + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + /* break; */ $s = 3; continue; + } + if ((n.$high === 0 && n.$low === 0)) { + err$2 = io.ErrUnexpectedEOF; + /* break; */ $s = 3; continue; + } + /* } */ $s = 2; continue; case 3: + $s = -1; return [n, err$2]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [new $Int64(0, 0), $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Writev }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f._tuple = _tuple; $f.chunk = chunk; $f.e0 = e0; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.fd = fd; $f.iovecs = iovecs; $f.maxVec = maxVec; $f.n = n; $f.v = v; $f.wrote = wrote; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.Writev = function(v) { return this.$val.Writev(v); }; + ptrType$6.methods = [{prop: "init", name: "init", pkg: "internal/poll", typ: $funcType([ptrType$5], [$error], false)}, {prop: "close", name: "close", pkg: "internal/poll", typ: $funcType([], [], false)}, {prop: "evict", name: "evict", pkg: "internal/poll", typ: $funcType([], [], false)}, {prop: "prepare", name: "prepare", pkg: "internal/poll", typ: $funcType([$Int, $Bool], [$error], false)}, {prop: "prepareRead", name: "prepareRead", pkg: "internal/poll", typ: $funcType([$Bool], [$error], false)}, {prop: "prepareWrite", name: "prepareWrite", pkg: "internal/poll", typ: $funcType([$Bool], [$error], false)}, {prop: "wait", name: "wait", pkg: "internal/poll", typ: $funcType([$Int, $Bool], [$error], false)}, {prop: "waitRead", name: "waitRead", pkg: "internal/poll", typ: $funcType([$Bool], [$error], false)}, {prop: "waitWrite", name: "waitWrite", pkg: "internal/poll", typ: $funcType([$Bool], [$error], false)}, {prop: "waitCanceled", name: "waitCanceled", pkg: "internal/poll", typ: $funcType([$Int], [], false)}, {prop: "pollable", name: "pollable", pkg: "internal/poll", typ: $funcType([], [$Bool], false)}]; + ptrType$7.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Temporary", name: "Temporary", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType$8.methods = [{prop: "incref", name: "incref", pkg: "internal/poll", typ: $funcType([], [$Bool], false)}, {prop: "increfAndClose", name: "increfAndClose", pkg: "internal/poll", typ: $funcType([], [$Bool], false)}, {prop: "decref", name: "decref", pkg: "internal/poll", typ: $funcType([], [$Bool], false)}, {prop: "rwlock", name: "rwlock", pkg: "internal/poll", typ: $funcType([$Bool], [$Bool], false)}, {prop: "rwunlock", name: "rwunlock", pkg: "internal/poll", typ: $funcType([$Bool], [$Bool], false)}]; + ptrType$5.methods = [{prop: "SetDeadline", name: "SetDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetReadDeadline", name: "SetReadDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetWriteDeadline", name: "SetWriteDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "incref", name: "incref", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "decref", name: "decref", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "readLock", name: "readLock", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "readUnlock", name: "readUnlock", pkg: "internal/poll", typ: $funcType([], [], false)}, {prop: "writeLock", name: "writeLock", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "writeUnlock", name: "writeUnlock", pkg: "internal/poll", typ: $funcType([], [], false)}, {prop: "eofError", name: "eofError", pkg: "internal/poll", typ: $funcType([$Int, $error], [$error], false)}, {prop: "Fchmod", name: "Fchmod", pkg: "", typ: $funcType([$Uint32], [$error], false)}, {prop: "Fchown", name: "Fchown", pkg: "", typ: $funcType([$Int, $Int], [$error], false)}, {prop: "Ftruncate", name: "Ftruncate", pkg: "", typ: $funcType([$Int64], [$error], false)}, {prop: "Fsync", name: "Fsync", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Init", name: "Init", pkg: "", typ: $funcType([$String, $Bool], [$error], false)}, {prop: "destroy", name: "destroy", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Shutdown", name: "Shutdown", pkg: "", typ: $funcType([$Int], [$error], false)}, {prop: "SetBlocking", name: "SetBlocking", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "Pread", name: "Pread", pkg: "", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "ReadFrom", name: "ReadFrom", pkg: "", typ: $funcType([sliceType$2], [$Int, syscall.Sockaddr, $error], false)}, {prop: "ReadMsg", name: "ReadMsg", pkg: "", typ: $funcType([sliceType$2, sliceType$2], [$Int, $Int, $Int, syscall.Sockaddr, $error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "Pwrite", name: "Pwrite", pkg: "", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([sliceType$2, syscall.Sockaddr], [$Int, $error], false)}, {prop: "WriteMsg", name: "WriteMsg", pkg: "", typ: $funcType([sliceType$2, sliceType$2, syscall.Sockaddr], [$Int, $Int, $error], false)}, {prop: "Accept", name: "Accept", pkg: "", typ: $funcType([], [$Int, syscall.Sockaddr, $String, $error], false)}, {prop: "Seek", name: "Seek", pkg: "", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "ReadDirent", name: "ReadDirent", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "Fchdir", name: "Fchdir", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Fstat", name: "Fstat", pkg: "", typ: $funcType([ptrType$9], [$error], false)}, {prop: "Dup", name: "Dup", pkg: "", typ: $funcType([], [$Int, $String, $error], false)}, {prop: "WaitWrite", name: "WaitWrite", pkg: "", typ: $funcType([], [$error], false)}, {prop: "WriteOnce", name: "WriteOnce", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "RawControl", name: "RawControl", pkg: "", typ: $funcType([funcType], [$error], false)}, {prop: "RawRead", name: "RawRead", pkg: "", typ: $funcType([funcType$1], [$error], false)}, {prop: "RawWrite", name: "RawWrite", pkg: "", typ: $funcType([funcType$1], [$error], false)}, {prop: "SetsockoptInt", name: "SetsockoptInt", pkg: "", typ: $funcType([$Int, $Int, $Int], [$error], false)}, {prop: "SetsockoptInet4Addr", name: "SetsockoptInet4Addr", pkg: "", typ: $funcType([$Int, $Int, arrayType], [$error], false)}, {prop: "SetsockoptLinger", name: "SetsockoptLinger", pkg: "", typ: $funcType([$Int, $Int, ptrType$10], [$error], false)}, {prop: "SetsockoptByte", name: "SetsockoptByte", pkg: "", typ: $funcType([$Int, $Int, $Uint8], [$error], false)}, {prop: "SetsockoptIPMreq", name: "SetsockoptIPMreq", pkg: "", typ: $funcType([$Int, $Int, ptrType$11], [$error], false)}, {prop: "SetsockoptIPv6Mreq", name: "SetsockoptIPv6Mreq", pkg: "", typ: $funcType([$Int, $Int, ptrType$12], [$error], false)}, {prop: "Writev", name: "Writev", pkg: "", typ: $funcType([ptrType$13], [$Int64, $error], false)}]; + pollDesc.init("internal/poll", [{prop: "closing", name: "closing", embedded: false, exported: false, typ: $Bool, tag: ""}]); + TimeoutError.init("", []); + fdMutex.init("internal/poll", [{prop: "state", name: "state", embedded: false, exported: false, typ: $Uint64, tag: ""}, {prop: "rsema", name: "rsema", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "wsema", name: "wsema", embedded: false, exported: false, typ: $Uint32, tag: ""}]); + FD.init("internal/poll", [{prop: "fdmu", name: "fdmu", embedded: false, exported: false, typ: fdMutex, tag: ""}, {prop: "Sysfd", name: "Sysfd", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "pd", name: "pd", embedded: false, exported: false, typ: pollDesc, tag: ""}, {prop: "iovecs", name: "iovecs", embedded: false, exported: false, typ: ptrType$3, tag: ""}, {prop: "csema", name: "csema", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "isBlocking", name: "isBlocking", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "IsStream", name: "IsStream", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "ZeroReadIsEOF", name: "ZeroReadIsEOF", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "isFile", name: "isFile", embedded: false, exported: false, typ: $Bool, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = atomic.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = syscall.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = time.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + semWaiters = {}; + $pkg.ErrNetClosing = errors.New("use of closed network connection"); + $pkg.ErrFileClosing = errors.New("use of closed file"); + $pkg.ErrNoDeadline = errors.New("file type does not support deadline"); + $pkg.ErrTimeout = new TimeoutError.ptr(); + $pkg.TestHookDidWritev = (function(wrote) { + var wrote; + }); + tryDupCloexec = 1; + $pkg.CloseFunc = syscall.Close; + $pkg.AcceptFunc = syscall.Accept; + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["internal/syscall/unix"] = (function() { + var $pkg = {}, $init, syscall, IsNonblock; + syscall = $packages["syscall"]; + IsNonblock = function(fd) { + var _tmp, _tmp$1, err, fd, nonblocking; + nonblocking = false; + err = $ifaceNil; + _tmp = false; + _tmp$1 = $ifaceNil; + nonblocking = _tmp; + err = _tmp$1; + return [nonblocking, err]; + }; + $pkg.IsNonblock = IsNonblock; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = syscall.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["internal/testlog"] = (function() { + var $pkg = {}, $init, atomic, Interface, ptrType, logger, Logger, Open, Stat; + atomic = $packages["sync/atomic"]; + Interface = $pkg.Interface = $newType(8, $kindInterface, "testlog.Interface", true, "internal/testlog", true, null); + ptrType = $ptrType(Interface); + Logger = function() { + var impl; + impl = logger.Load(); + if ($interfaceIsEqual(impl, $ifaceNil)) { + return $ifaceNil; + } + return $assertType(impl, ptrType).$get(); + }; + $pkg.Logger = Logger; + Open = function(name) { + var log, name, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; log = $f.log; name = $f.name; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + log = Logger(); + /* */ if (!($interfaceIsEqual(log, $ifaceNil))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!($interfaceIsEqual(log, $ifaceNil))) { */ case 1: + $r = log.Open(name); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Open }; } $f.log = log; $f.name = name; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Open = Open; + Stat = function(name) { + var log, name, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; log = $f.log; name = $f.name; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + log = Logger(); + /* */ if (!($interfaceIsEqual(log, $ifaceNil))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!($interfaceIsEqual(log, $ifaceNil))) { */ case 1: + $r = log.Stat(name); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Stat }; } $f.log = log; $f.name = name; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Stat = Stat; + Interface.init([{prop: "Chdir", name: "Chdir", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Getenv", name: "Getenv", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Open", name: "Open", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Stat", name: "Stat", pkg: "", typ: $funcType([$String], [], false)}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = atomic.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + logger = new atomic.Value.ptr($ifaceNil); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["os"] = (function() { + var $pkg = {}, $init, errors, js, poll, unix, testlog, io, runtime, sync, atomic, syscall, time, timeout, PathError, SyscallError, LinkError, file, dirInfo, File, FileInfo, FileMode, fileStat, sliceType, ptrType, sliceType$1, ptrType$1, sliceType$2, ptrType$2, ptrType$3, ptrType$4, arrayType, sliceType$5, ptrType$12, arrayType$2, ptrType$13, funcType$1, ptrType$15, arrayType$5, ptrType$16, errFinished, lstat, useSyscallwd, runtime_args, init, runtime_beforeExit, NewSyscallError, IsNotExist, underlyingError, wrapSyscallError, isNotExist, setStickyBit, OpenFile, Chmod, sigpipe, syscallMode, chmod, fixLongPath, NewFile, newFile, epipecheck, openFileNolog, init$1, useSyscallwdDarwin, basename, init$2, Exit, Stat, Lstat, fillFileStatFromSys, timespecToTime, statNolog, lstatNolog; + errors = $packages["errors"]; + js = $packages["github.com/gopherjs/gopherjs/js"]; + poll = $packages["internal/poll"]; + unix = $packages["internal/syscall/unix"]; + testlog = $packages["internal/testlog"]; + io = $packages["io"]; + runtime = $packages["runtime"]; + sync = $packages["sync"]; + atomic = $packages["sync/atomic"]; + syscall = $packages["syscall"]; + time = $packages["time"]; + timeout = $pkg.timeout = $newType(8, $kindInterface, "os.timeout", true, "os", false, null); + PathError = $pkg.PathError = $newType(0, $kindStruct, "os.PathError", true, "os", true, function(Op_, Path_, Err_) { + this.$val = this; + if (arguments.length === 0) { + this.Op = ""; + this.Path = ""; + this.Err = $ifaceNil; + return; + } + this.Op = Op_; + this.Path = Path_; + this.Err = Err_; + }); + SyscallError = $pkg.SyscallError = $newType(0, $kindStruct, "os.SyscallError", true, "os", true, function(Syscall_, Err_) { + this.$val = this; + if (arguments.length === 0) { + this.Syscall = ""; + this.Err = $ifaceNil; + return; + } + this.Syscall = Syscall_; + this.Err = Err_; + }); + LinkError = $pkg.LinkError = $newType(0, $kindStruct, "os.LinkError", true, "os", true, function(Op_, Old_, New_, Err_) { + this.$val = this; + if (arguments.length === 0) { + this.Op = ""; + this.Old = ""; + this.New = ""; + this.Err = $ifaceNil; + return; + } + this.Op = Op_; + this.Old = Old_; + this.New = New_; + this.Err = Err_; + }); + file = $pkg.file = $newType(0, $kindStruct, "os.file", true, "os", false, function(pfd_, name_, dirinfo_, nonblock_, stdoutOrErr_) { + this.$val = this; + if (arguments.length === 0) { + this.pfd = new poll.FD.ptr(new poll.fdMutex.ptr(new $Uint64(0, 0), 0, 0), 0, new poll.pollDesc.ptr(false), ptrType$12.nil, 0, 0, false, false, false); + this.name = ""; + this.dirinfo = ptrType$1.nil; + this.nonblock = false; + this.stdoutOrErr = false; + return; + } + this.pfd = pfd_; + this.name = name_; + this.dirinfo = dirinfo_; + this.nonblock = nonblock_; + this.stdoutOrErr = stdoutOrErr_; + }); + dirInfo = $pkg.dirInfo = $newType(0, $kindStruct, "os.dirInfo", true, "os", false, function(buf_, nbuf_, bufp_) { + this.$val = this; + if (arguments.length === 0) { + this.buf = sliceType$2.nil; + this.nbuf = 0; + this.bufp = 0; + return; + } + this.buf = buf_; + this.nbuf = nbuf_; + this.bufp = bufp_; + }); + File = $pkg.File = $newType(0, $kindStruct, "os.File", true, "os", true, function(file_) { + this.$val = this; + if (arguments.length === 0) { + this.file = ptrType$13.nil; + return; + } + this.file = file_; + }); + FileInfo = $pkg.FileInfo = $newType(8, $kindInterface, "os.FileInfo", true, "os", true, null); + FileMode = $pkg.FileMode = $newType(4, $kindUint32, "os.FileMode", true, "os", true, null); + fileStat = $pkg.fileStat = $newType(0, $kindStruct, "os.fileStat", true, "os", false, function(name_, size_, mode_, modTime_, sys_) { + this.$val = this; + if (arguments.length === 0) { + this.name = ""; + this.size = new $Int64(0, 0); + this.mode = 0; + this.modTime = new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$15.nil); + this.sys = new syscall.Stat_t.ptr(0, 0, 0, new $Uint64(0, 0), 0, 0, 0, arrayType.zero(), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new $Int64(0, 0), new $Int64(0, 0), 0, 0, 0, 0, arrayType$2.zero()); + return; + } + this.name = name_; + this.size = size_; + this.mode = mode_; + this.modTime = modTime_; + this.sys = sys_; + }); + sliceType = $sliceType($String); + ptrType = $ptrType(File); + sliceType$1 = $sliceType(FileInfo); + ptrType$1 = $ptrType(dirInfo); + sliceType$2 = $sliceType($Uint8); + ptrType$2 = $ptrType(PathError); + ptrType$3 = $ptrType(LinkError); + ptrType$4 = $ptrType(SyscallError); + arrayType = $arrayType($Uint8, 4); + sliceType$5 = $sliceType(syscall.Iovec); + ptrType$12 = $ptrType(sliceType$5); + arrayType$2 = $arrayType($Int64, 2); + ptrType$13 = $ptrType(file); + funcType$1 = $funcType([ptrType$13], [$error], false); + ptrType$15 = $ptrType(time.Location); + arrayType$5 = $arrayType($Uint8, 32); + ptrType$16 = $ptrType(fileStat); + runtime_args = function() { + return $pkg.Args; + }; + init = function() { + var argv, i, process; + process = $global.process; + if (!(process === undefined)) { + argv = process.argv; + $pkg.Args = $makeSlice(sliceType, ($parseInt(argv.length) - 1 >> 0)); + i = 0; + while (true) { + if (!(i < ($parseInt(argv.length) - 1 >> 0))) { break; } + ((i < 0 || i >= $pkg.Args.$length) ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Args.$array[$pkg.Args.$offset + i] = $internalize(argv[(i + 1 >> 0)], $String)); + i = i + (1) >> 0; + } + } + if ($pkg.Args.$length === 0) { + $pkg.Args = new sliceType(["?"]); + } + }; + runtime_beforeExit = function() { + }; + File.ptr.prototype.Readdir = function(n) { + var _r, f, n, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; f = $f.f; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + if (f === ptrType.nil) { + $s = -1; return [sliceType$1.nil, $pkg.ErrInvalid]; + } + _r = f.readdir(n); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Readdir }; } $f._r = _r; $f.f = f; $f.n = n; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.Readdir = function(n) { return this.$val.Readdir(n); }; + File.ptr.prototype.Readdirnames = function(n) { + var _r, _tmp, _tmp$1, _tuple, err, f, n, names, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; err = $f.err; f = $f.f; n = $f.n; names = $f.names; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + names = sliceType.nil; + err = $ifaceNil; + f = this; + if (f === ptrType.nil) { + _tmp = sliceType.nil; + _tmp$1 = $pkg.ErrInvalid; + names = _tmp; + err = _tmp$1; + $s = -1; return [names, err]; + } + _r = f.readdirnames(n); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + names = _tuple[0]; + err = _tuple[1]; + $s = -1; return [names, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Readdirnames }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.err = err; $f.f = f; $f.n = n; $f.names = names; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.Readdirnames = function(n) { return this.$val.Readdirnames(n); }; + File.ptr.prototype.readdir = function(n) { + var _i, _r, _r$1, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, dirname, err, f, fi, filename, fip, lerr, n, names, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _ref = $f._ref; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; dirname = $f.dirname; err = $f.err; f = $f.f; fi = $f.fi; filename = $f.filename; fip = $f.fip; lerr = $f.lerr; n = $f.n; names = $f.names; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + fi = sliceType$1.nil; + err = $ifaceNil; + f = this; + dirname = f.file.name; + if (dirname === "") { + dirname = "."; + } + _r = f.Readdirnames(n); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + names = _tuple[0]; + err = _tuple[1]; + fi = $makeSlice(sliceType$1, 0, names.$length); + _ref = names; + _i = 0; + /* while (true) { */ case 2: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } + filename = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r$1 = lstat(dirname + "/" + filename); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + fip = _tuple$1[0]; + lerr = _tuple$1[1]; + if (IsNotExist(lerr)) { + _i++; + /* continue; */ $s = 2; continue; + } + if (!($interfaceIsEqual(lerr, $ifaceNil))) { + _tmp = fi; + _tmp$1 = lerr; + fi = _tmp; + err = _tmp$1; + $s = -1; return [fi, err]; + } + fi = $append(fi, fip); + _i++; + /* } */ $s = 2; continue; case 3: + if ((fi.$length === 0) && $interfaceIsEqual(err, $ifaceNil) && n > 0) { + err = io.EOF; + } + _tmp$2 = fi; + _tmp$3 = err; + fi = _tmp$2; + err = _tmp$3; + $s = -1; return [fi, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.readdir }; } $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._ref = _ref; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.dirname = dirname; $f.err = err; $f.f = f; $f.fi = fi; $f.filename = filename; $f.fip = fip; $f.lerr = lerr; $f.n = n; $f.names = names; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.readdir = function(n) { return this.$val.readdir(n); }; + File.ptr.prototype.readdirnames = function(n) { + var _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, _tuple$1, d, err, errno, f, n, names, nb, nc, size, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tmp$6 = $f._tmp$6; _tmp$7 = $f._tmp$7; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; d = $f.d; err = $f.err; errno = $f.errno; f = $f.f; n = $f.n; names = $f.names; nb = $f.nb; nc = $f.nc; size = $f.size; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + names = sliceType.nil; + err = $ifaceNil; + f = this; + if (f.file.dirinfo === ptrType$1.nil) { + f.file.dirinfo = new dirInfo.ptr(sliceType$2.nil, 0, 0); + f.file.dirinfo.buf = $makeSlice(sliceType$2, 8192); + } + d = f.file.dirinfo; + size = n; + if (size <= 0) { + size = 100; + n = -1; + } + names = $makeSlice(sliceType, 0, size); + /* while (true) { */ case 1: + /* if (!(!((n === 0)))) { break; } */ if(!(!((n === 0)))) { $s = 2; continue; } + /* */ if (d.bufp >= d.nbuf) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (d.bufp >= d.nbuf) { */ case 3: + d.bufp = 0; + errno = $ifaceNil; + _r = f.file.pfd.ReadDirent(d.buf); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + d.nbuf = _tuple[0]; + errno = _tuple[1]; + runtime.KeepAlive(f); + if (!($interfaceIsEqual(errno, $ifaceNil))) { + _tmp = names; + _tmp$1 = wrapSyscallError("readdirent", errno); + names = _tmp; + err = _tmp$1; + $s = -1; return [names, err]; + } + if (d.nbuf <= 0) { + /* break; */ $s = 2; continue; + } + /* } */ case 4: + _tmp$2 = 0; + _tmp$3 = 0; + nb = _tmp$2; + nc = _tmp$3; + _tuple$1 = syscall.ParseDirent($subslice(d.buf, d.bufp, d.nbuf), n, names); + nb = _tuple$1[0]; + nc = _tuple$1[1]; + names = _tuple$1[2]; + d.bufp = d.bufp + (nb) >> 0; + n = n - (nc) >> 0; + /* } */ $s = 1; continue; case 2: + if (n >= 0 && (names.$length === 0)) { + _tmp$4 = names; + _tmp$5 = io.EOF; + names = _tmp$4; + err = _tmp$5; + $s = -1; return [names, err]; + } + _tmp$6 = names; + _tmp$7 = $ifaceNil; + names = _tmp$6; + err = _tmp$7; + $s = -1; return [names, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.readdirnames }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tmp$6 = _tmp$6; $f._tmp$7 = _tmp$7; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.d = d; $f.err = err; $f.errno = errno; $f.f = f; $f.n = n; $f.names = names; $f.nb = nb; $f.nc = nc; $f.size = size; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.readdirnames = function(n) { return this.$val.readdirnames(n); }; + PathError.ptr.prototype.Error = function() { + var _r, e, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + e = this; + _r = e.Err.Error(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return e.Op + " " + e.Path + ": " + _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: PathError.ptr.prototype.Error }; } $f._r = _r; $f.e = e; $f.$s = $s; $f.$r = $r; return $f; + }; + PathError.prototype.Error = function() { return this.$val.Error(); }; + PathError.ptr.prototype.Timeout = function() { + var _r, _tuple, _v, e, ok, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; _v = $f._v; e = $f.e; ok = $f.ok; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + e = this; + _tuple = $assertType(e.Err, timeout, true); + t = _tuple[0]; + ok = _tuple[1]; + if (!(ok)) { _v = false; $s = 1; continue s; } + _r = t.Timeout(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r; case 1: + $s = -1; return _v; + /* */ } return; } if ($f === undefined) { $f = { $blk: PathError.ptr.prototype.Timeout }; } $f._r = _r; $f._tuple = _tuple; $f._v = _v; $f.e = e; $f.ok = ok; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + PathError.prototype.Timeout = function() { return this.$val.Timeout(); }; + SyscallError.ptr.prototype.Error = function() { + var _r, e, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + e = this; + _r = e.Err.Error(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return e.Syscall + ": " + _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: SyscallError.ptr.prototype.Error }; } $f._r = _r; $f.e = e; $f.$s = $s; $f.$r = $r; return $f; + }; + SyscallError.prototype.Error = function() { return this.$val.Error(); }; + SyscallError.ptr.prototype.Timeout = function() { + var _r, _tuple, _v, e, ok, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; _v = $f._v; e = $f.e; ok = $f.ok; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + e = this; + _tuple = $assertType(e.Err, timeout, true); + t = _tuple[0]; + ok = _tuple[1]; + if (!(ok)) { _v = false; $s = 1; continue s; } + _r = t.Timeout(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r; case 1: + $s = -1; return _v; + /* */ } return; } if ($f === undefined) { $f = { $blk: SyscallError.ptr.prototype.Timeout }; } $f._r = _r; $f._tuple = _tuple; $f._v = _v; $f.e = e; $f.ok = ok; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + SyscallError.prototype.Timeout = function() { return this.$val.Timeout(); }; + NewSyscallError = function(syscall$1, err) { + var err, syscall$1; + if ($interfaceIsEqual(err, $ifaceNil)) { + return $ifaceNil; + } + return new SyscallError.ptr(syscall$1, err); + }; + $pkg.NewSyscallError = NewSyscallError; + IsNotExist = function(err) { + var err; + return isNotExist(err); + }; + $pkg.IsNotExist = IsNotExist; + underlyingError = function(err) { + var _ref, err, err$1, err$2, err$3; + _ref = err; + if ($assertType(_ref, ptrType$2, true)[1]) { + err$1 = _ref.$val; + return err$1.Err; + } else if ($assertType(_ref, ptrType$3, true)[1]) { + err$2 = _ref.$val; + return err$2.Err; + } else if ($assertType(_ref, ptrType$4, true)[1]) { + err$3 = _ref.$val; + return err$3.Err; + } + return err; + }; + wrapSyscallError = function(name, err) { + var _tuple, err, name, ok; + _tuple = $assertType(err, syscall.Errno, true); + ok = _tuple[1]; + if (ok) { + err = NewSyscallError(name, err); + } + return err; + }; + isNotExist = function(err) { + var err; + err = underlyingError(err); + return $interfaceIsEqual(err, new syscall.Errno(2)) || $interfaceIsEqual(err, $pkg.ErrNotExist); + }; + File.ptr.prototype.Name = function() { + var f; + f = this; + return f.file.name; + }; + File.prototype.Name = function() { return this.$val.Name(); }; + LinkError.ptr.prototype.Error = function() { + var _r, e, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + e = this; + _r = e.Err.Error(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return e.Op + " " + e.Old + " " + e.New + ": " + _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: LinkError.ptr.prototype.Error }; } $f._r = _r; $f.e = e; $f.$s = $s; $f.$r = $r; return $f; + }; + LinkError.prototype.Error = function() { return this.$val.Error(); }; + File.ptr.prototype.Read = function(b) { + var _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, n, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tuple = $f._tuple; b = $f.b; e = $f.e; err = $f.err; err$1 = $f.err$1; f = $f.f; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + f = this; + err$1 = f.checkValid("read"); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + _tmp = 0; + _tmp$1 = err$1; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + } + _r = f.read(b); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + e = _tuple[1]; + _tmp$2 = n; + _tmp$3 = f.wrapErr("read", e); + n = _tmp$2; + err = _tmp$3; + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Read }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tuple = _tuple; $f.b = b; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.f = f; $f.n = n; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.Read = function(b) { return this.$val.Read(b); }; + File.ptr.prototype.ReadAt = function(b, off) { + var _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, m, n, off, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tuple = $f._tuple; b = $f.b; e = $f.e; err = $f.err; err$1 = $f.err$1; f = $f.f; m = $f.m; n = $f.n; off = $f.off; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + f = this; + err$1 = f.checkValid("read"); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + _tmp = 0; + _tmp$1 = err$1; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + } + if ((off.$high < 0 || (off.$high === 0 && off.$low < 0))) { + _tmp$2 = 0; + _tmp$3 = new PathError.ptr("readat", f.file.name, errors.New("negative offset")); + n = _tmp$2; + err = _tmp$3; + $s = -1; return [n, err]; + } + /* while (true) { */ case 1: + /* if (!(b.$length > 0)) { break; } */ if(!(b.$length > 0)) { $s = 2; continue; } + _r = f.pread(b, off); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + m = _tuple[0]; + e = _tuple[1]; + if (!($interfaceIsEqual(e, $ifaceNil))) { + err = f.wrapErr("read", e); + /* break; */ $s = 2; continue; + } + n = n + (m) >> 0; + b = $subslice(b, m); + off = (x = (new $Int64(0, m)), new $Int64(off.$high + x.$high, off.$low + x.$low)); + /* } */ $s = 1; continue; case 2: + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.ReadAt }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tuple = _tuple; $f.b = b; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.f = f; $f.m = m; $f.n = n; $f.off = off; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.ReadAt = function(b, off) { return this.$val.ReadAt(b, off); }; + File.ptr.prototype.Write = function(b) { + var _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, n, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tuple = $f._tuple; b = $f.b; e = $f.e; err = $f.err; err$1 = $f.err$1; f = $f.f; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + f = this; + err$1 = f.checkValid("write"); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + _tmp = 0; + _tmp$1 = err$1; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + } + _r = f.write(b); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + e = _tuple[1]; + if (n < 0) { + n = 0; + } + if (!((n === b.$length))) { + err = io.ErrShortWrite; + } + epipecheck(f, e); + if (!($interfaceIsEqual(e, $ifaceNil))) { + err = f.wrapErr("write", e); + } + _tmp$2 = n; + _tmp$3 = err; + n = _tmp$2; + err = _tmp$3; + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Write }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tuple = _tuple; $f.b = b; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.f = f; $f.n = n; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.Write = function(b) { return this.$val.Write(b); }; + File.ptr.prototype.WriteAt = function(b, off) { + var _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, m, n, off, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tuple = $f._tuple; b = $f.b; e = $f.e; err = $f.err; err$1 = $f.err$1; f = $f.f; m = $f.m; n = $f.n; off = $f.off; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + f = this; + err$1 = f.checkValid("write"); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + _tmp = 0; + _tmp$1 = err$1; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + } + if ((off.$high < 0 || (off.$high === 0 && off.$low < 0))) { + _tmp$2 = 0; + _tmp$3 = new PathError.ptr("writeat", f.file.name, errors.New("negative offset")); + n = _tmp$2; + err = _tmp$3; + $s = -1; return [n, err]; + } + /* while (true) { */ case 1: + /* if (!(b.$length > 0)) { break; } */ if(!(b.$length > 0)) { $s = 2; continue; } + _r = f.pwrite(b, off); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + m = _tuple[0]; + e = _tuple[1]; + if (!($interfaceIsEqual(e, $ifaceNil))) { + err = f.wrapErr("write", e); + /* break; */ $s = 2; continue; + } + n = n + (m) >> 0; + b = $subslice(b, m); + off = (x = (new $Int64(0, m)), new $Int64(off.$high + x.$high, off.$low + x.$low)); + /* } */ $s = 1; continue; case 2: + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.WriteAt }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tuple = _tuple; $f.b = b; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.f = f; $f.m = m; $f.n = n; $f.off = off; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.WriteAt = function(b, off) { return this.$val.WriteAt(b, off); }; + File.ptr.prototype.Seek = function(offset, whence) { + var _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, e, err, err$1, f, offset, r, ret, whence, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tuple = $f._tuple; e = $f.e; err = $f.err; err$1 = $f.err$1; f = $f.f; offset = $f.offset; r = $f.r; ret = $f.ret; whence = $f.whence; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + ret = new $Int64(0, 0); + err = $ifaceNil; + f = this; + err$1 = f.checkValid("seek"); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + _tmp = new $Int64(0, 0); + _tmp$1 = err$1; + ret = _tmp; + err = _tmp$1; + $s = -1; return [ret, err]; + } + _r = f.seek(offset, whence); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + r = _tuple[0]; + e = _tuple[1]; + if ($interfaceIsEqual(e, $ifaceNil) && !(f.file.dirinfo === ptrType$1.nil) && !((r.$high === 0 && r.$low === 0))) { + e = new syscall.Errno(21); + } + if (!($interfaceIsEqual(e, $ifaceNil))) { + _tmp$2 = new $Int64(0, 0); + _tmp$3 = f.wrapErr("seek", e); + ret = _tmp$2; + err = _tmp$3; + $s = -1; return [ret, err]; + } + _tmp$4 = r; + _tmp$5 = $ifaceNil; + ret = _tmp$4; + err = _tmp$5; + $s = -1; return [ret, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Seek }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tuple = _tuple; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.f = f; $f.offset = offset; $f.r = r; $f.ret = ret; $f.whence = whence; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.Seek = function(offset, whence) { return this.$val.Seek(offset, whence); }; + File.ptr.prototype.WriteString = function(s) { + var _r, _tuple, err, f, n, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; f = $f.f; n = $f.n; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + f = this; + _r = f.Write((new sliceType$2($stringToBytes(s)))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + err = _tuple[1]; + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.WriteString }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.f = f; $f.n = n; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.WriteString = function(s) { return this.$val.WriteString(s); }; + setStickyBit = function(name) { + var _arg, _arg$1, _r, _r$1, _r$2, _tuple, err, fi, name, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _tuple = $f._tuple; err = $f.err; fi = $f.fi; name = $f.name; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = Stat(name); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + fi = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _arg = name; + _r$1 = fi.Mode(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg$1 = (_r$1 | 1048576) >>> 0; + _r$2 = Chmod(_arg, _arg$1); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $s = -1; return _r$2; + /* */ } return; } if ($f === undefined) { $f = { $blk: setStickyBit }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tuple = _tuple; $f.err = err; $f.fi = fi; $f.name = name; $f.$s = $s; $f.$r = $r; return $f; + }; + OpenFile = function(name, flag, perm) { + var _r, flag, name, perm, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; flag = $f.flag; name = $f.name; perm = $f.perm; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = testlog.Open(name); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r = openFileNolog(name, flag, perm); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: OpenFile }; } $f._r = _r; $f.flag = flag; $f.name = name; $f.perm = perm; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.OpenFile = OpenFile; + File.ptr.prototype.wrapErr = function(op, err) { + var err, f, op; + f = this; + if ($interfaceIsEqual(err, $ifaceNil) || $interfaceIsEqual(err, io.EOF)) { + return err; + } + if ($interfaceIsEqual(err, poll.ErrFileClosing)) { + err = $pkg.ErrClosed; + } + return new PathError.ptr(op, f.file.name, err); + }; + File.prototype.wrapErr = function(op, err) { return this.$val.wrapErr(op, err); }; + Chmod = function(name, mode) { + var mode, name; + return chmod(name, mode); + }; + $pkg.Chmod = Chmod; + File.ptr.prototype.Chmod = function(mode) { + var _r, f, mode, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; f = $f.f; mode = $f.mode; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + _r = f.chmod(mode); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Chmod }; } $f._r = _r; $f.f = f; $f.mode = mode; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.Chmod = function(mode) { return this.$val.Chmod(mode); }; + File.ptr.prototype.SetDeadline = function(t) { + var f, t; + f = this; + return f.setDeadline($clone(t, time.Time)); + }; + File.prototype.SetDeadline = function(t) { return this.$val.SetDeadline(t); }; + File.ptr.prototype.SetReadDeadline = function(t) { + var f, t; + f = this; + return f.setReadDeadline($clone(t, time.Time)); + }; + File.prototype.SetReadDeadline = function(t) { return this.$val.SetReadDeadline(t); }; + File.ptr.prototype.SetWriteDeadline = function(t) { + var f, t; + f = this; + return f.setWriteDeadline($clone(t, time.Time)); + }; + File.prototype.SetWriteDeadline = function(t) { return this.$val.SetWriteDeadline(t); }; + sigpipe = function() { + $throwRuntimeError("native function not implemented: os.sigpipe"); + }; + syscallMode = function(i) { + var i, o; + o = 0; + o = (o | (((new FileMode(i).Perm() >>> 0)))) >>> 0; + if (!((((i & 8388608) >>> 0) === 0))) { + o = (o | (2048)) >>> 0; + } + if (!((((i & 4194304) >>> 0) === 0))) { + o = (o | (1024)) >>> 0; + } + if (!((((i & 1048576) >>> 0) === 0))) { + o = (o | (512)) >>> 0; + } + return o; + }; + chmod = function(name, mode) { + var e, mode, name; + e = syscall.Chmod(fixLongPath(name), syscallMode(mode)); + if (!($interfaceIsEqual(e, $ifaceNil))) { + return new PathError.ptr("chmod", name, e); + } + return $ifaceNil; + }; + File.ptr.prototype.chmod = function(mode) { + var _r, e, err, f, mode, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; err = $f.err; f = $f.f; mode = $f.mode; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + err = f.checkValid("chmod"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r = f.file.pfd.Fchmod(syscallMode(mode)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + e = _r; + if (!($interfaceIsEqual(e, $ifaceNil))) { + $s = -1; return f.wrapErr("chmod", e); + } + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.chmod }; } $f._r = _r; $f.e = e; $f.err = err; $f.f = f; $f.mode = mode; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.chmod = function(mode) { return this.$val.chmod(mode); }; + File.ptr.prototype.Chown = function(uid, gid) { + var _r, e, err, f, gid, uid, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; err = $f.err; f = $f.f; gid = $f.gid; uid = $f.uid; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + err = f.checkValid("chown"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r = f.file.pfd.Fchown(uid, gid); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + e = _r; + if (!($interfaceIsEqual(e, $ifaceNil))) { + $s = -1; return f.wrapErr("chown", e); + } + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Chown }; } $f._r = _r; $f.e = e; $f.err = err; $f.f = f; $f.gid = gid; $f.uid = uid; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.Chown = function(uid, gid) { return this.$val.Chown(uid, gid); }; + File.ptr.prototype.Truncate = function(size) { + var _r, e, err, f, size, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; err = $f.err; f = $f.f; size = $f.size; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + err = f.checkValid("truncate"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r = f.file.pfd.Ftruncate(size); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + e = _r; + if (!($interfaceIsEqual(e, $ifaceNil))) { + $s = -1; return f.wrapErr("truncate", e); + } + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Truncate }; } $f._r = _r; $f.e = e; $f.err = err; $f.f = f; $f.size = size; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.Truncate = function(size) { return this.$val.Truncate(size); }; + File.ptr.prototype.Sync = function() { + var _r, e, err, f, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; err = $f.err; f = $f.f; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + err = f.checkValid("sync"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r = f.file.pfd.Fsync(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + e = _r; + if (!($interfaceIsEqual(e, $ifaceNil))) { + $s = -1; return f.wrapErr("sync", e); + } + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Sync }; } $f._r = _r; $f.e = e; $f.err = err; $f.f = f; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.Sync = function() { return this.$val.Sync(); }; + File.ptr.prototype.Chdir = function() { + var _r, e, err, f, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; err = $f.err; f = $f.f; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + err = f.checkValid("chdir"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r = f.file.pfd.Fchdir(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + e = _r; + if (!($interfaceIsEqual(e, $ifaceNil))) { + $s = -1; return f.wrapErr("chdir", e); + } + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Chdir }; } $f._r = _r; $f.e = e; $f.err = err; $f.f = f; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.Chdir = function() { return this.$val.Chdir(); }; + File.ptr.prototype.setDeadline = function(t) { + var err, f, t; + f = this; + err = f.checkValid("SetDeadline"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + return err; + } + return f.file.pfd.SetDeadline($clone(t, time.Time)); + }; + File.prototype.setDeadline = function(t) { return this.$val.setDeadline(t); }; + File.ptr.prototype.setReadDeadline = function(t) { + var err, f, t; + f = this; + err = f.checkValid("SetReadDeadline"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + return err; + } + return f.file.pfd.SetReadDeadline($clone(t, time.Time)); + }; + File.prototype.setReadDeadline = function(t) { return this.$val.setReadDeadline(t); }; + File.ptr.prototype.setWriteDeadline = function(t) { + var err, f, t; + f = this; + err = f.checkValid("SetWriteDeadline"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + return err; + } + return f.file.pfd.SetWriteDeadline($clone(t, time.Time)); + }; + File.prototype.setWriteDeadline = function(t) { return this.$val.setWriteDeadline(t); }; + File.ptr.prototype.checkValid = function(op) { + var f, op; + f = this; + if (f === ptrType.nil) { + return $pkg.ErrInvalid; + } + return $ifaceNil; + }; + File.prototype.checkValid = function(op) { return this.$val.checkValid(op); }; + fixLongPath = function(path) { + var path; + return path; + }; + File.ptr.prototype.Fd = function() { + var _r, f, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; f = $f.f; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + if (f === ptrType.nil) { + $s = -1; return 4294967295; + } + /* */ if (f.file.nonblock) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (f.file.nonblock) { */ case 1: + _r = f.file.pfd.SetBlocking(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + /* } */ case 2: + $s = -1; return ((f.file.pfd.Sysfd >>> 0)); + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Fd }; } $f._r = _r; $f.f = f; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.Fd = function() { return this.$val.Fd(); }; + NewFile = function(fd, name) { + var _tuple, err, fd, kind, name, nb; + kind = 0; + _tuple = unix.IsNonblock(((fd >> 0))); + nb = _tuple[0]; + err = _tuple[1]; + if ($interfaceIsEqual(err, $ifaceNil) && nb) { + kind = 3; + } + return newFile(fd, name, kind); + }; + $pkg.NewFile = NewFile; + newFile = function(fd, name, kind) { + var err, err$1, err$2, f, fd, fdi, kind, name, pollable, st; + fdi = ((fd >> 0)); + if (fdi < 0) { + return ptrType.nil; + } + f = new File.ptr(new file.ptr(new poll.FD.ptr(new poll.fdMutex.ptr(new $Uint64(0, 0), 0, 0), fdi, new poll.pollDesc.ptr(false), ptrType$12.nil, 0, 0, true, true, false), name, ptrType$1.nil, false, (fdi === 1) || (fdi === 2))); + pollable = (kind === 1) || (kind === 2) || (kind === 3); + if (false && (kind === 1)) { + pollable = false; + } + if (true && (kind === 1)) { + st = new syscall.Stat_t.ptr(0, 0, 0, new $Uint64(0, 0), 0, 0, 0, arrayType.zero(), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new $Int64(0, 0), new $Int64(0, 0), 0, 0, 0, 0, arrayType$2.zero()); + err = syscall.Fstat(fdi, st); + if ($interfaceIsEqual(err, $ifaceNil) && (((st.Mode & 61440) >>> 0) === 4096)) { + pollable = false; + } + } + err$1 = f.file.pfd.Init("file", pollable); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + } else if (pollable) { + err$2 = syscall.SetNonblock(fdi, true); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + f.file.nonblock = true; + } + } + runtime.SetFinalizer(f.file, new funcType$1($methodExpr(ptrType$13, "close"))); + return f; + }; + epipecheck = function(file$1, e) { + var e, file$1; + if ($interfaceIsEqual(e, new syscall.Errno(32)) && file$1.file.stdoutOrErr) { + sigpipe(); + } + }; + openFileNolog = function(name, flag, perm) { + var _r, _r$1, _tuple, _tuple$1, e, err, flag, name, perm, r, setSticky, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; e = $f.e; err = $f.err; flag = $f.flag; name = $f.name; perm = $f.perm; r = $f.r; setSticky = $f.setSticky; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + setSticky = false; + /* */ if (true && !(((flag & 512) === 0)) && !((((perm & 1048576) >>> 0) === 0))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (true && !(((flag & 512) === 0)) && !((((perm & 1048576) >>> 0) === 0))) { */ case 1: + _r = Stat(name); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + err = _tuple[1]; + if (IsNotExist(err)) { + setSticky = true; + } + /* } */ case 2: + r = 0; + /* while (true) { */ case 4: + e = $ifaceNil; + _tuple$1 = syscall.Open(name, flag | 16777216, syscallMode(perm)); + r = _tuple$1[0]; + e = _tuple$1[1]; + if ($interfaceIsEqual(e, $ifaceNil)) { + /* break; */ $s = 5; continue; + } + if (true && $interfaceIsEqual(e, new syscall.Errno(4))) { + /* continue; */ $s = 4; continue; + } + $s = -1; return [ptrType.nil, new PathError.ptr("open", name, e)]; + /* } */ $s = 4; continue; case 5: + /* */ if (setSticky) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (setSticky) { */ case 6: + _r$1 = setStickyBit(name); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + /* } */ case 7: + if (false) { + syscall.CloseOnExec(r); + } + $s = -1; return [newFile(((r >>> 0)), name, 1), $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: openFileNolog }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.e = e; $f.err = err; $f.flag = flag; $f.name = name; $f.perm = perm; $f.r = r; $f.setSticky = setSticky; $f.$s = $s; $f.$r = $r; return $f; + }; + File.ptr.prototype.Close = function() { + var _r, f, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; f = $f.f; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + if (f === ptrType.nil) { + $s = -1; return $pkg.ErrInvalid; + } + _r = f.file.close(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Close }; } $f._r = _r; $f.f = f; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.Close = function() { return this.$val.Close(); }; + file.ptr.prototype.close = function() { + var _r, e, err, file$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; err = $f.err; file$1 = $f.file$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + file$1 = this; + if (file$1 === ptrType$13.nil) { + $s = -1; return new syscall.Errno(22); + } + err = $ifaceNil; + _r = file$1.pfd.Close(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + e = _r; + if (!($interfaceIsEqual(e, $ifaceNil))) { + if ($interfaceIsEqual(e, poll.ErrFileClosing)) { + e = $pkg.ErrClosed; + } + err = new PathError.ptr("close", file$1.name, e); + } + runtime.SetFinalizer(file$1, $ifaceNil); + $s = -1; return err; + /* */ } return; } if ($f === undefined) { $f = { $blk: file.ptr.prototype.close }; } $f._r = _r; $f.e = e; $f.err = err; $f.file$1 = file$1; $f.$s = $s; $f.$r = $r; return $f; + }; + file.prototype.close = function() { return this.$val.close(); }; + File.ptr.prototype.read = function(b) { + var _r, _tmp, _tmp$1, _tuple, b, err, f, n, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; b = $f.b; err = $f.err; f = $f.f; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + f = this; + _r = f.file.pfd.Read(b); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + err = _tuple[1]; + runtime.KeepAlive(f); + _tmp = n; + _tmp$1 = err; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.read }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.b = b; $f.err = err; $f.f = f; $f.n = n; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.read = function(b) { return this.$val.read(b); }; + File.ptr.prototype.pread = function(b, off) { + var _r, _tmp, _tmp$1, _tuple, b, err, f, n, off, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; b = $f.b; err = $f.err; f = $f.f; n = $f.n; off = $f.off; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + f = this; + _r = f.file.pfd.Pread(b, off); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + err = _tuple[1]; + runtime.KeepAlive(f); + _tmp = n; + _tmp$1 = err; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.pread }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.b = b; $f.err = err; $f.f = f; $f.n = n; $f.off = off; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.pread = function(b, off) { return this.$val.pread(b, off); }; + File.ptr.prototype.write = function(b) { + var _r, _tmp, _tmp$1, _tuple, b, err, f, n, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; b = $f.b; err = $f.err; f = $f.f; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + f = this; + _r = f.file.pfd.Write(b); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + err = _tuple[1]; + runtime.KeepAlive(f); + _tmp = n; + _tmp$1 = err; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.write }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.b = b; $f.err = err; $f.f = f; $f.n = n; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.write = function(b) { return this.$val.write(b); }; + File.ptr.prototype.pwrite = function(b, off) { + var _r, _tmp, _tmp$1, _tuple, b, err, f, n, off, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; b = $f.b; err = $f.err; f = $f.f; n = $f.n; off = $f.off; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + f = this; + _r = f.file.pfd.Pwrite(b, off); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + err = _tuple[1]; + runtime.KeepAlive(f); + _tmp = n; + _tmp$1 = err; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.pwrite }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.b = b; $f.err = err; $f.f = f; $f.n = n; $f.off = off; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.pwrite = function(b, off) { return this.$val.pwrite(b, off); }; + File.ptr.prototype.seek = function(offset, whence) { + var _r, _tmp, _tmp$1, _tuple, err, f, offset, ret, whence, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; err = $f.err; f = $f.f; offset = $f.offset; ret = $f.ret; whence = $f.whence; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + ret = new $Int64(0, 0); + err = $ifaceNil; + f = this; + _r = f.file.pfd.Seek(offset, whence); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + ret = _tuple[0]; + err = _tuple[1]; + runtime.KeepAlive(f); + _tmp = ret; + _tmp$1 = err; + ret = _tmp; + err = _tmp$1; + $s = -1; return [ret, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.seek }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.err = err; $f.f = f; $f.offset = offset; $f.ret = ret; $f.whence = whence; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.seek = function(offset, whence) { return this.$val.seek(offset, whence); }; + init$1 = function() { + useSyscallwd = useSyscallwdDarwin; + }; + useSyscallwdDarwin = function(err) { + var err; + return !($interfaceIsEqual(err, new syscall.Errno(45))); + }; + basename = function(name) { + var i, name; + i = name.length - 1 >> 0; + while (true) { + if (!(i > 0 && (name.charCodeAt(i) === 47))) { break; } + name = $substring(name, 0, i); + i = i - (1) >> 0; + } + i = i - (1) >> 0; + while (true) { + if (!(i >= 0)) { break; } + if (name.charCodeAt(i) === 47) { + name = $substring(name, (i + 1 >> 0)); + break; + } + i = i - (1) >> 0; + } + return name; + }; + init$2 = function() { + if (false) { + return; + } + $pkg.Args = runtime_args(); + }; + Exit = function(code) { + var code; + if (code === 0) { + runtime_beforeExit(); + } + syscall.Exit(code); + }; + $pkg.Exit = Exit; + Stat = function(name) { + var name, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; name = $f.name; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = testlog.Stat(name); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return statNolog(name); + /* */ } return; } if ($f === undefined) { $f = { $blk: Stat }; } $f.name = name; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Stat = Stat; + Lstat = function(name) { + var name, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; name = $f.name; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = testlog.Stat(name); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return lstatNolog(name); + /* */ } return; } if ($f === undefined) { $f = { $blk: Lstat }; } $f.name = name; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Lstat = Lstat; + fillFileStatFromSys = function(fs, name) { + var _1, fs, name; + fs.name = basename(name); + fs.size = fs.sys.Size; + time.Time.copy(fs.modTime, timespecToTime($clone(fs.sys.Mtimespec, syscall.Timespec))); + fs.mode = ((((fs.sys.Mode & 511) >>> 0) >>> 0)); + _1 = (fs.sys.Mode & 61440) >>> 0; + if ((_1 === (24576)) || (_1 === (57344))) { + fs.mode = (fs.mode | (67108864)) >>> 0; + } else if (_1 === (8192)) { + fs.mode = (fs.mode | (69206016)) >>> 0; + } else if (_1 === (16384)) { + fs.mode = (fs.mode | (2147483648)) >>> 0; + } else if (_1 === (4096)) { + fs.mode = (fs.mode | (33554432)) >>> 0; + } else if (_1 === (40960)) { + fs.mode = (fs.mode | (134217728)) >>> 0; + } else if (_1 === (32768)) { + } else if (_1 === (49152)) { + fs.mode = (fs.mode | (16777216)) >>> 0; + } + if (!((((fs.sys.Mode & 1024) >>> 0) === 0))) { + fs.mode = (fs.mode | (4194304)) >>> 0; + } + if (!((((fs.sys.Mode & 2048) >>> 0) === 0))) { + fs.mode = (fs.mode | (8388608)) >>> 0; + } + if (!((((fs.sys.Mode & 512) >>> 0) === 0))) { + fs.mode = (fs.mode | (1048576)) >>> 0; + } + }; + timespecToTime = function(ts) { + var ts; + return time.Unix((ts.Sec), (ts.Nsec)); + }; + File.ptr.prototype.Stat = function() { + var _r, err, f, fs, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; err = $f.err; f = $f.f; fs = $f.fs; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + fs = [fs]; + f = this; + if (f === ptrType.nil) { + $s = -1; return [$ifaceNil, $pkg.ErrInvalid]; + } + fs[0] = new fileStat.ptr("", new $Int64(0, 0), 0, new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$15.nil), new syscall.Stat_t.ptr(0, 0, 0, new $Uint64(0, 0), 0, 0, 0, arrayType.zero(), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new $Int64(0, 0), new $Int64(0, 0), 0, 0, 0, 0, arrayType$2.zero())); + _r = f.file.pfd.Fstat(fs[0].sys); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [$ifaceNil, new PathError.ptr("stat", f.file.name, err)]; + } + fillFileStatFromSys(fs[0], f.file.name); + $s = -1; return [fs[0], $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Stat }; } $f._r = _r; $f.err = err; $f.f = f; $f.fs = fs; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.Stat = function() { return this.$val.Stat(); }; + statNolog = function(name) { + var err, fs, name; + fs = new fileStat.ptr("", new $Int64(0, 0), 0, new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$15.nil), new syscall.Stat_t.ptr(0, 0, 0, new $Uint64(0, 0), 0, 0, 0, arrayType.zero(), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new $Int64(0, 0), new $Int64(0, 0), 0, 0, 0, 0, arrayType$2.zero())); + err = syscall.Stat(name, fs.sys); + if (!($interfaceIsEqual(err, $ifaceNil))) { + return [$ifaceNil, new PathError.ptr("stat", name, err)]; + } + fillFileStatFromSys(fs, name); + return [fs, $ifaceNil]; + }; + lstatNolog = function(name) { + var err, fs, name; + fs = new fileStat.ptr("", new $Int64(0, 0), 0, new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$15.nil), new syscall.Stat_t.ptr(0, 0, 0, new $Uint64(0, 0), 0, 0, 0, arrayType.zero(), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new $Int64(0, 0), new $Int64(0, 0), 0, 0, 0, 0, arrayType$2.zero())); + err = syscall.Lstat(name, fs.sys); + if (!($interfaceIsEqual(err, $ifaceNil))) { + return [$ifaceNil, new PathError.ptr("lstat", name, err)]; + } + fillFileStatFromSys(fs, name); + return [fs, $ifaceNil]; + }; + FileMode.prototype.String = function() { + var _i, _i$1, _ref, _ref$1, _rune, _rune$1, buf, c, c$1, i, i$1, m, w, y, y$1; + m = this.$val; + buf = arrayType$5.zero(); + w = 0; + _ref = "dalTLDpSugct?"; + _i = 0; + while (true) { + if (!(_i < _ref.length)) { break; } + _rune = $decodeRune(_ref, _i); + i = _i; + c = _rune[0]; + if (!((((m & (((y = (((31 - i >> 0) >>> 0)), y < 32 ? (1 << y) : 0) >>> 0))) >>> 0) === 0))) { + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = ((c << 24 >>> 24))); + w = w + (1) >> 0; + } + _i += _rune[1]; + } + if (w === 0) { + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 45); + w = w + (1) >> 0; + } + _ref$1 = "rwxrwxrwx"; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.length)) { break; } + _rune$1 = $decodeRune(_ref$1, _i$1); + i$1 = _i$1; + c$1 = _rune$1[0]; + if (!((((m & (((y$1 = (((8 - i$1 >> 0) >>> 0)), y$1 < 32 ? (1 << y$1) : 0) >>> 0))) >>> 0) === 0))) { + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = ((c$1 << 24 >>> 24))); + } else { + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 45); + } + w = w + (1) >> 0; + _i$1 += _rune$1[1]; + } + return ($bytesToString($subslice(new sliceType$2(buf), 0, w))); + }; + $ptrType(FileMode).prototype.String = function() { return new FileMode(this.$get()).String(); }; + FileMode.prototype.IsDir = function() { + var m; + m = this.$val; + return !((((m & 2147483648) >>> 0) === 0)); + }; + $ptrType(FileMode).prototype.IsDir = function() { return new FileMode(this.$get()).IsDir(); }; + FileMode.prototype.IsRegular = function() { + var m; + m = this.$val; + return ((m & 2399666176) >>> 0) === 0; + }; + $ptrType(FileMode).prototype.IsRegular = function() { return new FileMode(this.$get()).IsRegular(); }; + FileMode.prototype.Perm = function() { + var m; + m = this.$val; + return (m & 511) >>> 0; + }; + $ptrType(FileMode).prototype.Perm = function() { return new FileMode(this.$get()).Perm(); }; + fileStat.ptr.prototype.Name = function() { + var fs; + fs = this; + return fs.name; + }; + fileStat.prototype.Name = function() { return this.$val.Name(); }; + fileStat.ptr.prototype.IsDir = function() { + var fs; + fs = this; + return new FileMode(fs.Mode()).IsDir(); + }; + fileStat.prototype.IsDir = function() { return this.$val.IsDir(); }; + fileStat.ptr.prototype.Size = function() { + var fs; + fs = this; + return fs.size; + }; + fileStat.prototype.Size = function() { return this.$val.Size(); }; + fileStat.ptr.prototype.Mode = function() { + var fs; + fs = this; + return fs.mode; + }; + fileStat.prototype.Mode = function() { return this.$val.Mode(); }; + fileStat.ptr.prototype.ModTime = function() { + var fs; + fs = this; + return fs.modTime; + }; + fileStat.prototype.ModTime = function() { return this.$val.ModTime(); }; + fileStat.ptr.prototype.Sys = function() { + var fs; + fs = this; + return fs.sys; + }; + fileStat.prototype.Sys = function() { return this.$val.Sys(); }; + ptrType$2.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType$4.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType$3.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$13.methods = [{prop: "close", name: "close", pkg: "os", typ: $funcType([], [$error], false)}]; + ptrType.methods = [{prop: "Readdir", name: "Readdir", pkg: "", typ: $funcType([$Int], [sliceType$1, $error], false)}, {prop: "Readdirnames", name: "Readdirnames", pkg: "", typ: $funcType([$Int], [sliceType, $error], false)}, {prop: "readdir", name: "readdir", pkg: "os", typ: $funcType([$Int], [sliceType$1, $error], false)}, {prop: "readdirnames", name: "readdirnames", pkg: "os", typ: $funcType([$Int], [sliceType, $error], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "ReadAt", name: "ReadAt", pkg: "", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "WriteAt", name: "WriteAt", pkg: "", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "Seek", name: "Seek", pkg: "", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false)}, {prop: "wrapErr", name: "wrapErr", pkg: "os", typ: $funcType([$String, $error], [$error], false)}, {prop: "Chmod", name: "Chmod", pkg: "", typ: $funcType([FileMode], [$error], false)}, {prop: "SetDeadline", name: "SetDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetReadDeadline", name: "SetReadDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetWriteDeadline", name: "SetWriteDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "chmod", name: "chmod", pkg: "os", typ: $funcType([FileMode], [$error], false)}, {prop: "Chown", name: "Chown", pkg: "", typ: $funcType([$Int, $Int], [$error], false)}, {prop: "Truncate", name: "Truncate", pkg: "", typ: $funcType([$Int64], [$error], false)}, {prop: "Sync", name: "Sync", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Chdir", name: "Chdir", pkg: "", typ: $funcType([], [$error], false)}, {prop: "setDeadline", name: "setDeadline", pkg: "os", typ: $funcType([time.Time], [$error], false)}, {prop: "setReadDeadline", name: "setReadDeadline", pkg: "os", typ: $funcType([time.Time], [$error], false)}, {prop: "setWriteDeadline", name: "setWriteDeadline", pkg: "os", typ: $funcType([time.Time], [$error], false)}, {prop: "checkValid", name: "checkValid", pkg: "os", typ: $funcType([$String], [$error], false)}, {prop: "Fd", name: "Fd", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "read", name: "read", pkg: "os", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "pread", name: "pread", pkg: "os", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "write", name: "write", pkg: "os", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "pwrite", name: "pwrite", pkg: "os", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "seek", name: "seek", pkg: "os", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "Stat", name: "Stat", pkg: "", typ: $funcType([], [FileInfo, $error], false)}]; + FileMode.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "IsDir", name: "IsDir", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsRegular", name: "IsRegular", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Perm", name: "Perm", pkg: "", typ: $funcType([], [FileMode], false)}]; + ptrType$16.methods = [{prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "IsDir", name: "IsDir", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Mode", name: "Mode", pkg: "", typ: $funcType([], [FileMode], false)}, {prop: "ModTime", name: "ModTime", pkg: "", typ: $funcType([], [time.Time], false)}, {prop: "Sys", name: "Sys", pkg: "", typ: $funcType([], [$emptyInterface], false)}]; + timeout.init([{prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}]); + PathError.init("", [{prop: "Op", name: "Op", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Path", name: "Path", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Err", name: "Err", embedded: false, exported: true, typ: $error, tag: ""}]); + SyscallError.init("", [{prop: "Syscall", name: "Syscall", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Err", name: "Err", embedded: false, exported: true, typ: $error, tag: ""}]); + LinkError.init("", [{prop: "Op", name: "Op", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Old", name: "Old", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "New", name: "New", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Err", name: "Err", embedded: false, exported: true, typ: $error, tag: ""}]); + file.init("os", [{prop: "pfd", name: "pfd", embedded: false, exported: false, typ: poll.FD, tag: ""}, {prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "dirinfo", name: "dirinfo", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "nonblock", name: "nonblock", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "stdoutOrErr", name: "stdoutOrErr", embedded: false, exported: false, typ: $Bool, tag: ""}]); + dirInfo.init("os", [{prop: "buf", name: "buf", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "nbuf", name: "nbuf", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "bufp", name: "bufp", embedded: false, exported: false, typ: $Int, tag: ""}]); + File.init("os", [{prop: "file", name: "file", embedded: true, exported: false, typ: ptrType$13, tag: ""}]); + FileInfo.init([{prop: "IsDir", name: "IsDir", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "ModTime", name: "ModTime", pkg: "", typ: $funcType([], [time.Time], false)}, {prop: "Mode", name: "Mode", pkg: "", typ: $funcType([], [FileMode], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Sys", name: "Sys", pkg: "", typ: $funcType([], [$emptyInterface], false)}]); + fileStat.init("os", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "size", name: "size", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "mode", name: "mode", embedded: false, exported: false, typ: FileMode, tag: ""}, {prop: "modTime", name: "modTime", embedded: false, exported: false, typ: time.Time, tag: ""}, {prop: "sys", name: "sys", embedded: false, exported: false, typ: syscall.Stat_t, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = js.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = poll.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = unix.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = testlog.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sync.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = atomic.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = syscall.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = time.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.Args = sliceType.nil; + $pkg.ErrInvalid = errors.New("invalid argument"); + $pkg.ErrPermission = errors.New("permission denied"); + $pkg.ErrExist = errors.New("file already exists"); + $pkg.ErrNotExist = errors.New("file does not exist"); + $pkg.ErrClosed = errors.New("file already closed"); + errFinished = errors.New("os: process already finished"); + $pkg.Stdin = NewFile(((syscall.Stdin >>> 0)), "/dev/stdin"); + $pkg.Stdout = NewFile(((syscall.Stdout >>> 0)), "/dev/stdout"); + $pkg.Stderr = NewFile(((syscall.Stderr >>> 0)), "/dev/stderr"); + useSyscallwd = (function(param) { + var param; + return true; + }); + lstat = Lstat; + init(); + init$1(); + init$2(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["fmt"] = (function() { + var $pkg = {}, $init, errors, io, math, os, reflect, strconv, sync, utf8, fmtFlags, fmt, State, Formatter, Stringer, GoStringer, buffer, pp, scanError, ss, ssave, sliceType, ptrType, ptrType$1, arrayType, arrayType$1, sliceType$1, sliceType$2, arrayType$2, ptrType$2, ptrType$5, ptrType$25, funcType, ppFree, space, ssFree, complexError, boolError, newPrinter, Sprintf, Errorf, Sprint, Fprintln, Println, Sprintln, getField, tooLarge, parsenum, intFromArg, parseArgNumber, isSpace, notSpace, indexRune; + errors = $packages["errors"]; + io = $packages["io"]; + math = $packages["math"]; + os = $packages["os"]; + reflect = $packages["reflect"]; + strconv = $packages["strconv"]; + sync = $packages["sync"]; + utf8 = $packages["unicode/utf8"]; + fmtFlags = $pkg.fmtFlags = $newType(0, $kindStruct, "fmt.fmtFlags", true, "fmt", false, function(widPresent_, precPresent_, minus_, plus_, sharp_, space_, zero_, plusV_, sharpV_) { + this.$val = this; + if (arguments.length === 0) { + this.widPresent = false; + this.precPresent = false; + this.minus = false; + this.plus = false; + this.sharp = false; + this.space = false; + this.zero = false; + this.plusV = false; + this.sharpV = false; + return; + } + this.widPresent = widPresent_; + this.precPresent = precPresent_; + this.minus = minus_; + this.plus = plus_; + this.sharp = sharp_; + this.space = space_; + this.zero = zero_; + this.plusV = plusV_; + this.sharpV = sharpV_; + }); + fmt = $pkg.fmt = $newType(0, $kindStruct, "fmt.fmt", true, "fmt", false, function(buf_, fmtFlags_, wid_, prec_, intbuf_) { + this.$val = this; + if (arguments.length === 0) { + this.buf = ptrType$1.nil; + this.fmtFlags = new fmtFlags.ptr(false, false, false, false, false, false, false, false, false); + this.wid = 0; + this.prec = 0; + this.intbuf = arrayType.zero(); + return; + } + this.buf = buf_; + this.fmtFlags = fmtFlags_; + this.wid = wid_; + this.prec = prec_; + this.intbuf = intbuf_; + }); + State = $pkg.State = $newType(8, $kindInterface, "fmt.State", true, "fmt", true, null); + Formatter = $pkg.Formatter = $newType(8, $kindInterface, "fmt.Formatter", true, "fmt", true, null); + Stringer = $pkg.Stringer = $newType(8, $kindInterface, "fmt.Stringer", true, "fmt", true, null); + GoStringer = $pkg.GoStringer = $newType(8, $kindInterface, "fmt.GoStringer", true, "fmt", true, null); + buffer = $pkg.buffer = $newType(12, $kindSlice, "fmt.buffer", true, "fmt", false, null); + pp = $pkg.pp = $newType(0, $kindStruct, "fmt.pp", true, "fmt", false, function(buf_, arg_, value_, fmt_, reordered_, goodArgNum_, panicking_, erroring_) { + this.$val = this; + if (arguments.length === 0) { + this.buf = buffer.nil; + this.arg = $ifaceNil; + this.value = new reflect.Value.ptr(ptrType.nil, 0, 0); + this.fmt = new fmt.ptr(ptrType$1.nil, new fmtFlags.ptr(false, false, false, false, false, false, false, false, false), 0, 0, arrayType.zero()); + this.reordered = false; + this.goodArgNum = false; + this.panicking = false; + this.erroring = false; + return; + } + this.buf = buf_; + this.arg = arg_; + this.value = value_; + this.fmt = fmt_; + this.reordered = reordered_; + this.goodArgNum = goodArgNum_; + this.panicking = panicking_; + this.erroring = erroring_; + }); + scanError = $pkg.scanError = $newType(0, $kindStruct, "fmt.scanError", true, "fmt", false, function(err_) { + this.$val = this; + if (arguments.length === 0) { + this.err = $ifaceNil; + return; + } + this.err = err_; + }); + ss = $pkg.ss = $newType(0, $kindStruct, "fmt.ss", true, "fmt", false, function(rs_, buf_, count_, atEOF_, ssave_) { + this.$val = this; + if (arguments.length === 0) { + this.rs = $ifaceNil; + this.buf = buffer.nil; + this.count = 0; + this.atEOF = false; + this.ssave = new ssave.ptr(false, false, false, 0, 0, 0); + return; + } + this.rs = rs_; + this.buf = buf_; + this.count = count_; + this.atEOF = atEOF_; + this.ssave = ssave_; + }); + ssave = $pkg.ssave = $newType(0, $kindStruct, "fmt.ssave", true, "fmt", false, function(validSave_, nlIsEnd_, nlIsSpace_, argLimit_, limit_, maxWid_) { + this.$val = this; + if (arguments.length === 0) { + this.validSave = false; + this.nlIsEnd = false; + this.nlIsSpace = false; + this.argLimit = 0; + this.limit = 0; + this.maxWid = 0; + return; + } + this.validSave = validSave_; + this.nlIsEnd = nlIsEnd_; + this.nlIsSpace = nlIsSpace_; + this.argLimit = argLimit_; + this.limit = limit_; + this.maxWid = maxWid_; + }); + sliceType = $sliceType($emptyInterface); + ptrType = $ptrType(reflect.rtype); + ptrType$1 = $ptrType(buffer); + arrayType = $arrayType($Uint8, 68); + arrayType$1 = $arrayType($Uint16, 2); + sliceType$1 = $sliceType(arrayType$1); + sliceType$2 = $sliceType($Uint8); + arrayType$2 = $arrayType($Uint8, 5); + ptrType$2 = $ptrType(pp); + ptrType$5 = $ptrType(ss); + ptrType$25 = $ptrType(fmt); + funcType = $funcType([$Int32], [$Bool], false); + fmt.ptr.prototype.clearflags = function() { + var f; + f = this; + fmtFlags.copy(f.fmtFlags, new fmtFlags.ptr(false, false, false, false, false, false, false, false, false)); + }; + fmt.prototype.clearflags = function() { return this.$val.clearflags(); }; + fmt.ptr.prototype.init = function(buf) { + var buf, f; + f = this; + f.buf = buf; + f.clearflags(); + }; + fmt.prototype.init = function(buf) { return this.$val.init(buf); }; + fmt.ptr.prototype.writePadding = function(n) { + var _i, _ref, buf, f, i, n, newLen, oldLen, padByte, padding; + f = this; + if (n <= 0) { + return; + } + buf = f.buf.$get(); + oldLen = buf.$length; + newLen = oldLen + n >> 0; + if (newLen > buf.$capacity) { + buf = $makeSlice(buffer, (($imul(buf.$capacity, 2)) + n >> 0)); + $copySlice(buf, f.buf.$get()); + } + padByte = 32; + if (f.fmtFlags.zero) { + padByte = 48; + } + padding = $subslice(buf, oldLen, newLen); + _ref = padding; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + ((i < 0 || i >= padding.$length) ? ($throwRuntimeError("index out of range"), undefined) : padding.$array[padding.$offset + i] = padByte); + _i++; + } + f.buf.$set($subslice(buf, 0, newLen)); + }; + fmt.prototype.writePadding = function(n) { return this.$val.writePadding(n); }; + fmt.ptr.prototype.pad = function(b) { + var b, f, width; + f = this; + if (!f.fmtFlags.widPresent || (f.wid === 0)) { + f.buf.Write(b); + return; + } + width = f.wid - utf8.RuneCount(b) >> 0; + if (!f.fmtFlags.minus) { + f.writePadding(width); + f.buf.Write(b); + } else { + f.buf.Write(b); + f.writePadding(width); + } + }; + fmt.prototype.pad = function(b) { return this.$val.pad(b); }; + fmt.ptr.prototype.padString = function(s) { + var f, s, width; + f = this; + if (!f.fmtFlags.widPresent || (f.wid === 0)) { + f.buf.WriteString(s); + return; + } + width = f.wid - utf8.RuneCountInString(s) >> 0; + if (!f.fmtFlags.minus) { + f.writePadding(width); + f.buf.WriteString(s); + } else { + f.buf.WriteString(s); + f.writePadding(width); + } + }; + fmt.prototype.padString = function(s) { return this.$val.padString(s); }; + fmt.ptr.prototype.fmtBoolean = function(v) { + var f, v; + f = this; + if (v) { + f.padString("true"); + } else { + f.padString("false"); + } + }; + fmt.prototype.fmtBoolean = function(v) { return this.$val.fmtBoolean(v); }; + fmt.ptr.prototype.fmtUnicode = function(u) { + var buf, f, i, oldZero, prec, u, width; + f = this; + buf = $subslice(new sliceType$2(f.intbuf), 0); + prec = 4; + if (f.fmtFlags.precPresent && f.prec > 4) { + prec = f.prec; + width = (((2 + prec >> 0) + 2 >> 0) + 4 >> 0) + 1 >> 0; + if (width > buf.$length) { + buf = $makeSlice(sliceType$2, width); + } + } + i = buf.$length; + if (f.fmtFlags.sharp && (u.$high < 0 || (u.$high === 0 && u.$low <= 1114111)) && strconv.IsPrint(((u.$low >> 0)))) { + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 39); + i = i - (utf8.RuneLen(((u.$low >> 0)))) >> 0; + utf8.EncodeRune($subslice(buf, i), ((u.$low >> 0))); + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 39); + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 32); + } + while (true) { + if (!((u.$high > 0 || (u.$high === 0 && u.$low >= 16)))) { break; } + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = "0123456789ABCDEFX".charCodeAt($flatten64(new $Uint64(u.$high & 0, (u.$low & 15) >>> 0)))); + prec = prec - (1) >> 0; + u = $shiftRightUint64(u, (4)); + } + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = "0123456789ABCDEFX".charCodeAt($flatten64(u))); + prec = prec - (1) >> 0; + while (true) { + if (!(prec > 0)) { break; } + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 48); + prec = prec - (1) >> 0; + } + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 43); + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 85); + oldZero = f.fmtFlags.zero; + f.fmtFlags.zero = false; + f.pad($subslice(buf, i)); + f.fmtFlags.zero = oldZero; + }; + fmt.prototype.fmtUnicode = function(u) { return this.$val.fmtUnicode(u); }; + fmt.ptr.prototype.fmtInteger = function(u, base, isSigned, digits) { + var _1, _2, base, buf, digits, f, i, isSigned, negative, next, oldZero, oldZero$1, prec, u, width, x, x$1, x$2, x$3, x$4; + f = this; + negative = isSigned && (x = (new $Int64(u.$high, u.$low)), (x.$high < 0 || (x.$high === 0 && x.$low < 0))); + if (negative) { + u = new $Uint64(-u.$high, -u.$low); + } + buf = $subslice(new sliceType$2(f.intbuf), 0); + if (f.fmtFlags.widPresent || f.fmtFlags.precPresent) { + width = (3 + f.wid >> 0) + f.prec >> 0; + if (width > buf.$length) { + buf = $makeSlice(sliceType$2, width); + } + } + prec = 0; + if (f.fmtFlags.precPresent) { + prec = f.prec; + if ((prec === 0) && (u.$high === 0 && u.$low === 0)) { + oldZero = f.fmtFlags.zero; + f.fmtFlags.zero = false; + f.writePadding(f.wid); + f.fmtFlags.zero = oldZero; + return; + } + } else if (f.fmtFlags.zero && f.fmtFlags.widPresent) { + prec = f.wid; + if (negative || f.fmtFlags.plus || f.fmtFlags.space) { + prec = prec - (1) >> 0; + } + } + i = buf.$length; + _1 = base; + if (_1 === (10)) { + while (true) { + if (!((u.$high > 0 || (u.$high === 0 && u.$low >= 10)))) { break; } + i = i - (1) >> 0; + next = $div64(u, new $Uint64(0, 10), false); + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = (((x$1 = new $Uint64(0 + u.$high, 48 + u.$low), x$2 = $mul64(next, new $Uint64(0, 10)), new $Uint64(x$1.$high - x$2.$high, x$1.$low - x$2.$low)).$low << 24 >>> 24))); + u = next; + } + } else if (_1 === (16)) { + while (true) { + if (!((u.$high > 0 || (u.$high === 0 && u.$low >= 16)))) { break; } + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = digits.charCodeAt($flatten64(new $Uint64(u.$high & 0, (u.$low & 15) >>> 0)))); + u = $shiftRightUint64(u, (4)); + } + } else if (_1 === (8)) { + while (true) { + if (!((u.$high > 0 || (u.$high === 0 && u.$low >= 8)))) { break; } + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = (((x$3 = new $Uint64(u.$high & 0, (u.$low & 7) >>> 0), new $Uint64(0 + x$3.$high, 48 + x$3.$low)).$low << 24 >>> 24))); + u = $shiftRightUint64(u, (3)); + } + } else if (_1 === (2)) { + while (true) { + if (!((u.$high > 0 || (u.$high === 0 && u.$low >= 2)))) { break; } + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = (((x$4 = new $Uint64(u.$high & 0, (u.$low & 1) >>> 0), new $Uint64(0 + x$4.$high, 48 + x$4.$low)).$low << 24 >>> 24))); + u = $shiftRightUint64(u, (1)); + } + } else { + $panic(new $String("fmt: unknown base; can't happen")); + } + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = digits.charCodeAt($flatten64(u))); + while (true) { + if (!(i > 0 && prec > (buf.$length - i >> 0))) { break; } + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 48); + } + if (f.fmtFlags.sharp) { + _2 = base; + if (_2 === (8)) { + if (!((((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i]) === 48))) { + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 48); + } + } else if (_2 === (16)) { + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = digits.charCodeAt(16)); + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 48); + } + } + if (negative) { + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 45); + } else if (f.fmtFlags.plus) { + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 43); + } else if (f.fmtFlags.space) { + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 32); + } + oldZero$1 = f.fmtFlags.zero; + f.fmtFlags.zero = false; + f.pad($subslice(buf, i)); + f.fmtFlags.zero = oldZero$1; + }; + fmt.prototype.fmtInteger = function(u, base, isSigned, digits) { return this.$val.fmtInteger(u, base, isSigned, digits); }; + fmt.ptr.prototype.truncate = function(s) { + var _i, _ref, _rune, f, i, n, s; + f = this; + if (f.fmtFlags.precPresent) { + n = f.prec; + _ref = s; + _i = 0; + while (true) { + if (!(_i < _ref.length)) { break; } + _rune = $decodeRune(_ref, _i); + i = _i; + n = n - (1) >> 0; + if (n < 0) { + return $substring(s, 0, i); + } + _i += _rune[1]; + } + } + return s; + }; + fmt.prototype.truncate = function(s) { return this.$val.truncate(s); }; + fmt.ptr.prototype.fmtS = function(s) { + var f, s; + f = this; + s = f.truncate(s); + f.padString(s); + }; + fmt.prototype.fmtS = function(s) { return this.$val.fmtS(s); }; + fmt.ptr.prototype.fmtSbx = function(s, b, digits) { + var b, buf, c, digits, f, i, length, s, width; + f = this; + length = b.$length; + if (b === sliceType$2.nil) { + length = s.length; + } + if (f.fmtFlags.precPresent && f.prec < length) { + length = f.prec; + } + width = $imul(2, length); + if (width > 0) { + if (f.fmtFlags.space) { + if (f.fmtFlags.sharp) { + width = $imul(width, (2)); + } + width = width + ((length - 1 >> 0)) >> 0; + } else if (f.fmtFlags.sharp) { + width = width + (2) >> 0; + } + } else { + if (f.fmtFlags.widPresent) { + f.writePadding(f.wid); + } + return; + } + if (f.fmtFlags.widPresent && f.wid > width && !f.fmtFlags.minus) { + f.writePadding(f.wid - width >> 0); + } + buf = f.buf.$get(); + if (f.fmtFlags.sharp) { + buf = $append(buf, 48, digits.charCodeAt(16)); + } + c = 0; + i = 0; + while (true) { + if (!(i < length)) { break; } + if (f.fmtFlags.space && i > 0) { + buf = $append(buf, 32); + if (f.fmtFlags.sharp) { + buf = $append(buf, 48, digits.charCodeAt(16)); + } + } + if (!(b === sliceType$2.nil)) { + c = ((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i]); + } else { + c = s.charCodeAt(i); + } + buf = $append(buf, digits.charCodeAt((c >>> 4 << 24 >>> 24)), digits.charCodeAt(((c & 15) >>> 0))); + i = i + (1) >> 0; + } + f.buf.$set(buf); + if (f.fmtFlags.widPresent && f.wid > width && f.fmtFlags.minus) { + f.writePadding(f.wid - width >> 0); + } + }; + fmt.prototype.fmtSbx = function(s, b, digits) { return this.$val.fmtSbx(s, b, digits); }; + fmt.ptr.prototype.fmtSx = function(s, digits) { + var digits, f, s; + f = this; + f.fmtSbx(s, sliceType$2.nil, digits); + }; + fmt.prototype.fmtSx = function(s, digits) { return this.$val.fmtSx(s, digits); }; + fmt.ptr.prototype.fmtBx = function(b, digits) { + var b, digits, f; + f = this; + f.fmtSbx("", b, digits); + }; + fmt.prototype.fmtBx = function(b, digits) { return this.$val.fmtBx(b, digits); }; + fmt.ptr.prototype.fmtQ = function(s) { + var buf, f, s; + f = this; + s = f.truncate(s); + if (f.fmtFlags.sharp && strconv.CanBackquote(s)) { + f.padString("`" + s + "`"); + return; + } + buf = $subslice(new sliceType$2(f.intbuf), 0, 0); + if (f.fmtFlags.plus) { + f.pad(strconv.AppendQuoteToASCII(buf, s)); + } else { + f.pad(strconv.AppendQuote(buf, s)); + } + }; + fmt.prototype.fmtQ = function(s) { return this.$val.fmtQ(s); }; + fmt.ptr.prototype.fmtC = function(c) { + var buf, c, f, r, w; + f = this; + r = ((c.$low >> 0)); + if ((c.$high > 0 || (c.$high === 0 && c.$low > 1114111))) { + r = 65533; + } + buf = $subslice(new sliceType$2(f.intbuf), 0, 0); + w = utf8.EncodeRune($subslice(buf, 0, 4), r); + f.pad($subslice(buf, 0, w)); + }; + fmt.prototype.fmtC = function(c) { return this.$val.fmtC(c); }; + fmt.ptr.prototype.fmtQc = function(c) { + var buf, c, f, r; + f = this; + r = ((c.$low >> 0)); + if ((c.$high > 0 || (c.$high === 0 && c.$low > 1114111))) { + r = 65533; + } + buf = $subslice(new sliceType$2(f.intbuf), 0, 0); + if (f.fmtFlags.plus) { + f.pad(strconv.AppendQuoteRuneToASCII(buf, r)); + } else { + f.pad(strconv.AppendQuoteRune(buf, r)); + } + }; + fmt.prototype.fmtQc = function(c) { return this.$val.fmtQc(c); }; + fmt.ptr.prototype.fmtFloat = function(v, size, verb, prec) { + var _1, _2, digits, f, hasDecimalPoint, i, num, oldZero, prec, size, tail, tailBuf, v, verb; + f = this; + if (f.fmtFlags.precPresent) { + prec = f.prec; + } + num = strconv.AppendFloat($subslice(new sliceType$2(f.intbuf), 0, 1), v, ((verb << 24 >>> 24)), prec, size); + if (((1 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 1]) === 45) || ((1 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 1]) === 43)) { + num = $subslice(num, 1); + } else { + (0 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 0] = 43); + } + if (f.fmtFlags.space && ((0 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 0]) === 43) && !f.fmtFlags.plus) { + (0 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 0] = 32); + } + if (((1 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 1]) === 73) || ((1 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 1]) === 78)) { + oldZero = f.fmtFlags.zero; + f.fmtFlags.zero = false; + if (((1 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 1]) === 78) && !f.fmtFlags.space && !f.fmtFlags.plus) { + num = $subslice(num, 1); + } + f.pad(num); + f.fmtFlags.zero = oldZero; + return; + } + if (f.fmtFlags.sharp && !((verb === 98))) { + digits = 0; + _1 = verb; + if ((_1 === (118)) || (_1 === (103)) || (_1 === (71))) { + digits = prec; + if (digits === -1) { + digits = 6; + } + } + tailBuf = arrayType$2.zero(); + tail = $subslice(new sliceType$2(tailBuf), 0, 0); + hasDecimalPoint = false; + i = 1; + while (true) { + if (!(i < num.$length)) { break; } + _2 = ((i < 0 || i >= num.$length) ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + i]); + if (_2 === (46)) { + hasDecimalPoint = true; + } else if ((_2 === (101)) || (_2 === (69))) { + tail = $appendSlice(tail, $subslice(num, i)); + num = $subslice(num, 0, i); + } else { + digits = digits - (1) >> 0; + } + i = i + (1) >> 0; + } + if (!hasDecimalPoint) { + num = $append(num, 46); + } + while (true) { + if (!(digits > 0)) { break; } + num = $append(num, 48); + digits = digits - (1) >> 0; + } + num = $appendSlice(num, tail); + } + if (f.fmtFlags.plus || !(((0 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 0]) === 43))) { + if (f.fmtFlags.zero && f.fmtFlags.widPresent && f.wid > num.$length) { + f.buf.WriteByte((0 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 0])); + f.writePadding(f.wid - num.$length >> 0); + f.buf.Write($subslice(num, 1)); + return; + } + f.pad(num); + return; + } + f.pad($subslice(num, 1)); + }; + fmt.prototype.fmtFloat = function(v, size, verb, prec) { return this.$val.fmtFloat(v, size, verb, prec); }; + $ptrType(buffer).prototype.Write = function(p) { + var b, p; + b = this; + b.$set($appendSlice(b.$get(), p)); + }; + $ptrType(buffer).prototype.WriteString = function(s) { + var b, s; + b = this; + b.$set($appendSlice(b.$get(), s)); + }; + $ptrType(buffer).prototype.WriteByte = function(c) { + var b, c; + b = this; + b.$set($append(b.$get(), c)); + }; + $ptrType(buffer).prototype.WriteRune = function(r) { + var b, bp, n, r, w, x; + bp = this; + if (r < 128) { + bp.$set($append(bp.$get(), ((r << 24 >>> 24)))); + return; + } + b = bp.$get(); + n = b.$length; + while (true) { + if (!((n + 4 >> 0) > b.$capacity)) { break; } + b = $append(b, 0); + } + w = utf8.EncodeRune((x = $subslice(b, n, (n + 4 >> 0)), $subslice(new sliceType$2(x.$array), x.$offset, x.$offset + x.$length)), r); + bp.$set($subslice(b, 0, (n + w >> 0))); + }; + newPrinter = function() { + var _r, p, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; p = $f.p; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = ppFree.Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + p = $assertType(_r, ptrType$2); + p.panicking = false; + p.erroring = false; + p.fmt.init((p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))); + $s = -1; return p; + /* */ } return; } if ($f === undefined) { $f = { $blk: newPrinter }; } $f._r = _r; $f.p = p; $f.$s = $s; $f.$r = $r; return $f; + }; + pp.ptr.prototype.free = function() { + var p; + p = this; + p.buf = $subslice(p.buf, 0, 0); + p.arg = $ifaceNil; + p.value = new reflect.Value.ptr(ptrType.nil, 0, 0); + ppFree.Put(p); + }; + pp.prototype.free = function() { return this.$val.free(); }; + pp.ptr.prototype.Width = function() { + var _tmp, _tmp$1, ok, p, wid; + wid = 0; + ok = false; + p = this; + _tmp = p.fmt.wid; + _tmp$1 = p.fmt.fmtFlags.widPresent; + wid = _tmp; + ok = _tmp$1; + return [wid, ok]; + }; + pp.prototype.Width = function() { return this.$val.Width(); }; + pp.ptr.prototype.Precision = function() { + var _tmp, _tmp$1, ok, p, prec; + prec = 0; + ok = false; + p = this; + _tmp = p.fmt.prec; + _tmp$1 = p.fmt.fmtFlags.precPresent; + prec = _tmp; + ok = _tmp$1; + return [prec, ok]; + }; + pp.prototype.Precision = function() { return this.$val.Precision(); }; + pp.ptr.prototype.Flag = function(b) { + var _1, b, p; + p = this; + _1 = b; + if (_1 === (45)) { + return p.fmt.fmtFlags.minus; + } else if (_1 === (43)) { + return p.fmt.fmtFlags.plus || p.fmt.fmtFlags.plusV; + } else if (_1 === (35)) { + return p.fmt.fmtFlags.sharp || p.fmt.fmtFlags.sharpV; + } else if (_1 === (32)) { + return p.fmt.fmtFlags.space; + } else if (_1 === (48)) { + return p.fmt.fmtFlags.zero; + } + return false; + }; + pp.prototype.Flag = function(b) { return this.$val.Flag(b); }; + pp.ptr.prototype.Write = function(b) { + var _tmp, _tmp$1, b, err, p, ret; + ret = 0; + err = $ifaceNil; + p = this; + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).Write(b); + _tmp = b.$length; + _tmp$1 = $ifaceNil; + ret = _tmp; + err = _tmp$1; + return [ret, err]; + }; + pp.prototype.Write = function(b) { return this.$val.Write(b); }; + pp.ptr.prototype.WriteString = function(s) { + var _tmp, _tmp$1, err, p, ret, s; + ret = 0; + err = $ifaceNil; + p = this; + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(s); + _tmp = s.length; + _tmp$1 = $ifaceNil; + ret = _tmp; + err = _tmp$1; + return [ret, err]; + }; + pp.prototype.WriteString = function(s) { return this.$val.WriteString(s); }; + Sprintf = function(format, a) { + var _r, a, format, p, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; a = $f.a; format = $f.format; p = $f.p; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = newPrinter(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + p = _r; + $r = p.doPrintf(format, a); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + s = ($bytesToString(p.buf)); + p.free(); + $s = -1; return s; + /* */ } return; } if ($f === undefined) { $f = { $blk: Sprintf }; } $f._r = _r; $f.a = a; $f.format = format; $f.p = p; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Sprintf = Sprintf; + Errorf = function(format, a) { + var _r, _r$1, a, format, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; a = $f.a; format = $f.format; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = Sprintf(format, a); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = errors.New(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return _r$1; + /* */ } return; } if ($f === undefined) { $f = { $blk: Errorf }; } $f._r = _r; $f._r$1 = _r$1; $f.a = a; $f.format = format; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Errorf = Errorf; + Sprint = function(a) { + var _r, a, p, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; a = $f.a; p = $f.p; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = newPrinter(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + p = _r; + $r = p.doPrint(a); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + s = ($bytesToString(p.buf)); + p.free(); + $s = -1; return s; + /* */ } return; } if ($f === undefined) { $f = { $blk: Sprint }; } $f._r = _r; $f.a = a; $f.p = p; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Sprint = Sprint; + Fprintln = function(w, a) { + var _r, _r$1, _tuple, a, err, n, p, w, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; a = $f.a; err = $f.err; n = $f.n; p = $f.p; w = $f.w; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + _r = newPrinter(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + p = _r; + $r = p.doPrintln(a); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$1 = w.Write((x = p.buf, $subslice(new sliceType$2(x.$array), x.$offset, x.$offset + x.$length))); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + n = _tuple[0]; + err = _tuple[1]; + p.free(); + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Fprintln }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.a = a; $f.err = err; $f.n = n; $f.p = p; $f.w = w; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Fprintln = Fprintln; + Println = function(a) { + var _r, _tuple, a, err, n, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; a = $f.a; err = $f.err; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + _r = Fprintln(os.Stdout, a); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + err = _tuple[1]; + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Println }; } $f._r = _r; $f._tuple = _tuple; $f.a = a; $f.err = err; $f.n = n; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Println = Println; + Sprintln = function(a) { + var _r, a, p, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; a = $f.a; p = $f.p; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = newPrinter(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + p = _r; + $r = p.doPrintln(a); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + s = ($bytesToString(p.buf)); + p.free(); + $s = -1; return s; + /* */ } return; } if ($f === undefined) { $f = { $blk: Sprintln }; } $f._r = _r; $f.a = a; $f.p = p; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Sprintln = Sprintln; + getField = function(v, i) { + var _r, _r$1, i, v, val, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; i = $f.i; v = $f.v; val = $f.val; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = $clone(v, reflect.Value).Field(i); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + val = _r; + /* */ if (($clone(val, reflect.Value).Kind() === 20) && !$clone(val, reflect.Value).IsNil()) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (($clone(val, reflect.Value).Kind() === 20) && !$clone(val, reflect.Value).IsNil()) { */ case 2: + _r$1 = $clone(val, reflect.Value).Elem(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + val = _r$1; + /* } */ case 3: + $s = -1; return val; + /* */ } return; } if ($f === undefined) { $f = { $blk: getField }; } $f._r = _r; $f._r$1 = _r$1; $f.i = i; $f.v = v; $f.val = val; $f.$s = $s; $f.$r = $r; return $f; + }; + tooLarge = function(x) { + var x; + return x > 1000000 || x < -1000000; + }; + parsenum = function(s, start, end) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, end, isnum, newi, num, s, start; + num = 0; + isnum = false; + newi = 0; + if (start >= end) { + _tmp = 0; + _tmp$1 = false; + _tmp$2 = end; + num = _tmp; + isnum = _tmp$1; + newi = _tmp$2; + return [num, isnum, newi]; + } + newi = start; + while (true) { + if (!(newi < end && 48 <= s.charCodeAt(newi) && s.charCodeAt(newi) <= 57)) { break; } + if (tooLarge(num)) { + _tmp$3 = 0; + _tmp$4 = false; + _tmp$5 = end; + num = _tmp$3; + isnum = _tmp$4; + newi = _tmp$5; + return [num, isnum, newi]; + } + num = ($imul(num, 10)) + (((s.charCodeAt(newi) - 48 << 24 >>> 24) >> 0)) >> 0; + isnum = true; + newi = newi + (1) >> 0; + } + return [num, isnum, newi]; + }; + pp.ptr.prototype.unknownType = function(v) { + var _r, p, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; p = $f.p; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + if (!$clone(v, reflect.Value).IsValid()) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(""); + $s = -1; return; + } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(63); + _r = $clone(v, reflect.Value).Type().String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(_r); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(63); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.unknownType }; } $f._r = _r; $f.p = p; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + pp.prototype.unknownType = function(v) { return this.$val.unknownType(v); }; + pp.ptr.prototype.badVerb = function(verb) { + var _r, _r$1, p, verb, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; p = $f.p; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + p.erroring = true; + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("%!"); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteRune(verb); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(40); + /* */ if (!($interfaceIsEqual(p.arg, $ifaceNil))) { $s = 2; continue; } + /* */ if ($clone(p.value, reflect.Value).IsValid()) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!($interfaceIsEqual(p.arg, $ifaceNil))) { */ case 2: + _r = reflect.TypeOf(p.arg).String(); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(_r); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(61); + $r = p.printArg(p.arg, 118); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 5; continue; + /* } else if ($clone(p.value, reflect.Value).IsValid()) { */ case 3: + _r$1 = $clone(p.value, reflect.Value).Type().String(); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(_r$1); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(61); + $r = p.printValue($clone(p.value, reflect.Value), 118, 0); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 5; continue; + /* } else { */ case 4: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(""); + /* } */ case 5: + case 1: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(41); + p.erroring = false; + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.badVerb }; } $f._r = _r; $f._r$1 = _r$1; $f.p = p; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f; + }; + pp.prototype.badVerb = function(verb) { return this.$val.badVerb(verb); }; + pp.ptr.prototype.fmtBool = function(v, verb) { + var _1, p, v, verb, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; p = $f.p; v = $f.v; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + _1 = verb; + /* */ if ((_1 === (116)) || (_1 === (118))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if ((_1 === (116)) || (_1 === (118))) { */ case 2: + p.fmt.fmtBoolean(v); + $s = 4; continue; + /* } else { */ case 3: + $r = p.badVerb(verb); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 4: + case 1: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.fmtBool }; } $f._1 = _1; $f.p = p; $f.v = v; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f; + }; + pp.prototype.fmtBool = function(v, verb) { return this.$val.fmtBool(v, verb); }; + pp.ptr.prototype.fmt0x64 = function(v, leading0x) { + var leading0x, p, sharp, v; + p = this; + sharp = p.fmt.fmtFlags.sharp; + p.fmt.fmtFlags.sharp = leading0x; + p.fmt.fmtInteger(v, 16, false, "0123456789abcdefx"); + p.fmt.fmtFlags.sharp = sharp; + }; + pp.prototype.fmt0x64 = function(v, leading0x) { return this.$val.fmt0x64(v, leading0x); }; + pp.ptr.prototype.fmtInteger = function(v, isSigned, verb) { + var _1, isSigned, p, v, verb, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; isSigned = $f.isSigned; p = $f.p; v = $f.v; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + _1 = verb; + /* */ if (_1 === (118)) { $s = 2; continue; } + /* */ if (_1 === (100)) { $s = 3; continue; } + /* */ if (_1 === (98)) { $s = 4; continue; } + /* */ if (_1 === (111)) { $s = 5; continue; } + /* */ if (_1 === (120)) { $s = 6; continue; } + /* */ if (_1 === (88)) { $s = 7; continue; } + /* */ if (_1 === (99)) { $s = 8; continue; } + /* */ if (_1 === (113)) { $s = 9; continue; } + /* */ if (_1 === (85)) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (_1 === (118)) { */ case 2: + if (p.fmt.fmtFlags.sharpV && !isSigned) { + p.fmt0x64(v, true); + } else { + p.fmt.fmtInteger(v, 10, isSigned, "0123456789abcdefx"); + } + $s = 12; continue; + /* } else if (_1 === (100)) { */ case 3: + p.fmt.fmtInteger(v, 10, isSigned, "0123456789abcdefx"); + $s = 12; continue; + /* } else if (_1 === (98)) { */ case 4: + p.fmt.fmtInteger(v, 2, isSigned, "0123456789abcdefx"); + $s = 12; continue; + /* } else if (_1 === (111)) { */ case 5: + p.fmt.fmtInteger(v, 8, isSigned, "0123456789abcdefx"); + $s = 12; continue; + /* } else if (_1 === (120)) { */ case 6: + p.fmt.fmtInteger(v, 16, isSigned, "0123456789abcdefx"); + $s = 12; continue; + /* } else if (_1 === (88)) { */ case 7: + p.fmt.fmtInteger(v, 16, isSigned, "0123456789ABCDEFX"); + $s = 12; continue; + /* } else if (_1 === (99)) { */ case 8: + p.fmt.fmtC(v); + $s = 12; continue; + /* } else if (_1 === (113)) { */ case 9: + /* */ if ((v.$high < 0 || (v.$high === 0 && v.$low <= 1114111))) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if ((v.$high < 0 || (v.$high === 0 && v.$low <= 1114111))) { */ case 13: + p.fmt.fmtQc(v); + $s = 15; continue; + /* } else { */ case 14: + $r = p.badVerb(verb); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 15: + $s = 12; continue; + /* } else if (_1 === (85)) { */ case 10: + p.fmt.fmtUnicode(v); + $s = 12; continue; + /* } else { */ case 11: + $r = p.badVerb(verb); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 12: + case 1: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.fmtInteger }; } $f._1 = _1; $f.isSigned = isSigned; $f.p = p; $f.v = v; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f; + }; + pp.prototype.fmtInteger = function(v, isSigned, verb) { return this.$val.fmtInteger(v, isSigned, verb); }; + pp.ptr.prototype.fmtFloat = function(v, size, verb) { + var _1, p, size, v, verb, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; p = $f.p; size = $f.size; v = $f.v; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + _1 = verb; + /* */ if (_1 === (118)) { $s = 2; continue; } + /* */ if ((_1 === (98)) || (_1 === (103)) || (_1 === (71))) { $s = 3; continue; } + /* */ if ((_1 === (102)) || (_1 === (101)) || (_1 === (69))) { $s = 4; continue; } + /* */ if (_1 === (70)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_1 === (118)) { */ case 2: + p.fmt.fmtFloat(v, size, 103, -1); + $s = 7; continue; + /* } else if ((_1 === (98)) || (_1 === (103)) || (_1 === (71))) { */ case 3: + p.fmt.fmtFloat(v, size, verb, -1); + $s = 7; continue; + /* } else if ((_1 === (102)) || (_1 === (101)) || (_1 === (69))) { */ case 4: + p.fmt.fmtFloat(v, size, verb, 6); + $s = 7; continue; + /* } else if (_1 === (70)) { */ case 5: + p.fmt.fmtFloat(v, size, 102, 6); + $s = 7; continue; + /* } else { */ case 6: + $r = p.badVerb(verb); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 7: + case 1: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.fmtFloat }; } $f._1 = _1; $f.p = p; $f.size = size; $f.v = v; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f; + }; + pp.prototype.fmtFloat = function(v, size, verb) { return this.$val.fmtFloat(v, size, verb); }; + pp.ptr.prototype.fmtComplex = function(v, size, verb) { + var _1, _q, _q$1, oldPlus, p, size, v, verb, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _q = $f._q; _q$1 = $f._q$1; oldPlus = $f.oldPlus; p = $f.p; size = $f.size; v = $f.v; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + _1 = verb; + /* */ if ((_1 === (118)) || (_1 === (98)) || (_1 === (103)) || (_1 === (71)) || (_1 === (102)) || (_1 === (70)) || (_1 === (101)) || (_1 === (69))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if ((_1 === (118)) || (_1 === (98)) || (_1 === (103)) || (_1 === (71)) || (_1 === (102)) || (_1 === (70)) || (_1 === (101)) || (_1 === (69))) { */ case 2: + oldPlus = p.fmt.fmtFlags.plus; + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(40); + $r = p.fmtFloat(v.$real, (_q = size / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), verb); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + p.fmt.fmtFlags.plus = true; + $r = p.fmtFloat(v.$imag, (_q$1 = size / 2, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")), verb); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("i)"); + p.fmt.fmtFlags.plus = oldPlus; + $s = 4; continue; + /* } else { */ case 3: + $r = p.badVerb(verb); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 4: + case 1: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.fmtComplex }; } $f._1 = _1; $f._q = _q; $f._q$1 = _q$1; $f.oldPlus = oldPlus; $f.p = p; $f.size = size; $f.v = v; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f; + }; + pp.prototype.fmtComplex = function(v, size, verb) { return this.$val.fmtComplex(v, size, verb); }; + pp.ptr.prototype.fmtString = function(v, verb) { + var _1, p, v, verb, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; p = $f.p; v = $f.v; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + _1 = verb; + /* */ if (_1 === (118)) { $s = 2; continue; } + /* */ if (_1 === (115)) { $s = 3; continue; } + /* */ if (_1 === (120)) { $s = 4; continue; } + /* */ if (_1 === (88)) { $s = 5; continue; } + /* */ if (_1 === (113)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (_1 === (118)) { */ case 2: + if (p.fmt.fmtFlags.sharpV) { + p.fmt.fmtQ(v); + } else { + p.fmt.fmtS(v); + } + $s = 8; continue; + /* } else if (_1 === (115)) { */ case 3: + p.fmt.fmtS(v); + $s = 8; continue; + /* } else if (_1 === (120)) { */ case 4: + p.fmt.fmtSx(v, "0123456789abcdefx"); + $s = 8; continue; + /* } else if (_1 === (88)) { */ case 5: + p.fmt.fmtSx(v, "0123456789ABCDEFX"); + $s = 8; continue; + /* } else if (_1 === (113)) { */ case 6: + p.fmt.fmtQ(v); + $s = 8; continue; + /* } else { */ case 7: + $r = p.badVerb(verb); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 8: + case 1: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.fmtString }; } $f._1 = _1; $f.p = p; $f.v = v; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f; + }; + pp.prototype.fmtString = function(v, verb) { return this.$val.fmtString(v, verb); }; + pp.ptr.prototype.fmtBytes = function(v, verb, typeString) { + var _1, _i, _i$1, _r, _ref, _ref$1, c, c$1, i, i$1, p, typeString, v, verb, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _i = $f._i; _i$1 = $f._i$1; _r = $f._r; _ref = $f._ref; _ref$1 = $f._ref$1; c = $f.c; c$1 = $f.c$1; i = $f.i; i$1 = $f.i$1; p = $f.p; typeString = $f.typeString; v = $f.v; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + _1 = verb; + /* */ if ((_1 === (118)) || (_1 === (100))) { $s = 2; continue; } + /* */ if (_1 === (115)) { $s = 3; continue; } + /* */ if (_1 === (120)) { $s = 4; continue; } + /* */ if (_1 === (88)) { $s = 5; continue; } + /* */ if (_1 === (113)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if ((_1 === (118)) || (_1 === (100))) { */ case 2: + if (p.fmt.fmtFlags.sharpV) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(typeString); + if (v === sliceType$2.nil) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("(nil)"); + $s = -1; return; + } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(123); + _ref = v; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (i > 0) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(", "); + } + p.fmt0x64((new $Uint64(0, c)), true); + _i++; + } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(125); + } else { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(91); + _ref$1 = v; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i$1 = _i$1; + c$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + if (i$1 > 0) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(32); + } + p.fmt.fmtInteger((new $Uint64(0, c$1)), 10, false, "0123456789abcdefx"); + _i$1++; + } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(93); + } + $s = 8; continue; + /* } else if (_1 === (115)) { */ case 3: + p.fmt.fmtS(($bytesToString(v))); + $s = 8; continue; + /* } else if (_1 === (120)) { */ case 4: + p.fmt.fmtBx(v, "0123456789abcdefx"); + $s = 8; continue; + /* } else if (_1 === (88)) { */ case 5: + p.fmt.fmtBx(v, "0123456789ABCDEFX"); + $s = 8; continue; + /* } else if (_1 === (113)) { */ case 6: + p.fmt.fmtQ(($bytesToString(v))); + $s = 8; continue; + /* } else { */ case 7: + _r = reflect.ValueOf(v); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = p.printValue($clone(_r, reflect.Value), verb, 0); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 8: + case 1: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.fmtBytes }; } $f._1 = _1; $f._i = _i; $f._i$1 = _i$1; $f._r = _r; $f._ref = _ref; $f._ref$1 = _ref$1; $f.c = c; $f.c$1 = c$1; $f.i = i; $f.i$1 = i$1; $f.p = p; $f.typeString = typeString; $f.v = v; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f; + }; + pp.prototype.fmtBytes = function(v, verb, typeString) { return this.$val.fmtBytes(v, verb, typeString); }; + pp.ptr.prototype.fmtPointer = function(value, verb) { + var _1, _2, _r, p, u, value, verb, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _2 = $f._2; _r = $f._r; p = $f.p; u = $f.u; value = $f.value; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + u = 0; + _1 = $clone(value, reflect.Value).Kind(); + /* */ if ((_1 === (18)) || (_1 === (19)) || (_1 === (21)) || (_1 === (22)) || (_1 === (23)) || (_1 === (26))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if ((_1 === (18)) || (_1 === (19)) || (_1 === (21)) || (_1 === (22)) || (_1 === (23)) || (_1 === (26))) { */ case 2: + u = $clone(value, reflect.Value).Pointer(); + $s = 4; continue; + /* } else { */ case 3: + $r = p.badVerb(verb); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 4: + case 1: + _2 = verb; + /* */ if (_2 === (118)) { $s = 7; continue; } + /* */ if (_2 === (112)) { $s = 8; continue; } + /* */ if ((_2 === (98)) || (_2 === (111)) || (_2 === (100)) || (_2 === (120)) || (_2 === (88))) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (_2 === (118)) { */ case 7: + /* */ if (p.fmt.fmtFlags.sharpV) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (p.fmt.fmtFlags.sharpV) { */ case 12: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(40); + _r = $clone(value, reflect.Value).Type().String(); /* */ $s = 15; case 15: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(_r); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(")("); + if (u === 0) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("nil"); + } else { + p.fmt0x64((new $Uint64(0, u.constructor === Number ? u : 1)), true); + } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(41); + $s = 14; continue; + /* } else { */ case 13: + if (u === 0) { + p.fmt.padString(""); + } else { + p.fmt0x64((new $Uint64(0, u.constructor === Number ? u : 1)), !p.fmt.fmtFlags.sharp); + } + /* } */ case 14: + $s = 11; continue; + /* } else if (_2 === (112)) { */ case 8: + p.fmt0x64((new $Uint64(0, u.constructor === Number ? u : 1)), !p.fmt.fmtFlags.sharp); + $s = 11; continue; + /* } else if ((_2 === (98)) || (_2 === (111)) || (_2 === (100)) || (_2 === (120)) || (_2 === (88))) { */ case 9: + $r = p.fmtInteger((new $Uint64(0, u.constructor === Number ? u : 1)), false, verb); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 11; continue; + /* } else { */ case 10: + $r = p.badVerb(verb); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 11: + case 6: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.fmtPointer }; } $f._1 = _1; $f._2 = _2; $f._r = _r; $f.p = p; $f.u = u; $f.value = value; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f; + }; + pp.prototype.fmtPointer = function(value, verb) { return this.$val.fmtPointer(value, verb); }; + pp.ptr.prototype.catchPanic = function(arg, verb) { + var _r, arg, err, oldFlags, p, v, verb, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; arg = $f.arg; err = $f.err; oldFlags = $f.oldFlags; p = $f.p; v = $f.v; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + err = $recover(); + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 1: + _r = reflect.ValueOf(arg); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + v = _r; + if (($clone(v, reflect.Value).Kind() === 22) && $clone(v, reflect.Value).IsNil()) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(""); + $s = -1; return; + } + if (p.panicking) { + $panic(err); + } + oldFlags = $clone(p.fmt.fmtFlags, fmtFlags); + p.fmt.clearflags(); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("%!"); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteRune(verb); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("(PANIC="); + p.panicking = true; + $r = p.printArg(err, 118); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + p.panicking = false; + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(41); + fmtFlags.copy(p.fmt.fmtFlags, oldFlags); + /* } */ case 2: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.catchPanic }; } $f._r = _r; $f.arg = arg; $f.err = err; $f.oldFlags = oldFlags; $f.p = p; $f.v = v; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f; + }; + pp.prototype.catchPanic = function(arg, verb) { return this.$val.catchPanic(arg, verb); }; + pp.ptr.prototype.handleMethods = function(verb) { + var _1, _r, _r$1, _r$2, _ref, _tuple, _tuple$1, formatter, handled, ok, ok$1, p, stringer, v, v$1, verb, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _ref = $f._ref; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; formatter = $f.formatter; handled = $f.handled; ok = $f.ok; ok$1 = $f.ok$1; p = $f.p; stringer = $f.stringer; v = $f.v; v$1 = $f.v$1; verb = $f.verb; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + handled = false; + p = this; + if (p.erroring) { + $s = -1; return handled; + } + _tuple = $assertType(p.arg, Formatter, true); + formatter = _tuple[0]; + ok = _tuple[1]; + /* */ if (ok) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (ok) { */ case 1: + handled = true; + $deferred.push([$methodVal(p, "catchPanic"), [p.arg, verb]]); + $r = formatter.Format(p, verb); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return handled; + /* } */ case 2: + /* */ if (p.fmt.fmtFlags.sharpV) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (p.fmt.fmtFlags.sharpV) { */ case 4: + _tuple$1 = $assertType(p.arg, GoStringer, true); + stringer = _tuple$1[0]; + ok$1 = _tuple$1[1]; + /* */ if (ok$1) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (ok$1) { */ case 7: + handled = true; + $deferred.push([$methodVal(p, "catchPanic"), [p.arg, verb]]); + _r = stringer.GoString(); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = p.fmt.fmtS(_r); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return handled; + /* } */ case 8: + $s = 6; continue; + /* } else { */ case 5: + _1 = verb; + /* */ if ((_1 === (118)) || (_1 === (115)) || (_1 === (120)) || (_1 === (88)) || (_1 === (113))) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if ((_1 === (118)) || (_1 === (115)) || (_1 === (120)) || (_1 === (88)) || (_1 === (113))) { */ case 12: + _ref = p.arg; + /* */ if ($assertType(_ref, $error, true)[1]) { $s = 14; continue; } + /* */ if ($assertType(_ref, Stringer, true)[1]) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if ($assertType(_ref, $error, true)[1]) { */ case 14: + v = _ref; + handled = true; + $deferred.push([$methodVal(p, "catchPanic"), [p.arg, verb]]); + _r$1 = v.Error(); /* */ $s = 17; case 17: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $r = p.fmtString(_r$1, verb); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return handled; + /* } else if ($assertType(_ref, Stringer, true)[1]) { */ case 15: + v$1 = _ref; + handled = true; + $deferred.push([$methodVal(p, "catchPanic"), [p.arg, verb]]); + _r$2 = v$1.String(); /* */ $s = 19; case 19: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $r = p.fmtString(_r$2, verb); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return handled; + /* } */ case 16: + /* } */ case 13: + case 11: + /* } */ case 6: + handled = false; + $s = -1; return handled; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return handled; } if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: pp.ptr.prototype.handleMethods }; } $f._1 = _1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._ref = _ref; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.formatter = formatter; $f.handled = handled; $f.ok = ok; $f.ok$1 = ok$1; $f.p = p; $f.stringer = stringer; $f.v = v; $f.v$1 = v$1; $f.verb = verb; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + pp.prototype.handleMethods = function(verb) { return this.$val.handleMethods(verb); }; + pp.ptr.prototype.printArg = function(arg, verb) { + var _1, _2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, arg, f, f$1, f$10, f$11, f$12, f$13, f$14, f$15, f$16, f$17, f$18, f$19, f$2, f$3, f$4, f$5, f$6, f$7, f$8, f$9, p, verb, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _2 = $f._2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _ref = $f._ref; arg = $f.arg; f = $f.f; f$1 = $f.f$1; f$10 = $f.f$10; f$11 = $f.f$11; f$12 = $f.f$12; f$13 = $f.f$13; f$14 = $f.f$14; f$15 = $f.f$15; f$16 = $f.f$16; f$17 = $f.f$17; f$18 = $f.f$18; f$19 = $f.f$19; f$2 = $f.f$2; f$3 = $f.f$3; f$4 = $f.f$4; f$5 = $f.f$5; f$6 = $f.f$6; f$7 = $f.f$7; f$8 = $f.f$8; f$9 = $f.f$9; p = $f.p; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + p.arg = arg; + p.value = new reflect.Value.ptr(ptrType.nil, 0, 0); + /* */ if ($interfaceIsEqual(arg, $ifaceNil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ($interfaceIsEqual(arg, $ifaceNil)) { */ case 1: + _1 = verb; + /* */ if ((_1 === (84)) || (_1 === (118))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ((_1 === (84)) || (_1 === (118))) { */ case 4: + p.fmt.padString(""); + $s = 6; continue; + /* } else { */ case 5: + $r = p.badVerb(verb); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + case 3: + $s = -1; return; + /* } */ case 2: + _2 = verb; + /* */ if (_2 === (84)) { $s = 9; continue; } + /* */ if (_2 === (112)) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (_2 === (84)) { */ case 9: + _r = reflect.TypeOf(arg).String(); /* */ $s = 12; case 12: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = p.fmt.fmtS(_r); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } else if (_2 === (112)) { */ case 10: + _r$1 = reflect.ValueOf(arg); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $r = p.fmtPointer($clone(_r$1, reflect.Value), 112); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 11: + case 8: + _ref = arg; + /* */ if ($assertType(_ref, $Bool, true)[1]) { $s = 16; continue; } + /* */ if ($assertType(_ref, $Float32, true)[1]) { $s = 17; continue; } + /* */ if ($assertType(_ref, $Float64, true)[1]) { $s = 18; continue; } + /* */ if ($assertType(_ref, $Complex64, true)[1]) { $s = 19; continue; } + /* */ if ($assertType(_ref, $Complex128, true)[1]) { $s = 20; continue; } + /* */ if ($assertType(_ref, $Int, true)[1]) { $s = 21; continue; } + /* */ if ($assertType(_ref, $Int8, true)[1]) { $s = 22; continue; } + /* */ if ($assertType(_ref, $Int16, true)[1]) { $s = 23; continue; } + /* */ if ($assertType(_ref, $Int32, true)[1]) { $s = 24; continue; } + /* */ if ($assertType(_ref, $Int64, true)[1]) { $s = 25; continue; } + /* */ if ($assertType(_ref, $Uint, true)[1]) { $s = 26; continue; } + /* */ if ($assertType(_ref, $Uint8, true)[1]) { $s = 27; continue; } + /* */ if ($assertType(_ref, $Uint16, true)[1]) { $s = 28; continue; } + /* */ if ($assertType(_ref, $Uint32, true)[1]) { $s = 29; continue; } + /* */ if ($assertType(_ref, $Uint64, true)[1]) { $s = 30; continue; } + /* */ if ($assertType(_ref, $Uintptr, true)[1]) { $s = 31; continue; } + /* */ if ($assertType(_ref, $String, true)[1]) { $s = 32; continue; } + /* */ if ($assertType(_ref, sliceType$2, true)[1]) { $s = 33; continue; } + /* */ if ($assertType(_ref, reflect.Value, true)[1]) { $s = 34; continue; } + /* */ $s = 35; continue; + /* if ($assertType(_ref, $Bool, true)[1]) { */ case 16: + f = _ref.$val; + $r = p.fmtBool(f, verb); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Float32, true)[1]) { */ case 17: + f$1 = _ref.$val; + $r = p.fmtFloat((f$1), 32, verb); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Float64, true)[1]) { */ case 18: + f$2 = _ref.$val; + $r = p.fmtFloat(f$2, 64, verb); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Complex64, true)[1]) { */ case 19: + f$3 = _ref.$val; + $r = p.fmtComplex((new $Complex128(f$3.$real, f$3.$imag)), 64, verb); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Complex128, true)[1]) { */ case 20: + f$4 = _ref.$val; + $r = p.fmtComplex(f$4, 128, verb); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Int, true)[1]) { */ case 21: + f$5 = _ref.$val; + $r = p.fmtInteger((new $Uint64(0, f$5)), true, verb); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Int8, true)[1]) { */ case 22: + f$6 = _ref.$val; + $r = p.fmtInteger((new $Uint64(0, f$6)), true, verb); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Int16, true)[1]) { */ case 23: + f$7 = _ref.$val; + $r = p.fmtInteger((new $Uint64(0, f$7)), true, verb); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Int32, true)[1]) { */ case 24: + f$8 = _ref.$val; + $r = p.fmtInteger((new $Uint64(0, f$8)), true, verb); /* */ $s = 45; case 45: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Int64, true)[1]) { */ case 25: + f$9 = _ref.$val; + $r = p.fmtInteger((new $Uint64(f$9.$high, f$9.$low)), true, verb); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Uint, true)[1]) { */ case 26: + f$10 = _ref.$val; + $r = p.fmtInteger((new $Uint64(0, f$10)), false, verb); /* */ $s = 47; case 47: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Uint8, true)[1]) { */ case 27: + f$11 = _ref.$val; + $r = p.fmtInteger((new $Uint64(0, f$11)), false, verb); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Uint16, true)[1]) { */ case 28: + f$12 = _ref.$val; + $r = p.fmtInteger((new $Uint64(0, f$12)), false, verb); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Uint32, true)[1]) { */ case 29: + f$13 = _ref.$val; + $r = p.fmtInteger((new $Uint64(0, f$13)), false, verb); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Uint64, true)[1]) { */ case 30: + f$14 = _ref.$val; + $r = p.fmtInteger(f$14, false, verb); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Uintptr, true)[1]) { */ case 31: + f$15 = _ref.$val; + $r = p.fmtInteger((new $Uint64(0, f$15.constructor === Number ? f$15 : 1)), false, verb); /* */ $s = 52; case 52: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $String, true)[1]) { */ case 32: + f$16 = _ref.$val; + $r = p.fmtString(f$16, verb); /* */ $s = 53; case 53: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, sliceType$2, true)[1]) { */ case 33: + f$17 = _ref.$val; + $r = p.fmtBytes(f$17, verb, "[]byte"); /* */ $s = 54; case 54: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, reflect.Value, true)[1]) { */ case 34: + f$18 = _ref.$val; + /* */ if ($clone(f$18, reflect.Value).IsValid() && $clone(f$18, reflect.Value).CanInterface()) { $s = 55; continue; } + /* */ $s = 56; continue; + /* if ($clone(f$18, reflect.Value).IsValid() && $clone(f$18, reflect.Value).CanInterface()) { */ case 55: + _r$2 = $clone(f$18, reflect.Value).Interface(); /* */ $s = 57; case 57: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + p.arg = _r$2; + _r$3 = p.handleMethods(verb); /* */ $s = 60; case 60: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3) { $s = 58; continue; } + /* */ $s = 59; continue; + /* if (_r$3) { */ case 58: + $s = -1; return; + /* } */ case 59: + /* } */ case 56: + $r = p.printValue($clone(f$18, reflect.Value), verb, 0); /* */ $s = 61; case 61: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else { */ case 35: + f$19 = _ref; + _r$4 = p.handleMethods(verb); /* */ $s = 64; case 64: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (!_r$4) { $s = 62; continue; } + /* */ $s = 63; continue; + /* if (!_r$4) { */ case 62: + _r$5 = reflect.ValueOf(f$19); /* */ $s = 65; case 65: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $r = p.printValue($clone(_r$5, reflect.Value), verb, 0); /* */ $s = 66; case 66: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 63: + /* } */ case 36: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.printArg }; } $f._1 = _1; $f._2 = _2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._ref = _ref; $f.arg = arg; $f.f = f; $f.f$1 = f$1; $f.f$10 = f$10; $f.f$11 = f$11; $f.f$12 = f$12; $f.f$13 = f$13; $f.f$14 = f$14; $f.f$15 = f$15; $f.f$16 = f$16; $f.f$17 = f$17; $f.f$18 = f$18; $f.f$19 = f$19; $f.f$2 = f$2; $f.f$3 = f$3; $f.f$4 = f$4; $f.f$5 = f$5; $f.f$6 = f$6; $f.f$7 = f$7; $f.f$8 = f$8; $f.f$9 = f$9; $f.p = p; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f; + }; + pp.prototype.printArg = function(arg, verb) { return this.$val.printArg(arg, verb); }; + pp.ptr.prototype.printValue = function(value, verb, depth) { + var _1, _2, _3, _4, _arg, _arg$1, _arg$2, _i, _i$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, a, bytes, depth, f, i, i$1, i$2, i$3, i$4, key, keys, name, p, t, value, value$1, verb, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _2 = $f._2; _3 = $f._3; _4 = $f._4; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _i = $f._i; _i$1 = $f._i$1; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$13 = $f._r$13; _r$14 = $f._r$14; _r$15 = $f._r$15; _r$16 = $f._r$16; _r$17 = $f._r$17; _r$18 = $f._r$18; _r$19 = $f._r$19; _r$2 = $f._r$2; _r$20 = $f._r$20; _r$21 = $f._r$21; _r$22 = $f._r$22; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _ref = $f._ref; _ref$1 = $f._ref$1; a = $f.a; bytes = $f.bytes; depth = $f.depth; f = $f.f; i = $f.i; i$1 = $f.i$1; i$2 = $f.i$2; i$3 = $f.i$3; i$4 = $f.i$4; key = $f.key; keys = $f.keys; name = $f.name; p = $f.p; t = $f.t; value = $f.value; value$1 = $f.value$1; verb = $f.verb; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + /* */ if (depth > 0 && $clone(value, reflect.Value).IsValid() && $clone(value, reflect.Value).CanInterface()) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (depth > 0 && $clone(value, reflect.Value).IsValid() && $clone(value, reflect.Value).CanInterface()) { */ case 1: + _r = $clone(value, reflect.Value).Interface(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + p.arg = _r; + _r$1 = p.handleMethods(verb); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_r$1) { */ case 4: + $s = -1; return; + /* } */ case 5: + /* } */ case 2: + p.arg = $ifaceNil; + p.value = value; + f = value; + _1 = $clone(value, reflect.Value).Kind(); + /* */ if (_1 === (0)) { $s = 8; continue; } + /* */ if (_1 === (1)) { $s = 9; continue; } + /* */ if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { $s = 10; continue; } + /* */ if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { $s = 11; continue; } + /* */ if (_1 === (13)) { $s = 12; continue; } + /* */ if (_1 === (14)) { $s = 13; continue; } + /* */ if (_1 === (15)) { $s = 14; continue; } + /* */ if (_1 === (16)) { $s = 15; continue; } + /* */ if (_1 === (24)) { $s = 16; continue; } + /* */ if (_1 === (21)) { $s = 17; continue; } + /* */ if (_1 === (25)) { $s = 18; continue; } + /* */ if (_1 === (20)) { $s = 19; continue; } + /* */ if ((_1 === (17)) || (_1 === (23))) { $s = 20; continue; } + /* */ if (_1 === (22)) { $s = 21; continue; } + /* */ if ((_1 === (18)) || (_1 === (19)) || (_1 === (26))) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (_1 === (0)) { */ case 8: + /* */ if (depth === 0) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (depth === 0) { */ case 25: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(""); + $s = 27; continue; + /* } else { */ case 26: + _2 = verb; + /* */ if (_2 === (118)) { $s = 29; continue; } + /* */ $s = 30; continue; + /* if (_2 === (118)) { */ case 29: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(""); + $s = 31; continue; + /* } else { */ case 30: + $r = p.badVerb(verb); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 31: + case 28: + /* } */ case 27: + $s = 24; continue; + /* } else if (_1 === (1)) { */ case 9: + $r = p.fmtBool($clone(f, reflect.Value).Bool(), verb); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 24; continue; + /* } else if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { */ case 10: + $r = p.fmtInteger(((x = $clone(f, reflect.Value).Int(), new $Uint64(x.$high, x.$low))), true, verb); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 24; continue; + /* } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { */ case 11: + $r = p.fmtInteger($clone(f, reflect.Value).Uint(), false, verb); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 24; continue; + /* } else if (_1 === (13)) { */ case 12: + $r = p.fmtFloat($clone(f, reflect.Value).Float(), 32, verb); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 24; continue; + /* } else if (_1 === (14)) { */ case 13: + $r = p.fmtFloat($clone(f, reflect.Value).Float(), 64, verb); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 24; continue; + /* } else if (_1 === (15)) { */ case 14: + $r = p.fmtComplex($clone(f, reflect.Value).Complex(), 64, verb); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 24; continue; + /* } else if (_1 === (16)) { */ case 15: + $r = p.fmtComplex($clone(f, reflect.Value).Complex(), 128, verb); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 24; continue; + /* } else if (_1 === (24)) { */ case 16: + _r$2 = $clone(f, reflect.Value).String(); /* */ $s = 40; case 40: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $r = p.fmtString(_r$2, verb); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 24; continue; + /* } else if (_1 === (21)) { */ case 17: + /* */ if (p.fmt.fmtFlags.sharpV) { $s = 42; continue; } + /* */ $s = 43; continue; + /* if (p.fmt.fmtFlags.sharpV) { */ case 42: + _r$3 = $clone(f, reflect.Value).Type().String(); /* */ $s = 45; case 45: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(_r$3); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if ($clone(f, reflect.Value).IsNil()) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("(nil)"); + $s = -1; return; + } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(123); + $s = 44; continue; + /* } else { */ case 43: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("map["); + /* } */ case 44: + _r$4 = $clone(f, reflect.Value).MapKeys(); /* */ $s = 47; case 47: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + keys = _r$4; + _ref = keys; + _i = 0; + /* while (true) { */ case 48: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 49; continue; } + i = _i; + key = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (i > 0) { + if (p.fmt.fmtFlags.sharpV) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(", "); + } else { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(32); + } + } + $r = p.printValue($clone(key, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(58); + _r$5 = $clone(f, reflect.Value).MapIndex($clone(key, reflect.Value)); /* */ $s = 51; case 51: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $r = p.printValue($clone(_r$5, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 52; case 52: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + /* } */ $s = 48; continue; case 49: + if (p.fmt.fmtFlags.sharpV) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(125); + } else { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(93); + } + $s = 24; continue; + /* } else if (_1 === (25)) { */ case 18: + /* */ if (p.fmt.fmtFlags.sharpV) { $s = 53; continue; } + /* */ $s = 54; continue; + /* if (p.fmt.fmtFlags.sharpV) { */ case 53: + _r$6 = $clone(f, reflect.Value).Type().String(); /* */ $s = 55; case 55: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(_r$6); /* */ $s = 56; case 56: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 54: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(123); + i$1 = 0; + /* while (true) { */ case 57: + /* if (!(i$1 < $clone(f, reflect.Value).NumField())) { break; } */ if(!(i$1 < $clone(f, reflect.Value).NumField())) { $s = 58; continue; } + if (i$1 > 0) { + if (p.fmt.fmtFlags.sharpV) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(", "); + } else { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(32); + } + } + /* */ if (p.fmt.fmtFlags.plusV || p.fmt.fmtFlags.sharpV) { $s = 59; continue; } + /* */ $s = 60; continue; + /* if (p.fmt.fmtFlags.plusV || p.fmt.fmtFlags.sharpV) { */ case 59: + _r$7 = $clone(f, reflect.Value).Type().Field(i$1); /* */ $s = 61; case 61: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + name = _r$7.Name; + if (!(name === "")) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(name); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(58); + } + /* } */ case 60: + _r$8 = getField($clone(f, reflect.Value), i$1); /* */ $s = 62; case 62: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + $r = p.printValue($clone(_r$8, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 63; case 63: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i$1 = i$1 + (1) >> 0; + /* } */ $s = 57; continue; case 58: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(125); + $s = 24; continue; + /* } else if (_1 === (20)) { */ case 19: + _r$9 = $clone(f, reflect.Value).Elem(); /* */ $s = 64; case 64: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + value$1 = _r$9; + /* */ if (!$clone(value$1, reflect.Value).IsValid()) { $s = 65; continue; } + /* */ $s = 66; continue; + /* if (!$clone(value$1, reflect.Value).IsValid()) { */ case 65: + /* */ if (p.fmt.fmtFlags.sharpV) { $s = 68; continue; } + /* */ $s = 69; continue; + /* if (p.fmt.fmtFlags.sharpV) { */ case 68: + _r$10 = $clone(f, reflect.Value).Type().String(); /* */ $s = 71; case 71: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(_r$10); /* */ $s = 72; case 72: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("(nil)"); + $s = 70; continue; + /* } else { */ case 69: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(""); + /* } */ case 70: + $s = 67; continue; + /* } else { */ case 66: + $r = p.printValue($clone(value$1, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 73; case 73: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 67: + $s = 24; continue; + /* } else if ((_1 === (17)) || (_1 === (23))) { */ case 20: + _3 = verb; + /* */ if ((_3 === (115)) || (_3 === (113)) || (_3 === (120)) || (_3 === (88))) { $s = 75; continue; } + /* */ $s = 76; continue; + /* if ((_3 === (115)) || (_3 === (113)) || (_3 === (120)) || (_3 === (88))) { */ case 75: + t = $clone(f, reflect.Value).Type(); + _r$11 = t.Elem(); /* */ $s = 79; case 79: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _r$12 = _r$11.Kind(); /* */ $s = 80; case 80: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + /* */ if (_r$12 === 8) { $s = 77; continue; } + /* */ $s = 78; continue; + /* if (_r$12 === 8) { */ case 77: + bytes = sliceType$2.nil; + /* */ if ($clone(f, reflect.Value).Kind() === 23) { $s = 81; continue; } + /* */ if ($clone(f, reflect.Value).CanAddr()) { $s = 82; continue; } + /* */ $s = 83; continue; + /* if ($clone(f, reflect.Value).Kind() === 23) { */ case 81: + _r$13 = $clone(f, reflect.Value).Bytes(); /* */ $s = 85; case 85: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + bytes = _r$13; + $s = 84; continue; + /* } else if ($clone(f, reflect.Value).CanAddr()) { */ case 82: + _r$14 = $clone(f, reflect.Value).Slice(0, $clone(f, reflect.Value).Len()); /* */ $s = 86; case 86: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + _r$15 = $clone(_r$14, reflect.Value).Bytes(); /* */ $s = 87; case 87: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + bytes = _r$15; + $s = 84; continue; + /* } else { */ case 83: + bytes = $makeSlice(sliceType$2, $clone(f, reflect.Value).Len()); + _ref$1 = bytes; + _i$1 = 0; + /* while (true) { */ case 88: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 89; continue; } + i$2 = _i$1; + _r$16 = $clone(f, reflect.Value).Index(i$2); /* */ $s = 90; case 90: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + _r$17 = $clone(_r$16, reflect.Value).Uint(); /* */ $s = 91; case 91: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + ((i$2 < 0 || i$2 >= bytes.$length) ? ($throwRuntimeError("index out of range"), undefined) : bytes.$array[bytes.$offset + i$2] = ((_r$17.$low << 24 >>> 24))); + _i$1++; + /* } */ $s = 88; continue; case 89: + /* } */ case 84: + _arg = bytes; + _arg$1 = verb; + _r$18 = t.String(); /* */ $s = 92; case 92: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + _arg$2 = _r$18; + $r = p.fmtBytes(_arg, _arg$1, _arg$2); /* */ $s = 93; case 93: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 78: + /* } */ case 76: + case 74: + /* */ if (p.fmt.fmtFlags.sharpV) { $s = 94; continue; } + /* */ $s = 95; continue; + /* if (p.fmt.fmtFlags.sharpV) { */ case 94: + _r$19 = $clone(f, reflect.Value).Type().String(); /* */ $s = 97; case 97: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(_r$19); /* */ $s = 98; case 98: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (($clone(f, reflect.Value).Kind() === 23) && $clone(f, reflect.Value).IsNil()) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("(nil)"); + $s = -1; return; + } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(123); + i$3 = 0; + /* while (true) { */ case 99: + /* if (!(i$3 < $clone(f, reflect.Value).Len())) { break; } */ if(!(i$3 < $clone(f, reflect.Value).Len())) { $s = 100; continue; } + if (i$3 > 0) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(", "); + } + _r$20 = $clone(f, reflect.Value).Index(i$3); /* */ $s = 101; case 101: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + $r = p.printValue($clone(_r$20, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 102; case 102: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i$3 = i$3 + (1) >> 0; + /* } */ $s = 99; continue; case 100: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(125); + $s = 96; continue; + /* } else { */ case 95: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(91); + i$4 = 0; + /* while (true) { */ case 103: + /* if (!(i$4 < $clone(f, reflect.Value).Len())) { break; } */ if(!(i$4 < $clone(f, reflect.Value).Len())) { $s = 104; continue; } + if (i$4 > 0) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(32); + } + _r$21 = $clone(f, reflect.Value).Index(i$4); /* */ $s = 105; case 105: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + $r = p.printValue($clone(_r$21, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 106; case 106: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i$4 = i$4 + (1) >> 0; + /* } */ $s = 103; continue; case 104: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(93); + /* } */ case 96: + $s = 24; continue; + /* } else if (_1 === (22)) { */ case 21: + /* */ if ((depth === 0) && !(($clone(f, reflect.Value).Pointer() === 0))) { $s = 107; continue; } + /* */ $s = 108; continue; + /* if ((depth === 0) && !(($clone(f, reflect.Value).Pointer() === 0))) { */ case 107: + _r$22 = $clone(f, reflect.Value).Elem(); /* */ $s = 110; case 110: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + a = _r$22; + _4 = $clone(a, reflect.Value).Kind(); + /* */ if ((_4 === (17)) || (_4 === (23)) || (_4 === (25)) || (_4 === (21))) { $s = 111; continue; } + /* */ $s = 112; continue; + /* if ((_4 === (17)) || (_4 === (23)) || (_4 === (25)) || (_4 === (21))) { */ case 111: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(38); + $r = p.printValue($clone(a, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 113; case 113: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 112: + case 109: + /* } */ case 108: + $r = p.fmtPointer($clone(f, reflect.Value), verb); /* */ $s = 114; case 114: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 24; continue; + /* } else if ((_1 === (18)) || (_1 === (19)) || (_1 === (26))) { */ case 22: + $r = p.fmtPointer($clone(f, reflect.Value), verb); /* */ $s = 115; case 115: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 24; continue; + /* } else { */ case 23: + $r = p.unknownType($clone(f, reflect.Value)); /* */ $s = 116; case 116: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 24: + case 7: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.printValue }; } $f._1 = _1; $f._2 = _2; $f._3 = _3; $f._4 = _4; $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._i = _i; $f._i$1 = _i$1; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$13 = _r$13; $f._r$14 = _r$14; $f._r$15 = _r$15; $f._r$16 = _r$16; $f._r$17 = _r$17; $f._r$18 = _r$18; $f._r$19 = _r$19; $f._r$2 = _r$2; $f._r$20 = _r$20; $f._r$21 = _r$21; $f._r$22 = _r$22; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._ref = _ref; $f._ref$1 = _ref$1; $f.a = a; $f.bytes = bytes; $f.depth = depth; $f.f = f; $f.i = i; $f.i$1 = i$1; $f.i$2 = i$2; $f.i$3 = i$3; $f.i$4 = i$4; $f.key = key; $f.keys = keys; $f.name = name; $f.p = p; $f.t = t; $f.value = value; $f.value$1 = value$1; $f.verb = verb; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + pp.prototype.printValue = function(value, verb, depth) { return this.$val.printValue(value, verb, depth); }; + intFromArg = function(a, argNum) { + var _1, _r, _tuple, a, argNum, isInt, n, n$1, newArgNum, num, v, x, x$1, x$2, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _tuple = $f._tuple; a = $f.a; argNum = $f.argNum; isInt = $f.isInt; n = $f.n; n$1 = $f.n$1; newArgNum = $f.newArgNum; num = $f.num; v = $f.v; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + num = 0; + isInt = false; + newArgNum = 0; + newArgNum = argNum; + /* */ if (argNum < a.$length) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (argNum < a.$length) { */ case 1: + _tuple = $assertType(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum]), $Int, true); + num = _tuple[0]; + isInt = _tuple[1]; + /* */ if (!isInt) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!isInt) { */ case 3: + _r = reflect.ValueOf(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum])); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + v = _r; + _1 = $clone(v, reflect.Value).Kind(); + if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { + n = $clone(v, reflect.Value).Int(); + if ((x = (new $Int64(0, (((n.$low + ((n.$high >> 31) * 4294967296)) >> 0)))), (x.$high === n.$high && x.$low === n.$low))) { + num = (((n.$low + ((n.$high >> 31) * 4294967296)) >> 0)); + isInt = true; + } + } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { + n$1 = $clone(v, reflect.Value).Uint(); + if ((x$1 = (new $Int64(n$1.$high, n$1.$low)), (x$1.$high > 0 || (x$1.$high === 0 && x$1.$low >= 0))) && (x$2 = (new $Uint64(0, ((n$1.$low >> 0)))), (x$2.$high === n$1.$high && x$2.$low === n$1.$low))) { + num = ((n$1.$low >> 0)); + isInt = true; + } + } + case 5: + /* } */ case 4: + newArgNum = argNum + 1 >> 0; + if (tooLarge(num)) { + num = 0; + isInt = false; + } + /* } */ case 2: + $s = -1; return [num, isInt, newArgNum]; + /* */ } return; } if ($f === undefined) { $f = { $blk: intFromArg }; } $f._1 = _1; $f._r = _r; $f._tuple = _tuple; $f.a = a; $f.argNum = argNum; $f.isInt = isInt; $f.n = n; $f.n$1 = n$1; $f.newArgNum = newArgNum; $f.num = num; $f.v = v; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$r = $r; return $f; + }; + parseArgNumber = function(format) { + var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, format, i, index, newi, ok, ok$1, wid, width; + index = 0; + wid = 0; + ok = false; + if (format.length < 3) { + _tmp = 0; + _tmp$1 = 1; + _tmp$2 = false; + index = _tmp; + wid = _tmp$1; + ok = _tmp$2; + return [index, wid, ok]; + } + i = 1; + while (true) { + if (!(i < format.length)) { break; } + if (format.charCodeAt(i) === 93) { + _tuple = parsenum(format, 1, i); + width = _tuple[0]; + ok$1 = _tuple[1]; + newi = _tuple[2]; + if (!ok$1 || !((newi === i))) { + _tmp$3 = 0; + _tmp$4 = i + 1 >> 0; + _tmp$5 = false; + index = _tmp$3; + wid = _tmp$4; + ok = _tmp$5; + return [index, wid, ok]; + } + _tmp$6 = width - 1 >> 0; + _tmp$7 = i + 1 >> 0; + _tmp$8 = true; + index = _tmp$6; + wid = _tmp$7; + ok = _tmp$8; + return [index, wid, ok]; + } + i = i + (1) >> 0; + } + _tmp$9 = 0; + _tmp$10 = 1; + _tmp$11 = false; + index = _tmp$9; + wid = _tmp$10; + ok = _tmp$11; + return [index, wid, ok]; + }; + pp.ptr.prototype.argNumber = function(argNum, format, i, numArgs) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tuple, argNum, format, found, i, index, newArgNum, newi, numArgs, ok, p, wid; + newArgNum = 0; + newi = 0; + found = false; + p = this; + if (format.length <= i || !((format.charCodeAt(i) === 91))) { + _tmp = argNum; + _tmp$1 = i; + _tmp$2 = false; + newArgNum = _tmp; + newi = _tmp$1; + found = _tmp$2; + return [newArgNum, newi, found]; + } + p.reordered = true; + _tuple = parseArgNumber($substring(format, i)); + index = _tuple[0]; + wid = _tuple[1]; + ok = _tuple[2]; + if (ok && 0 <= index && index < numArgs) { + _tmp$3 = index; + _tmp$4 = i + wid >> 0; + _tmp$5 = true; + newArgNum = _tmp$3; + newi = _tmp$4; + found = _tmp$5; + return [newArgNum, newi, found]; + } + p.goodArgNum = false; + _tmp$6 = argNum; + _tmp$7 = i + wid >> 0; + _tmp$8 = ok; + newArgNum = _tmp$6; + newi = _tmp$7; + found = _tmp$8; + return [newArgNum, newi, found]; + }; + pp.prototype.argNumber = function(argNum, format, i, numArgs) { return this.$val.argNumber(argNum, format, i, numArgs); }; + pp.ptr.prototype.badArgNum = function(verb) { + var p, verb; + p = this; + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("%!"); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteRune(verb); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("(BADINDEX)"); + }; + pp.prototype.badArgNum = function(verb) { return this.$val.badArgNum(verb); }; + pp.ptr.prototype.missingArg = function(verb) { + var p, verb; + p = this; + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("%!"); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteRune(verb); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("(MISSING)"); + }; + pp.prototype.missingArg = function(verb) { return this.$val.missingArg(verb); }; + pp.ptr.prototype.doPrintf = function(format, a) { + var _1, _i, _r, _r$1, _r$2, _ref, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, a, afterIndex, arg, argNum, c, end, format, i, i$1, lasti, p, size, verb, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _ref = $f._ref; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; _tuple$5 = $f._tuple$5; _tuple$6 = $f._tuple$6; _tuple$7 = $f._tuple$7; a = $f.a; afterIndex = $f.afterIndex; arg = $f.arg; argNum = $f.argNum; c = $f.c; end = $f.end; format = $f.format; i = $f.i; i$1 = $f.i$1; lasti = $f.lasti; p = $f.p; size = $f.size; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + end = format.length; + argNum = 0; + afterIndex = false; + p.reordered = false; + i = 0; + /* while (true) { */ case 1: + /* if (!(i < end)) { break; } */ if(!(i < end)) { $s = 2; continue; } + p.goodArgNum = true; + lasti = i; + while (true) { + if (!(i < end && !((format.charCodeAt(i) === 37)))) { break; } + i = i + (1) >> 0; + } + if (i > lasti) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString($substring(format, lasti, i)); + } + if (i >= end) { + /* break; */ $s = 2; continue; + } + i = i + (1) >> 0; + p.fmt.clearflags(); + /* while (true) { */ case 3: + /* if (!(i < end)) { break; } */ if(!(i < end)) { $s = 4; continue; } + c = format.charCodeAt(i); + _1 = c; + /* */ if (_1 === (35)) { $s = 6; continue; } + /* */ if (_1 === (48)) { $s = 7; continue; } + /* */ if (_1 === (43)) { $s = 8; continue; } + /* */ if (_1 === (45)) { $s = 9; continue; } + /* */ if (_1 === (32)) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (_1 === (35)) { */ case 6: + p.fmt.fmtFlags.sharp = true; + $s = 12; continue; + /* } else if (_1 === (48)) { */ case 7: + p.fmt.fmtFlags.zero = !p.fmt.fmtFlags.minus; + $s = 12; continue; + /* } else if (_1 === (43)) { */ case 8: + p.fmt.fmtFlags.plus = true; + $s = 12; continue; + /* } else if (_1 === (45)) { */ case 9: + p.fmt.fmtFlags.minus = true; + p.fmt.fmtFlags.zero = false; + $s = 12; continue; + /* } else if (_1 === (32)) { */ case 10: + p.fmt.fmtFlags.space = true; + $s = 12; continue; + /* } else { */ case 11: + /* */ if (97 <= c && c <= 122 && argNum < a.$length) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (97 <= c && c <= 122 && argNum < a.$length) { */ case 13: + if (c === 118) { + p.fmt.fmtFlags.sharpV = p.fmt.fmtFlags.sharp; + p.fmt.fmtFlags.sharp = false; + p.fmt.fmtFlags.plusV = p.fmt.fmtFlags.plus; + p.fmt.fmtFlags.plus = false; + } + $r = p.printArg(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum]), ((c >> 0))); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + argNum = argNum + (1) >> 0; + i = i + (1) >> 0; + /* continue formatLoop; */ $s = 1; continue s; + /* } */ case 14: + /* break simpleFormat; */ $s = 4; continue s; + /* } */ case 12: + case 5: + i = i + (1) >> 0; + /* } */ $s = 3; continue; case 4: + _tuple = p.argNumber(argNum, format, i, a.$length); + argNum = _tuple[0]; + i = _tuple[1]; + afterIndex = _tuple[2]; + /* */ if (i < end && (format.charCodeAt(i) === 42)) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (i < end && (format.charCodeAt(i) === 42)) { */ case 16: + i = i + (1) >> 0; + _r = intFromArg(a, argNum); /* */ $s = 19; case 19: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple$1 = _r; + p.fmt.wid = _tuple$1[0]; + p.fmt.fmtFlags.widPresent = _tuple$1[1]; + argNum = _tuple$1[2]; + if (!p.fmt.fmtFlags.widPresent) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("%!(BADWIDTH)"); + } + if (p.fmt.wid < 0) { + p.fmt.wid = -p.fmt.wid; + p.fmt.fmtFlags.minus = true; + p.fmt.fmtFlags.zero = false; + } + afterIndex = false; + $s = 18; continue; + /* } else { */ case 17: + _tuple$2 = parsenum(format, i, end); + p.fmt.wid = _tuple$2[0]; + p.fmt.fmtFlags.widPresent = _tuple$2[1]; + i = _tuple$2[2]; + if (afterIndex && p.fmt.fmtFlags.widPresent) { + p.goodArgNum = false; + } + /* } */ case 18: + /* */ if ((i + 1 >> 0) < end && (format.charCodeAt(i) === 46)) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if ((i + 1 >> 0) < end && (format.charCodeAt(i) === 46)) { */ case 20: + i = i + (1) >> 0; + if (afterIndex) { + p.goodArgNum = false; + } + _tuple$3 = p.argNumber(argNum, format, i, a.$length); + argNum = _tuple$3[0]; + i = _tuple$3[1]; + afterIndex = _tuple$3[2]; + /* */ if (i < end && (format.charCodeAt(i) === 42)) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (i < end && (format.charCodeAt(i) === 42)) { */ case 22: + i = i + (1) >> 0; + _r$1 = intFromArg(a, argNum); /* */ $s = 25; case 25: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$4 = _r$1; + p.fmt.prec = _tuple$4[0]; + p.fmt.fmtFlags.precPresent = _tuple$4[1]; + argNum = _tuple$4[2]; + if (p.fmt.prec < 0) { + p.fmt.prec = 0; + p.fmt.fmtFlags.precPresent = false; + } + if (!p.fmt.fmtFlags.precPresent) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("%!(BADPREC)"); + } + afterIndex = false; + $s = 24; continue; + /* } else { */ case 23: + _tuple$5 = parsenum(format, i, end); + p.fmt.prec = _tuple$5[0]; + p.fmt.fmtFlags.precPresent = _tuple$5[1]; + i = _tuple$5[2]; + if (!p.fmt.fmtFlags.precPresent) { + p.fmt.prec = 0; + p.fmt.fmtFlags.precPresent = true; + } + /* } */ case 24: + /* } */ case 21: + if (!afterIndex) { + _tuple$6 = p.argNumber(argNum, format, i, a.$length); + argNum = _tuple$6[0]; + i = _tuple$6[1]; + afterIndex = _tuple$6[2]; + } + if (i >= end) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("%!(NOVERB)"); + /* break; */ $s = 2; continue; + } + _tmp = ((format.charCodeAt(i) >> 0)); + _tmp$1 = 1; + verb = _tmp; + size = _tmp$1; + if (verb >= 128) { + _tuple$7 = utf8.DecodeRuneInString($substring(format, i)); + verb = _tuple$7[0]; + size = _tuple$7[1]; + } + i = i + (size) >> 0; + /* */ if ((verb === 37)) { $s = 27; continue; } + /* */ if (!p.goodArgNum) { $s = 28; continue; } + /* */ if (argNum >= a.$length) { $s = 29; continue; } + /* */ if ((verb === 118)) { $s = 30; continue; } + /* */ $s = 31; continue; + /* if ((verb === 37)) { */ case 27: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(37); + $s = 32; continue; + /* } else if (!p.goodArgNum) { */ case 28: + p.badArgNum(verb); + $s = 32; continue; + /* } else if (argNum >= a.$length) { */ case 29: + p.missingArg(verb); + $s = 32; continue; + /* } else if ((verb === 118)) { */ case 30: + p.fmt.fmtFlags.sharpV = p.fmt.fmtFlags.sharp; + p.fmt.fmtFlags.sharp = false; + p.fmt.fmtFlags.plusV = p.fmt.fmtFlags.plus; + p.fmt.fmtFlags.plus = false; + $r = p.printArg(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum]), verb); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + argNum = argNum + (1) >> 0; + $s = 32; continue; + /* } else { */ case 31: + $r = p.printArg(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum]), verb); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + argNum = argNum + (1) >> 0; + /* } */ case 32: + case 26: + /* } */ $s = 1; continue; case 2: + /* */ if (!p.reordered && argNum < a.$length) { $s = 35; continue; } + /* */ $s = 36; continue; + /* if (!p.reordered && argNum < a.$length) { */ case 35: + p.fmt.clearflags(); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("%!(EXTRA "); + _ref = $subslice(a, argNum); + _i = 0; + /* while (true) { */ case 37: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 38; continue; } + i$1 = _i; + arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (i$1 > 0) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(", "); + } + /* */ if ($interfaceIsEqual(arg, $ifaceNil)) { $s = 39; continue; } + /* */ $s = 40; continue; + /* if ($interfaceIsEqual(arg, $ifaceNil)) { */ case 39: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(""); + $s = 41; continue; + /* } else { */ case 40: + _r$2 = reflect.TypeOf(arg).String(); /* */ $s = 42; case 42: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(_r$2); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(61); + $r = p.printArg(arg, 118); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 41: + _i++; + /* } */ $s = 37; continue; case 38: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(41); + /* } */ case 36: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.doPrintf }; } $f._1 = _1; $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._ref = _ref; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f._tuple$5 = _tuple$5; $f._tuple$6 = _tuple$6; $f._tuple$7 = _tuple$7; $f.a = a; $f.afterIndex = afterIndex; $f.arg = arg; $f.argNum = argNum; $f.c = c; $f.end = end; $f.format = format; $f.i = i; $f.i$1 = i$1; $f.lasti = lasti; $f.p = p; $f.size = size; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f; + }; + pp.prototype.doPrintf = function(format, a) { return this.$val.doPrintf(format, a); }; + pp.ptr.prototype.doPrint = function(a) { + var _i, _r, _ref, _v, a, arg, argNum, isString, p, prevString, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; _v = $f._v; a = $f.a; arg = $f.arg; argNum = $f.argNum; isString = $f.isString; p = $f.p; prevString = $f.prevString; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + prevString = false; + _ref = a; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + argNum = _i; + arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!(!($interfaceIsEqual(arg, $ifaceNil)))) { _v = false; $s = 3; continue s; } + _r = reflect.TypeOf(arg).Kind(); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r === 24; case 3: + isString = _v; + if (argNum > 0 && !isString && !prevString) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(32); + } + $r = p.printArg(arg, 118); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + prevString = isString; + _i++; + /* } */ $s = 1; continue; case 2: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.doPrint }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f._v = _v; $f.a = a; $f.arg = arg; $f.argNum = argNum; $f.isString = isString; $f.p = p; $f.prevString = prevString; $f.$s = $s; $f.$r = $r; return $f; + }; + pp.prototype.doPrint = function(a) { return this.$val.doPrint(a); }; + pp.ptr.prototype.doPrintln = function(a) { + var _i, _ref, a, arg, argNum, p, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _ref = $f._ref; a = $f.a; arg = $f.arg; argNum = $f.argNum; p = $f.p; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + _ref = a; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + argNum = _i; + arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (argNum > 0) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(32); + } + $r = p.printArg(arg, 118); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + /* } */ $s = 1; continue; case 2: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(10); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.doPrintln }; } $f._i = _i; $f._ref = _ref; $f.a = a; $f.arg = arg; $f.argNum = argNum; $f.p = p; $f.$s = $s; $f.$r = $r; return $f; + }; + pp.prototype.doPrintln = function(a) { return this.$val.doPrintln(a); }; + ss.ptr.prototype.Read = function(buf) { + var _tmp, _tmp$1, buf, err, n, s; + n = 0; + err = $ifaceNil; + s = this; + _tmp = 0; + _tmp$1 = errors.New("ScanState's Read should not be called. Use ReadRune"); + n = _tmp; + err = _tmp$1; + return [n, err]; + }; + ss.prototype.Read = function(buf) { return this.$val.Read(buf); }; + ss.ptr.prototype.ReadRune = function() { + var _r, _tuple, err, r, s, size, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; r = $f.r; s = $f.s; size = $f.size; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + r = 0; + size = 0; + err = $ifaceNil; + s = this; + if (s.atEOF || s.count >= s.ssave.argLimit) { + err = io.EOF; + $s = -1; return [r, size, err]; + } + _r = s.rs.ReadRune(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + r = _tuple[0]; + size = _tuple[1]; + err = _tuple[2]; + if ($interfaceIsEqual(err, $ifaceNil)) { + s.count = s.count + (1) >> 0; + if (s.ssave.nlIsEnd && (r === 10)) { + s.atEOF = true; + } + } else if ($interfaceIsEqual(err, io.EOF)) { + s.atEOF = true; + } + $s = -1; return [r, size, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: ss.ptr.prototype.ReadRune }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.r = r; $f.s = s; $f.size = size; $f.$s = $s; $f.$r = $r; return $f; + }; + ss.prototype.ReadRune = function() { return this.$val.ReadRune(); }; + ss.ptr.prototype.Width = function() { + var _tmp, _tmp$1, _tmp$2, _tmp$3, ok, s, wid; + wid = 0; + ok = false; + s = this; + if (s.ssave.maxWid === 1073741824) { + _tmp = 0; + _tmp$1 = false; + wid = _tmp; + ok = _tmp$1; + return [wid, ok]; + } + _tmp$2 = s.ssave.maxWid; + _tmp$3 = true; + wid = _tmp$2; + ok = _tmp$3; + return [wid, ok]; + }; + ss.prototype.Width = function() { return this.$val.Width(); }; + ss.ptr.prototype.getRune = function() { + var _r, _tuple, err, r, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; r = $f.r; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + r = 0; + s = this; + _r = s.ReadRune(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + r = _tuple[0]; + err = _tuple[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + if ($interfaceIsEqual(err, io.EOF)) { + r = -1; + $s = -1; return r; + } + s.error(err); + } + $s = -1; return r; + /* */ } return; } if ($f === undefined) { $f = { $blk: ss.ptr.prototype.getRune }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.r = r; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + ss.prototype.getRune = function() { return this.$val.getRune(); }; + ss.ptr.prototype.UnreadRune = function() { + var _r, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + s = this; + _r = s.rs.UnreadRune(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + s.atEOF = false; + s.count = s.count - (1) >> 0; + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: ss.ptr.prototype.UnreadRune }; } $f._r = _r; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + ss.prototype.UnreadRune = function() { return this.$val.UnreadRune(); }; + ss.ptr.prototype.error = function(err) { + var err, s, x; + s = this; + $panic((x = new scanError.ptr(err), new x.constructor.elem(x))); + }; + ss.prototype.error = function(err) { return this.$val.error(err); }; + ss.ptr.prototype.errorString = function(err) { + var err, s, x; + s = this; + $panic((x = new scanError.ptr(errors.New(err)), new x.constructor.elem(x))); + }; + ss.prototype.errorString = function(err) { return this.$val.errorString(err); }; + ss.ptr.prototype.Token = function(skipSpace, f) { + var _r, err, f, s, skipSpace, tok, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; err = $f.err; f = $f.f; s = $f.s; skipSpace = $f.skipSpace; tok = $f.tok; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + err = [err]; + tok = sliceType$2.nil; + err[0] = $ifaceNil; + s = this; + $deferred.push([(function(err) { return function() { + var _tuple, e, ok, se; + e = $recover(); + if (!($interfaceIsEqual(e, $ifaceNil))) { + _tuple = $assertType(e, scanError, true); + se = $clone(_tuple[0], scanError); + ok = _tuple[1]; + if (ok) { + err[0] = se.err; + } else { + $panic(e); + } + } + }; })(err), []]); + if (f === $throwNilPointerError) { + f = notSpace; + } + s.buf = $subslice(s.buf, 0, 0); + _r = s.token(skipSpace, f); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + tok = _r; + $s = -1; return [tok, err[0]]; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [tok, err[0]]; } if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: ss.ptr.prototype.Token }; } $f._r = _r; $f.err = err; $f.f = f; $f.s = s; $f.skipSpace = skipSpace; $f.tok = tok; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + ss.prototype.Token = function(skipSpace, f) { return this.$val.Token(skipSpace, f); }; + isSpace = function(r) { + var _i, _ref, r, rng, rx; + if (r >= 65536) { + return false; + } + rx = ((r << 16 >>> 16)); + _ref = space; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + rng = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), arrayType$1); + if (rx < rng[0]) { + return false; + } + if (rx <= rng[1]) { + return true; + } + _i++; + } + return false; + }; + notSpace = function(r) { + var r; + return !isSpace(r); + }; + ss.ptr.prototype.free = function(old) { + var old, s; + s = this; + if (old.validSave) { + ssave.copy(s.ssave, old); + return; + } + if (s.buf.$capacity > 1024) { + return; + } + s.buf = $subslice(s.buf, 0, 0); + s.rs = $ifaceNil; + ssFree.Put(s); + }; + ss.prototype.free = function(old) { return this.$val.free(old); }; + ss.ptr.prototype.SkipSpace = function() { + var _r, _r$1, _r$2, _v, r, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _v = $f._v; r = $f.r; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + s = this; + /* while (true) { */ case 1: + _r = s.getRune(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + r = _r; + if (r === -1) { + $s = -1; return; + } + if (!(r === 13)) { _v = false; $s = 6; continue s; } + _r$1 = s.peek("\n"); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = _r$1; case 6: + /* */ if (_v) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_v) { */ case 4: + /* continue; */ $s = 1; continue; + /* } */ case 5: + /* */ if (r === 10) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (r === 10) { */ case 8: + if (s.ssave.nlIsSpace) { + /* continue; */ $s = 1; continue; + } + s.errorString("unexpected newline"); + $s = -1; return; + /* } */ case 9: + /* */ if (!isSpace(r)) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (!isSpace(r)) { */ case 10: + _r$2 = s.UnreadRune(); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + /* break; */ $s = 2; continue; + /* } */ case 11: + /* } */ $s = 1; continue; case 2: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: ss.ptr.prototype.SkipSpace }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._v = _v; $f.r = r; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + ss.prototype.SkipSpace = function() { return this.$val.SkipSpace(); }; + ss.ptr.prototype.token = function(skipSpace, f) { + var _r, _r$1, _r$2, f, r, s, skipSpace, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; f = $f.f; r = $f.r; s = $f.s; skipSpace = $f.skipSpace; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + s = this; + /* */ if (skipSpace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (skipSpace) { */ case 1: + $r = s.SkipSpace(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + /* while (true) { */ case 4: + _r = s.getRune(); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + r = _r; + if (r === -1) { + /* break; */ $s = 5; continue; + } + _r$1 = f(r); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!_r$1) { */ case 7: + _r$2 = s.UnreadRune(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + /* break; */ $s = 5; continue; + /* } */ case 8: + (s.$ptr_buf || (s.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, s))).WriteRune(r); + /* } */ $s = 4; continue; case 5: + $s = -1; return (x = s.buf, $subslice(new sliceType$2(x.$array), x.$offset, x.$offset + x.$length)); + /* */ } return; } if ($f === undefined) { $f = { $blk: ss.ptr.prototype.token }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.f = f; $f.r = r; $f.s = s; $f.skipSpace = skipSpace; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + ss.prototype.token = function(skipSpace, f) { return this.$val.token(skipSpace, f); }; + indexRune = function(s, r) { + var _i, _ref, _rune, c, i, r, s; + _ref = s; + _i = 0; + while (true) { + if (!(_i < _ref.length)) { break; } + _rune = $decodeRune(_ref, _i); + i = _i; + c = _rune[0]; + if (c === r) { + return i; + } + _i += _rune[1]; + } + return -1; + }; + ss.ptr.prototype.peek = function(ok) { + var _r, _r$1, ok, r, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; ok = $f.ok; r = $f.r; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + s = this; + _r = s.getRune(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + r = _r; + /* */ if (!((r === -1))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!((r === -1))) { */ case 2: + _r$1 = s.UnreadRune(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + /* } */ case 3: + $s = -1; return indexRune(ok, r) >= 0; + /* */ } return; } if ($f === undefined) { $f = { $blk: ss.ptr.prototype.peek }; } $f._r = _r; $f._r$1 = _r$1; $f.ok = ok; $f.r = r; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + ss.prototype.peek = function(ok) { return this.$val.peek(ok); }; + ptrType$25.methods = [{prop: "clearflags", name: "clearflags", pkg: "fmt", typ: $funcType([], [], false)}, {prop: "init", name: "init", pkg: "fmt", typ: $funcType([ptrType$1], [], false)}, {prop: "writePadding", name: "writePadding", pkg: "fmt", typ: $funcType([$Int], [], false)}, {prop: "pad", name: "pad", pkg: "fmt", typ: $funcType([sliceType$2], [], false)}, {prop: "padString", name: "padString", pkg: "fmt", typ: $funcType([$String], [], false)}, {prop: "fmtBoolean", name: "fmtBoolean", pkg: "fmt", typ: $funcType([$Bool], [], false)}, {prop: "fmtUnicode", name: "fmtUnicode", pkg: "fmt", typ: $funcType([$Uint64], [], false)}, {prop: "fmtInteger", name: "fmtInteger", pkg: "fmt", typ: $funcType([$Uint64, $Int, $Bool, $String], [], false)}, {prop: "truncate", name: "truncate", pkg: "fmt", typ: $funcType([$String], [$String], false)}, {prop: "fmtS", name: "fmtS", pkg: "fmt", typ: $funcType([$String], [], false)}, {prop: "fmtSbx", name: "fmtSbx", pkg: "fmt", typ: $funcType([$String, sliceType$2, $String], [], false)}, {prop: "fmtSx", name: "fmtSx", pkg: "fmt", typ: $funcType([$String, $String], [], false)}, {prop: "fmtBx", name: "fmtBx", pkg: "fmt", typ: $funcType([sliceType$2, $String], [], false)}, {prop: "fmtQ", name: "fmtQ", pkg: "fmt", typ: $funcType([$String], [], false)}, {prop: "fmtC", name: "fmtC", pkg: "fmt", typ: $funcType([$Uint64], [], false)}, {prop: "fmtQc", name: "fmtQc", pkg: "fmt", typ: $funcType([$Uint64], [], false)}, {prop: "fmtFloat", name: "fmtFloat", pkg: "fmt", typ: $funcType([$Float64, $Int, $Int32, $Int], [], false)}]; + ptrType$1.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [], false)}, {prop: "WriteByte", name: "WriteByte", pkg: "", typ: $funcType([$Uint8], [], false)}, {prop: "WriteRune", name: "WriteRune", pkg: "", typ: $funcType([$Int32], [], false)}]; + ptrType$2.methods = [{prop: "free", name: "free", pkg: "fmt", typ: $funcType([], [], false)}, {prop: "Width", name: "Width", pkg: "", typ: $funcType([], [$Int, $Bool], false)}, {prop: "Precision", name: "Precision", pkg: "", typ: $funcType([], [$Int, $Bool], false)}, {prop: "Flag", name: "Flag", pkg: "", typ: $funcType([$Int], [$Bool], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false)}, {prop: "unknownType", name: "unknownType", pkg: "fmt", typ: $funcType([reflect.Value], [], false)}, {prop: "badVerb", name: "badVerb", pkg: "fmt", typ: $funcType([$Int32], [], false)}, {prop: "fmtBool", name: "fmtBool", pkg: "fmt", typ: $funcType([$Bool, $Int32], [], false)}, {prop: "fmt0x64", name: "fmt0x64", pkg: "fmt", typ: $funcType([$Uint64, $Bool], [], false)}, {prop: "fmtInteger", name: "fmtInteger", pkg: "fmt", typ: $funcType([$Uint64, $Bool, $Int32], [], false)}, {prop: "fmtFloat", name: "fmtFloat", pkg: "fmt", typ: $funcType([$Float64, $Int, $Int32], [], false)}, {prop: "fmtComplex", name: "fmtComplex", pkg: "fmt", typ: $funcType([$Complex128, $Int, $Int32], [], false)}, {prop: "fmtString", name: "fmtString", pkg: "fmt", typ: $funcType([$String, $Int32], [], false)}, {prop: "fmtBytes", name: "fmtBytes", pkg: "fmt", typ: $funcType([sliceType$2, $Int32, $String], [], false)}, {prop: "fmtPointer", name: "fmtPointer", pkg: "fmt", typ: $funcType([reflect.Value, $Int32], [], false)}, {prop: "catchPanic", name: "catchPanic", pkg: "fmt", typ: $funcType([$emptyInterface, $Int32], [], false)}, {prop: "handleMethods", name: "handleMethods", pkg: "fmt", typ: $funcType([$Int32], [$Bool], false)}, {prop: "printArg", name: "printArg", pkg: "fmt", typ: $funcType([$emptyInterface, $Int32], [], false)}, {prop: "printValue", name: "printValue", pkg: "fmt", typ: $funcType([reflect.Value, $Int32, $Int], [], false)}, {prop: "argNumber", name: "argNumber", pkg: "fmt", typ: $funcType([$Int, $String, $Int, $Int], [$Int, $Int, $Bool], false)}, {prop: "badArgNum", name: "badArgNum", pkg: "fmt", typ: $funcType([$Int32], [], false)}, {prop: "missingArg", name: "missingArg", pkg: "fmt", typ: $funcType([$Int32], [], false)}, {prop: "doPrintf", name: "doPrintf", pkg: "fmt", typ: $funcType([$String, sliceType], [], false)}, {prop: "doPrint", name: "doPrint", pkg: "fmt", typ: $funcType([sliceType], [], false)}, {prop: "doPrintln", name: "doPrintln", pkg: "fmt", typ: $funcType([sliceType], [], false)}]; + ptrType$5.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false)}, {prop: "Width", name: "Width", pkg: "", typ: $funcType([], [$Int, $Bool], false)}, {prop: "getRune", name: "getRune", pkg: "fmt", typ: $funcType([], [$Int32], false)}, {prop: "mustReadRune", name: "mustReadRune", pkg: "fmt", typ: $funcType([], [$Int32], false)}, {prop: "UnreadRune", name: "UnreadRune", pkg: "", typ: $funcType([], [$error], false)}, {prop: "error", name: "error", pkg: "fmt", typ: $funcType([$error], [], false)}, {prop: "errorString", name: "errorString", pkg: "fmt", typ: $funcType([$String], [], false)}, {prop: "Token", name: "Token", pkg: "", typ: $funcType([$Bool, funcType], [sliceType$2, $error], false)}, {prop: "free", name: "free", pkg: "fmt", typ: $funcType([ssave], [], false)}, {prop: "SkipSpace", name: "SkipSpace", pkg: "", typ: $funcType([], [], false)}, {prop: "token", name: "token", pkg: "fmt", typ: $funcType([$Bool, funcType], [sliceType$2], false)}, {prop: "consume", name: "consume", pkg: "fmt", typ: $funcType([$String, $Bool], [$Bool], false)}, {prop: "peek", name: "peek", pkg: "fmt", typ: $funcType([$String], [$Bool], false)}, {prop: "notEOF", name: "notEOF", pkg: "fmt", typ: $funcType([], [], false)}, {prop: "accept", name: "accept", pkg: "fmt", typ: $funcType([$String], [$Bool], false)}, {prop: "okVerb", name: "okVerb", pkg: "fmt", typ: $funcType([$Int32, $String, $String], [$Bool], false)}, {prop: "scanBool", name: "scanBool", pkg: "fmt", typ: $funcType([$Int32], [$Bool], false)}, {prop: "getBase", name: "getBase", pkg: "fmt", typ: $funcType([$Int32], [$Int, $String], false)}, {prop: "scanNumber", name: "scanNumber", pkg: "fmt", typ: $funcType([$String, $Bool], [$String], false)}, {prop: "scanRune", name: "scanRune", pkg: "fmt", typ: $funcType([$Int], [$Int64], false)}, {prop: "scanBasePrefix", name: "scanBasePrefix", pkg: "fmt", typ: $funcType([], [$Int, $String, $Bool], false)}, {prop: "scanInt", name: "scanInt", pkg: "fmt", typ: $funcType([$Int32, $Int], [$Int64], false)}, {prop: "scanUint", name: "scanUint", pkg: "fmt", typ: $funcType([$Int32, $Int], [$Uint64], false)}, {prop: "floatToken", name: "floatToken", pkg: "fmt", typ: $funcType([], [$String], false)}, {prop: "complexTokens", name: "complexTokens", pkg: "fmt", typ: $funcType([], [$String, $String], false)}, {prop: "convertFloat", name: "convertFloat", pkg: "fmt", typ: $funcType([$String, $Int], [$Float64], false)}, {prop: "scanComplex", name: "scanComplex", pkg: "fmt", typ: $funcType([$Int32, $Int], [$Complex128], false)}, {prop: "convertString", name: "convertString", pkg: "fmt", typ: $funcType([$Int32], [$String], false)}, {prop: "quotedString", name: "quotedString", pkg: "fmt", typ: $funcType([], [$String], false)}, {prop: "hexByte", name: "hexByte", pkg: "fmt", typ: $funcType([], [$Uint8, $Bool], false)}, {prop: "hexString", name: "hexString", pkg: "fmt", typ: $funcType([], [$String], false)}, {prop: "scanOne", name: "scanOne", pkg: "fmt", typ: $funcType([$Int32, $emptyInterface], [], false)}, {prop: "doScan", name: "doScan", pkg: "fmt", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "advance", name: "advance", pkg: "fmt", typ: $funcType([$String], [$Int], false)}, {prop: "doScanf", name: "doScanf", pkg: "fmt", typ: $funcType([$String, sliceType], [$Int, $error], false)}]; + fmtFlags.init("fmt", [{prop: "widPresent", name: "widPresent", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "precPresent", name: "precPresent", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "minus", name: "minus", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "plus", name: "plus", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "sharp", name: "sharp", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "space", name: "space", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "zero", name: "zero", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "plusV", name: "plusV", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "sharpV", name: "sharpV", embedded: false, exported: false, typ: $Bool, tag: ""}]); + fmt.init("fmt", [{prop: "buf", name: "buf", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "fmtFlags", name: "fmtFlags", embedded: true, exported: false, typ: fmtFlags, tag: ""}, {prop: "wid", name: "wid", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "prec", name: "prec", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "intbuf", name: "intbuf", embedded: false, exported: false, typ: arrayType, tag: ""}]); + State.init([{prop: "Flag", name: "Flag", pkg: "", typ: $funcType([$Int], [$Bool], false)}, {prop: "Precision", name: "Precision", pkg: "", typ: $funcType([], [$Int, $Bool], false)}, {prop: "Width", name: "Width", pkg: "", typ: $funcType([], [$Int, $Bool], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}]); + Formatter.init([{prop: "Format", name: "Format", pkg: "", typ: $funcType([State, $Int32], [], false)}]); + Stringer.init([{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]); + GoStringer.init([{prop: "GoString", name: "GoString", pkg: "", typ: $funcType([], [$String], false)}]); + buffer.init($Uint8); + pp.init("fmt", [{prop: "buf", name: "buf", embedded: false, exported: false, typ: buffer, tag: ""}, {prop: "arg", name: "arg", embedded: false, exported: false, typ: $emptyInterface, tag: ""}, {prop: "value", name: "value", embedded: false, exported: false, typ: reflect.Value, tag: ""}, {prop: "fmt", name: "fmt", embedded: false, exported: false, typ: fmt, tag: ""}, {prop: "reordered", name: "reordered", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "goodArgNum", name: "goodArgNum", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "panicking", name: "panicking", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "erroring", name: "erroring", embedded: false, exported: false, typ: $Bool, tag: ""}]); + scanError.init("fmt", [{prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}]); + ss.init("fmt", [{prop: "rs", name: "rs", embedded: false, exported: false, typ: io.RuneScanner, tag: ""}, {prop: "buf", name: "buf", embedded: false, exported: false, typ: buffer, tag: ""}, {prop: "count", name: "count", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "atEOF", name: "atEOF", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "ssave", name: "ssave", embedded: true, exported: false, typ: ssave, tag: ""}]); + ssave.init("fmt", [{prop: "validSave", name: "validSave", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "nlIsEnd", name: "nlIsEnd", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "nlIsSpace", name: "nlIsSpace", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "argLimit", name: "argLimit", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "limit", name: "limit", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "maxWid", name: "maxWid", embedded: false, exported: false, typ: $Int, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = math.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = os.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = reflect.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sync.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + ppFree = new sync.Pool.ptr(0, 0, sliceType.nil, (function() { + return new pp.ptr(buffer.nil, $ifaceNil, new reflect.Value.ptr(ptrType.nil, 0, 0), new fmt.ptr(ptrType$1.nil, new fmtFlags.ptr(false, false, false, false, false, false, false, false, false), 0, 0, arrayType.zero()), false, false, false, false); + })); + space = new sliceType$1([$toNativeArray($kindUint16, [9, 13]), $toNativeArray($kindUint16, [32, 32]), $toNativeArray($kindUint16, [133, 133]), $toNativeArray($kindUint16, [160, 160]), $toNativeArray($kindUint16, [5760, 5760]), $toNativeArray($kindUint16, [8192, 8202]), $toNativeArray($kindUint16, [8232, 8233]), $toNativeArray($kindUint16, [8239, 8239]), $toNativeArray($kindUint16, [8287, 8287]), $toNativeArray($kindUint16, [12288, 12288])]); + ssFree = new sync.Pool.ptr(0, 0, sliceType.nil, (function() { + return new ss.ptr($ifaceNil, buffer.nil, 0, false, new ssave.ptr(false, false, false, 0, 0, 0)); + })); + complexError = errors.New("syntax error scanning complex number"); + boolError = errors.New("syntax error scanning boolean"); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["github.com/makiuchi-d/gozxing/common/util"] = (function() { + var $pkg = {}, $init, math; + math = $packages["math"]; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = math.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["bufio"] = (function() { + var $pkg = {}, $init, bytes, errors, io, utf8, Reader, Writer, sliceType, ptrType, sliceType$1, ptrType$1, errNegativeRead, errNegativeWrite, NewReaderSize, NewReader, NewWriterSize; + bytes = $packages["bytes"]; + errors = $packages["errors"]; + io = $packages["io"]; + utf8 = $packages["unicode/utf8"]; + Reader = $pkg.Reader = $newType(0, $kindStruct, "bufio.Reader", true, "bufio", true, function(buf_, rd_, r_, w_, err_, lastByte_, lastRuneSize_) { + this.$val = this; + if (arguments.length === 0) { + this.buf = sliceType.nil; + this.rd = $ifaceNil; + this.r = 0; + this.w = 0; + this.err = $ifaceNil; + this.lastByte = 0; + this.lastRuneSize = 0; + return; + } + this.buf = buf_; + this.rd = rd_; + this.r = r_; + this.w = w_; + this.err = err_; + this.lastByte = lastByte_; + this.lastRuneSize = lastRuneSize_; + }); + Writer = $pkg.Writer = $newType(0, $kindStruct, "bufio.Writer", true, "bufio", true, function(err_, buf_, n_, wr_) { + this.$val = this; + if (arguments.length === 0) { + this.err = $ifaceNil; + this.buf = sliceType.nil; + this.n = 0; + this.wr = $ifaceNil; + return; + } + this.err = err_; + this.buf = buf_; + this.n = n_; + this.wr = wr_; + }); + sliceType = $sliceType($Uint8); + ptrType = $ptrType(Reader); + sliceType$1 = $sliceType(sliceType); + ptrType$1 = $ptrType(Writer); + NewReaderSize = function(rd, size) { + var _tuple, b, ok, r, rd, size; + _tuple = $assertType(rd, ptrType, true); + b = _tuple[0]; + ok = _tuple[1]; + if (ok && b.buf.$length >= size) { + return b; + } + if (size < 16) { + size = 16; + } + r = new Reader.ptr(sliceType.nil, $ifaceNil, 0, 0, $ifaceNil, 0, 0); + r.reset($makeSlice(sliceType, size), rd); + return r; + }; + $pkg.NewReaderSize = NewReaderSize; + NewReader = function(rd) { + var rd; + return NewReaderSize(rd, 4096); + }; + $pkg.NewReader = NewReader; + Reader.ptr.prototype.Size = function() { + var r; + r = this; + return r.buf.$length; + }; + Reader.prototype.Size = function() { return this.$val.Size(); }; + Reader.ptr.prototype.Reset = function(r) { + var b, r; + b = this; + b.reset(b.buf, r); + }; + Reader.prototype.Reset = function(r) { return this.$val.Reset(r); }; + Reader.ptr.prototype.reset = function(buf, r) { + var b, buf, r; + b = this; + Reader.copy(b, new Reader.ptr(buf, r, 0, 0, $ifaceNil, -1, -1)); + }; + Reader.prototype.reset = function(buf, r) { return this.$val.reset(buf, r); }; + Reader.ptr.prototype.fill = function() { + var _r, _tuple, b, err, i, n, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; b = $f.b; err = $f.err; i = $f.i; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + b = this; + if (b.r > 0) { + $copySlice(b.buf, $subslice(b.buf, b.r, b.w)); + b.w = b.w - (b.r) >> 0; + b.r = 0; + } + if (b.w >= b.buf.$length) { + $panic(new $String("bufio: tried to fill full buffer")); + } + i = 100; + /* while (true) { */ case 1: + /* if (!(i > 0)) { break; } */ if(!(i > 0)) { $s = 2; continue; } + _r = b.rd.Read($subslice(b.buf, b.w)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + err = _tuple[1]; + if (n < 0) { + $panic(errNegativeRead); + } + b.w = b.w + (n) >> 0; + if (!($interfaceIsEqual(err, $ifaceNil))) { + b.err = err; + $s = -1; return; + } + if (n > 0) { + $s = -1; return; + } + i = i - (1) >> 0; + /* } */ $s = 1; continue; case 2: + b.err = io.ErrNoProgress; + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Reader.ptr.prototype.fill }; } $f._r = _r; $f._tuple = _tuple; $f.b = b; $f.err = err; $f.i = i; $f.n = n; $f.$s = $s; $f.$r = $r; return $f; + }; + Reader.prototype.fill = function() { return this.$val.fill(); }; + Reader.ptr.prototype.readErr = function() { + var b, err; + b = this; + err = b.err; + b.err = $ifaceNil; + return err; + }; + Reader.prototype.readErr = function() { return this.$val.readErr(); }; + Reader.ptr.prototype.Peek = function(n) { + var avail, b, err, n, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; avail = $f.avail; b = $f.b; err = $f.err; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + b = this; + if (n < 0) { + $s = -1; return [sliceType.nil, $pkg.ErrNegativeCount]; + } + /* while (true) { */ case 1: + /* if (!((b.w - b.r >> 0) < n && (b.w - b.r >> 0) < b.buf.$length && $interfaceIsEqual(b.err, $ifaceNil))) { break; } */ if(!((b.w - b.r >> 0) < n && (b.w - b.r >> 0) < b.buf.$length && $interfaceIsEqual(b.err, $ifaceNil))) { $s = 2; continue; } + $r = b.fill(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ $s = 1; continue; case 2: + if (n > b.buf.$length) { + $s = -1; return [$subslice(b.buf, b.r, b.w), $pkg.ErrBufferFull]; + } + err = $ifaceNil; + avail = b.w - b.r >> 0; + if (avail < n) { + n = avail; + err = b.readErr(); + if ($interfaceIsEqual(err, $ifaceNil)) { + err = $pkg.ErrBufferFull; + } + } + $s = -1; return [$subslice(b.buf, b.r, (b.r + n >> 0)), err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Reader.ptr.prototype.Peek }; } $f.avail = avail; $f.b = b; $f.err = err; $f.n = n; $f.$s = $s; $f.$r = $r; return $f; + }; + Reader.prototype.Peek = function(n) { return this.$val.Peek(n); }; + Reader.ptr.prototype.Discard = function(n) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, b, discarded, err, n, remain, skip, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; b = $f.b; discarded = $f.discarded; err = $f.err; n = $f.n; remain = $f.remain; skip = $f.skip; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + discarded = 0; + err = $ifaceNil; + b = this; + if (n < 0) { + _tmp = 0; + _tmp$1 = $pkg.ErrNegativeCount; + discarded = _tmp; + err = _tmp$1; + $s = -1; return [discarded, err]; + } + if (n === 0) { + $s = -1; return [discarded, err]; + } + remain = n; + /* while (true) { */ case 1: + skip = b.Buffered(); + /* */ if (skip === 0) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (skip === 0) { */ case 3: + $r = b.fill(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + skip = b.Buffered(); + /* } */ case 4: + if (skip > remain) { + skip = remain; + } + b.r = b.r + (skip) >> 0; + remain = remain - (skip) >> 0; + if (remain === 0) { + _tmp$2 = n; + _tmp$3 = $ifaceNil; + discarded = _tmp$2; + err = _tmp$3; + $s = -1; return [discarded, err]; + } + if (!($interfaceIsEqual(b.err, $ifaceNil))) { + _tmp$4 = n - remain >> 0; + _tmp$5 = b.readErr(); + discarded = _tmp$4; + err = _tmp$5; + $s = -1; return [discarded, err]; + } + /* } */ $s = 1; continue; case 2: + $s = -1; return [discarded, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Reader.ptr.prototype.Discard }; } $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f.b = b; $f.discarded = discarded; $f.err = err; $f.n = n; $f.remain = remain; $f.skip = skip; $f.$s = $s; $f.$r = $r; return $f; + }; + Reader.prototype.Discard = function(n) { return this.$val.Discard(n); }; + Reader.ptr.prototype.Read = function(p) { + var _r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, b, err, n, p, x, x$1, x$2, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tmp$6 = $f._tmp$6; _tmp$7 = $f._tmp$7; _tmp$8 = $f._tmp$8; _tmp$9 = $f._tmp$9; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; b = $f.b; err = $f.err; n = $f.n; p = $f.p; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + b = this; + n = p.$length; + if (n === 0) { + _tmp = 0; + _tmp$1 = b.readErr(); + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + } + /* */ if (b.r === b.w) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (b.r === b.w) { */ case 1: + if (!($interfaceIsEqual(b.err, $ifaceNil))) { + _tmp$2 = 0; + _tmp$3 = b.readErr(); + n = _tmp$2; + err = _tmp$3; + $s = -1; return [n, err]; + } + /* */ if (p.$length >= b.buf.$length) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (p.$length >= b.buf.$length) { */ case 3: + _r = b.rd.Read(p); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + b.err = _tuple[1]; + if (n < 0) { + $panic(errNegativeRead); + } + if (n > 0) { + b.lastByte = (((x = n - 1 >> 0, ((x < 0 || x >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x])) >> 0)); + b.lastRuneSize = -1; + } + _tmp$4 = n; + _tmp$5 = b.readErr(); + n = _tmp$4; + err = _tmp$5; + $s = -1; return [n, err]; + /* } */ case 4: + b.r = 0; + b.w = 0; + _r$1 = b.rd.Read(b.buf); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + n = _tuple$1[0]; + b.err = _tuple$1[1]; + if (n < 0) { + $panic(errNegativeRead); + } + if (n === 0) { + _tmp$6 = 0; + _tmp$7 = b.readErr(); + n = _tmp$6; + err = _tmp$7; + $s = -1; return [n, err]; + } + b.w = b.w + (n) >> 0; + /* } */ case 2: + n = $copySlice(p, $subslice(b.buf, b.r, b.w)); + b.r = b.r + (n) >> 0; + b.lastByte = (((x$1 = b.buf, x$2 = b.r - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])) >> 0)); + b.lastRuneSize = -1; + _tmp$8 = n; + _tmp$9 = $ifaceNil; + n = _tmp$8; + err = _tmp$9; + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Reader.ptr.prototype.Read }; } $f._r = _r; $f._r$1 = _r$1; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tmp$6 = _tmp$6; $f._tmp$7 = _tmp$7; $f._tmp$8 = _tmp$8; $f._tmp$9 = _tmp$9; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.b = b; $f.err = err; $f.n = n; $f.p = p; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$r = $r; return $f; + }; + Reader.prototype.Read = function(p) { return this.$val.Read(p); }; + Reader.ptr.prototype.ReadByte = function() { + var b, c, x, x$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; b = $f.b; c = $f.c; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + b = this; + b.lastRuneSize = -1; + /* while (true) { */ case 1: + /* if (!(b.r === b.w)) { break; } */ if(!(b.r === b.w)) { $s = 2; continue; } + if (!($interfaceIsEqual(b.err, $ifaceNil))) { + $s = -1; return [0, b.readErr()]; + } + $r = b.fill(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ $s = 1; continue; case 2: + c = (x = b.buf, x$1 = b.r, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + b.r = b.r + (1) >> 0; + b.lastByte = ((c >> 0)); + $s = -1; return [c, $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Reader.ptr.prototype.ReadByte }; } $f.b = b; $f.c = c; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f; + }; + Reader.prototype.ReadByte = function() { return this.$val.ReadByte(); }; + Reader.ptr.prototype.UnreadByte = function() { + var b, x, x$1; + b = this; + if (b.lastByte < 0 || (b.r === 0) && b.w > 0) { + return $pkg.ErrInvalidUnreadByte; + } + if (b.r > 0) { + b.r = b.r - (1) >> 0; + } else { + b.w = 1; + } + (x = b.buf, x$1 = b.r, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1] = ((b.lastByte << 24 >>> 24)))); + b.lastByte = -1; + b.lastRuneSize = -1; + return $ifaceNil; + }; + Reader.prototype.UnreadByte = function() { return this.$val.UnreadByte(); }; + Reader.ptr.prototype.ReadRune = function() { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, b, err, r, size, x, x$1, x$2, x$3, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tmp$6 = $f._tmp$6; _tmp$7 = $f._tmp$7; _tuple = $f._tuple; b = $f.b; err = $f.err; r = $f.r; size = $f.size; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + r = 0; + size = 0; + err = $ifaceNil; + b = this; + /* while (true) { */ case 1: + /* if (!((b.r + 4 >> 0) > b.w && !utf8.FullRune($subslice(b.buf, b.r, b.w)) && $interfaceIsEqual(b.err, $ifaceNil) && (b.w - b.r >> 0) < b.buf.$length)) { break; } */ if(!((b.r + 4 >> 0) > b.w && !utf8.FullRune($subslice(b.buf, b.r, b.w)) && $interfaceIsEqual(b.err, $ifaceNil) && (b.w - b.r >> 0) < b.buf.$length)) { $s = 2; continue; } + $r = b.fill(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ $s = 1; continue; case 2: + b.lastRuneSize = -1; + if (b.r === b.w) { + _tmp = 0; + _tmp$1 = 0; + _tmp$2 = b.readErr(); + r = _tmp; + size = _tmp$1; + err = _tmp$2; + $s = -1; return [r, size, err]; + } + _tmp$3 = (((x = b.buf, x$1 = b.r, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])) >> 0)); + _tmp$4 = 1; + r = _tmp$3; + size = _tmp$4; + if (r >= 128) { + _tuple = utf8.DecodeRune($subslice(b.buf, b.r, b.w)); + r = _tuple[0]; + size = _tuple[1]; + } + b.r = b.r + (size) >> 0; + b.lastByte = (((x$2 = b.buf, x$3 = b.r - 1 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])) >> 0)); + b.lastRuneSize = size; + _tmp$5 = r; + _tmp$6 = size; + _tmp$7 = $ifaceNil; + r = _tmp$5; + size = _tmp$6; + err = _tmp$7; + $s = -1; return [r, size, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Reader.ptr.prototype.ReadRune }; } $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tmp$6 = _tmp$6; $f._tmp$7 = _tmp$7; $f._tuple = _tuple; $f.b = b; $f.err = err; $f.r = r; $f.size = size; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.$s = $s; $f.$r = $r; return $f; + }; + Reader.prototype.ReadRune = function() { return this.$val.ReadRune(); }; + Reader.ptr.prototype.UnreadRune = function() { + var b; + b = this; + if (b.lastRuneSize < 0 || b.r < b.lastRuneSize) { + return $pkg.ErrInvalidUnreadRune; + } + b.r = b.r - (b.lastRuneSize) >> 0; + b.lastByte = -1; + b.lastRuneSize = -1; + return $ifaceNil; + }; + Reader.prototype.UnreadRune = function() { return this.$val.UnreadRune(); }; + Reader.ptr.prototype.Buffered = function() { + var b; + b = this; + return b.w - b.r >> 0; + }; + Reader.prototype.Buffered = function() { return this.$val.Buffered(); }; + Reader.ptr.prototype.ReadSlice = function(delim) { + var b, delim, err, i, i$1, line, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; b = $f.b; delim = $f.delim; err = $f.err; i = $f.i; i$1 = $f.i$1; line = $f.line; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + line = sliceType.nil; + err = $ifaceNil; + b = this; + /* while (true) { */ case 1: + i = bytes.IndexByte($subslice(b.buf, b.r, b.w), delim); + if (i >= 0) { + line = $subslice(b.buf, b.r, ((b.r + i >> 0) + 1 >> 0)); + b.r = b.r + ((i + 1 >> 0)) >> 0; + /* break; */ $s = 2; continue; + } + if (!($interfaceIsEqual(b.err, $ifaceNil))) { + line = $subslice(b.buf, b.r, b.w); + b.r = b.w; + err = b.readErr(); + /* break; */ $s = 2; continue; + } + if (b.Buffered() >= b.buf.$length) { + b.r = b.w; + line = b.buf; + err = $pkg.ErrBufferFull; + /* break; */ $s = 2; continue; + } + $r = b.fill(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ $s = 1; continue; case 2: + i$1 = line.$length - 1 >> 0; + if (i$1 >= 0) { + b.lastByte = ((((i$1 < 0 || i$1 >= line.$length) ? ($throwRuntimeError("index out of range"), undefined) : line.$array[line.$offset + i$1]) >> 0)); + b.lastRuneSize = -1; + } + $s = -1; return [line, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Reader.ptr.prototype.ReadSlice }; } $f.b = b; $f.delim = delim; $f.err = err; $f.i = i; $f.i$1 = i$1; $f.line = line; $f.$s = $s; $f.$r = $r; return $f; + }; + Reader.prototype.ReadSlice = function(delim) { return this.$val.ReadSlice(delim); }; + Reader.ptr.prototype.ReadLine = function() { + var _r, _tmp, _tmp$1, _tmp$2, _tuple, b, drop, err, isPrefix, line, x, x$1, x$2, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tuple = $f._tuple; b = $f.b; drop = $f.drop; err = $f.err; isPrefix = $f.isPrefix; line = $f.line; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + line = sliceType.nil; + isPrefix = false; + err = $ifaceNil; + b = this; + _r = b.ReadSlice(10); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + line = _tuple[0]; + err = _tuple[1]; + if ($interfaceIsEqual(err, $pkg.ErrBufferFull)) { + if (line.$length > 0 && ((x = line.$length - 1 >> 0, ((x < 0 || x >= line.$length) ? ($throwRuntimeError("index out of range"), undefined) : line.$array[line.$offset + x])) === 13)) { + if (b.r === 0) { + $panic(new $String("bufio: tried to rewind past start of buffer")); + } + b.r = b.r - (1) >> 0; + line = $subslice(line, 0, (line.$length - 1 >> 0)); + } + _tmp = line; + _tmp$1 = true; + _tmp$2 = $ifaceNil; + line = _tmp; + isPrefix = _tmp$1; + err = _tmp$2; + $s = -1; return [line, isPrefix, err]; + } + if (line.$length === 0) { + if (!($interfaceIsEqual(err, $ifaceNil))) { + line = sliceType.nil; + } + $s = -1; return [line, isPrefix, err]; + } + err = $ifaceNil; + if ((x$1 = line.$length - 1 >> 0, ((x$1 < 0 || x$1 >= line.$length) ? ($throwRuntimeError("index out of range"), undefined) : line.$array[line.$offset + x$1])) === 10) { + drop = 1; + if (line.$length > 1 && ((x$2 = line.$length - 2 >> 0, ((x$2 < 0 || x$2 >= line.$length) ? ($throwRuntimeError("index out of range"), undefined) : line.$array[line.$offset + x$2])) === 13)) { + drop = 2; + } + line = $subslice(line, 0, (line.$length - drop >> 0)); + } + $s = -1; return [line, isPrefix, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Reader.ptr.prototype.ReadLine }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tuple = _tuple; $f.b = b; $f.drop = drop; $f.err = err; $f.isPrefix = isPrefix; $f.line = line; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$r = $r; return $f; + }; + Reader.prototype.ReadLine = function() { return this.$val.ReadLine(); }; + Reader.ptr.prototype.ReadBytes = function(delim) { + var _i, _i$1, _r, _ref, _ref$1, _tuple, b, buf, buf$1, delim, e, err, frag, full, i, i$1, n, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _i$1 = $f._i$1; _r = $f._r; _ref = $f._ref; _ref$1 = $f._ref$1; _tuple = $f._tuple; b = $f.b; buf = $f.buf; buf$1 = $f.buf$1; delim = $f.delim; e = $f.e; err = $f.err; frag = $f.frag; full = $f.full; i = $f.i; i$1 = $f.i$1; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + b = this; + frag = sliceType.nil; + full = sliceType$1.nil; + err = $ifaceNil; + /* while (true) { */ case 1: + e = $ifaceNil; + _r = b.ReadSlice(delim); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + frag = _tuple[0]; + e = _tuple[1]; + if ($interfaceIsEqual(e, $ifaceNil)) { + /* break; */ $s = 2; continue; + } + if (!($interfaceIsEqual(e, $pkg.ErrBufferFull))) { + err = e; + /* break; */ $s = 2; continue; + } + buf = $makeSlice(sliceType, frag.$length); + $copySlice(buf, frag); + full = $append(full, buf); + /* } */ $s = 1; continue; case 2: + n = 0; + _ref = full; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + n = n + (((i < 0 || i >= full.$length) ? ($throwRuntimeError("index out of range"), undefined) : full.$array[full.$offset + i]).$length) >> 0; + _i++; + } + n = n + (frag.$length) >> 0; + buf$1 = $makeSlice(sliceType, n); + n = 0; + _ref$1 = full; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i$1 = _i$1; + n = n + ($copySlice($subslice(buf$1, n), ((i$1 < 0 || i$1 >= full.$length) ? ($throwRuntimeError("index out of range"), undefined) : full.$array[full.$offset + i$1]))) >> 0; + _i$1++; + } + $copySlice($subslice(buf$1, n), frag); + $s = -1; return [buf$1, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Reader.ptr.prototype.ReadBytes }; } $f._i = _i; $f._i$1 = _i$1; $f._r = _r; $f._ref = _ref; $f._ref$1 = _ref$1; $f._tuple = _tuple; $f.b = b; $f.buf = buf; $f.buf$1 = buf$1; $f.delim = delim; $f.e = e; $f.err = err; $f.frag = frag; $f.full = full; $f.i = i; $f.i$1 = i$1; $f.n = n; $f.$s = $s; $f.$r = $r; return $f; + }; + Reader.prototype.ReadBytes = function(delim) { return this.$val.ReadBytes(delim); }; + Reader.ptr.prototype.ReadString = function(delim) { + var _r, _tuple, b, bytes$1, delim, err, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; b = $f.b; bytes$1 = $f.bytes$1; delim = $f.delim; err = $f.err; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + b = this; + _r = b.ReadBytes(delim); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + bytes$1 = _tuple[0]; + err = _tuple[1]; + $s = -1; return [($bytesToString(bytes$1)), err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Reader.ptr.prototype.ReadString }; } $f._r = _r; $f._tuple = _tuple; $f.b = b; $f.bytes$1 = bytes$1; $f.delim = delim; $f.err = err; $f.$s = $s; $f.$r = $r; return $f; + }; + Reader.prototype.ReadString = function(delim) { return this.$val.ReadString(delim); }; + Reader.ptr.prototype.WriteTo = function(w) { + var _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, b, err, err$1, err$2, err$3, m, m$1, m$2, n, ok, ok$1, r, w, w$1, x, x$1, x$2, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tmp$6 = $f._tmp$6; _tmp$7 = $f._tmp$7; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; _tuple$5 = $f._tuple$5; b = $f.b; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; err$3 = $f.err$3; m = $f.m; m$1 = $f.m$1; m$2 = $f.m$2; n = $f.n; ok = $f.ok; ok$1 = $f.ok$1; r = $f.r; w = $f.w; w$1 = $f.w$1; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = new $Int64(0, 0); + err = $ifaceNil; + b = this; + _r = b.writeBuf(w); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [n, err]; + } + _tuple$1 = $assertType(b.rd, io.WriterTo, true); + r = _tuple$1[0]; + ok = _tuple$1[1]; + /* */ if (ok) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (ok) { */ case 2: + _r$1 = r.WriteTo(w); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$2 = _r$1; + m = _tuple$2[0]; + err$1 = _tuple$2[1]; + n = (x = m, new $Int64(n.$high + x.$high, n.$low + x.$low)); + _tmp = n; + _tmp$1 = err$1; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + /* } */ case 3: + _tuple$3 = $assertType(w, io.ReaderFrom, true); + w$1 = _tuple$3[0]; + ok$1 = _tuple$3[1]; + /* */ if (ok$1) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (ok$1) { */ case 5: + _r$2 = w$1.ReadFrom(b.rd); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$4 = _r$2; + m$1 = _tuple$4[0]; + err$2 = _tuple$4[1]; + n = (x$1 = m$1, new $Int64(n.$high + x$1.$high, n.$low + x$1.$low)); + _tmp$2 = n; + _tmp$3 = err$2; + n = _tmp$2; + err = _tmp$3; + $s = -1; return [n, err]; + /* } */ case 6: + /* */ if ((b.w - b.r >> 0) < b.buf.$length) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if ((b.w - b.r >> 0) < b.buf.$length) { */ case 8: + $r = b.fill(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 9: + /* while (true) { */ case 11: + /* if (!(b.r < b.w)) { break; } */ if(!(b.r < b.w)) { $s = 12; continue; } + _r$3 = b.writeBuf(w); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$5 = _r$3; + m$2 = _tuple$5[0]; + err$3 = _tuple$5[1]; + n = (x$2 = m$2, new $Int64(n.$high + x$2.$high, n.$low + x$2.$low)); + if (!($interfaceIsEqual(err$3, $ifaceNil))) { + _tmp$4 = n; + _tmp$5 = err$3; + n = _tmp$4; + err = _tmp$5; + $s = -1; return [n, err]; + } + $r = b.fill(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ $s = 11; continue; case 12: + if ($interfaceIsEqual(b.err, io.EOF)) { + b.err = $ifaceNil; + } + _tmp$6 = n; + _tmp$7 = b.readErr(); + n = _tmp$6; + err = _tmp$7; + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Reader.ptr.prototype.WriteTo }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tmp$6 = _tmp$6; $f._tmp$7 = _tmp$7; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f._tuple$5 = _tuple$5; $f.b = b; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.err$3 = err$3; $f.m = m; $f.m$1 = m$1; $f.m$2 = m$2; $f.n = n; $f.ok = ok; $f.ok$1 = ok$1; $f.r = r; $f.w = w; $f.w$1 = w$1; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$r = $r; return $f; + }; + Reader.prototype.WriteTo = function(w) { return this.$val.WriteTo(w); }; + Reader.ptr.prototype.writeBuf = function(w) { + var _r, _tuple, b, err, n, w, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; b = $f.b; err = $f.err; n = $f.n; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + b = this; + _r = w.Write($subslice(b.buf, b.r, b.w)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + err = _tuple[1]; + if (n < 0) { + $panic(errNegativeWrite); + } + b.r = b.r + (n) >> 0; + $s = -1; return [(new $Int64(0, n)), err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Reader.ptr.prototype.writeBuf }; } $f._r = _r; $f._tuple = _tuple; $f.b = b; $f.err = err; $f.n = n; $f.w = w; $f.$s = $s; $f.$r = $r; return $f; + }; + Reader.prototype.writeBuf = function(w) { return this.$val.writeBuf(w); }; + NewWriterSize = function(w, size) { + var _tuple, b, ok, size, w; + _tuple = $assertType(w, ptrType$1, true); + b = _tuple[0]; + ok = _tuple[1]; + if (ok && b.buf.$length >= size) { + return b; + } + if (size <= 0) { + size = 4096; + } + return new Writer.ptr($ifaceNil, $makeSlice(sliceType, size), 0, w); + }; + $pkg.NewWriterSize = NewWriterSize; + Writer.ptr.prototype.Size = function() { + var b; + b = this; + return b.buf.$length; + }; + Writer.prototype.Size = function() { return this.$val.Size(); }; + Writer.ptr.prototype.Reset = function(w) { + var b, w; + b = this; + b.err = $ifaceNil; + b.n = 0; + b.wr = w; + }; + Writer.prototype.Reset = function(w) { return this.$val.Reset(w); }; + Writer.ptr.prototype.Flush = function() { + var _r, _tuple, b, err, n, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; b = $f.b; err = $f.err; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + b = this; + if (!($interfaceIsEqual(b.err, $ifaceNil))) { + $s = -1; return b.err; + } + if (b.n === 0) { + $s = -1; return $ifaceNil; + } + _r = b.wr.Write($subslice(b.buf, 0, b.n)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + err = _tuple[1]; + if (n < b.n && $interfaceIsEqual(err, $ifaceNil)) { + err = io.ErrShortWrite; + } + if (!($interfaceIsEqual(err, $ifaceNil))) { + if (n > 0 && n < b.n) { + $copySlice($subslice(b.buf, 0, (b.n - n >> 0)), $subslice(b.buf, n, b.n)); + } + b.n = b.n - (n) >> 0; + b.err = err; + $s = -1; return err; + } + b.n = 0; + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: Writer.ptr.prototype.Flush }; } $f._r = _r; $f._tuple = _tuple; $f.b = b; $f.err = err; $f.n = n; $f.$s = $s; $f.$r = $r; return $f; + }; + Writer.prototype.Flush = function() { return this.$val.Flush(); }; + Writer.ptr.prototype.Available = function() { + var b; + b = this; + return b.buf.$length - b.n >> 0; + }; + Writer.prototype.Available = function() { return this.$val.Available(); }; + Writer.ptr.prototype.Buffered = function() { + var b; + b = this; + return b.n; + }; + Writer.prototype.Buffered = function() { return this.$val.Buffered(); }; + Writer.ptr.prototype.Write = function(p) { + var _r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, err, n, n$1, nn, p, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tuple = $f._tuple; b = $f.b; err = $f.err; n = $f.n; n$1 = $f.n$1; nn = $f.nn; p = $f.p; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + nn = 0; + err = $ifaceNil; + b = this; + /* while (true) { */ case 1: + /* if (!(p.$length > b.Available() && $interfaceIsEqual(b.err, $ifaceNil))) { break; } */ if(!(p.$length > b.Available() && $interfaceIsEqual(b.err, $ifaceNil))) { $s = 2; continue; } + n = 0; + /* */ if (b.Buffered() === 0) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (b.Buffered() === 0) { */ case 3: + _r = b.wr.Write(p); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + b.err = _tuple[1]; + $s = 5; continue; + /* } else { */ case 4: + n = $copySlice($subslice(b.buf, b.n), p); + b.n = b.n + (n) >> 0; + _r$1 = b.Flush(); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + /* } */ case 5: + nn = nn + (n) >> 0; + p = $subslice(p, n); + /* } */ $s = 1; continue; case 2: + if (!($interfaceIsEqual(b.err, $ifaceNil))) { + _tmp = nn; + _tmp$1 = b.err; + nn = _tmp; + err = _tmp$1; + $s = -1; return [nn, err]; + } + n$1 = $copySlice($subslice(b.buf, b.n), p); + b.n = b.n + (n$1) >> 0; + nn = nn + (n$1) >> 0; + _tmp$2 = nn; + _tmp$3 = $ifaceNil; + nn = _tmp$2; + err = _tmp$3; + $s = -1; return [nn, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Writer.ptr.prototype.Write }; } $f._r = _r; $f._r$1 = _r$1; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tuple = _tuple; $f.b = b; $f.err = err; $f.n = n; $f.n$1 = n$1; $f.nn = nn; $f.p = p; $f.$s = $s; $f.$r = $r; return $f; + }; + Writer.prototype.Write = function(p) { return this.$val.Write(p); }; + Writer.ptr.prototype.WriteByte = function(c) { + var _r, _v, b, c, x, x$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _v = $f._v; b = $f.b; c = $f.c; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + b = this; + if (!($interfaceIsEqual(b.err, $ifaceNil))) { + $s = -1; return b.err; + } + if (!(b.Available() <= 0)) { _v = false; $s = 3; continue s; } + _r = b.Flush(); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = !($interfaceIsEqual(_r, $ifaceNil)); case 3: + /* */ if (_v) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_v) { */ case 1: + $s = -1; return b.err; + /* } */ case 2: + (x = b.buf, x$1 = b.n, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1] = c)); + b.n = b.n + (1) >> 0; + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: Writer.ptr.prototype.WriteByte }; } $f._r = _r; $f._v = _v; $f.b = b; $f.c = c; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f; + }; + Writer.prototype.WriteByte = function(c) { return this.$val.WriteByte(c); }; + Writer.ptr.prototype.WriteRune = function(r) { + var _r, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, b, err, n, r, size, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tmp$6 = $f._tmp$6; _tmp$7 = $f._tmp$7; _tmp$8 = $f._tmp$8; _tmp$9 = $f._tmp$9; _tuple = $f._tuple; b = $f.b; err = $f.err; n = $f.n; r = $f.r; size = $f.size; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + size = 0; + err = $ifaceNil; + b = this; + /* */ if (r < 128) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (r < 128) { */ case 1: + _r = b.WriteByte(((r << 24 >>> 24))); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp = 0; + _tmp$1 = err; + size = _tmp; + err = _tmp$1; + $s = -1; return [size, err]; + } + _tmp$2 = 1; + _tmp$3 = $ifaceNil; + size = _tmp$2; + err = _tmp$3; + $s = -1; return [size, err]; + /* } */ case 2: + if (!($interfaceIsEqual(b.err, $ifaceNil))) { + _tmp$4 = 0; + _tmp$5 = b.err; + size = _tmp$4; + err = _tmp$5; + $s = -1; return [size, err]; + } + n = b.Available(); + /* */ if (n < 4) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (n < 4) { */ case 4: + _r$1 = b.Flush(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + if (!($interfaceIsEqual(b.err, $ifaceNil))) { + _tmp$6 = 0; + _tmp$7 = b.err; + size = _tmp$6; + err = _tmp$7; + $s = -1; return [size, err]; + } + n = b.Available(); + /* */ if (n < 4) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (n < 4) { */ case 7: + _r$2 = b.WriteString(($encodeRune(r))); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple = _r$2; + size = _tuple[0]; + err = _tuple[1]; + $s = -1; return [size, err]; + /* } */ case 8: + /* } */ case 5: + size = utf8.EncodeRune($subslice(b.buf, b.n), r); + b.n = b.n + (size) >> 0; + _tmp$8 = size; + _tmp$9 = $ifaceNil; + size = _tmp$8; + err = _tmp$9; + $s = -1; return [size, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Writer.ptr.prototype.WriteRune }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tmp$6 = _tmp$6; $f._tmp$7 = _tmp$7; $f._tmp$8 = _tmp$8; $f._tmp$9 = _tmp$9; $f._tuple = _tuple; $f.b = b; $f.err = err; $f.n = n; $f.r = r; $f.size = size; $f.$s = $s; $f.$r = $r; return $f; + }; + Writer.prototype.WriteRune = function(r) { return this.$val.WriteRune(r); }; + Writer.ptr.prototype.WriteString = function(s) { + var _r, b, n, n$1, nn, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; b = $f.b; n = $f.n; n$1 = $f.n$1; nn = $f.nn; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + b = this; + nn = 0; + /* while (true) { */ case 1: + /* if (!(s.length > b.Available() && $interfaceIsEqual(b.err, $ifaceNil))) { break; } */ if(!(s.length > b.Available() && $interfaceIsEqual(b.err, $ifaceNil))) { $s = 2; continue; } + n = $copyString($subslice(b.buf, b.n), s); + b.n = b.n + (n) >> 0; + nn = nn + (n) >> 0; + s = $substring(s, n); + _r = b.Flush(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + /* } */ $s = 1; continue; case 2: + if (!($interfaceIsEqual(b.err, $ifaceNil))) { + $s = -1; return [nn, b.err]; + } + n$1 = $copyString($subslice(b.buf, b.n), s); + b.n = b.n + (n$1) >> 0; + nn = nn + (n$1) >> 0; + $s = -1; return [nn, $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Writer.ptr.prototype.WriteString }; } $f._r = _r; $f.b = b; $f.n = n; $f.n$1 = n$1; $f.nn = nn; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + Writer.prototype.WriteString = function(s) { return this.$val.WriteString(s); }; + Writer.ptr.prototype.ReadFrom = function(r) { + var _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$2, b, err, err1, m, n, nr, ok, r, w, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; b = $f.b; err = $f.err; err1 = $f.err1; m = $f.m; n = $f.n; nr = $f.nr; ok = $f.ok; r = $f.r; w = $f.w; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = new $Int64(0, 0); + err = $ifaceNil; + b = this; + /* */ if (b.Buffered() === 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (b.Buffered() === 0) { */ case 1: + _tuple = $assertType(b.wr, io.ReaderFrom, true); + w = _tuple[0]; + ok = _tuple[1]; + /* */ if (ok) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (ok) { */ case 3: + _r = w.ReadFrom(r); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple$1 = _r; + n = _tuple$1[0]; + err = _tuple$1[1]; + $s = -1; return [n, err]; + /* } */ case 4: + /* } */ case 2: + m = 0; + /* while (true) { */ case 6: + /* */ if (b.Available() === 0) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (b.Available() === 0) { */ case 8: + _r$1 = b.Flush(); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + err1 = _r$1; + if (!($interfaceIsEqual(err1, $ifaceNil))) { + _tmp = n; + _tmp$1 = err1; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + } + /* } */ case 9: + nr = 0; + /* while (true) { */ case 11: + /* if (!(nr < 100)) { break; } */ if(!(nr < 100)) { $s = 12; continue; } + _r$2 = r.Read($subslice(b.buf, b.n)); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$2 = _r$2; + m = _tuple$2[0]; + err = _tuple$2[1]; + if (!((m === 0)) || !($interfaceIsEqual(err, $ifaceNil))) { + /* break; */ $s = 12; continue; + } + nr = nr + (1) >> 0; + /* } */ $s = 11; continue; case 12: + if (nr === 100) { + _tmp$2 = n; + _tmp$3 = io.ErrNoProgress; + n = _tmp$2; + err = _tmp$3; + $s = -1; return [n, err]; + } + b.n = b.n + (m) >> 0; + n = (x = (new $Int64(0, m)), new $Int64(n.$high + x.$high, n.$low + x.$low)); + if (!($interfaceIsEqual(err, $ifaceNil))) { + /* break; */ $s = 7; continue; + } + /* } */ $s = 6; continue; case 7: + /* */ if ($interfaceIsEqual(err, io.EOF)) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if ($interfaceIsEqual(err, io.EOF)) { */ case 14: + /* */ if (b.Available() === 0) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (b.Available() === 0) { */ case 16: + _r$3 = b.Flush(); /* */ $s = 19; case 19: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + err = _r$3; + $s = 18; continue; + /* } else { */ case 17: + err = $ifaceNil; + /* } */ case 18: + /* } */ case 15: + _tmp$4 = n; + _tmp$5 = err; + n = _tmp$4; + err = _tmp$5; + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Writer.ptr.prototype.ReadFrom }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.b = b; $f.err = err; $f.err1 = err1; $f.m = m; $f.n = n; $f.nr = nr; $f.ok = ok; $f.r = r; $f.w = w; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + Writer.prototype.ReadFrom = function(r) { return this.$val.ReadFrom(r); }; + ptrType.methods = [{prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([io.Reader], [], false)}, {prop: "reset", name: "reset", pkg: "bufio", typ: $funcType([sliceType, io.Reader], [], false)}, {prop: "fill", name: "fill", pkg: "bufio", typ: $funcType([], [], false)}, {prop: "readErr", name: "readErr", pkg: "bufio", typ: $funcType([], [$error], false)}, {prop: "Peek", name: "Peek", pkg: "", typ: $funcType([$Int], [sliceType, $error], false)}, {prop: "Discard", name: "Discard", pkg: "", typ: $funcType([$Int], [$Int, $error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "ReadByte", name: "ReadByte", pkg: "", typ: $funcType([], [$Uint8, $error], false)}, {prop: "UnreadByte", name: "UnreadByte", pkg: "", typ: $funcType([], [$error], false)}, {prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false)}, {prop: "UnreadRune", name: "UnreadRune", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Buffered", name: "Buffered", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "ReadSlice", name: "ReadSlice", pkg: "", typ: $funcType([$Uint8], [sliceType, $error], false)}, {prop: "ReadLine", name: "ReadLine", pkg: "", typ: $funcType([], [sliceType, $Bool, $error], false)}, {prop: "ReadBytes", name: "ReadBytes", pkg: "", typ: $funcType([$Uint8], [sliceType, $error], false)}, {prop: "ReadString", name: "ReadString", pkg: "", typ: $funcType([$Uint8], [$String, $error], false)}, {prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([io.Writer], [$Int64, $error], false)}, {prop: "writeBuf", name: "writeBuf", pkg: "bufio", typ: $funcType([io.Writer], [$Int64, $error], false)}]; + ptrType$1.methods = [{prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([io.Writer], [], false)}, {prop: "Flush", name: "Flush", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Available", name: "Available", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Buffered", name: "Buffered", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "WriteByte", name: "WriteByte", pkg: "", typ: $funcType([$Uint8], [$error], false)}, {prop: "WriteRune", name: "WriteRune", pkg: "", typ: $funcType([$Int32], [$Int, $error], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false)}, {prop: "ReadFrom", name: "ReadFrom", pkg: "", typ: $funcType([io.Reader], [$Int64, $error], false)}]; + Reader.init("bufio", [{prop: "buf", name: "buf", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "rd", name: "rd", embedded: false, exported: false, typ: io.Reader, tag: ""}, {prop: "r", name: "r", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "w", name: "w", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "lastByte", name: "lastByte", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lastRuneSize", name: "lastRuneSize", embedded: false, exported: false, typ: $Int, tag: ""}]); + Writer.init("bufio", [{prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "buf", name: "buf", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "n", name: "n", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "wr", name: "wr", embedded: false, exported: false, typ: io.Writer, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errors.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.ErrInvalidUnreadByte = errors.New("bufio: invalid use of UnreadByte"); + $pkg.ErrInvalidUnreadRune = errors.New("bufio: invalid use of UnreadRune"); + $pkg.ErrBufferFull = errors.New("bufio: buffer full"); + $pkg.ErrNegativeCount = errors.New("bufio: negative count"); + errNegativeRead = errors.New("bufio: reader returned negative count from Read"); + errNegativeWrite = errors.New("bufio: writer returned negative count from Write"); + $pkg.ErrTooLong = errors.New("bufio.Scanner: token too long"); + $pkg.ErrNegativeAdvance = errors.New("bufio.Scanner: SplitFunc returns negative advance count"); + $pkg.ErrAdvanceTooFar = errors.New("bufio.Scanner: SplitFunc returns advance count beyond input"); + $pkg.ErrFinalToken = errors.New("final token"); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["image/color"] = (function() { + var $pkg = {}, $init, Color, RGBA, RGBA64, NRGBA, NRGBA64, Alpha, Alpha16, Gray, Gray16, Model, modelFunc, Palette, YCbCr, NYCbCrA, CMYK, ptrType, funcType, ModelFunc, rgbaModel, rgba64Model, nrgbaModel, nrgba64Model, alphaModel, alpha16Model, grayModel, gray16Model, sqDiff, RGBToYCbCr, yCbCrModel, nYCbCrAModel, RGBToCMYK, cmykModel; + Color = $pkg.Color = $newType(8, $kindInterface, "color.Color", true, "image/color", true, null); + RGBA = $pkg.RGBA = $newType(0, $kindStruct, "color.RGBA", true, "image/color", true, function(R_, G_, B_, A_) { + this.$val = this; + if (arguments.length === 0) { + this.R = 0; + this.G = 0; + this.B = 0; + this.A = 0; + return; + } + this.R = R_; + this.G = G_; + this.B = B_; + this.A = A_; + }); + RGBA64 = $pkg.RGBA64 = $newType(0, $kindStruct, "color.RGBA64", true, "image/color", true, function(R_, G_, B_, A_) { + this.$val = this; + if (arguments.length === 0) { + this.R = 0; + this.G = 0; + this.B = 0; + this.A = 0; + return; + } + this.R = R_; + this.G = G_; + this.B = B_; + this.A = A_; + }); + NRGBA = $pkg.NRGBA = $newType(0, $kindStruct, "color.NRGBA", true, "image/color", true, function(R_, G_, B_, A_) { + this.$val = this; + if (arguments.length === 0) { + this.R = 0; + this.G = 0; + this.B = 0; + this.A = 0; + return; + } + this.R = R_; + this.G = G_; + this.B = B_; + this.A = A_; + }); + NRGBA64 = $pkg.NRGBA64 = $newType(0, $kindStruct, "color.NRGBA64", true, "image/color", true, function(R_, G_, B_, A_) { + this.$val = this; + if (arguments.length === 0) { + this.R = 0; + this.G = 0; + this.B = 0; + this.A = 0; + return; + } + this.R = R_; + this.G = G_; + this.B = B_; + this.A = A_; + }); + Alpha = $pkg.Alpha = $newType(0, $kindStruct, "color.Alpha", true, "image/color", true, function(A_) { + this.$val = this; + if (arguments.length === 0) { + this.A = 0; + return; + } + this.A = A_; + }); + Alpha16 = $pkg.Alpha16 = $newType(0, $kindStruct, "color.Alpha16", true, "image/color", true, function(A_) { + this.$val = this; + if (arguments.length === 0) { + this.A = 0; + return; + } + this.A = A_; + }); + Gray = $pkg.Gray = $newType(0, $kindStruct, "color.Gray", true, "image/color", true, function(Y_) { + this.$val = this; + if (arguments.length === 0) { + this.Y = 0; + return; + } + this.Y = Y_; + }); + Gray16 = $pkg.Gray16 = $newType(0, $kindStruct, "color.Gray16", true, "image/color", true, function(Y_) { + this.$val = this; + if (arguments.length === 0) { + this.Y = 0; + return; + } + this.Y = Y_; + }); + Model = $pkg.Model = $newType(8, $kindInterface, "color.Model", true, "image/color", true, null); + modelFunc = $pkg.modelFunc = $newType(0, $kindStruct, "color.modelFunc", true, "image/color", false, function(f_) { + this.$val = this; + if (arguments.length === 0) { + this.f = $throwNilPointerError; + return; + } + this.f = f_; + }); + Palette = $pkg.Palette = $newType(12, $kindSlice, "color.Palette", true, "image/color", true, null); + YCbCr = $pkg.YCbCr = $newType(0, $kindStruct, "color.YCbCr", true, "image/color", true, function(Y_, Cb_, Cr_) { + this.$val = this; + if (arguments.length === 0) { + this.Y = 0; + this.Cb = 0; + this.Cr = 0; + return; + } + this.Y = Y_; + this.Cb = Cb_; + this.Cr = Cr_; + }); + NYCbCrA = $pkg.NYCbCrA = $newType(0, $kindStruct, "color.NYCbCrA", true, "image/color", true, function(YCbCr_, A_) { + this.$val = this; + if (arguments.length === 0) { + this.YCbCr = new YCbCr.ptr(0, 0, 0); + this.A = 0; + return; + } + this.YCbCr = YCbCr_; + this.A = A_; + }); + CMYK = $pkg.CMYK = $newType(0, $kindStruct, "color.CMYK", true, "image/color", true, function(C_, M_, Y_, K_) { + this.$val = this; + if (arguments.length === 0) { + this.C = 0; + this.M = 0; + this.Y = 0; + this.K = 0; + return; + } + this.C = C_; + this.M = M_; + this.Y = Y_; + this.K = K_; + }); + ptrType = $ptrType(modelFunc); + funcType = $funcType([Color], [Color], false); + RGBA.ptr.prototype.RGBA = function() { + var a, b, c, g, r; + r = 0; + g = 0; + b = 0; + a = 0; + c = this; + r = ((c.R >>> 0)); + r = (r | ((r << 8 >>> 0))) >>> 0; + g = ((c.G >>> 0)); + g = (g | ((g << 8 >>> 0))) >>> 0; + b = ((c.B >>> 0)); + b = (b | ((b << 8 >>> 0))) >>> 0; + a = ((c.A >>> 0)); + a = (a | ((a << 8 >>> 0))) >>> 0; + return [r, g, b, a]; + }; + RGBA.prototype.RGBA = function() { return this.$val.RGBA(); }; + RGBA64.ptr.prototype.RGBA = function() { + var _tmp, _tmp$1, _tmp$2, _tmp$3, a, b, c, g, r; + r = 0; + g = 0; + b = 0; + a = 0; + c = this; + _tmp = ((c.R >>> 0)); + _tmp$1 = ((c.G >>> 0)); + _tmp$2 = ((c.B >>> 0)); + _tmp$3 = ((c.A >>> 0)); + r = _tmp; + g = _tmp$1; + b = _tmp$2; + a = _tmp$3; + return [r, g, b, a]; + }; + RGBA64.prototype.RGBA = function() { return this.$val.RGBA(); }; + NRGBA.ptr.prototype.RGBA = function() { + var _q, _q$1, _q$2, a, b, c, g, r; + r = 0; + g = 0; + b = 0; + a = 0; + c = this; + r = ((c.R >>> 0)); + r = (r | ((r << 8 >>> 0))) >>> 0; + r = $imul(r, (((c.A >>> 0)))) >>> 0; + r = (_q = r / (255), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + g = ((c.G >>> 0)); + g = (g | ((g << 8 >>> 0))) >>> 0; + g = $imul(g, (((c.A >>> 0)))) >>> 0; + g = (_q$1 = g / (255), (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >>> 0 : $throwRuntimeError("integer divide by zero")); + b = ((c.B >>> 0)); + b = (b | ((b << 8 >>> 0))) >>> 0; + b = $imul(b, (((c.A >>> 0)))) >>> 0; + b = (_q$2 = b / (255), (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >>> 0 : $throwRuntimeError("integer divide by zero")); + a = ((c.A >>> 0)); + a = (a | ((a << 8 >>> 0))) >>> 0; + return [r, g, b, a]; + }; + NRGBA.prototype.RGBA = function() { return this.$val.RGBA(); }; + NRGBA64.ptr.prototype.RGBA = function() { + var _q, _q$1, _q$2, a, b, c, g, r; + r = 0; + g = 0; + b = 0; + a = 0; + c = this; + r = ((c.R >>> 0)); + r = $imul(r, (((c.A >>> 0)))) >>> 0; + r = (_q = r / (65535), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + g = ((c.G >>> 0)); + g = $imul(g, (((c.A >>> 0)))) >>> 0; + g = (_q$1 = g / (65535), (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >>> 0 : $throwRuntimeError("integer divide by zero")); + b = ((c.B >>> 0)); + b = $imul(b, (((c.A >>> 0)))) >>> 0; + b = (_q$2 = b / (65535), (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >>> 0 : $throwRuntimeError("integer divide by zero")); + a = ((c.A >>> 0)); + return [r, g, b, a]; + }; + NRGBA64.prototype.RGBA = function() { return this.$val.RGBA(); }; + Alpha.ptr.prototype.RGBA = function() { + var _tmp, _tmp$1, _tmp$2, _tmp$3, a, b, c, g, r; + r = 0; + g = 0; + b = 0; + a = 0; + c = this; + a = ((c.A >>> 0)); + a = (a | ((a << 8 >>> 0))) >>> 0; + _tmp = a; + _tmp$1 = a; + _tmp$2 = a; + _tmp$3 = a; + r = _tmp; + g = _tmp$1; + b = _tmp$2; + a = _tmp$3; + return [r, g, b, a]; + }; + Alpha.prototype.RGBA = function() { return this.$val.RGBA(); }; + Alpha16.ptr.prototype.RGBA = function() { + var _tmp, _tmp$1, _tmp$2, _tmp$3, a, b, c, g, r; + r = 0; + g = 0; + b = 0; + a = 0; + c = this; + a = ((c.A >>> 0)); + _tmp = a; + _tmp$1 = a; + _tmp$2 = a; + _tmp$3 = a; + r = _tmp; + g = _tmp$1; + b = _tmp$2; + a = _tmp$3; + return [r, g, b, a]; + }; + Alpha16.prototype.RGBA = function() { return this.$val.RGBA(); }; + Gray.ptr.prototype.RGBA = function() { + var _tmp, _tmp$1, _tmp$2, _tmp$3, a, b, c, g, r, y; + r = 0; + g = 0; + b = 0; + a = 0; + c = this; + y = ((c.Y >>> 0)); + y = (y | ((y << 8 >>> 0))) >>> 0; + _tmp = y; + _tmp$1 = y; + _tmp$2 = y; + _tmp$3 = 65535; + r = _tmp; + g = _tmp$1; + b = _tmp$2; + a = _tmp$3; + return [r, g, b, a]; + }; + Gray.prototype.RGBA = function() { return this.$val.RGBA(); }; + Gray16.ptr.prototype.RGBA = function() { + var _tmp, _tmp$1, _tmp$2, _tmp$3, a, b, c, g, r, y; + r = 0; + g = 0; + b = 0; + a = 0; + c = this; + y = ((c.Y >>> 0)); + _tmp = y; + _tmp$1 = y; + _tmp$2 = y; + _tmp$3 = 65535; + r = _tmp; + g = _tmp$1; + b = _tmp$2; + a = _tmp$3; + return [r, g, b, a]; + }; + Gray16.prototype.RGBA = function() { return this.$val.RGBA(); }; + ModelFunc = function(f) { + var f; + return new modelFunc.ptr(f); + }; + $pkg.ModelFunc = ModelFunc; + modelFunc.ptr.prototype.Convert = function(c) { + var _r, c, m, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; c = $f.c; m = $f.m; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + m = this; + _r = m.f(c); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: modelFunc.ptr.prototype.Convert }; } $f._r = _r; $f.c = c; $f.m = m; $f.$s = $s; $f.$r = $r; return $f; + }; + modelFunc.prototype.Convert = function(c) { return this.$val.Convert(c); }; + rgbaModel = function(c) { + var _r, _tuple, _tuple$1, a, b, c, g, ok, r, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; a = $f.a; b = $f.b; c = $f.c; g = $f.g; ok = $f.ok; r = $f.r; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _tuple = $assertType(c, RGBA, true); + ok = _tuple[1]; + if (ok) { + $s = -1; return c; + } + _r = c.RGBA(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple$1 = _r; + r = _tuple$1[0]; + g = _tuple$1[1]; + b = _tuple$1[2]; + a = _tuple$1[3]; + $s = -1; return (x = new RGBA.ptr((((r >>> 8 >>> 0) << 24 >>> 24)), (((g >>> 8 >>> 0) << 24 >>> 24)), (((b >>> 8 >>> 0) << 24 >>> 24)), (((a >>> 8 >>> 0) << 24 >>> 24))), new x.constructor.elem(x)); + /* */ } return; } if ($f === undefined) { $f = { $blk: rgbaModel }; } $f._r = _r; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.a = a; $f.b = b; $f.c = c; $f.g = g; $f.ok = ok; $f.r = r; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + rgba64Model = function(c) { + var _r, _tuple, _tuple$1, a, b, c, g, ok, r, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; a = $f.a; b = $f.b; c = $f.c; g = $f.g; ok = $f.ok; r = $f.r; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _tuple = $assertType(c, RGBA64, true); + ok = _tuple[1]; + if (ok) { + $s = -1; return c; + } + _r = c.RGBA(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple$1 = _r; + r = _tuple$1[0]; + g = _tuple$1[1]; + b = _tuple$1[2]; + a = _tuple$1[3]; + $s = -1; return (x = new RGBA64.ptr(((r << 16 >>> 16)), ((g << 16 >>> 16)), ((b << 16 >>> 16)), ((a << 16 >>> 16))), new x.constructor.elem(x)); + /* */ } return; } if ($f === undefined) { $f = { $blk: rgba64Model }; } $f._r = _r; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.a = a; $f.b = b; $f.c = c; $f.g = g; $f.ok = ok; $f.r = r; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + nrgbaModel = function(c) { + var _q, _q$1, _q$2, _r, _tuple, _tuple$1, a, b, c, g, ok, r, x, x$1, x$2, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _q$1 = $f._q$1; _q$2 = $f._q$2; _r = $f._r; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; a = $f.a; b = $f.b; c = $f.c; g = $f.g; ok = $f.ok; r = $f.r; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _tuple = $assertType(c, NRGBA, true); + ok = _tuple[1]; + if (ok) { + $s = -1; return c; + } + _r = c.RGBA(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple$1 = _r; + r = _tuple$1[0]; + g = _tuple$1[1]; + b = _tuple$1[2]; + a = _tuple$1[3]; + if (a === 65535) { + $s = -1; return (x = new NRGBA.ptr((((r >>> 8 >>> 0) << 24 >>> 24)), (((g >>> 8 >>> 0) << 24 >>> 24)), (((b >>> 8 >>> 0) << 24 >>> 24)), 255), new x.constructor.elem(x)); + } + if (a === 0) { + $s = -1; return (x$1 = new NRGBA.ptr(0, 0, 0, 0), new x$1.constructor.elem(x$1)); + } + r = (_q = (($imul(r, 65535) >>> 0)) / a, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + g = (_q$1 = (($imul(g, 65535) >>> 0)) / a, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >>> 0 : $throwRuntimeError("integer divide by zero")); + b = (_q$2 = (($imul(b, 65535) >>> 0)) / a, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >>> 0 : $throwRuntimeError("integer divide by zero")); + $s = -1; return (x$2 = new NRGBA.ptr((((r >>> 8 >>> 0) << 24 >>> 24)), (((g >>> 8 >>> 0) << 24 >>> 24)), (((b >>> 8 >>> 0) << 24 >>> 24)), (((a >>> 8 >>> 0) << 24 >>> 24))), new x$2.constructor.elem(x$2)); + /* */ } return; } if ($f === undefined) { $f = { $blk: nrgbaModel }; } $f._q = _q; $f._q$1 = _q$1; $f._q$2 = _q$2; $f._r = _r; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.a = a; $f.b = b; $f.c = c; $f.g = g; $f.ok = ok; $f.r = r; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$r = $r; return $f; + }; + nrgba64Model = function(c) { + var _q, _q$1, _q$2, _r, _tuple, _tuple$1, a, b, c, g, ok, r, x, x$1, x$2, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _q$1 = $f._q$1; _q$2 = $f._q$2; _r = $f._r; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; a = $f.a; b = $f.b; c = $f.c; g = $f.g; ok = $f.ok; r = $f.r; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _tuple = $assertType(c, NRGBA64, true); + ok = _tuple[1]; + if (ok) { + $s = -1; return c; + } + _r = c.RGBA(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple$1 = _r; + r = _tuple$1[0]; + g = _tuple$1[1]; + b = _tuple$1[2]; + a = _tuple$1[3]; + if (a === 65535) { + $s = -1; return (x = new NRGBA64.ptr(((r << 16 >>> 16)), ((g << 16 >>> 16)), ((b << 16 >>> 16)), 65535), new x.constructor.elem(x)); + } + if (a === 0) { + $s = -1; return (x$1 = new NRGBA64.ptr(0, 0, 0, 0), new x$1.constructor.elem(x$1)); + } + r = (_q = (($imul(r, 65535) >>> 0)) / a, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + g = (_q$1 = (($imul(g, 65535) >>> 0)) / a, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >>> 0 : $throwRuntimeError("integer divide by zero")); + b = (_q$2 = (($imul(b, 65535) >>> 0)) / a, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >>> 0 : $throwRuntimeError("integer divide by zero")); + $s = -1; return (x$2 = new NRGBA64.ptr(((r << 16 >>> 16)), ((g << 16 >>> 16)), ((b << 16 >>> 16)), ((a << 16 >>> 16))), new x$2.constructor.elem(x$2)); + /* */ } return; } if ($f === undefined) { $f = { $blk: nrgba64Model }; } $f._q = _q; $f._q$1 = _q$1; $f._q$2 = _q$2; $f._r = _r; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.a = a; $f.b = b; $f.c = c; $f.g = g; $f.ok = ok; $f.r = r; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$r = $r; return $f; + }; + alphaModel = function(c) { + var _r, _tuple, _tuple$1, a, c, ok, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; a = $f.a; c = $f.c; ok = $f.ok; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _tuple = $assertType(c, Alpha, true); + ok = _tuple[1]; + if (ok) { + $s = -1; return c; + } + _r = c.RGBA(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple$1 = _r; + a = _tuple$1[3]; + $s = -1; return (x = new Alpha.ptr((((a >>> 8 >>> 0) << 24 >>> 24))), new x.constructor.elem(x)); + /* */ } return; } if ($f === undefined) { $f = { $blk: alphaModel }; } $f._r = _r; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.a = a; $f.c = c; $f.ok = ok; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + alpha16Model = function(c) { + var _r, _tuple, _tuple$1, a, c, ok, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; a = $f.a; c = $f.c; ok = $f.ok; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _tuple = $assertType(c, Alpha16, true); + ok = _tuple[1]; + if (ok) { + $s = -1; return c; + } + _r = c.RGBA(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple$1 = _r; + a = _tuple$1[3]; + $s = -1; return (x = new Alpha16.ptr(((a << 16 >>> 16))), new x.constructor.elem(x)); + /* */ } return; } if ($f === undefined) { $f = { $blk: alpha16Model }; } $f._r = _r; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.a = a; $f.c = c; $f.ok = ok; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + grayModel = function(c) { + var _r, _tuple, _tuple$1, b, c, g, ok, r, x, y, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; b = $f.b; c = $f.c; g = $f.g; ok = $f.ok; r = $f.r; x = $f.x; y = $f.y; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _tuple = $assertType(c, Gray, true); + ok = _tuple[1]; + if (ok) { + $s = -1; return c; + } + _r = c.RGBA(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple$1 = _r; + r = _tuple$1[0]; + g = _tuple$1[1]; + b = _tuple$1[2]; + y = ((((($imul(19595, r) >>> 0) + ($imul(38470, g) >>> 0) >>> 0) + ($imul(7471, b) >>> 0) >>> 0) + 32768 >>> 0)) >>> 24 >>> 0; + $s = -1; return (x = new Gray.ptr(((y << 24 >>> 24))), new x.constructor.elem(x)); + /* */ } return; } if ($f === undefined) { $f = { $blk: grayModel }; } $f._r = _r; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.b = b; $f.c = c; $f.g = g; $f.ok = ok; $f.r = r; $f.x = x; $f.y = y; $f.$s = $s; $f.$r = $r; return $f; + }; + gray16Model = function(c) { + var _r, _tuple, _tuple$1, b, c, g, ok, r, x, y, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; b = $f.b; c = $f.c; g = $f.g; ok = $f.ok; r = $f.r; x = $f.x; y = $f.y; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _tuple = $assertType(c, Gray16, true); + ok = _tuple[1]; + if (ok) { + $s = -1; return c; + } + _r = c.RGBA(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple$1 = _r; + r = _tuple$1[0]; + g = _tuple$1[1]; + b = _tuple$1[2]; + y = ((((($imul(19595, r) >>> 0) + ($imul(38470, g) >>> 0) >>> 0) + ($imul(7471, b) >>> 0) >>> 0) + 32768 >>> 0)) >>> 16 >>> 0; + $s = -1; return (x = new Gray16.ptr(((y << 16 >>> 16))), new x.constructor.elem(x)); + /* */ } return; } if ($f === undefined) { $f = { $blk: gray16Model }; } $f._r = _r; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.b = b; $f.c = c; $f.g = g; $f.ok = ok; $f.r = r; $f.x = x; $f.y = y; $f.$s = $s; $f.$r = $r; return $f; + }; + Palette.prototype.Convert = function(c) { + var _r, c, p, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; c = $f.c; p = $f.p; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + if (p.$length === 0) { + $s = -1; return $ifaceNil; + } + _r = p.Index(c); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return (x = _r, ((x < 0 || x >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x])); + /* */ } return; } if ($f === undefined) { $f = { $blk: Palette.prototype.Convert }; } $f._r = _r; $f.c = c; $f.p = p; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + $ptrType(Palette).prototype.Convert = function(c) { return this.$get().Convert(c); }; + Palette.prototype.Index = function(c) { + var _i, _r, _r$1, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, bestSum, c, ca, cb, cg, cr, i, p, ret, sum, v, va, vb, vg, vr, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _ref = $f._ref; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; bestSum = $f.bestSum; c = $f.c; ca = $f.ca; cb = $f.cb; cg = $f.cg; cr = $f.cr; i = $f.i; p = $f.p; ret = $f.ret; sum = $f.sum; v = $f.v; va = $f.va; vb = $f.vb; vg = $f.vg; vr = $f.vr; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + _r = c.RGBA(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + cr = _tuple[0]; + cg = _tuple[1]; + cb = _tuple[2]; + ca = _tuple[3]; + _tmp = 0; + _tmp$1 = 4294967295; + ret = _tmp; + bestSum = _tmp$1; + _ref = p; + _i = 0; + /* while (true) { */ case 2: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } + i = _i; + v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r$1 = v.RGBA(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + vr = _tuple$1[0]; + vg = _tuple$1[1]; + vb = _tuple$1[2]; + va = _tuple$1[3]; + sum = ((sqDiff(cr, vr) + sqDiff(cg, vg) >>> 0) + sqDiff(cb, vb) >>> 0) + sqDiff(ca, va) >>> 0; + if (sum < bestSum) { + if (sum === 0) { + $s = -1; return i; + } + _tmp$2 = i; + _tmp$3 = sum; + ret = _tmp$2; + bestSum = _tmp$3; + } + _i++; + /* } */ $s = 2; continue; case 3: + $s = -1; return ret; + /* */ } return; } if ($f === undefined) { $f = { $blk: Palette.prototype.Index }; } $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._ref = _ref; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.bestSum = bestSum; $f.c = c; $f.ca = ca; $f.cb = cb; $f.cg = cg; $f.cr = cr; $f.i = i; $f.p = p; $f.ret = ret; $f.sum = sum; $f.v = v; $f.va = va; $f.vb = vb; $f.vg = vg; $f.vr = vr; $f.$s = $s; $f.$r = $r; return $f; + }; + $ptrType(Palette).prototype.Index = function(c) { return this.$get().Index(c); }; + sqDiff = function(x, y) { + var d, x, y; + d = x - y >>> 0; + return (($imul(d, d) >>> 0)) >>> 2 >>> 0; + }; + RGBToYCbCr = function(r, g, b) { + var b, b1, cb, cr, g, g1, r, r1, yy; + r1 = ((r >> 0)); + g1 = ((g >> 0)); + b1 = ((b >> 0)); + yy = ((((($imul(19595, r1)) + ($imul(38470, g1)) >> 0) + ($imul(7471, b1)) >> 0) + 32768 >> 0)) >> 16 >> 0; + cb = ((($imul(-11056, r1)) - ($imul(21712, g1)) >> 0) + ($imul(32768, b1)) >> 0) + 8421376 >> 0; + if (((((cb >>> 0)) & 4278190080) >>> 0) === 0) { + cb = (cb >> $min((16), 31)) >> 0; + } else { + cb = ~((cb >> 31 >> 0)) >> 0; + } + cr = ((($imul(32768, r1)) - ($imul(27440, g1)) >> 0) - ($imul(5328, b1)) >> 0) + 8421376 >> 0; + if (((((cr >>> 0)) & 4278190080) >>> 0) === 0) { + cr = (cr >> $min((16), 31)) >> 0; + } else { + cr = ~((cr >> 31 >> 0)) >> 0; + } + return [((yy << 24 >>> 24)), ((cb << 24 >>> 24)), ((cr << 24 >>> 24))]; + }; + $pkg.RGBToYCbCr = RGBToYCbCr; + YCbCr.ptr.prototype.RGBA = function() { + var b, c, cb1, cr1, g, r, yy1; + c = this; + yy1 = $imul(((c.Y >> 0)), 65793); + cb1 = ((c.Cb >> 0)) - 128 >> 0; + cr1 = ((c.Cr >> 0)) - 128 >> 0; + r = yy1 + ($imul(91881, cr1)) >> 0; + if (((((r >>> 0)) & 4278190080) >>> 0) === 0) { + r = (r >> $min((8), 31)) >> 0; + } else { + r = (~((r >> 31 >> 0)) >> 0) & 65535; + } + g = (yy1 - ($imul(22554, cb1)) >> 0) - ($imul(46802, cr1)) >> 0; + if (((((g >>> 0)) & 4278190080) >>> 0) === 0) { + g = (g >> $min((8), 31)) >> 0; + } else { + g = (~((g >> 31 >> 0)) >> 0) & 65535; + } + b = yy1 + ($imul(116130, cb1)) >> 0; + if (((((b >>> 0)) & 4278190080) >>> 0) === 0) { + b = (b >> $min((8), 31)) >> 0; + } else { + b = (~((b >> 31 >> 0)) >> 0) & 65535; + } + return [((r >>> 0)), ((g >>> 0)), ((b >>> 0)), 65535]; + }; + YCbCr.prototype.RGBA = function() { return this.$val.RGBA(); }; + yCbCrModel = function(c) { + var _r, _tuple, _tuple$1, _tuple$2, b, c, g, ok, r, u, v, x, y, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; b = $f.b; c = $f.c; g = $f.g; ok = $f.ok; r = $f.r; u = $f.u; v = $f.v; x = $f.x; y = $f.y; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _tuple = $assertType(c, YCbCr, true); + ok = _tuple[1]; + if (ok) { + $s = -1; return c; + } + _r = c.RGBA(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple$1 = _r; + r = _tuple$1[0]; + g = _tuple$1[1]; + b = _tuple$1[2]; + _tuple$2 = RGBToYCbCr((((r >>> 8 >>> 0) << 24 >>> 24)), (((g >>> 8 >>> 0) << 24 >>> 24)), (((b >>> 8 >>> 0) << 24 >>> 24))); + y = _tuple$2[0]; + u = _tuple$2[1]; + v = _tuple$2[2]; + $s = -1; return (x = new YCbCr.ptr(y, u, v), new x.constructor.elem(x)); + /* */ } return; } if ($f === undefined) { $f = { $blk: yCbCrModel }; } $f._r = _r; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.b = b; $f.c = c; $f.g = g; $f.ok = ok; $f.r = r; $f.u = u; $f.v = v; $f.x = x; $f.y = y; $f.$s = $s; $f.$r = $r; return $f; + }; + NYCbCrA.ptr.prototype.RGBA = function() { + var _q, _q$1, _q$2, a, b, c, cb1, cr1, g, r, yy1; + c = this; + yy1 = $imul(((c.YCbCr.Y >> 0)), 65793); + cb1 = ((c.YCbCr.Cb >> 0)) - 128 >> 0; + cr1 = ((c.YCbCr.Cr >> 0)) - 128 >> 0; + r = yy1 + ($imul(91881, cr1)) >> 0; + if (((((r >>> 0)) & 4278190080) >>> 0) === 0) { + r = (r >> $min((8), 31)) >> 0; + } else { + r = (~((r >> 31 >> 0)) >> 0) & 65535; + } + g = (yy1 - ($imul(22554, cb1)) >> 0) - ($imul(46802, cr1)) >> 0; + if (((((g >>> 0)) & 4278190080) >>> 0) === 0) { + g = (g >> $min((8), 31)) >> 0; + } else { + g = (~((g >> 31 >> 0)) >> 0) & 65535; + } + b = yy1 + ($imul(116130, cb1)) >> 0; + if (((((b >>> 0)) & 4278190080) >>> 0) === 0) { + b = (b >> $min((8), 31)) >> 0; + } else { + b = (~((b >> 31 >> 0)) >> 0) & 65535; + } + a = $imul(((c.A >>> 0)), 257) >>> 0; + return [(_q = ($imul(((r >>> 0)), a) >>> 0) / 65535, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")), (_q$1 = ($imul(((g >>> 0)), a) >>> 0) / 65535, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >>> 0 : $throwRuntimeError("integer divide by zero")), (_q$2 = ($imul(((b >>> 0)), a) >>> 0) / 65535, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >>> 0 : $throwRuntimeError("integer divide by zero")), a]; + }; + NYCbCrA.prototype.RGBA = function() { return this.$val.RGBA(); }; + nYCbCrAModel = function(c) { + var _q, _q$1, _q$2, _r, _ref, _tuple, _tuple$1, a, b, c, c$1, c$2, g, r, u, v, x, x$1, y, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _q$1 = $f._q$1; _q$2 = $f._q$2; _r = $f._r; _ref = $f._ref; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; a = $f.a; b = $f.b; c = $f.c; c$1 = $f.c$1; c$2 = $f.c$2; g = $f.g; r = $f.r; u = $f.u; v = $f.v; x = $f.x; x$1 = $f.x$1; y = $f.y; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _ref = c; + if ($assertType(_ref, NYCbCrA, true)[1]) { + c$1 = $clone(_ref.$val, NYCbCrA); + $s = -1; return new c$1.constructor.elem(c$1); + } else if ($assertType(_ref, YCbCr, true)[1]) { + c$2 = $clone(_ref.$val, YCbCr); + $s = -1; return (x = new NYCbCrA.ptr($clone(c$2, YCbCr), 255), new x.constructor.elem(x)); + } + _r = c.RGBA(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + r = _tuple[0]; + g = _tuple[1]; + b = _tuple[2]; + a = _tuple[3]; + if (!((a === 0))) { + r = (_q = (($imul(r, 65535) >>> 0)) / a, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + g = (_q$1 = (($imul(g, 65535) >>> 0)) / a, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >>> 0 : $throwRuntimeError("integer divide by zero")); + b = (_q$2 = (($imul(b, 65535) >>> 0)) / a, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >>> 0 : $throwRuntimeError("integer divide by zero")); + } + _tuple$1 = RGBToYCbCr((((r >>> 8 >>> 0) << 24 >>> 24)), (((g >>> 8 >>> 0) << 24 >>> 24)), (((b >>> 8 >>> 0) << 24 >>> 24))); + y = _tuple$1[0]; + u = _tuple$1[1]; + v = _tuple$1[2]; + $s = -1; return (x$1 = new NYCbCrA.ptr(new YCbCr.ptr(y, u, v), (((a >>> 8 >>> 0) << 24 >>> 24))), new x$1.constructor.elem(x$1)); + /* */ } return; } if ($f === undefined) { $f = { $blk: nYCbCrAModel }; } $f._q = _q; $f._q$1 = _q$1; $f._q$2 = _q$2; $f._r = _r; $f._ref = _ref; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.a = a; $f.b = b; $f.c = c; $f.c$1 = c$1; $f.c$2 = c$2; $f.g = g; $f.r = r; $f.u = u; $f.v = v; $f.x = x; $f.x$1 = x$1; $f.y = y; $f.$s = $s; $f.$r = $r; return $f; + }; + RGBToCMYK = function(r, g, b) { + var _q, _q$1, _q$2, b, bb, c, g, gg, m, r, rr, w, y; + rr = ((r >>> 0)); + gg = ((g >>> 0)); + bb = ((b >>> 0)); + w = rr; + if (w < gg) { + w = gg; + } + if (w < bb) { + w = bb; + } + if (w === 0) { + return [0, 0, 0, 255]; + } + c = (_q = ($imul(((w - rr >>> 0)), 255) >>> 0) / w, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + m = (_q$1 = ($imul(((w - gg >>> 0)), 255) >>> 0) / w, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >>> 0 : $throwRuntimeError("integer divide by zero")); + y = (_q$2 = ($imul(((w - bb >>> 0)), 255) >>> 0) / w, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >>> 0 : $throwRuntimeError("integer divide by zero")); + return [((c << 24 >>> 24)), ((m << 24 >>> 24)), ((y << 24 >>> 24)), (((255 - w >>> 0) << 24 >>> 24))]; + }; + $pkg.RGBToCMYK = RGBToCMYK; + CMYK.ptr.prototype.RGBA = function() { + var _q, _q$1, _q$2, b, c, g, r, w; + c = this; + w = 65535 - ($imul(((c.K >>> 0)), 257) >>> 0) >>> 0; + r = (_q = ($imul(((65535 - ($imul(((c.C >>> 0)), 257) >>> 0) >>> 0)), w) >>> 0) / 65535, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + g = (_q$1 = ($imul(((65535 - ($imul(((c.M >>> 0)), 257) >>> 0) >>> 0)), w) >>> 0) / 65535, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >>> 0 : $throwRuntimeError("integer divide by zero")); + b = (_q$2 = ($imul(((65535 - ($imul(((c.Y >>> 0)), 257) >>> 0) >>> 0)), w) >>> 0) / 65535, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >>> 0 : $throwRuntimeError("integer divide by zero")); + return [r, g, b, 65535]; + }; + CMYK.prototype.RGBA = function() { return this.$val.RGBA(); }; + cmykModel = function(c) { + var _r, _tuple, _tuple$1, _tuple$2, b, c, cc, g, kk, mm, ok, r, x, yy, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; b = $f.b; c = $f.c; cc = $f.cc; g = $f.g; kk = $f.kk; mm = $f.mm; ok = $f.ok; r = $f.r; x = $f.x; yy = $f.yy; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _tuple = $assertType(c, CMYK, true); + ok = _tuple[1]; + if (ok) { + $s = -1; return c; + } + _r = c.RGBA(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple$1 = _r; + r = _tuple$1[0]; + g = _tuple$1[1]; + b = _tuple$1[2]; + _tuple$2 = RGBToCMYK((((r >>> 8 >>> 0) << 24 >>> 24)), (((g >>> 8 >>> 0) << 24 >>> 24)), (((b >>> 8 >>> 0) << 24 >>> 24))); + cc = _tuple$2[0]; + mm = _tuple$2[1]; + yy = _tuple$2[2]; + kk = _tuple$2[3]; + $s = -1; return (x = new CMYK.ptr(cc, mm, yy, kk), new x.constructor.elem(x)); + /* */ } return; } if ($f === undefined) { $f = { $blk: cmykModel }; } $f._r = _r; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.b = b; $f.c = c; $f.cc = cc; $f.g = g; $f.kk = kk; $f.mm = mm; $f.ok = ok; $f.r = r; $f.x = x; $f.yy = yy; $f.$s = $s; $f.$r = $r; return $f; + }; + RGBA.methods = [{prop: "RGBA", name: "RGBA", pkg: "", typ: $funcType([], [$Uint32, $Uint32, $Uint32, $Uint32], false)}]; + RGBA64.methods = [{prop: "RGBA", name: "RGBA", pkg: "", typ: $funcType([], [$Uint32, $Uint32, $Uint32, $Uint32], false)}]; + NRGBA.methods = [{prop: "RGBA", name: "RGBA", pkg: "", typ: $funcType([], [$Uint32, $Uint32, $Uint32, $Uint32], false)}]; + NRGBA64.methods = [{prop: "RGBA", name: "RGBA", pkg: "", typ: $funcType([], [$Uint32, $Uint32, $Uint32, $Uint32], false)}]; + Alpha.methods = [{prop: "RGBA", name: "RGBA", pkg: "", typ: $funcType([], [$Uint32, $Uint32, $Uint32, $Uint32], false)}]; + Alpha16.methods = [{prop: "RGBA", name: "RGBA", pkg: "", typ: $funcType([], [$Uint32, $Uint32, $Uint32, $Uint32], false)}]; + Gray.methods = [{prop: "RGBA", name: "RGBA", pkg: "", typ: $funcType([], [$Uint32, $Uint32, $Uint32, $Uint32], false)}]; + Gray16.methods = [{prop: "RGBA", name: "RGBA", pkg: "", typ: $funcType([], [$Uint32, $Uint32, $Uint32, $Uint32], false)}]; + ptrType.methods = [{prop: "Convert", name: "Convert", pkg: "", typ: $funcType([Color], [Color], false)}]; + Palette.methods = [{prop: "Convert", name: "Convert", pkg: "", typ: $funcType([Color], [Color], false)}, {prop: "Index", name: "Index", pkg: "", typ: $funcType([Color], [$Int], false)}]; + YCbCr.methods = [{prop: "RGBA", name: "RGBA", pkg: "", typ: $funcType([], [$Uint32, $Uint32, $Uint32, $Uint32], false)}]; + NYCbCrA.methods = [{prop: "RGBA", name: "RGBA", pkg: "", typ: $funcType([], [$Uint32, $Uint32, $Uint32, $Uint32], false)}]; + CMYK.methods = [{prop: "RGBA", name: "RGBA", pkg: "", typ: $funcType([], [$Uint32, $Uint32, $Uint32, $Uint32], false)}]; + Color.init([{prop: "RGBA", name: "RGBA", pkg: "", typ: $funcType([], [$Uint32, $Uint32, $Uint32, $Uint32], false)}]); + RGBA.init("", [{prop: "R", name: "R", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "G", name: "G", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "B", name: "B", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "A", name: "A", embedded: false, exported: true, typ: $Uint8, tag: ""}]); + RGBA64.init("", [{prop: "R", name: "R", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "G", name: "G", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "B", name: "B", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "A", name: "A", embedded: false, exported: true, typ: $Uint16, tag: ""}]); + NRGBA.init("", [{prop: "R", name: "R", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "G", name: "G", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "B", name: "B", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "A", name: "A", embedded: false, exported: true, typ: $Uint8, tag: ""}]); + NRGBA64.init("", [{prop: "R", name: "R", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "G", name: "G", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "B", name: "B", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "A", name: "A", embedded: false, exported: true, typ: $Uint16, tag: ""}]); + Alpha.init("", [{prop: "A", name: "A", embedded: false, exported: true, typ: $Uint8, tag: ""}]); + Alpha16.init("", [{prop: "A", name: "A", embedded: false, exported: true, typ: $Uint16, tag: ""}]); + Gray.init("", [{prop: "Y", name: "Y", embedded: false, exported: true, typ: $Uint8, tag: ""}]); + Gray16.init("", [{prop: "Y", name: "Y", embedded: false, exported: true, typ: $Uint16, tag: ""}]); + Model.init([{prop: "Convert", name: "Convert", pkg: "", typ: $funcType([Color], [Color], false)}]); + modelFunc.init("image/color", [{prop: "f", name: "f", embedded: false, exported: false, typ: funcType, tag: ""}]); + Palette.init(Color); + YCbCr.init("", [{prop: "Y", name: "Y", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Cb", name: "Cb", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Cr", name: "Cr", embedded: false, exported: true, typ: $Uint8, tag: ""}]); + NYCbCrA.init("", [{prop: "YCbCr", name: "YCbCr", embedded: true, exported: true, typ: YCbCr, tag: ""}, {prop: "A", name: "A", embedded: false, exported: true, typ: $Uint8, tag: ""}]); + CMYK.init("", [{prop: "C", name: "C", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "M", name: "M", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Y", name: "Y", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "K", name: "K", embedded: false, exported: true, typ: $Uint8, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $pkg.RGBAModel = ModelFunc(rgbaModel); + $pkg.RGBA64Model = ModelFunc(rgba64Model); + $pkg.NRGBAModel = ModelFunc(nrgbaModel); + $pkg.NRGBA64Model = ModelFunc(nrgba64Model); + $pkg.AlphaModel = ModelFunc(alphaModel); + $pkg.Alpha16Model = ModelFunc(alpha16Model); + $pkg.GrayModel = ModelFunc(grayModel); + $pkg.Gray16Model = ModelFunc(gray16Model); + $pkg.Black = new Gray16.ptr(0); + $pkg.White = new Gray16.ptr(65535); + $pkg.Transparent = new Alpha16.ptr(0); + $pkg.Opaque = new Alpha16.ptr(65535); + $pkg.YCbCrModel = ModelFunc(yCbCrModel); + $pkg.NYCbCrAModel = ModelFunc(nYCbCrAModel); + $pkg.CMYKModel = ModelFunc(cmykModel); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["image"] = (function() { + var $pkg = {}, $init, bufio, errors, color, io, strconv, format, Point, Rectangle, Config, Image, PalettedImage, RGBA, RGBA64, NRGBA, NRGBA64, Alpha, Alpha16, Gray, Gray16, Paletted, Uniform, sliceType, sliceType$1, arrayType, funcType, funcType$1, ptrType, ptrType$1, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$9, ptrType$10, formats, x, x$1, x$2, x$3, RegisterFormat, Rect, NewRGBA, NewRGBA64, NewNRGBA, NewNRGBA64, NewGray, NewGray16, NewPaletted, NewUniform; + bufio = $packages["bufio"]; + errors = $packages["errors"]; + color = $packages["image/color"]; + io = $packages["io"]; + strconv = $packages["strconv"]; + format = $pkg.format = $newType(0, $kindStruct, "image.format", true, "image", false, function(name_, magic_, decode_, decodeConfig_) { + this.$val = this; + if (arguments.length === 0) { + this.name = ""; + this.magic = ""; + this.decode = $throwNilPointerError; + this.decodeConfig = $throwNilPointerError; + return; + } + this.name = name_; + this.magic = magic_; + this.decode = decode_; + this.decodeConfig = decodeConfig_; + }); + Point = $pkg.Point = $newType(0, $kindStruct, "image.Point", true, "image", true, function(X_, Y_) { + this.$val = this; + if (arguments.length === 0) { + this.X = 0; + this.Y = 0; + return; + } + this.X = X_; + this.Y = Y_; + }); + Rectangle = $pkg.Rectangle = $newType(0, $kindStruct, "image.Rectangle", true, "image", true, function(Min_, Max_) { + this.$val = this; + if (arguments.length === 0) { + this.Min = new Point.ptr(0, 0); + this.Max = new Point.ptr(0, 0); + return; + } + this.Min = Min_; + this.Max = Max_; + }); + Config = $pkg.Config = $newType(0, $kindStruct, "image.Config", true, "image", true, function(ColorModel_, Width_, Height_) { + this.$val = this; + if (arguments.length === 0) { + this.ColorModel = $ifaceNil; + this.Width = 0; + this.Height = 0; + return; + } + this.ColorModel = ColorModel_; + this.Width = Width_; + this.Height = Height_; + }); + Image = $pkg.Image = $newType(8, $kindInterface, "image.Image", true, "image", true, null); + PalettedImage = $pkg.PalettedImage = $newType(8, $kindInterface, "image.PalettedImage", true, "image", true, null); + RGBA = $pkg.RGBA = $newType(0, $kindStruct, "image.RGBA", true, "image", true, function(Pix_, Stride_, Rect_) { + this.$val = this; + if (arguments.length === 0) { + this.Pix = sliceType$1.nil; + this.Stride = 0; + this.Rect = new Rectangle.ptr(new Point.ptr(0, 0), new Point.ptr(0, 0)); + return; + } + this.Pix = Pix_; + this.Stride = Stride_; + this.Rect = Rect_; + }); + RGBA64 = $pkg.RGBA64 = $newType(0, $kindStruct, "image.RGBA64", true, "image", true, function(Pix_, Stride_, Rect_) { + this.$val = this; + if (arguments.length === 0) { + this.Pix = sliceType$1.nil; + this.Stride = 0; + this.Rect = new Rectangle.ptr(new Point.ptr(0, 0), new Point.ptr(0, 0)); + return; + } + this.Pix = Pix_; + this.Stride = Stride_; + this.Rect = Rect_; + }); + NRGBA = $pkg.NRGBA = $newType(0, $kindStruct, "image.NRGBA", true, "image", true, function(Pix_, Stride_, Rect_) { + this.$val = this; + if (arguments.length === 0) { + this.Pix = sliceType$1.nil; + this.Stride = 0; + this.Rect = new Rectangle.ptr(new Point.ptr(0, 0), new Point.ptr(0, 0)); + return; + } + this.Pix = Pix_; + this.Stride = Stride_; + this.Rect = Rect_; + }); + NRGBA64 = $pkg.NRGBA64 = $newType(0, $kindStruct, "image.NRGBA64", true, "image", true, function(Pix_, Stride_, Rect_) { + this.$val = this; + if (arguments.length === 0) { + this.Pix = sliceType$1.nil; + this.Stride = 0; + this.Rect = new Rectangle.ptr(new Point.ptr(0, 0), new Point.ptr(0, 0)); + return; + } + this.Pix = Pix_; + this.Stride = Stride_; + this.Rect = Rect_; + }); + Alpha = $pkg.Alpha = $newType(0, $kindStruct, "image.Alpha", true, "image", true, function(Pix_, Stride_, Rect_) { + this.$val = this; + if (arguments.length === 0) { + this.Pix = sliceType$1.nil; + this.Stride = 0; + this.Rect = new Rectangle.ptr(new Point.ptr(0, 0), new Point.ptr(0, 0)); + return; + } + this.Pix = Pix_; + this.Stride = Stride_; + this.Rect = Rect_; + }); + Alpha16 = $pkg.Alpha16 = $newType(0, $kindStruct, "image.Alpha16", true, "image", true, function(Pix_, Stride_, Rect_) { + this.$val = this; + if (arguments.length === 0) { + this.Pix = sliceType$1.nil; + this.Stride = 0; + this.Rect = new Rectangle.ptr(new Point.ptr(0, 0), new Point.ptr(0, 0)); + return; + } + this.Pix = Pix_; + this.Stride = Stride_; + this.Rect = Rect_; + }); + Gray = $pkg.Gray = $newType(0, $kindStruct, "image.Gray", true, "image", true, function(Pix_, Stride_, Rect_) { + this.$val = this; + if (arguments.length === 0) { + this.Pix = sliceType$1.nil; + this.Stride = 0; + this.Rect = new Rectangle.ptr(new Point.ptr(0, 0), new Point.ptr(0, 0)); + return; + } + this.Pix = Pix_; + this.Stride = Stride_; + this.Rect = Rect_; + }); + Gray16 = $pkg.Gray16 = $newType(0, $kindStruct, "image.Gray16", true, "image", true, function(Pix_, Stride_, Rect_) { + this.$val = this; + if (arguments.length === 0) { + this.Pix = sliceType$1.nil; + this.Stride = 0; + this.Rect = new Rectangle.ptr(new Point.ptr(0, 0), new Point.ptr(0, 0)); + return; + } + this.Pix = Pix_; + this.Stride = Stride_; + this.Rect = Rect_; + }); + Paletted = $pkg.Paletted = $newType(0, $kindStruct, "image.Paletted", true, "image", true, function(Pix_, Stride_, Rect_, Palette_) { + this.$val = this; + if (arguments.length === 0) { + this.Pix = sliceType$1.nil; + this.Stride = 0; + this.Rect = new Rectangle.ptr(new Point.ptr(0, 0), new Point.ptr(0, 0)); + this.Palette = color.Palette.nil; + return; + } + this.Pix = Pix_; + this.Stride = Stride_; + this.Rect = Rect_; + this.Palette = Palette_; + }); + Uniform = $pkg.Uniform = $newType(0, $kindStruct, "image.Uniform", true, "image", true, function(C_) { + this.$val = this; + if (arguments.length === 0) { + this.C = $ifaceNil; + return; + } + this.C = C_; + }); + sliceType = $sliceType(format); + sliceType$1 = $sliceType($Uint8); + arrayType = $arrayType($Bool, 256); + funcType = $funcType([io.Reader], [Image, $error], false); + funcType$1 = $funcType([io.Reader], [Config, $error], false); + ptrType = $ptrType(RGBA); + ptrType$1 = $ptrType(RGBA64); + ptrType$2 = $ptrType(NRGBA); + ptrType$3 = $ptrType(NRGBA64); + ptrType$4 = $ptrType(Alpha); + ptrType$5 = $ptrType(Alpha16); + ptrType$6 = $ptrType(Gray); + ptrType$7 = $ptrType(Gray16); + ptrType$9 = $ptrType(Paletted); + ptrType$10 = $ptrType(Uniform); + RegisterFormat = function(name, magic, decode, decodeConfig) { + var decode, decodeConfig, magic, name; + formats = $append(formats, new format.ptr(name, magic, decode, decodeConfig)); + }; + $pkg.RegisterFormat = RegisterFormat; + Point.ptr.prototype.String = function() { + var p; + p = this; + return "(" + strconv.Itoa(p.X) + "," + strconv.Itoa(p.Y) + ")"; + }; + Point.prototype.String = function() { return this.$val.String(); }; + Point.ptr.prototype.Add = function(q) { + var p, q; + p = this; + return new Point.ptr(p.X + q.X >> 0, p.Y + q.Y >> 0); + }; + Point.prototype.Add = function(q) { return this.$val.Add(q); }; + Point.ptr.prototype.Sub = function(q) { + var p, q; + p = this; + return new Point.ptr(p.X - q.X >> 0, p.Y - q.Y >> 0); + }; + Point.prototype.Sub = function(q) { return this.$val.Sub(q); }; + Point.ptr.prototype.Mul = function(k) { + var k, p; + p = this; + return new Point.ptr($imul(p.X, k), $imul(p.Y, k)); + }; + Point.prototype.Mul = function(k) { return this.$val.Mul(k); }; + Point.ptr.prototype.Div = function(k) { + var _q, _q$1, k, p; + p = this; + return new Point.ptr((_q = p.X / k, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), (_q$1 = p.Y / k, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"))); + }; + Point.prototype.Div = function(k) { return this.$val.Div(k); }; + Point.ptr.prototype.In = function(r) { + var p, r; + p = this; + return r.Min.X <= p.X && p.X < r.Max.X && r.Min.Y <= p.Y && p.Y < r.Max.Y; + }; + Point.prototype.In = function(r) { return this.$val.In(r); }; + Point.ptr.prototype.Mod = function(r) { + var _r, _r$1, _tmp, _tmp$1, h, p, r, w; + p = this; + _tmp = $clone(r, Rectangle).Dx(); + _tmp$1 = $clone(r, Rectangle).Dy(); + w = _tmp; + h = _tmp$1; + Point.copy(p, $clone(p, Point).Sub($clone(r.Min, Point))); + p.X = (_r = p.X % w, _r === _r ? _r : $throwRuntimeError("integer divide by zero")); + if (p.X < 0) { + p.X = p.X + (w) >> 0; + } + p.Y = (_r$1 = p.Y % h, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")); + if (p.Y < 0) { + p.Y = p.Y + (h) >> 0; + } + return $clone(p, Point).Add($clone(r.Min, Point)); + }; + Point.prototype.Mod = function(r) { return this.$val.Mod(r); }; + Point.ptr.prototype.Eq = function(q) { + var p, q; + p = this; + return $equal(p, q, Point); + }; + Point.prototype.Eq = function(q) { return this.$val.Eq(q); }; + Rectangle.ptr.prototype.String = function() { + var r; + r = this; + return $clone(r.Min, Point).String() + "-" + $clone(r.Max, Point).String(); + }; + Rectangle.prototype.String = function() { return this.$val.String(); }; + Rectangle.ptr.prototype.Dx = function() { + var r; + r = this; + return r.Max.X - r.Min.X >> 0; + }; + Rectangle.prototype.Dx = function() { return this.$val.Dx(); }; + Rectangle.ptr.prototype.Dy = function() { + var r; + r = this; + return r.Max.Y - r.Min.Y >> 0; + }; + Rectangle.prototype.Dy = function() { return this.$val.Dy(); }; + Rectangle.ptr.prototype.Size = function() { + var r; + r = this; + return new Point.ptr(r.Max.X - r.Min.X >> 0, r.Max.Y - r.Min.Y >> 0); + }; + Rectangle.prototype.Size = function() { return this.$val.Size(); }; + Rectangle.ptr.prototype.Add = function(p) { + var p, r; + r = this; + return new Rectangle.ptr(new Point.ptr(r.Min.X + p.X >> 0, r.Min.Y + p.Y >> 0), new Point.ptr(r.Max.X + p.X >> 0, r.Max.Y + p.Y >> 0)); + }; + Rectangle.prototype.Add = function(p) { return this.$val.Add(p); }; + Rectangle.ptr.prototype.Sub = function(p) { + var p, r; + r = this; + return new Rectangle.ptr(new Point.ptr(r.Min.X - p.X >> 0, r.Min.Y - p.Y >> 0), new Point.ptr(r.Max.X - p.X >> 0, r.Max.Y - p.Y >> 0)); + }; + Rectangle.prototype.Sub = function(p) { return this.$val.Sub(p); }; + Rectangle.ptr.prototype.Inset = function(n) { + var _q, _q$1, n, r; + r = this; + if ($clone(r, Rectangle).Dx() < ($imul(2, n))) { + r.Min.X = (_q = ((r.Min.X + r.Max.X >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + r.Max.X = r.Min.X; + } else { + r.Min.X = r.Min.X + (n) >> 0; + r.Max.X = r.Max.X - (n) >> 0; + } + if ($clone(r, Rectangle).Dy() < ($imul(2, n))) { + r.Min.Y = (_q$1 = ((r.Min.Y + r.Max.Y >> 0)) / 2, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")); + r.Max.Y = r.Min.Y; + } else { + r.Min.Y = r.Min.Y + (n) >> 0; + r.Max.Y = r.Max.Y - (n) >> 0; + } + return r; + }; + Rectangle.prototype.Inset = function(n) { return this.$val.Inset(n); }; + Rectangle.ptr.prototype.Intersect = function(s) { + var r, s; + r = this; + if (r.Min.X < s.Min.X) { + r.Min.X = s.Min.X; + } + if (r.Min.Y < s.Min.Y) { + r.Min.Y = s.Min.Y; + } + if (r.Max.X > s.Max.X) { + r.Max.X = s.Max.X; + } + if (r.Max.Y > s.Max.Y) { + r.Max.Y = s.Max.Y; + } + if ($clone(r, Rectangle).Empty()) { + return $pkg.ZR; + } + return r; + }; + Rectangle.prototype.Intersect = function(s) { return this.$val.Intersect(s); }; + Rectangle.ptr.prototype.Union = function(s) { + var r, s; + r = this; + if ($clone(r, Rectangle).Empty()) { + return s; + } + if ($clone(s, Rectangle).Empty()) { + return r; + } + if (r.Min.X > s.Min.X) { + r.Min.X = s.Min.X; + } + if (r.Min.Y > s.Min.Y) { + r.Min.Y = s.Min.Y; + } + if (r.Max.X < s.Max.X) { + r.Max.X = s.Max.X; + } + if (r.Max.Y < s.Max.Y) { + r.Max.Y = s.Max.Y; + } + return r; + }; + Rectangle.prototype.Union = function(s) { return this.$val.Union(s); }; + Rectangle.ptr.prototype.Empty = function() { + var r; + r = this; + return r.Min.X >= r.Max.X || r.Min.Y >= r.Max.Y; + }; + Rectangle.prototype.Empty = function() { return this.$val.Empty(); }; + Rectangle.ptr.prototype.Eq = function(s) { + var r, s; + r = this; + return $equal(r, s, Rectangle) || $clone(r, Rectangle).Empty() && $clone(s, Rectangle).Empty(); + }; + Rectangle.prototype.Eq = function(s) { return this.$val.Eq(s); }; + Rectangle.ptr.prototype.Overlaps = function(s) { + var r, s; + r = this; + return !$clone(r, Rectangle).Empty() && !$clone(s, Rectangle).Empty() && r.Min.X < s.Max.X && s.Min.X < r.Max.X && r.Min.Y < s.Max.Y && s.Min.Y < r.Max.Y; + }; + Rectangle.prototype.Overlaps = function(s) { return this.$val.Overlaps(s); }; + Rectangle.ptr.prototype.In = function(s) { + var r, s; + r = this; + if ($clone(r, Rectangle).Empty()) { + return true; + } + return s.Min.X <= r.Min.X && r.Max.X <= s.Max.X && s.Min.Y <= r.Min.Y && r.Max.Y <= s.Max.Y; + }; + Rectangle.prototype.In = function(s) { return this.$val.In(s); }; + Rectangle.ptr.prototype.Canon = function() { + var _tmp, _tmp$1, _tmp$2, _tmp$3, r; + r = this; + if (r.Max.X < r.Min.X) { + _tmp = r.Max.X; + _tmp$1 = r.Min.X; + r.Min.X = _tmp; + r.Max.X = _tmp$1; + } + if (r.Max.Y < r.Min.Y) { + _tmp$2 = r.Max.Y; + _tmp$3 = r.Min.Y; + r.Min.Y = _tmp$2; + r.Max.Y = _tmp$3; + } + return r; + }; + Rectangle.prototype.Canon = function() { return this.$val.Canon(); }; + Rectangle.ptr.prototype.At = function(x$4, y) { + var r, x$4, x$5, x$6, y; + r = this; + if ($clone((new Point.ptr(x$4, y)), Point).In($clone(r, Rectangle))) { + return (x$5 = color.Opaque, new x$5.constructor.elem(x$5)); + } + return (x$6 = color.Transparent, new x$6.constructor.elem(x$6)); + }; + Rectangle.prototype.At = function(x$4, y) { return this.$val.At(x$4, y); }; + Rectangle.ptr.prototype.Bounds = function() { + var r; + r = this; + return r; + }; + Rectangle.prototype.Bounds = function() { return this.$val.Bounds(); }; + Rectangle.ptr.prototype.ColorModel = function() { + var r; + r = this; + return color.Alpha16Model; + }; + Rectangle.prototype.ColorModel = function() { return this.$val.ColorModel(); }; + Rect = function(x0, y0, x1, y1) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, x0, x1, y0, y1; + if (x0 > x1) { + _tmp = x1; + _tmp$1 = x0; + x0 = _tmp; + x1 = _tmp$1; + } + if (y0 > y1) { + _tmp$2 = y1; + _tmp$3 = y0; + y0 = _tmp$2; + y1 = _tmp$3; + } + return new Rectangle.ptr(new Point.ptr(x0, y0), new Point.ptr(x1, y1)); + }; + $pkg.Rect = Rect; + RGBA.ptr.prototype.ColorModel = function() { + var p; + p = this; + return color.RGBAModel; + }; + RGBA.prototype.ColorModel = function() { return this.$val.ColorModel(); }; + RGBA.ptr.prototype.Bounds = function() { + var p; + p = this; + return p.Rect; + }; + RGBA.prototype.Bounds = function() { return this.$val.Bounds(); }; + RGBA.ptr.prototype.At = function(x$4, y) { + var p, x$4, x$5, y; + p = this; + return (x$5 = p.RGBAAt(x$4, y), new x$5.constructor.elem(x$5)); + }; + RGBA.prototype.At = function(x$4, y) { return this.$val.At(x$4, y); }; + RGBA.ptr.prototype.RGBAAt = function(x$4, y) { + var i, p, x$10, x$11, x$12, x$4, x$5, x$6, x$7, x$8, x$9, y; + p = this; + if (!(new Point.ptr(x$4, y).In($clone(p.Rect, Rectangle)))) { + return new color.RGBA.ptr(0, 0, 0, 0); + } + i = p.PixOffset(x$4, y); + return new color.RGBA.ptr((x$5 = p.Pix, x$6 = i + 0 >> 0, ((x$6 < 0 || x$6 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + x$6])), (x$7 = p.Pix, x$8 = i + 1 >> 0, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8])), (x$9 = p.Pix, x$10 = i + 2 >> 0, ((x$10 < 0 || x$10 >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + x$10])), (x$11 = p.Pix, x$12 = i + 3 >> 0, ((x$12 < 0 || x$12 >= x$11.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + x$12]))); + }; + RGBA.prototype.RGBAAt = function(x$4, y) { return this.$val.RGBAAt(x$4, y); }; + RGBA.ptr.prototype.PixOffset = function(x$4, y) { + var p, x$4, y; + p = this; + return ($imul(((y - p.Rect.Min.Y >> 0)), p.Stride)) + ($imul(((x$4 - p.Rect.Min.X >> 0)), 4)) >> 0; + }; + RGBA.prototype.PixOffset = function(x$4, y) { return this.$val.PixOffset(x$4, y); }; + RGBA.ptr.prototype.Set = function(x$4, y, c) { + var _r, c, c1, i, p, x$10, x$11, x$12, x$4, x$5, x$6, x$7, x$8, x$9, y, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; c = $f.c; c1 = $f.c1; i = $f.i; p = $f.p; x$10 = $f.x$10; x$11 = $f.x$11; x$12 = $f.x$12; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; x$8 = $f.x$8; x$9 = $f.x$9; y = $f.y; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + if (!(new Point.ptr(x$4, y).In($clone(p.Rect, Rectangle)))) { + $s = -1; return; + } + i = p.PixOffset(x$4, y); + _r = color.RGBAModel.Convert(c); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + c1 = $clone($assertType(_r, color.RGBA), color.RGBA); + (x$5 = p.Pix, x$6 = i + 0 >> 0, ((x$6 < 0 || x$6 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + x$6] = c1.R)); + (x$7 = p.Pix, x$8 = i + 1 >> 0, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8] = c1.G)); + (x$9 = p.Pix, x$10 = i + 2 >> 0, ((x$10 < 0 || x$10 >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + x$10] = c1.B)); + (x$11 = p.Pix, x$12 = i + 3 >> 0, ((x$12 < 0 || x$12 >= x$11.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + x$12] = c1.A)); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: RGBA.ptr.prototype.Set }; } $f._r = _r; $f.c = c; $f.c1 = c1; $f.i = i; $f.p = p; $f.x$10 = x$10; $f.x$11 = x$11; $f.x$12 = x$12; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.x$8 = x$8; $f.x$9 = x$9; $f.y = y; $f.$s = $s; $f.$r = $r; return $f; + }; + RGBA.prototype.Set = function(x$4, y, c) { return this.$val.Set(x$4, y, c); }; + RGBA.ptr.prototype.SetRGBA = function(x$4, y, c) { + var c, i, p, x$10, x$11, x$12, x$4, x$5, x$6, x$7, x$8, x$9, y; + p = this; + if (!(new Point.ptr(x$4, y).In($clone(p.Rect, Rectangle)))) { + return; + } + i = p.PixOffset(x$4, y); + (x$5 = p.Pix, x$6 = i + 0 >> 0, ((x$6 < 0 || x$6 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + x$6] = c.R)); + (x$7 = p.Pix, x$8 = i + 1 >> 0, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8] = c.G)); + (x$9 = p.Pix, x$10 = i + 2 >> 0, ((x$10 < 0 || x$10 >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + x$10] = c.B)); + (x$11 = p.Pix, x$12 = i + 3 >> 0, ((x$12 < 0 || x$12 >= x$11.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + x$12] = c.A)); + }; + RGBA.prototype.SetRGBA = function(x$4, y, c) { return this.$val.SetRGBA(x$4, y, c); }; + RGBA.ptr.prototype.SubImage = function(r) { + var i, p, r; + p = this; + Rectangle.copy(r, $clone(r, Rectangle).Intersect($clone(p.Rect, Rectangle))); + if ($clone(r, Rectangle).Empty()) { + return new RGBA.ptr(sliceType$1.nil, 0, new Rectangle.ptr(new Point.ptr(0, 0), new Point.ptr(0, 0))); + } + i = p.PixOffset(r.Min.X, r.Min.Y); + return new RGBA.ptr($subslice(p.Pix, i), p.Stride, $clone(r, Rectangle)); + }; + RGBA.prototype.SubImage = function(r) { return this.$val.SubImage(r); }; + RGBA.ptr.prototype.Opaque = function() { + var _tmp, _tmp$1, i, i0, i1, p, x$4, y; + p = this; + if ($clone(p.Rect, Rectangle).Empty()) { + return true; + } + _tmp = 3; + _tmp$1 = $imul($clone(p.Rect, Rectangle).Dx(), 4); + i0 = _tmp; + i1 = _tmp$1; + y = p.Rect.Min.Y; + while (true) { + if (!(y < p.Rect.Max.Y)) { break; } + i = i0; + while (true) { + if (!(i < i1)) { break; } + if (!(((x$4 = p.Pix, ((i < 0 || i >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + i])) === 255))) { + return false; + } + i = i + (4) >> 0; + } + i0 = i0 + (p.Stride) >> 0; + i1 = i1 + (p.Stride) >> 0; + y = y + (1) >> 0; + } + return true; + }; + RGBA.prototype.Opaque = function() { return this.$val.Opaque(); }; + NewRGBA = function(r) { + var _tmp, _tmp$1, buf, h, r, w; + _tmp = $clone(r, Rectangle).Dx(); + _tmp$1 = $clone(r, Rectangle).Dy(); + w = _tmp; + h = _tmp$1; + buf = $makeSlice(sliceType$1, ($imul(($imul(4, w)), h))); + return new RGBA.ptr(buf, $imul(4, w), $clone(r, Rectangle)); + }; + $pkg.NewRGBA = NewRGBA; + RGBA64.ptr.prototype.ColorModel = function() { + var p; + p = this; + return color.RGBA64Model; + }; + RGBA64.prototype.ColorModel = function() { return this.$val.ColorModel(); }; + RGBA64.ptr.prototype.Bounds = function() { + var p; + p = this; + return p.Rect; + }; + RGBA64.prototype.Bounds = function() { return this.$val.Bounds(); }; + RGBA64.ptr.prototype.At = function(x$4, y) { + var p, x$4, x$5, y; + p = this; + return (x$5 = p.RGBA64At(x$4, y), new x$5.constructor.elem(x$5)); + }; + RGBA64.prototype.At = function(x$4, y) { return this.$val.At(x$4, y); }; + RGBA64.ptr.prototype.RGBA64At = function(x$4, y) { + var i, p, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$20, x$4, x$5, x$6, x$7, x$8, x$9, y; + p = this; + if (!(new Point.ptr(x$4, y).In($clone(p.Rect, Rectangle)))) { + return new color.RGBA64.ptr(0, 0, 0, 0); + } + i = p.PixOffset(x$4, y); + return new color.RGBA64.ptr((((((x$5 = p.Pix, x$6 = i + 0 >> 0, ((x$6 < 0 || x$6 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + x$6])) << 16 >>> 16)) << 8 << 16 >>> 16) | (((x$7 = p.Pix, x$8 = i + 1 >> 0, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8])) << 16 >>> 16))) >>> 0, (((((x$9 = p.Pix, x$10 = i + 2 >> 0, ((x$10 < 0 || x$10 >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + x$10])) << 16 >>> 16)) << 8 << 16 >>> 16) | (((x$11 = p.Pix, x$12 = i + 3 >> 0, ((x$12 < 0 || x$12 >= x$11.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + x$12])) << 16 >>> 16))) >>> 0, (((((x$13 = p.Pix, x$14 = i + 4 >> 0, ((x$14 < 0 || x$14 >= x$13.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$13.$array[x$13.$offset + x$14])) << 16 >>> 16)) << 8 << 16 >>> 16) | (((x$15 = p.Pix, x$16 = i + 5 >> 0, ((x$16 < 0 || x$16 >= x$15.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$15.$array[x$15.$offset + x$16])) << 16 >>> 16))) >>> 0, (((((x$17 = p.Pix, x$18 = i + 6 >> 0, ((x$18 < 0 || x$18 >= x$17.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$17.$array[x$17.$offset + x$18])) << 16 >>> 16)) << 8 << 16 >>> 16) | (((x$19 = p.Pix, x$20 = i + 7 >> 0, ((x$20 < 0 || x$20 >= x$19.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$19.$array[x$19.$offset + x$20])) << 16 >>> 16))) >>> 0); + }; + RGBA64.prototype.RGBA64At = function(x$4, y) { return this.$val.RGBA64At(x$4, y); }; + RGBA64.ptr.prototype.PixOffset = function(x$4, y) { + var p, x$4, y; + p = this; + return ($imul(((y - p.Rect.Min.Y >> 0)), p.Stride)) + ($imul(((x$4 - p.Rect.Min.X >> 0)), 8)) >> 0; + }; + RGBA64.prototype.PixOffset = function(x$4, y) { return this.$val.PixOffset(x$4, y); }; + RGBA64.ptr.prototype.Set = function(x$4, y, c) { + var _r, c, c1, i, p, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$20, x$4, x$5, x$6, x$7, x$8, x$9, y, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; c = $f.c; c1 = $f.c1; i = $f.i; p = $f.p; x$10 = $f.x$10; x$11 = $f.x$11; x$12 = $f.x$12; x$13 = $f.x$13; x$14 = $f.x$14; x$15 = $f.x$15; x$16 = $f.x$16; x$17 = $f.x$17; x$18 = $f.x$18; x$19 = $f.x$19; x$20 = $f.x$20; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; x$8 = $f.x$8; x$9 = $f.x$9; y = $f.y; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + if (!(new Point.ptr(x$4, y).In($clone(p.Rect, Rectangle)))) { + $s = -1; return; + } + i = p.PixOffset(x$4, y); + _r = color.RGBA64Model.Convert(c); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + c1 = $clone($assertType(_r, color.RGBA64), color.RGBA64); + (x$5 = p.Pix, x$6 = i + 0 >> 0, ((x$6 < 0 || x$6 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + x$6] = (((c1.R >>> 8 << 16 >>> 16) << 24 >>> 24)))); + (x$7 = p.Pix, x$8 = i + 1 >> 0, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8] = ((c1.R << 24 >>> 24)))); + (x$9 = p.Pix, x$10 = i + 2 >> 0, ((x$10 < 0 || x$10 >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + x$10] = (((c1.G >>> 8 << 16 >>> 16) << 24 >>> 24)))); + (x$11 = p.Pix, x$12 = i + 3 >> 0, ((x$12 < 0 || x$12 >= x$11.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + x$12] = ((c1.G << 24 >>> 24)))); + (x$13 = p.Pix, x$14 = i + 4 >> 0, ((x$14 < 0 || x$14 >= x$13.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$13.$array[x$13.$offset + x$14] = (((c1.B >>> 8 << 16 >>> 16) << 24 >>> 24)))); + (x$15 = p.Pix, x$16 = i + 5 >> 0, ((x$16 < 0 || x$16 >= x$15.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$15.$array[x$15.$offset + x$16] = ((c1.B << 24 >>> 24)))); + (x$17 = p.Pix, x$18 = i + 6 >> 0, ((x$18 < 0 || x$18 >= x$17.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$17.$array[x$17.$offset + x$18] = (((c1.A >>> 8 << 16 >>> 16) << 24 >>> 24)))); + (x$19 = p.Pix, x$20 = i + 7 >> 0, ((x$20 < 0 || x$20 >= x$19.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$19.$array[x$19.$offset + x$20] = ((c1.A << 24 >>> 24)))); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: RGBA64.ptr.prototype.Set }; } $f._r = _r; $f.c = c; $f.c1 = c1; $f.i = i; $f.p = p; $f.x$10 = x$10; $f.x$11 = x$11; $f.x$12 = x$12; $f.x$13 = x$13; $f.x$14 = x$14; $f.x$15 = x$15; $f.x$16 = x$16; $f.x$17 = x$17; $f.x$18 = x$18; $f.x$19 = x$19; $f.x$20 = x$20; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.x$8 = x$8; $f.x$9 = x$9; $f.y = y; $f.$s = $s; $f.$r = $r; return $f; + }; + RGBA64.prototype.Set = function(x$4, y, c) { return this.$val.Set(x$4, y, c); }; + RGBA64.ptr.prototype.SetRGBA64 = function(x$4, y, c) { + var c, i, p, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$20, x$4, x$5, x$6, x$7, x$8, x$9, y; + p = this; + if (!(new Point.ptr(x$4, y).In($clone(p.Rect, Rectangle)))) { + return; + } + i = p.PixOffset(x$4, y); + (x$5 = p.Pix, x$6 = i + 0 >> 0, ((x$6 < 0 || x$6 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + x$6] = (((c.R >>> 8 << 16 >>> 16) << 24 >>> 24)))); + (x$7 = p.Pix, x$8 = i + 1 >> 0, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8] = ((c.R << 24 >>> 24)))); + (x$9 = p.Pix, x$10 = i + 2 >> 0, ((x$10 < 0 || x$10 >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + x$10] = (((c.G >>> 8 << 16 >>> 16) << 24 >>> 24)))); + (x$11 = p.Pix, x$12 = i + 3 >> 0, ((x$12 < 0 || x$12 >= x$11.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + x$12] = ((c.G << 24 >>> 24)))); + (x$13 = p.Pix, x$14 = i + 4 >> 0, ((x$14 < 0 || x$14 >= x$13.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$13.$array[x$13.$offset + x$14] = (((c.B >>> 8 << 16 >>> 16) << 24 >>> 24)))); + (x$15 = p.Pix, x$16 = i + 5 >> 0, ((x$16 < 0 || x$16 >= x$15.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$15.$array[x$15.$offset + x$16] = ((c.B << 24 >>> 24)))); + (x$17 = p.Pix, x$18 = i + 6 >> 0, ((x$18 < 0 || x$18 >= x$17.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$17.$array[x$17.$offset + x$18] = (((c.A >>> 8 << 16 >>> 16) << 24 >>> 24)))); + (x$19 = p.Pix, x$20 = i + 7 >> 0, ((x$20 < 0 || x$20 >= x$19.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$19.$array[x$19.$offset + x$20] = ((c.A << 24 >>> 24)))); + }; + RGBA64.prototype.SetRGBA64 = function(x$4, y, c) { return this.$val.SetRGBA64(x$4, y, c); }; + RGBA64.ptr.prototype.SubImage = function(r) { + var i, p, r; + p = this; + Rectangle.copy(r, $clone(r, Rectangle).Intersect($clone(p.Rect, Rectangle))); + if ($clone(r, Rectangle).Empty()) { + return new RGBA64.ptr(sliceType$1.nil, 0, new Rectangle.ptr(new Point.ptr(0, 0), new Point.ptr(0, 0))); + } + i = p.PixOffset(r.Min.X, r.Min.Y); + return new RGBA64.ptr($subslice(p.Pix, i), p.Stride, $clone(r, Rectangle)); + }; + RGBA64.prototype.SubImage = function(r) { return this.$val.SubImage(r); }; + RGBA64.ptr.prototype.Opaque = function() { + var _tmp, _tmp$1, i, i0, i1, p, x$4, x$5, x$6, x$7, y; + p = this; + if ($clone(p.Rect, Rectangle).Empty()) { + return true; + } + _tmp = 6; + _tmp$1 = $imul($clone(p.Rect, Rectangle).Dx(), 8); + i0 = _tmp; + i1 = _tmp$1; + y = p.Rect.Min.Y; + while (true) { + if (!(y < p.Rect.Max.Y)) { break; } + i = i0; + while (true) { + if (!(i < i1)) { break; } + if (!(((x$4 = p.Pix, x$5 = i + 0 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])) === 255)) || !(((x$6 = p.Pix, x$7 = i + 1 >> 0, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])) === 255))) { + return false; + } + i = i + (8) >> 0; + } + i0 = i0 + (p.Stride) >> 0; + i1 = i1 + (p.Stride) >> 0; + y = y + (1) >> 0; + } + return true; + }; + RGBA64.prototype.Opaque = function() { return this.$val.Opaque(); }; + NewRGBA64 = function(r) { + var _tmp, _tmp$1, h, pix, r, w; + _tmp = $clone(r, Rectangle).Dx(); + _tmp$1 = $clone(r, Rectangle).Dy(); + w = _tmp; + h = _tmp$1; + pix = $makeSlice(sliceType$1, ($imul(($imul(8, w)), h))); + return new RGBA64.ptr(pix, $imul(8, w), $clone(r, Rectangle)); + }; + $pkg.NewRGBA64 = NewRGBA64; + NRGBA.ptr.prototype.ColorModel = function() { + var p; + p = this; + return color.NRGBAModel; + }; + NRGBA.prototype.ColorModel = function() { return this.$val.ColorModel(); }; + NRGBA.ptr.prototype.Bounds = function() { + var p; + p = this; + return p.Rect; + }; + NRGBA.prototype.Bounds = function() { return this.$val.Bounds(); }; + NRGBA.ptr.prototype.At = function(x$4, y) { + var p, x$4, x$5, y; + p = this; + return (x$5 = p.NRGBAAt(x$4, y), new x$5.constructor.elem(x$5)); + }; + NRGBA.prototype.At = function(x$4, y) { return this.$val.At(x$4, y); }; + NRGBA.ptr.prototype.NRGBAAt = function(x$4, y) { + var i, p, x$10, x$11, x$12, x$4, x$5, x$6, x$7, x$8, x$9, y; + p = this; + if (!(new Point.ptr(x$4, y).In($clone(p.Rect, Rectangle)))) { + return new color.NRGBA.ptr(0, 0, 0, 0); + } + i = p.PixOffset(x$4, y); + return new color.NRGBA.ptr((x$5 = p.Pix, x$6 = i + 0 >> 0, ((x$6 < 0 || x$6 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + x$6])), (x$7 = p.Pix, x$8 = i + 1 >> 0, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8])), (x$9 = p.Pix, x$10 = i + 2 >> 0, ((x$10 < 0 || x$10 >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + x$10])), (x$11 = p.Pix, x$12 = i + 3 >> 0, ((x$12 < 0 || x$12 >= x$11.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + x$12]))); + }; + NRGBA.prototype.NRGBAAt = function(x$4, y) { return this.$val.NRGBAAt(x$4, y); }; + NRGBA.ptr.prototype.PixOffset = function(x$4, y) { + var p, x$4, y; + p = this; + return ($imul(((y - p.Rect.Min.Y >> 0)), p.Stride)) + ($imul(((x$4 - p.Rect.Min.X >> 0)), 4)) >> 0; + }; + NRGBA.prototype.PixOffset = function(x$4, y) { return this.$val.PixOffset(x$4, y); }; + NRGBA.ptr.prototype.Set = function(x$4, y, c) { + var _r, c, c1, i, p, x$10, x$11, x$12, x$4, x$5, x$6, x$7, x$8, x$9, y, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; c = $f.c; c1 = $f.c1; i = $f.i; p = $f.p; x$10 = $f.x$10; x$11 = $f.x$11; x$12 = $f.x$12; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; x$8 = $f.x$8; x$9 = $f.x$9; y = $f.y; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + if (!(new Point.ptr(x$4, y).In($clone(p.Rect, Rectangle)))) { + $s = -1; return; + } + i = p.PixOffset(x$4, y); + _r = color.NRGBAModel.Convert(c); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + c1 = $clone($assertType(_r, color.NRGBA), color.NRGBA); + (x$5 = p.Pix, x$6 = i + 0 >> 0, ((x$6 < 0 || x$6 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + x$6] = c1.R)); + (x$7 = p.Pix, x$8 = i + 1 >> 0, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8] = c1.G)); + (x$9 = p.Pix, x$10 = i + 2 >> 0, ((x$10 < 0 || x$10 >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + x$10] = c1.B)); + (x$11 = p.Pix, x$12 = i + 3 >> 0, ((x$12 < 0 || x$12 >= x$11.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + x$12] = c1.A)); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: NRGBA.ptr.prototype.Set }; } $f._r = _r; $f.c = c; $f.c1 = c1; $f.i = i; $f.p = p; $f.x$10 = x$10; $f.x$11 = x$11; $f.x$12 = x$12; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.x$8 = x$8; $f.x$9 = x$9; $f.y = y; $f.$s = $s; $f.$r = $r; return $f; + }; + NRGBA.prototype.Set = function(x$4, y, c) { return this.$val.Set(x$4, y, c); }; + NRGBA.ptr.prototype.SetNRGBA = function(x$4, y, c) { + var c, i, p, x$10, x$11, x$12, x$4, x$5, x$6, x$7, x$8, x$9, y; + p = this; + if (!(new Point.ptr(x$4, y).In($clone(p.Rect, Rectangle)))) { + return; + } + i = p.PixOffset(x$4, y); + (x$5 = p.Pix, x$6 = i + 0 >> 0, ((x$6 < 0 || x$6 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + x$6] = c.R)); + (x$7 = p.Pix, x$8 = i + 1 >> 0, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8] = c.G)); + (x$9 = p.Pix, x$10 = i + 2 >> 0, ((x$10 < 0 || x$10 >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + x$10] = c.B)); + (x$11 = p.Pix, x$12 = i + 3 >> 0, ((x$12 < 0 || x$12 >= x$11.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + x$12] = c.A)); + }; + NRGBA.prototype.SetNRGBA = function(x$4, y, c) { return this.$val.SetNRGBA(x$4, y, c); }; + NRGBA.ptr.prototype.SubImage = function(r) { + var i, p, r; + p = this; + Rectangle.copy(r, $clone(r, Rectangle).Intersect($clone(p.Rect, Rectangle))); + if ($clone(r, Rectangle).Empty()) { + return new NRGBA.ptr(sliceType$1.nil, 0, new Rectangle.ptr(new Point.ptr(0, 0), new Point.ptr(0, 0))); + } + i = p.PixOffset(r.Min.X, r.Min.Y); + return new NRGBA.ptr($subslice(p.Pix, i), p.Stride, $clone(r, Rectangle)); + }; + NRGBA.prototype.SubImage = function(r) { return this.$val.SubImage(r); }; + NRGBA.ptr.prototype.Opaque = function() { + var _tmp, _tmp$1, i, i0, i1, p, x$4, y; + p = this; + if ($clone(p.Rect, Rectangle).Empty()) { + return true; + } + _tmp = 3; + _tmp$1 = $imul($clone(p.Rect, Rectangle).Dx(), 4); + i0 = _tmp; + i1 = _tmp$1; + y = p.Rect.Min.Y; + while (true) { + if (!(y < p.Rect.Max.Y)) { break; } + i = i0; + while (true) { + if (!(i < i1)) { break; } + if (!(((x$4 = p.Pix, ((i < 0 || i >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + i])) === 255))) { + return false; + } + i = i + (4) >> 0; + } + i0 = i0 + (p.Stride) >> 0; + i1 = i1 + (p.Stride) >> 0; + y = y + (1) >> 0; + } + return true; + }; + NRGBA.prototype.Opaque = function() { return this.$val.Opaque(); }; + NewNRGBA = function(r) { + var _tmp, _tmp$1, h, pix, r, w; + _tmp = $clone(r, Rectangle).Dx(); + _tmp$1 = $clone(r, Rectangle).Dy(); + w = _tmp; + h = _tmp$1; + pix = $makeSlice(sliceType$1, ($imul(($imul(4, w)), h))); + return new NRGBA.ptr(pix, $imul(4, w), $clone(r, Rectangle)); + }; + $pkg.NewNRGBA = NewNRGBA; + NRGBA64.ptr.prototype.ColorModel = function() { + var p; + p = this; + return color.NRGBA64Model; + }; + NRGBA64.prototype.ColorModel = function() { return this.$val.ColorModel(); }; + NRGBA64.ptr.prototype.Bounds = function() { + var p; + p = this; + return p.Rect; + }; + NRGBA64.prototype.Bounds = function() { return this.$val.Bounds(); }; + NRGBA64.ptr.prototype.At = function(x$4, y) { + var p, x$4, x$5, y; + p = this; + return (x$5 = p.NRGBA64At(x$4, y), new x$5.constructor.elem(x$5)); + }; + NRGBA64.prototype.At = function(x$4, y) { return this.$val.At(x$4, y); }; + NRGBA64.ptr.prototype.NRGBA64At = function(x$4, y) { + var i, p, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$20, x$4, x$5, x$6, x$7, x$8, x$9, y; + p = this; + if (!(new Point.ptr(x$4, y).In($clone(p.Rect, Rectangle)))) { + return new color.NRGBA64.ptr(0, 0, 0, 0); + } + i = p.PixOffset(x$4, y); + return new color.NRGBA64.ptr((((((x$5 = p.Pix, x$6 = i + 0 >> 0, ((x$6 < 0 || x$6 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + x$6])) << 16 >>> 16)) << 8 << 16 >>> 16) | (((x$7 = p.Pix, x$8 = i + 1 >> 0, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8])) << 16 >>> 16))) >>> 0, (((((x$9 = p.Pix, x$10 = i + 2 >> 0, ((x$10 < 0 || x$10 >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + x$10])) << 16 >>> 16)) << 8 << 16 >>> 16) | (((x$11 = p.Pix, x$12 = i + 3 >> 0, ((x$12 < 0 || x$12 >= x$11.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + x$12])) << 16 >>> 16))) >>> 0, (((((x$13 = p.Pix, x$14 = i + 4 >> 0, ((x$14 < 0 || x$14 >= x$13.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$13.$array[x$13.$offset + x$14])) << 16 >>> 16)) << 8 << 16 >>> 16) | (((x$15 = p.Pix, x$16 = i + 5 >> 0, ((x$16 < 0 || x$16 >= x$15.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$15.$array[x$15.$offset + x$16])) << 16 >>> 16))) >>> 0, (((((x$17 = p.Pix, x$18 = i + 6 >> 0, ((x$18 < 0 || x$18 >= x$17.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$17.$array[x$17.$offset + x$18])) << 16 >>> 16)) << 8 << 16 >>> 16) | (((x$19 = p.Pix, x$20 = i + 7 >> 0, ((x$20 < 0 || x$20 >= x$19.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$19.$array[x$19.$offset + x$20])) << 16 >>> 16))) >>> 0); + }; + NRGBA64.prototype.NRGBA64At = function(x$4, y) { return this.$val.NRGBA64At(x$4, y); }; + NRGBA64.ptr.prototype.PixOffset = function(x$4, y) { + var p, x$4, y; + p = this; + return ($imul(((y - p.Rect.Min.Y >> 0)), p.Stride)) + ($imul(((x$4 - p.Rect.Min.X >> 0)), 8)) >> 0; + }; + NRGBA64.prototype.PixOffset = function(x$4, y) { return this.$val.PixOffset(x$4, y); }; + NRGBA64.ptr.prototype.Set = function(x$4, y, c) { + var _r, c, c1, i, p, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$20, x$4, x$5, x$6, x$7, x$8, x$9, y, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; c = $f.c; c1 = $f.c1; i = $f.i; p = $f.p; x$10 = $f.x$10; x$11 = $f.x$11; x$12 = $f.x$12; x$13 = $f.x$13; x$14 = $f.x$14; x$15 = $f.x$15; x$16 = $f.x$16; x$17 = $f.x$17; x$18 = $f.x$18; x$19 = $f.x$19; x$20 = $f.x$20; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; x$8 = $f.x$8; x$9 = $f.x$9; y = $f.y; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + if (!(new Point.ptr(x$4, y).In($clone(p.Rect, Rectangle)))) { + $s = -1; return; + } + i = p.PixOffset(x$4, y); + _r = color.NRGBA64Model.Convert(c); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + c1 = $clone($assertType(_r, color.NRGBA64), color.NRGBA64); + (x$5 = p.Pix, x$6 = i + 0 >> 0, ((x$6 < 0 || x$6 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + x$6] = (((c1.R >>> 8 << 16 >>> 16) << 24 >>> 24)))); + (x$7 = p.Pix, x$8 = i + 1 >> 0, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8] = ((c1.R << 24 >>> 24)))); + (x$9 = p.Pix, x$10 = i + 2 >> 0, ((x$10 < 0 || x$10 >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + x$10] = (((c1.G >>> 8 << 16 >>> 16) << 24 >>> 24)))); + (x$11 = p.Pix, x$12 = i + 3 >> 0, ((x$12 < 0 || x$12 >= x$11.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + x$12] = ((c1.G << 24 >>> 24)))); + (x$13 = p.Pix, x$14 = i + 4 >> 0, ((x$14 < 0 || x$14 >= x$13.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$13.$array[x$13.$offset + x$14] = (((c1.B >>> 8 << 16 >>> 16) << 24 >>> 24)))); + (x$15 = p.Pix, x$16 = i + 5 >> 0, ((x$16 < 0 || x$16 >= x$15.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$15.$array[x$15.$offset + x$16] = ((c1.B << 24 >>> 24)))); + (x$17 = p.Pix, x$18 = i + 6 >> 0, ((x$18 < 0 || x$18 >= x$17.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$17.$array[x$17.$offset + x$18] = (((c1.A >>> 8 << 16 >>> 16) << 24 >>> 24)))); + (x$19 = p.Pix, x$20 = i + 7 >> 0, ((x$20 < 0 || x$20 >= x$19.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$19.$array[x$19.$offset + x$20] = ((c1.A << 24 >>> 24)))); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: NRGBA64.ptr.prototype.Set }; } $f._r = _r; $f.c = c; $f.c1 = c1; $f.i = i; $f.p = p; $f.x$10 = x$10; $f.x$11 = x$11; $f.x$12 = x$12; $f.x$13 = x$13; $f.x$14 = x$14; $f.x$15 = x$15; $f.x$16 = x$16; $f.x$17 = x$17; $f.x$18 = x$18; $f.x$19 = x$19; $f.x$20 = x$20; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.x$8 = x$8; $f.x$9 = x$9; $f.y = y; $f.$s = $s; $f.$r = $r; return $f; + }; + NRGBA64.prototype.Set = function(x$4, y, c) { return this.$val.Set(x$4, y, c); }; + NRGBA64.ptr.prototype.SetNRGBA64 = function(x$4, y, c) { + var c, i, p, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$20, x$4, x$5, x$6, x$7, x$8, x$9, y; + p = this; + if (!(new Point.ptr(x$4, y).In($clone(p.Rect, Rectangle)))) { + return; + } + i = p.PixOffset(x$4, y); + (x$5 = p.Pix, x$6 = i + 0 >> 0, ((x$6 < 0 || x$6 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + x$6] = (((c.R >>> 8 << 16 >>> 16) << 24 >>> 24)))); + (x$7 = p.Pix, x$8 = i + 1 >> 0, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8] = ((c.R << 24 >>> 24)))); + (x$9 = p.Pix, x$10 = i + 2 >> 0, ((x$10 < 0 || x$10 >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + x$10] = (((c.G >>> 8 << 16 >>> 16) << 24 >>> 24)))); + (x$11 = p.Pix, x$12 = i + 3 >> 0, ((x$12 < 0 || x$12 >= x$11.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + x$12] = ((c.G << 24 >>> 24)))); + (x$13 = p.Pix, x$14 = i + 4 >> 0, ((x$14 < 0 || x$14 >= x$13.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$13.$array[x$13.$offset + x$14] = (((c.B >>> 8 << 16 >>> 16) << 24 >>> 24)))); + (x$15 = p.Pix, x$16 = i + 5 >> 0, ((x$16 < 0 || x$16 >= x$15.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$15.$array[x$15.$offset + x$16] = ((c.B << 24 >>> 24)))); + (x$17 = p.Pix, x$18 = i + 6 >> 0, ((x$18 < 0 || x$18 >= x$17.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$17.$array[x$17.$offset + x$18] = (((c.A >>> 8 << 16 >>> 16) << 24 >>> 24)))); + (x$19 = p.Pix, x$20 = i + 7 >> 0, ((x$20 < 0 || x$20 >= x$19.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$19.$array[x$19.$offset + x$20] = ((c.A << 24 >>> 24)))); + }; + NRGBA64.prototype.SetNRGBA64 = function(x$4, y, c) { return this.$val.SetNRGBA64(x$4, y, c); }; + NRGBA64.ptr.prototype.SubImage = function(r) { + var i, p, r; + p = this; + Rectangle.copy(r, $clone(r, Rectangle).Intersect($clone(p.Rect, Rectangle))); + if ($clone(r, Rectangle).Empty()) { + return new NRGBA64.ptr(sliceType$1.nil, 0, new Rectangle.ptr(new Point.ptr(0, 0), new Point.ptr(0, 0))); + } + i = p.PixOffset(r.Min.X, r.Min.Y); + return new NRGBA64.ptr($subslice(p.Pix, i), p.Stride, $clone(r, Rectangle)); + }; + NRGBA64.prototype.SubImage = function(r) { return this.$val.SubImage(r); }; + NRGBA64.ptr.prototype.Opaque = function() { + var _tmp, _tmp$1, i, i0, i1, p, x$4, x$5, x$6, x$7, y; + p = this; + if ($clone(p.Rect, Rectangle).Empty()) { + return true; + } + _tmp = 6; + _tmp$1 = $imul($clone(p.Rect, Rectangle).Dx(), 8); + i0 = _tmp; + i1 = _tmp$1; + y = p.Rect.Min.Y; + while (true) { + if (!(y < p.Rect.Max.Y)) { break; } + i = i0; + while (true) { + if (!(i < i1)) { break; } + if (!(((x$4 = p.Pix, x$5 = i + 0 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])) === 255)) || !(((x$6 = p.Pix, x$7 = i + 1 >> 0, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])) === 255))) { + return false; + } + i = i + (8) >> 0; + } + i0 = i0 + (p.Stride) >> 0; + i1 = i1 + (p.Stride) >> 0; + y = y + (1) >> 0; + } + return true; + }; + NRGBA64.prototype.Opaque = function() { return this.$val.Opaque(); }; + NewNRGBA64 = function(r) { + var _tmp, _tmp$1, h, pix, r, w; + _tmp = $clone(r, Rectangle).Dx(); + _tmp$1 = $clone(r, Rectangle).Dy(); + w = _tmp; + h = _tmp$1; + pix = $makeSlice(sliceType$1, ($imul(($imul(8, w)), h))); + return new NRGBA64.ptr(pix, $imul(8, w), $clone(r, Rectangle)); + }; + $pkg.NewNRGBA64 = NewNRGBA64; + Alpha.ptr.prototype.ColorModel = function() { + var p; + p = this; + return color.AlphaModel; + }; + Alpha.prototype.ColorModel = function() { return this.$val.ColorModel(); }; + Alpha.ptr.prototype.Bounds = function() { + var p; + p = this; + return p.Rect; + }; + Alpha.prototype.Bounds = function() { return this.$val.Bounds(); }; + Alpha.ptr.prototype.At = function(x$4, y) { + var p, x$4, x$5, y; + p = this; + return (x$5 = p.AlphaAt(x$4, y), new x$5.constructor.elem(x$5)); + }; + Alpha.prototype.At = function(x$4, y) { return this.$val.At(x$4, y); }; + Alpha.ptr.prototype.AlphaAt = function(x$4, y) { + var i, p, x$4, x$5, y; + p = this; + if (!(new Point.ptr(x$4, y).In($clone(p.Rect, Rectangle)))) { + return new color.Alpha.ptr(0); + } + i = p.PixOffset(x$4, y); + return new color.Alpha.ptr((x$5 = p.Pix, ((i < 0 || i >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + i]))); + }; + Alpha.prototype.AlphaAt = function(x$4, y) { return this.$val.AlphaAt(x$4, y); }; + Alpha.ptr.prototype.PixOffset = function(x$4, y) { + var p, x$4, y; + p = this; + return ($imul(((y - p.Rect.Min.Y >> 0)), p.Stride)) + ($imul(((x$4 - p.Rect.Min.X >> 0)), 1)) >> 0; + }; + Alpha.prototype.PixOffset = function(x$4, y) { return this.$val.PixOffset(x$4, y); }; + Alpha.ptr.prototype.Set = function(x$4, y, c) { + var _r, c, i, p, x$4, x$5, y, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; c = $f.c; i = $f.i; p = $f.p; x$4 = $f.x$4; x$5 = $f.x$5; y = $f.y; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + if (!(new Point.ptr(x$4, y).In($clone(p.Rect, Rectangle)))) { + $s = -1; return; + } + i = p.PixOffset(x$4, y); + _r = color.AlphaModel.Convert(c); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + (x$5 = p.Pix, ((i < 0 || i >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + i] = $assertType(_r, color.Alpha).A)); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Alpha.ptr.prototype.Set }; } $f._r = _r; $f.c = c; $f.i = i; $f.p = p; $f.x$4 = x$4; $f.x$5 = x$5; $f.y = y; $f.$s = $s; $f.$r = $r; return $f; + }; + Alpha.prototype.Set = function(x$4, y, c) { return this.$val.Set(x$4, y, c); }; + Alpha.ptr.prototype.SetAlpha = function(x$4, y, c) { + var c, i, p, x$4, x$5, y; + p = this; + if (!(new Point.ptr(x$4, y).In($clone(p.Rect, Rectangle)))) { + return; + } + i = p.PixOffset(x$4, y); + (x$5 = p.Pix, ((i < 0 || i >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + i] = c.A)); + }; + Alpha.prototype.SetAlpha = function(x$4, y, c) { return this.$val.SetAlpha(x$4, y, c); }; + Alpha.ptr.prototype.SubImage = function(r) { + var i, p, r; + p = this; + Rectangle.copy(r, $clone(r, Rectangle).Intersect($clone(p.Rect, Rectangle))); + if ($clone(r, Rectangle).Empty()) { + return new Alpha.ptr(sliceType$1.nil, 0, new Rectangle.ptr(new Point.ptr(0, 0), new Point.ptr(0, 0))); + } + i = p.PixOffset(r.Min.X, r.Min.Y); + return new Alpha.ptr($subslice(p.Pix, i), p.Stride, $clone(r, Rectangle)); + }; + Alpha.prototype.SubImage = function(r) { return this.$val.SubImage(r); }; + Alpha.ptr.prototype.Opaque = function() { + var _tmp, _tmp$1, i, i0, i1, p, x$4, y; + p = this; + if ($clone(p.Rect, Rectangle).Empty()) { + return true; + } + _tmp = 0; + _tmp$1 = $clone(p.Rect, Rectangle).Dx(); + i0 = _tmp; + i1 = _tmp$1; + y = p.Rect.Min.Y; + while (true) { + if (!(y < p.Rect.Max.Y)) { break; } + i = i0; + while (true) { + if (!(i < i1)) { break; } + if (!(((x$4 = p.Pix, ((i < 0 || i >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + i])) === 255))) { + return false; + } + i = i + (1) >> 0; + } + i0 = i0 + (p.Stride) >> 0; + i1 = i1 + (p.Stride) >> 0; + y = y + (1) >> 0; + } + return true; + }; + Alpha.prototype.Opaque = function() { return this.$val.Opaque(); }; + Alpha16.ptr.prototype.ColorModel = function() { + var p; + p = this; + return color.Alpha16Model; + }; + Alpha16.prototype.ColorModel = function() { return this.$val.ColorModel(); }; + Alpha16.ptr.prototype.Bounds = function() { + var p; + p = this; + return p.Rect; + }; + Alpha16.prototype.Bounds = function() { return this.$val.Bounds(); }; + Alpha16.ptr.prototype.At = function(x$4, y) { + var p, x$4, x$5, y; + p = this; + return (x$5 = p.Alpha16At(x$4, y), new x$5.constructor.elem(x$5)); + }; + Alpha16.prototype.At = function(x$4, y) { return this.$val.At(x$4, y); }; + Alpha16.ptr.prototype.Alpha16At = function(x$4, y) { + var i, p, x$4, x$5, x$6, x$7, x$8, y; + p = this; + if (!(new Point.ptr(x$4, y).In($clone(p.Rect, Rectangle)))) { + return new color.Alpha16.ptr(0); + } + i = p.PixOffset(x$4, y); + return new color.Alpha16.ptr((((((x$5 = p.Pix, x$6 = i + 0 >> 0, ((x$6 < 0 || x$6 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + x$6])) << 16 >>> 16)) << 8 << 16 >>> 16) | (((x$7 = p.Pix, x$8 = i + 1 >> 0, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8])) << 16 >>> 16))) >>> 0); + }; + Alpha16.prototype.Alpha16At = function(x$4, y) { return this.$val.Alpha16At(x$4, y); }; + Alpha16.ptr.prototype.PixOffset = function(x$4, y) { + var p, x$4, y; + p = this; + return ($imul(((y - p.Rect.Min.Y >> 0)), p.Stride)) + ($imul(((x$4 - p.Rect.Min.X >> 0)), 2)) >> 0; + }; + Alpha16.prototype.PixOffset = function(x$4, y) { return this.$val.PixOffset(x$4, y); }; + Alpha16.ptr.prototype.Set = function(x$4, y, c) { + var _r, c, c1, i, p, x$4, x$5, x$6, x$7, x$8, y, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; c = $f.c; c1 = $f.c1; i = $f.i; p = $f.p; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; x$8 = $f.x$8; y = $f.y; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + if (!(new Point.ptr(x$4, y).In($clone(p.Rect, Rectangle)))) { + $s = -1; return; + } + i = p.PixOffset(x$4, y); + _r = color.Alpha16Model.Convert(c); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + c1 = $clone($assertType(_r, color.Alpha16), color.Alpha16); + (x$5 = p.Pix, x$6 = i + 0 >> 0, ((x$6 < 0 || x$6 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + x$6] = (((c1.A >>> 8 << 16 >>> 16) << 24 >>> 24)))); + (x$7 = p.Pix, x$8 = i + 1 >> 0, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8] = ((c1.A << 24 >>> 24)))); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Alpha16.ptr.prototype.Set }; } $f._r = _r; $f.c = c; $f.c1 = c1; $f.i = i; $f.p = p; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.x$8 = x$8; $f.y = y; $f.$s = $s; $f.$r = $r; return $f; + }; + Alpha16.prototype.Set = function(x$4, y, c) { return this.$val.Set(x$4, y, c); }; + Alpha16.ptr.prototype.SetAlpha16 = function(x$4, y, c) { + var c, i, p, x$4, x$5, x$6, x$7, x$8, y; + p = this; + if (!(new Point.ptr(x$4, y).In($clone(p.Rect, Rectangle)))) { + return; + } + i = p.PixOffset(x$4, y); + (x$5 = p.Pix, x$6 = i + 0 >> 0, ((x$6 < 0 || x$6 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + x$6] = (((c.A >>> 8 << 16 >>> 16) << 24 >>> 24)))); + (x$7 = p.Pix, x$8 = i + 1 >> 0, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8] = ((c.A << 24 >>> 24)))); + }; + Alpha16.prototype.SetAlpha16 = function(x$4, y, c) { return this.$val.SetAlpha16(x$4, y, c); }; + Alpha16.ptr.prototype.SubImage = function(r) { + var i, p, r; + p = this; + Rectangle.copy(r, $clone(r, Rectangle).Intersect($clone(p.Rect, Rectangle))); + if ($clone(r, Rectangle).Empty()) { + return new Alpha16.ptr(sliceType$1.nil, 0, new Rectangle.ptr(new Point.ptr(0, 0), new Point.ptr(0, 0))); + } + i = p.PixOffset(r.Min.X, r.Min.Y); + return new Alpha16.ptr($subslice(p.Pix, i), p.Stride, $clone(r, Rectangle)); + }; + Alpha16.prototype.SubImage = function(r) { return this.$val.SubImage(r); }; + Alpha16.ptr.prototype.Opaque = function() { + var _tmp, _tmp$1, i, i0, i1, p, x$4, x$5, x$6, x$7, y; + p = this; + if ($clone(p.Rect, Rectangle).Empty()) { + return true; + } + _tmp = 0; + _tmp$1 = $imul($clone(p.Rect, Rectangle).Dx(), 2); + i0 = _tmp; + i1 = _tmp$1; + y = p.Rect.Min.Y; + while (true) { + if (!(y < p.Rect.Max.Y)) { break; } + i = i0; + while (true) { + if (!(i < i1)) { break; } + if (!(((x$4 = p.Pix, x$5 = i + 0 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])) === 255)) || !(((x$6 = p.Pix, x$7 = i + 1 >> 0, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])) === 255))) { + return false; + } + i = i + (2) >> 0; + } + i0 = i0 + (p.Stride) >> 0; + i1 = i1 + (p.Stride) >> 0; + y = y + (1) >> 0; + } + return true; + }; + Alpha16.prototype.Opaque = function() { return this.$val.Opaque(); }; + Gray.ptr.prototype.ColorModel = function() { + var p; + p = this; + return color.GrayModel; + }; + Gray.prototype.ColorModel = function() { return this.$val.ColorModel(); }; + Gray.ptr.prototype.Bounds = function() { + var p; + p = this; + return p.Rect; + }; + Gray.prototype.Bounds = function() { return this.$val.Bounds(); }; + Gray.ptr.prototype.At = function(x$4, y) { + var p, x$4, x$5, y; + p = this; + return (x$5 = p.GrayAt(x$4, y), new x$5.constructor.elem(x$5)); + }; + Gray.prototype.At = function(x$4, y) { return this.$val.At(x$4, y); }; + Gray.ptr.prototype.GrayAt = function(x$4, y) { + var i, p, x$4, x$5, y; + p = this; + if (!(new Point.ptr(x$4, y).In($clone(p.Rect, Rectangle)))) { + return new color.Gray.ptr(0); + } + i = p.PixOffset(x$4, y); + return new color.Gray.ptr((x$5 = p.Pix, ((i < 0 || i >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + i]))); + }; + Gray.prototype.GrayAt = function(x$4, y) { return this.$val.GrayAt(x$4, y); }; + Gray.ptr.prototype.PixOffset = function(x$4, y) { + var p, x$4, y; + p = this; + return ($imul(((y - p.Rect.Min.Y >> 0)), p.Stride)) + ($imul(((x$4 - p.Rect.Min.X >> 0)), 1)) >> 0; + }; + Gray.prototype.PixOffset = function(x$4, y) { return this.$val.PixOffset(x$4, y); }; + Gray.ptr.prototype.Set = function(x$4, y, c) { + var _r, c, i, p, x$4, x$5, y, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; c = $f.c; i = $f.i; p = $f.p; x$4 = $f.x$4; x$5 = $f.x$5; y = $f.y; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + if (!(new Point.ptr(x$4, y).In($clone(p.Rect, Rectangle)))) { + $s = -1; return; + } + i = p.PixOffset(x$4, y); + _r = color.GrayModel.Convert(c); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + (x$5 = p.Pix, ((i < 0 || i >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + i] = $assertType(_r, color.Gray).Y)); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Gray.ptr.prototype.Set }; } $f._r = _r; $f.c = c; $f.i = i; $f.p = p; $f.x$4 = x$4; $f.x$5 = x$5; $f.y = y; $f.$s = $s; $f.$r = $r; return $f; + }; + Gray.prototype.Set = function(x$4, y, c) { return this.$val.Set(x$4, y, c); }; + Gray.ptr.prototype.SetGray = function(x$4, y, c) { + var c, i, p, x$4, x$5, y; + p = this; + if (!(new Point.ptr(x$4, y).In($clone(p.Rect, Rectangle)))) { + return; + } + i = p.PixOffset(x$4, y); + (x$5 = p.Pix, ((i < 0 || i >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + i] = c.Y)); + }; + Gray.prototype.SetGray = function(x$4, y, c) { return this.$val.SetGray(x$4, y, c); }; + Gray.ptr.prototype.SubImage = function(r) { + var i, p, r; + p = this; + Rectangle.copy(r, $clone(r, Rectangle).Intersect($clone(p.Rect, Rectangle))); + if ($clone(r, Rectangle).Empty()) { + return new Gray.ptr(sliceType$1.nil, 0, new Rectangle.ptr(new Point.ptr(0, 0), new Point.ptr(0, 0))); + } + i = p.PixOffset(r.Min.X, r.Min.Y); + return new Gray.ptr($subslice(p.Pix, i), p.Stride, $clone(r, Rectangle)); + }; + Gray.prototype.SubImage = function(r) { return this.$val.SubImage(r); }; + Gray.ptr.prototype.Opaque = function() { + var p; + p = this; + return true; + }; + Gray.prototype.Opaque = function() { return this.$val.Opaque(); }; + NewGray = function(r) { + var _tmp, _tmp$1, h, pix, r, w; + _tmp = $clone(r, Rectangle).Dx(); + _tmp$1 = $clone(r, Rectangle).Dy(); + w = _tmp; + h = _tmp$1; + pix = $makeSlice(sliceType$1, ($imul(($imul(1, w)), h))); + return new Gray.ptr(pix, $imul(1, w), $clone(r, Rectangle)); + }; + $pkg.NewGray = NewGray; + Gray16.ptr.prototype.ColorModel = function() { + var p; + p = this; + return color.Gray16Model; + }; + Gray16.prototype.ColorModel = function() { return this.$val.ColorModel(); }; + Gray16.ptr.prototype.Bounds = function() { + var p; + p = this; + return p.Rect; + }; + Gray16.prototype.Bounds = function() { return this.$val.Bounds(); }; + Gray16.ptr.prototype.At = function(x$4, y) { + var p, x$4, x$5, y; + p = this; + return (x$5 = p.Gray16At(x$4, y), new x$5.constructor.elem(x$5)); + }; + Gray16.prototype.At = function(x$4, y) { return this.$val.At(x$4, y); }; + Gray16.ptr.prototype.Gray16At = function(x$4, y) { + var i, p, x$4, x$5, x$6, x$7, x$8, y; + p = this; + if (!(new Point.ptr(x$4, y).In($clone(p.Rect, Rectangle)))) { + return new color.Gray16.ptr(0); + } + i = p.PixOffset(x$4, y); + return new color.Gray16.ptr((((((x$5 = p.Pix, x$6 = i + 0 >> 0, ((x$6 < 0 || x$6 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + x$6])) << 16 >>> 16)) << 8 << 16 >>> 16) | (((x$7 = p.Pix, x$8 = i + 1 >> 0, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8])) << 16 >>> 16))) >>> 0); + }; + Gray16.prototype.Gray16At = function(x$4, y) { return this.$val.Gray16At(x$4, y); }; + Gray16.ptr.prototype.PixOffset = function(x$4, y) { + var p, x$4, y; + p = this; + return ($imul(((y - p.Rect.Min.Y >> 0)), p.Stride)) + ($imul(((x$4 - p.Rect.Min.X >> 0)), 2)) >> 0; + }; + Gray16.prototype.PixOffset = function(x$4, y) { return this.$val.PixOffset(x$4, y); }; + Gray16.ptr.prototype.Set = function(x$4, y, c) { + var _r, c, c1, i, p, x$4, x$5, x$6, x$7, x$8, y, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; c = $f.c; c1 = $f.c1; i = $f.i; p = $f.p; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; x$8 = $f.x$8; y = $f.y; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + if (!(new Point.ptr(x$4, y).In($clone(p.Rect, Rectangle)))) { + $s = -1; return; + } + i = p.PixOffset(x$4, y); + _r = color.Gray16Model.Convert(c); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + c1 = $clone($assertType(_r, color.Gray16), color.Gray16); + (x$5 = p.Pix, x$6 = i + 0 >> 0, ((x$6 < 0 || x$6 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + x$6] = (((c1.Y >>> 8 << 16 >>> 16) << 24 >>> 24)))); + (x$7 = p.Pix, x$8 = i + 1 >> 0, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8] = ((c1.Y << 24 >>> 24)))); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Gray16.ptr.prototype.Set }; } $f._r = _r; $f.c = c; $f.c1 = c1; $f.i = i; $f.p = p; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.x$8 = x$8; $f.y = y; $f.$s = $s; $f.$r = $r; return $f; + }; + Gray16.prototype.Set = function(x$4, y, c) { return this.$val.Set(x$4, y, c); }; + Gray16.ptr.prototype.SetGray16 = function(x$4, y, c) { + var c, i, p, x$4, x$5, x$6, x$7, x$8, y; + p = this; + if (!(new Point.ptr(x$4, y).In($clone(p.Rect, Rectangle)))) { + return; + } + i = p.PixOffset(x$4, y); + (x$5 = p.Pix, x$6 = i + 0 >> 0, ((x$6 < 0 || x$6 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + x$6] = (((c.Y >>> 8 << 16 >>> 16) << 24 >>> 24)))); + (x$7 = p.Pix, x$8 = i + 1 >> 0, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8] = ((c.Y << 24 >>> 24)))); + }; + Gray16.prototype.SetGray16 = function(x$4, y, c) { return this.$val.SetGray16(x$4, y, c); }; + Gray16.ptr.prototype.SubImage = function(r) { + var i, p, r; + p = this; + Rectangle.copy(r, $clone(r, Rectangle).Intersect($clone(p.Rect, Rectangle))); + if ($clone(r, Rectangle).Empty()) { + return new Gray16.ptr(sliceType$1.nil, 0, new Rectangle.ptr(new Point.ptr(0, 0), new Point.ptr(0, 0))); + } + i = p.PixOffset(r.Min.X, r.Min.Y); + return new Gray16.ptr($subslice(p.Pix, i), p.Stride, $clone(r, Rectangle)); + }; + Gray16.prototype.SubImage = function(r) { return this.$val.SubImage(r); }; + Gray16.ptr.prototype.Opaque = function() { + var p; + p = this; + return true; + }; + Gray16.prototype.Opaque = function() { return this.$val.Opaque(); }; + NewGray16 = function(r) { + var _tmp, _tmp$1, h, pix, r, w; + _tmp = $clone(r, Rectangle).Dx(); + _tmp$1 = $clone(r, Rectangle).Dy(); + w = _tmp; + h = _tmp$1; + pix = $makeSlice(sliceType$1, ($imul(($imul(2, w)), h))); + return new Gray16.ptr(pix, $imul(2, w), $clone(r, Rectangle)); + }; + $pkg.NewGray16 = NewGray16; + Paletted.ptr.prototype.ColorModel = function() { + var p; + p = this; + return p.Palette; + }; + Paletted.prototype.ColorModel = function() { return this.$val.ColorModel(); }; + Paletted.ptr.prototype.Bounds = function() { + var p; + p = this; + return p.Rect; + }; + Paletted.prototype.Bounds = function() { return this.$val.Bounds(); }; + Paletted.ptr.prototype.At = function(x$4, y) { + var i, p, x$4, x$5, x$6, x$7, x$8, y; + p = this; + if (p.Palette.$length === 0) { + return $ifaceNil; + } + if (!(new Point.ptr(x$4, y).In($clone(p.Rect, Rectangle)))) { + return (x$5 = p.Palette, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0])); + } + i = p.PixOffset(x$4, y); + return (x$6 = p.Palette, x$7 = (x$8 = p.Pix, ((i < 0 || i >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + i])), ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])); + }; + Paletted.prototype.At = function(x$4, y) { return this.$val.At(x$4, y); }; + Paletted.ptr.prototype.PixOffset = function(x$4, y) { + var p, x$4, y; + p = this; + return ($imul(((y - p.Rect.Min.Y >> 0)), p.Stride)) + ($imul(((x$4 - p.Rect.Min.X >> 0)), 1)) >> 0; + }; + Paletted.prototype.PixOffset = function(x$4, y) { return this.$val.PixOffset(x$4, y); }; + Paletted.ptr.prototype.Set = function(x$4, y, c) { + var _r, c, i, p, x$4, x$5, y, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; c = $f.c; i = $f.i; p = $f.p; x$4 = $f.x$4; x$5 = $f.x$5; y = $f.y; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + if (!(new Point.ptr(x$4, y).In($clone(p.Rect, Rectangle)))) { + $s = -1; return; + } + i = p.PixOffset(x$4, y); + _r = p.Palette.Index(c); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + (x$5 = p.Pix, ((i < 0 || i >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + i] = ((_r << 24 >>> 24)))); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Paletted.ptr.prototype.Set }; } $f._r = _r; $f.c = c; $f.i = i; $f.p = p; $f.x$4 = x$4; $f.x$5 = x$5; $f.y = y; $f.$s = $s; $f.$r = $r; return $f; + }; + Paletted.prototype.Set = function(x$4, y, c) { return this.$val.Set(x$4, y, c); }; + Paletted.ptr.prototype.ColorIndexAt = function(x$4, y) { + var i, p, x$4, x$5, y; + p = this; + if (!(new Point.ptr(x$4, y).In($clone(p.Rect, Rectangle)))) { + return 0; + } + i = p.PixOffset(x$4, y); + return (x$5 = p.Pix, ((i < 0 || i >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + i])); + }; + Paletted.prototype.ColorIndexAt = function(x$4, y) { return this.$val.ColorIndexAt(x$4, y); }; + Paletted.ptr.prototype.SetColorIndex = function(x$4, y, index) { + var i, index, p, x$4, x$5, y; + p = this; + if (!(new Point.ptr(x$4, y).In($clone(p.Rect, Rectangle)))) { + return; + } + i = p.PixOffset(x$4, y); + (x$5 = p.Pix, ((i < 0 || i >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + i] = index)); + }; + Paletted.prototype.SetColorIndex = function(x$4, y, index) { return this.$val.SetColorIndex(x$4, y, index); }; + Paletted.ptr.prototype.SubImage = function(r) { + var i, p, r; + p = this; + Rectangle.copy(r, $clone(r, Rectangle).Intersect($clone(p.Rect, Rectangle))); + if ($clone(r, Rectangle).Empty()) { + return new Paletted.ptr(sliceType$1.nil, 0, new Rectangle.ptr(new Point.ptr(0, 0), new Point.ptr(0, 0)), p.Palette); + } + i = p.PixOffset(r.Min.X, r.Min.Y); + return new Paletted.ptr($subslice(p.Pix, i), p.Stride, $clone($clone(p.Rect, Rectangle).Intersect($clone(r, Rectangle)), Rectangle), p.Palette); + }; + Paletted.prototype.SubImage = function(r) { return this.$val.SubImage(r); }; + Paletted.ptr.prototype.Opaque = function() { + var _i, _i$1, _r, _ref, _ref$1, _tmp, _tmp$1, _tuple, a, c, c$1, i, i0, i1, p, present, y, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _i$1 = $f._i$1; _r = $f._r; _ref = $f._ref; _ref$1 = $f._ref$1; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; a = $f.a; c = $f.c; c$1 = $f.c$1; i = $f.i; i0 = $f.i0; i1 = $f.i1; p = $f.p; present = $f.present; y = $f.y; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + present = arrayType.zero(); + _tmp = 0; + _tmp$1 = $clone(p.Rect, Rectangle).Dx(); + i0 = _tmp; + i1 = _tmp$1; + y = p.Rect.Min.Y; + while (true) { + if (!(y < p.Rect.Max.Y)) { break; } + _ref = $subslice(p.Pix, i0, i1); + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + ((c < 0 || c >= present.length) ? ($throwRuntimeError("index out of range"), undefined) : present[c] = true); + _i++; + } + i0 = i0 + (p.Stride) >> 0; + i1 = i1 + (p.Stride) >> 0; + y = y + (1) >> 0; + } + _ref$1 = p.Palette; + _i$1 = 0; + /* while (true) { */ case 1: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 2; continue; } + i = _i$1; + c$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + /* */ if (!((i < 0 || i >= present.length) ? ($throwRuntimeError("index out of range"), undefined) : present[i])) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!((i < 0 || i >= present.length) ? ($throwRuntimeError("index out of range"), undefined) : present[i])) { */ case 3: + _i$1++; + /* continue; */ $s = 1; continue; + /* } */ case 4: + _r = c$1.RGBA(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + a = _tuple[3]; + if (!((a === 65535))) { + $s = -1; return false; + } + _i$1++; + /* } */ $s = 1; continue; case 2: + $s = -1; return true; + /* */ } return; } if ($f === undefined) { $f = { $blk: Paletted.ptr.prototype.Opaque }; } $f._i = _i; $f._i$1 = _i$1; $f._r = _r; $f._ref = _ref; $f._ref$1 = _ref$1; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.a = a; $f.c = c; $f.c$1 = c$1; $f.i = i; $f.i0 = i0; $f.i1 = i1; $f.p = p; $f.present = present; $f.y = y; $f.$s = $s; $f.$r = $r; return $f; + }; + Paletted.prototype.Opaque = function() { return this.$val.Opaque(); }; + NewPaletted = function(r, p) { + var _tmp, _tmp$1, h, p, pix, r, w; + _tmp = $clone(r, Rectangle).Dx(); + _tmp$1 = $clone(r, Rectangle).Dy(); + w = _tmp; + h = _tmp$1; + pix = $makeSlice(sliceType$1, ($imul(($imul(1, w)), h))); + return new Paletted.ptr(pix, $imul(1, w), $clone(r, Rectangle), p); + }; + $pkg.NewPaletted = NewPaletted; + Uniform.ptr.prototype.RGBA = function() { + var _r, _tuple, a, b, c, g, r, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; a = $f.a; b = $f.b; c = $f.c; g = $f.g; r = $f.r; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + r = 0; + g = 0; + b = 0; + a = 0; + c = this; + _r = c.C.RGBA(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + r = _tuple[0]; + g = _tuple[1]; + b = _tuple[2]; + a = _tuple[3]; + $s = -1; return [r, g, b, a]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Uniform.ptr.prototype.RGBA }; } $f._r = _r; $f._tuple = _tuple; $f.a = a; $f.b = b; $f.c = c; $f.g = g; $f.r = r; $f.$s = $s; $f.$r = $r; return $f; + }; + Uniform.prototype.RGBA = function() { return this.$val.RGBA(); }; + Uniform.ptr.prototype.ColorModel = function() { + var c; + c = this; + return c; + }; + Uniform.prototype.ColorModel = function() { return this.$val.ColorModel(); }; + Uniform.ptr.prototype.Convert = function(param) { + var c, param; + c = this; + return c.C; + }; + Uniform.prototype.Convert = function(param) { return this.$val.Convert(param); }; + Uniform.ptr.prototype.Bounds = function() { + var c; + c = this; + return new Rectangle.ptr(new Point.ptr(-1000000000, -1000000000), new Point.ptr(1000000000, 1000000000)); + }; + Uniform.prototype.Bounds = function() { return this.$val.Bounds(); }; + Uniform.ptr.prototype.At = function(x$4, y) { + var c, x$4, y; + c = this; + return c.C; + }; + Uniform.prototype.At = function(x$4, y) { return this.$val.At(x$4, y); }; + Uniform.ptr.prototype.Opaque = function() { + var _r, _tuple, a, c, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; a = $f.a; c = $f.c; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + c = this; + _r = c.C.RGBA(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + a = _tuple[3]; + $s = -1; return a === 65535; + /* */ } return; } if ($f === undefined) { $f = { $blk: Uniform.ptr.prototype.Opaque }; } $f._r = _r; $f._tuple = _tuple; $f.a = a; $f.c = c; $f.$s = $s; $f.$r = $r; return $f; + }; + Uniform.prototype.Opaque = function() { return this.$val.Opaque(); }; + NewUniform = function(c) { + var c; + return new Uniform.ptr(c); + }; + $pkg.NewUniform = NewUniform; + Point.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Add", name: "Add", pkg: "", typ: $funcType([Point], [Point], false)}, {prop: "Sub", name: "Sub", pkg: "", typ: $funcType([Point], [Point], false)}, {prop: "Mul", name: "Mul", pkg: "", typ: $funcType([$Int], [Point], false)}, {prop: "Div", name: "Div", pkg: "", typ: $funcType([$Int], [Point], false)}, {prop: "In", name: "In", pkg: "", typ: $funcType([Rectangle], [$Bool], false)}, {prop: "Mod", name: "Mod", pkg: "", typ: $funcType([Rectangle], [Point], false)}, {prop: "Eq", name: "Eq", pkg: "", typ: $funcType([Point], [$Bool], false)}]; + Rectangle.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Dx", name: "Dx", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Dy", name: "Dy", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [Point], false)}, {prop: "Add", name: "Add", pkg: "", typ: $funcType([Point], [Rectangle], false)}, {prop: "Sub", name: "Sub", pkg: "", typ: $funcType([Point], [Rectangle], false)}, {prop: "Inset", name: "Inset", pkg: "", typ: $funcType([$Int], [Rectangle], false)}, {prop: "Intersect", name: "Intersect", pkg: "", typ: $funcType([Rectangle], [Rectangle], false)}, {prop: "Union", name: "Union", pkg: "", typ: $funcType([Rectangle], [Rectangle], false)}, {prop: "Empty", name: "Empty", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Eq", name: "Eq", pkg: "", typ: $funcType([Rectangle], [$Bool], false)}, {prop: "Overlaps", name: "Overlaps", pkg: "", typ: $funcType([Rectangle], [$Bool], false)}, {prop: "In", name: "In", pkg: "", typ: $funcType([Rectangle], [$Bool], false)}, {prop: "Canon", name: "Canon", pkg: "", typ: $funcType([], [Rectangle], false)}, {prop: "At", name: "At", pkg: "", typ: $funcType([$Int, $Int], [color.Color], false)}, {prop: "Bounds", name: "Bounds", pkg: "", typ: $funcType([], [Rectangle], false)}, {prop: "ColorModel", name: "ColorModel", pkg: "", typ: $funcType([], [color.Model], false)}]; + ptrType.methods = [{prop: "ColorModel", name: "ColorModel", pkg: "", typ: $funcType([], [color.Model], false)}, {prop: "Bounds", name: "Bounds", pkg: "", typ: $funcType([], [Rectangle], false)}, {prop: "At", name: "At", pkg: "", typ: $funcType([$Int, $Int], [color.Color], false)}, {prop: "RGBAAt", name: "RGBAAt", pkg: "", typ: $funcType([$Int, $Int], [color.RGBA], false)}, {prop: "PixOffset", name: "PixOffset", pkg: "", typ: $funcType([$Int, $Int], [$Int], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([$Int, $Int, color.Color], [], false)}, {prop: "SetRGBA", name: "SetRGBA", pkg: "", typ: $funcType([$Int, $Int, color.RGBA], [], false)}, {prop: "SubImage", name: "SubImage", pkg: "", typ: $funcType([Rectangle], [Image], false)}, {prop: "Opaque", name: "Opaque", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType$1.methods = [{prop: "ColorModel", name: "ColorModel", pkg: "", typ: $funcType([], [color.Model], false)}, {prop: "Bounds", name: "Bounds", pkg: "", typ: $funcType([], [Rectangle], false)}, {prop: "At", name: "At", pkg: "", typ: $funcType([$Int, $Int], [color.Color], false)}, {prop: "RGBA64At", name: "RGBA64At", pkg: "", typ: $funcType([$Int, $Int], [color.RGBA64], false)}, {prop: "PixOffset", name: "PixOffset", pkg: "", typ: $funcType([$Int, $Int], [$Int], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([$Int, $Int, color.Color], [], false)}, {prop: "SetRGBA64", name: "SetRGBA64", pkg: "", typ: $funcType([$Int, $Int, color.RGBA64], [], false)}, {prop: "SubImage", name: "SubImage", pkg: "", typ: $funcType([Rectangle], [Image], false)}, {prop: "Opaque", name: "Opaque", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType$2.methods = [{prop: "ColorModel", name: "ColorModel", pkg: "", typ: $funcType([], [color.Model], false)}, {prop: "Bounds", name: "Bounds", pkg: "", typ: $funcType([], [Rectangle], false)}, {prop: "At", name: "At", pkg: "", typ: $funcType([$Int, $Int], [color.Color], false)}, {prop: "NRGBAAt", name: "NRGBAAt", pkg: "", typ: $funcType([$Int, $Int], [color.NRGBA], false)}, {prop: "PixOffset", name: "PixOffset", pkg: "", typ: $funcType([$Int, $Int], [$Int], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([$Int, $Int, color.Color], [], false)}, {prop: "SetNRGBA", name: "SetNRGBA", pkg: "", typ: $funcType([$Int, $Int, color.NRGBA], [], false)}, {prop: "SubImage", name: "SubImage", pkg: "", typ: $funcType([Rectangle], [Image], false)}, {prop: "Opaque", name: "Opaque", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType$3.methods = [{prop: "ColorModel", name: "ColorModel", pkg: "", typ: $funcType([], [color.Model], false)}, {prop: "Bounds", name: "Bounds", pkg: "", typ: $funcType([], [Rectangle], false)}, {prop: "At", name: "At", pkg: "", typ: $funcType([$Int, $Int], [color.Color], false)}, {prop: "NRGBA64At", name: "NRGBA64At", pkg: "", typ: $funcType([$Int, $Int], [color.NRGBA64], false)}, {prop: "PixOffset", name: "PixOffset", pkg: "", typ: $funcType([$Int, $Int], [$Int], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([$Int, $Int, color.Color], [], false)}, {prop: "SetNRGBA64", name: "SetNRGBA64", pkg: "", typ: $funcType([$Int, $Int, color.NRGBA64], [], false)}, {prop: "SubImage", name: "SubImage", pkg: "", typ: $funcType([Rectangle], [Image], false)}, {prop: "Opaque", name: "Opaque", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType$4.methods = [{prop: "ColorModel", name: "ColorModel", pkg: "", typ: $funcType([], [color.Model], false)}, {prop: "Bounds", name: "Bounds", pkg: "", typ: $funcType([], [Rectangle], false)}, {prop: "At", name: "At", pkg: "", typ: $funcType([$Int, $Int], [color.Color], false)}, {prop: "AlphaAt", name: "AlphaAt", pkg: "", typ: $funcType([$Int, $Int], [color.Alpha], false)}, {prop: "PixOffset", name: "PixOffset", pkg: "", typ: $funcType([$Int, $Int], [$Int], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([$Int, $Int, color.Color], [], false)}, {prop: "SetAlpha", name: "SetAlpha", pkg: "", typ: $funcType([$Int, $Int, color.Alpha], [], false)}, {prop: "SubImage", name: "SubImage", pkg: "", typ: $funcType([Rectangle], [Image], false)}, {prop: "Opaque", name: "Opaque", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType$5.methods = [{prop: "ColorModel", name: "ColorModel", pkg: "", typ: $funcType([], [color.Model], false)}, {prop: "Bounds", name: "Bounds", pkg: "", typ: $funcType([], [Rectangle], false)}, {prop: "At", name: "At", pkg: "", typ: $funcType([$Int, $Int], [color.Color], false)}, {prop: "Alpha16At", name: "Alpha16At", pkg: "", typ: $funcType([$Int, $Int], [color.Alpha16], false)}, {prop: "PixOffset", name: "PixOffset", pkg: "", typ: $funcType([$Int, $Int], [$Int], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([$Int, $Int, color.Color], [], false)}, {prop: "SetAlpha16", name: "SetAlpha16", pkg: "", typ: $funcType([$Int, $Int, color.Alpha16], [], false)}, {prop: "SubImage", name: "SubImage", pkg: "", typ: $funcType([Rectangle], [Image], false)}, {prop: "Opaque", name: "Opaque", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType$6.methods = [{prop: "ColorModel", name: "ColorModel", pkg: "", typ: $funcType([], [color.Model], false)}, {prop: "Bounds", name: "Bounds", pkg: "", typ: $funcType([], [Rectangle], false)}, {prop: "At", name: "At", pkg: "", typ: $funcType([$Int, $Int], [color.Color], false)}, {prop: "GrayAt", name: "GrayAt", pkg: "", typ: $funcType([$Int, $Int], [color.Gray], false)}, {prop: "PixOffset", name: "PixOffset", pkg: "", typ: $funcType([$Int, $Int], [$Int], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([$Int, $Int, color.Color], [], false)}, {prop: "SetGray", name: "SetGray", pkg: "", typ: $funcType([$Int, $Int, color.Gray], [], false)}, {prop: "SubImage", name: "SubImage", pkg: "", typ: $funcType([Rectangle], [Image], false)}, {prop: "Opaque", name: "Opaque", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType$7.methods = [{prop: "ColorModel", name: "ColorModel", pkg: "", typ: $funcType([], [color.Model], false)}, {prop: "Bounds", name: "Bounds", pkg: "", typ: $funcType([], [Rectangle], false)}, {prop: "At", name: "At", pkg: "", typ: $funcType([$Int, $Int], [color.Color], false)}, {prop: "Gray16At", name: "Gray16At", pkg: "", typ: $funcType([$Int, $Int], [color.Gray16], false)}, {prop: "PixOffset", name: "PixOffset", pkg: "", typ: $funcType([$Int, $Int], [$Int], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([$Int, $Int, color.Color], [], false)}, {prop: "SetGray16", name: "SetGray16", pkg: "", typ: $funcType([$Int, $Int, color.Gray16], [], false)}, {prop: "SubImage", name: "SubImage", pkg: "", typ: $funcType([Rectangle], [Image], false)}, {prop: "Opaque", name: "Opaque", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType$9.methods = [{prop: "ColorModel", name: "ColorModel", pkg: "", typ: $funcType([], [color.Model], false)}, {prop: "Bounds", name: "Bounds", pkg: "", typ: $funcType([], [Rectangle], false)}, {prop: "At", name: "At", pkg: "", typ: $funcType([$Int, $Int], [color.Color], false)}, {prop: "PixOffset", name: "PixOffset", pkg: "", typ: $funcType([$Int, $Int], [$Int], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([$Int, $Int, color.Color], [], false)}, {prop: "ColorIndexAt", name: "ColorIndexAt", pkg: "", typ: $funcType([$Int, $Int], [$Uint8], false)}, {prop: "SetColorIndex", name: "SetColorIndex", pkg: "", typ: $funcType([$Int, $Int, $Uint8], [], false)}, {prop: "SubImage", name: "SubImage", pkg: "", typ: $funcType([Rectangle], [Image], false)}, {prop: "Opaque", name: "Opaque", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType$10.methods = [{prop: "RGBA", name: "RGBA", pkg: "", typ: $funcType([], [$Uint32, $Uint32, $Uint32, $Uint32], false)}, {prop: "ColorModel", name: "ColorModel", pkg: "", typ: $funcType([], [color.Model], false)}, {prop: "Convert", name: "Convert", pkg: "", typ: $funcType([color.Color], [color.Color], false)}, {prop: "Bounds", name: "Bounds", pkg: "", typ: $funcType([], [Rectangle], false)}, {prop: "At", name: "At", pkg: "", typ: $funcType([$Int, $Int], [color.Color], false)}, {prop: "Opaque", name: "Opaque", pkg: "", typ: $funcType([], [$Bool], false)}]; + format.init("image", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "magic", name: "magic", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "decode", name: "decode", embedded: false, exported: false, typ: funcType, tag: ""}, {prop: "decodeConfig", name: "decodeConfig", embedded: false, exported: false, typ: funcType$1, tag: ""}]); + Point.init("", [{prop: "X", name: "X", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Y", name: "Y", embedded: false, exported: true, typ: $Int, tag: ""}]); + Rectangle.init("", [{prop: "Min", name: "Min", embedded: false, exported: true, typ: Point, tag: ""}, {prop: "Max", name: "Max", embedded: false, exported: true, typ: Point, tag: ""}]); + Config.init("", [{prop: "ColorModel", name: "ColorModel", embedded: false, exported: true, typ: color.Model, tag: ""}, {prop: "Width", name: "Width", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Height", name: "Height", embedded: false, exported: true, typ: $Int, tag: ""}]); + Image.init([{prop: "At", name: "At", pkg: "", typ: $funcType([$Int, $Int], [color.Color], false)}, {prop: "Bounds", name: "Bounds", pkg: "", typ: $funcType([], [Rectangle], false)}, {prop: "ColorModel", name: "ColorModel", pkg: "", typ: $funcType([], [color.Model], false)}]); + PalettedImage.init([{prop: "At", name: "At", pkg: "", typ: $funcType([$Int, $Int], [color.Color], false)}, {prop: "Bounds", name: "Bounds", pkg: "", typ: $funcType([], [Rectangle], false)}, {prop: "ColorIndexAt", name: "ColorIndexAt", pkg: "", typ: $funcType([$Int, $Int], [$Uint8], false)}, {prop: "ColorModel", name: "ColorModel", pkg: "", typ: $funcType([], [color.Model], false)}]); + RGBA.init("", [{prop: "Pix", name: "Pix", embedded: false, exported: true, typ: sliceType$1, tag: ""}, {prop: "Stride", name: "Stride", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Rect", name: "Rect", embedded: false, exported: true, typ: Rectangle, tag: ""}]); + RGBA64.init("", [{prop: "Pix", name: "Pix", embedded: false, exported: true, typ: sliceType$1, tag: ""}, {prop: "Stride", name: "Stride", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Rect", name: "Rect", embedded: false, exported: true, typ: Rectangle, tag: ""}]); + NRGBA.init("", [{prop: "Pix", name: "Pix", embedded: false, exported: true, typ: sliceType$1, tag: ""}, {prop: "Stride", name: "Stride", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Rect", name: "Rect", embedded: false, exported: true, typ: Rectangle, tag: ""}]); + NRGBA64.init("", [{prop: "Pix", name: "Pix", embedded: false, exported: true, typ: sliceType$1, tag: ""}, {prop: "Stride", name: "Stride", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Rect", name: "Rect", embedded: false, exported: true, typ: Rectangle, tag: ""}]); + Alpha.init("", [{prop: "Pix", name: "Pix", embedded: false, exported: true, typ: sliceType$1, tag: ""}, {prop: "Stride", name: "Stride", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Rect", name: "Rect", embedded: false, exported: true, typ: Rectangle, tag: ""}]); + Alpha16.init("", [{prop: "Pix", name: "Pix", embedded: false, exported: true, typ: sliceType$1, tag: ""}, {prop: "Stride", name: "Stride", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Rect", name: "Rect", embedded: false, exported: true, typ: Rectangle, tag: ""}]); + Gray.init("", [{prop: "Pix", name: "Pix", embedded: false, exported: true, typ: sliceType$1, tag: ""}, {prop: "Stride", name: "Stride", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Rect", name: "Rect", embedded: false, exported: true, typ: Rectangle, tag: ""}]); + Gray16.init("", [{prop: "Pix", name: "Pix", embedded: false, exported: true, typ: sliceType$1, tag: ""}, {prop: "Stride", name: "Stride", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Rect", name: "Rect", embedded: false, exported: true, typ: Rectangle, tag: ""}]); + Paletted.init("", [{prop: "Pix", name: "Pix", embedded: false, exported: true, typ: sliceType$1, tag: ""}, {prop: "Stride", name: "Stride", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Rect", name: "Rect", embedded: false, exported: true, typ: Rectangle, tag: ""}, {prop: "Palette", name: "Palette", embedded: false, exported: true, typ: color.Palette, tag: ""}]); + Uniform.init("", [{prop: "C", name: "C", embedded: false, exported: true, typ: color.Color, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = bufio.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errors.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = color.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + formats = sliceType.nil; + $pkg.ZR = new Rectangle.ptr(new Point.ptr(0, 0), new Point.ptr(0, 0)); + $pkg.ErrFormat = errors.New("image: unknown format"); + $pkg.Black = NewUniform((x = color.Black, new x.constructor.elem(x))); + $pkg.White = NewUniform((x$1 = color.White, new x$1.constructor.elem(x$1))); + $pkg.Transparent = NewUniform((x$2 = color.Transparent, new x$2.constructor.elem(x$2))); + $pkg.Opaque = NewUniform((x$3 = color.Opaque, new x$3.constructor.elem(x$3))); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["github.com/makiuchi-d/gozxing"] = (function() { + var $pkg = {}, $init, errors, fmt, util, image, bits, time, BitArray, BitMatrix, checksumException, formatException, notFoundException, ptrType$1, sliceType, sliceType$1, ptrType$2, sliceType$3, checksumInstance, formatInstance, notFoundInstance, NewBitArray, makeArray, NewBitMatrix, GetNotFoundExceptionInstance; + errors = $packages["errors"]; + fmt = $packages["fmt"]; + util = $packages["github.com/makiuchi-d/gozxing/common/util"]; + image = $packages["image"]; + bits = $packages["math/bits"]; + time = $packages["time"]; + BitArray = $pkg.BitArray = $newType(0, $kindStruct, "gozxing.BitArray", true, "github.com/makiuchi-d/gozxing", true, function(bits_, size_) { + this.$val = this; + if (arguments.length === 0) { + this.bits = sliceType.nil; + this.size = 0; + return; + } + this.bits = bits_; + this.size = size_; + }); + BitMatrix = $pkg.BitMatrix = $newType(0, $kindStruct, "gozxing.BitMatrix", true, "github.com/makiuchi-d/gozxing", true, function(width_, height_, rowSize_, bits_) { + this.$val = this; + if (arguments.length === 0) { + this.width = 0; + this.height = 0; + this.rowSize = 0; + this.bits = sliceType.nil; + return; + } + this.width = width_; + this.height = height_; + this.rowSize = rowSize_; + this.bits = bits_; + }); + checksumException = $pkg.checksumException = $newType(0, $kindStruct, "gozxing.checksumException", true, "github.com/makiuchi-d/gozxing", false, function(error_) { + this.$val = this; + if (arguments.length === 0) { + this.error = $ifaceNil; + return; + } + this.error = error_; + }); + formatException = $pkg.formatException = $newType(0, $kindStruct, "gozxing.formatException", true, "github.com/makiuchi-d/gozxing", false, function(error_) { + this.$val = this; + if (arguments.length === 0) { + this.error = $ifaceNil; + return; + } + this.error = error_; + }); + notFoundException = $pkg.notFoundException = $newType(0, $kindStruct, "gozxing.notFoundException", true, "github.com/makiuchi-d/gozxing", false, function(error_) { + this.$val = this; + if (arguments.length === 0) { + this.error = $ifaceNil; + return; + } + this.error = error_; + }); + ptrType$1 = $ptrType(BitMatrix); + sliceType = $sliceType($Uint32); + sliceType$1 = $sliceType($Uint8); + ptrType$2 = $ptrType(BitArray); + sliceType$3 = $sliceType($Int); + NewBitArray = function(size) { + var size; + return new BitArray.ptr(makeArray(size), size); + }; + $pkg.NewBitArray = NewBitArray; + BitArray.ptr.prototype.GetSize = function() { + var b; + b = this; + return b.size; + }; + BitArray.prototype.GetSize = function() { return this.$val.GetSize(); }; + BitArray.ptr.prototype.GetSizeInBytes = function() { + var _q, b; + b = this; + return (_q = ((b.size + 7 >> 0)) / 8, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + }; + BitArray.prototype.GetSizeInBytes = function() { return this.$val.GetSizeInBytes(); }; + BitArray.ptr.prototype.ensureCapacity = function(size) { + var b, newBits, size; + b = this; + if (size > ($imul(b.bits.$length, 32))) { + newBits = makeArray(size); + $copySlice(newBits, b.bits); + b.bits = newBits; + } + }; + BitArray.prototype.ensureCapacity = function(size) { return this.$val.ensureCapacity(size); }; + BitArray.ptr.prototype.Get = function(i) { + var _q, _r, b, i, x, x$1, y; + b = this; + return !((((((x = b.bits, x$1 = (_q = i / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])) & (((y = (((_r = i % 32, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) >>> 0)), y < 32 ? (1 << y) : 0) >>> 0))) >>> 0)) === 0)); + }; + BitArray.prototype.Get = function(i) { return this.$val.Get(i); }; + BitArray.ptr.prototype.Set = function(i) { + var _index, _q, _r, b, i, x, x$1, y; + b = this; + _index = (_q = i / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + (x$1 = b.bits, ((_index < 0 || _index >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + _index] = (((x = b.bits, ((_index < 0 || _index >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + _index])) | (((y = (((_r = i % 32, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) >>> 0)), y < 32 ? (1 << y) : 0) >>> 0))) >>> 0))); + }; + BitArray.prototype.Set = function(i) { return this.$val.Set(i); }; + BitArray.ptr.prototype.Flip = function(i) { + var _index, _q, _r, b, i, x, x$1, y; + b = this; + _index = (_q = i / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + (x$1 = b.bits, ((_index < 0 || _index >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + _index] = (((x = b.bits, ((_index < 0 || _index >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + _index])) ^ (((y = (((_r = i % 32, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) >>> 0)), y < 32 ? (1 << y) : 0) >>> 0))) >>> 0))); + }; + BitArray.prototype.Flip = function(i) { return this.$val.Flip(i); }; + BitArray.ptr.prototype.GetNextSet = function(from) { + var _q, b, bitsOffset, currentBits, from, result, x, x$1, y; + b = this; + if (from >= b.size) { + return b.size; + } + bitsOffset = (_q = from / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + currentBits = (x = b.bits, ((bitsOffset < 0 || bitsOffset >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + bitsOffset])); + currentBits = (currentBits & ((-(((y = (((from & 31) >>> 0)), y < 32 ? (1 << y) : 0) >>> 0)) >>> 0))) >>> 0; + while (true) { + if (!(currentBits === 0)) { break; } + bitsOffset = bitsOffset + (1) >> 0; + if (bitsOffset === b.bits.$length) { + return b.size; + } + currentBits = (x$1 = b.bits, ((bitsOffset < 0 || bitsOffset >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + bitsOffset])); + } + result = (($imul(bitsOffset, 32))) + bits.TrailingZeros32(currentBits) >> 0; + if (result > b.size) { + return b.size; + } + return result; + }; + BitArray.prototype.GetNextSet = function(from) { return this.$val.GetNextSet(from); }; + BitArray.ptr.prototype.GetNextUnset = function(from) { + var _q, b, bitsOffset, currentBits, from, result, x, x$1, y; + b = this; + if (from >= b.size) { + return b.size; + } + bitsOffset = (_q = from / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + currentBits = ~(x = b.bits, ((bitsOffset < 0 || bitsOffset >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + bitsOffset])) >>> 0; + currentBits = (currentBits & ((-(((y = (((from & 31) >>> 0)), y < 32 ? (1 << y) : 0) >>> 0)) >>> 0))) >>> 0; + while (true) { + if (!(currentBits === 0)) { break; } + bitsOffset = bitsOffset + (1) >> 0; + if (bitsOffset === b.bits.$length) { + return b.size; + } + currentBits = ~(x$1 = b.bits, ((bitsOffset < 0 || bitsOffset >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + bitsOffset])) >>> 0; + } + result = (($imul(bitsOffset, 32))) + bits.TrailingZeros32(currentBits) >> 0; + if (result > b.size) { + return b.size; + } + return result; + }; + BitArray.prototype.GetNextUnset = function(from) { return this.$val.GetNextUnset(from); }; + BitArray.ptr.prototype.SetBulk = function(i, newBits) { + var _q, b, i, newBits, x, x$1; + b = this; + (x = b.bits, x$1 = (_q = i / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1] = newBits)); + }; + BitArray.prototype.SetBulk = function(i, newBits) { return this.$val.SetBulk(i, newBits); }; + BitArray.ptr.prototype.SetRange = function(start, end) { + var _q, _q$1, _r, _r$1, b, end, firstBit, firstInt, i, lastBit, lastInt, mask, start, x, x$1, y, y$1; + b = this; + if (end < start || start < 0 || end > b.size) { + return errors.New("IllegalArgumentException"); + } + if (end === start) { + return $ifaceNil; + } + end = end - (1) >> 0; + firstInt = (_q = start / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + lastInt = (_q$1 = end / 32, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")); + i = firstInt; + while (true) { + if (!(i <= lastInt)) { break; } + firstBit = 0; + lastBit = 31; + if (i === firstInt) { + firstBit = (_r = start % 32, _r === _r ? _r : $throwRuntimeError("integer divide by zero")); + } + if (i === lastInt) { + lastBit = (_r$1 = end % 32, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")); + } + mask = (((y = ((lastBit >>> 0)), y < 32 ? (2 << y) : 0) >> 0)) - (((y$1 = ((firstBit >>> 0)), y$1 < 32 ? (1 << y$1) : 0) >> 0)) >> 0; + (x$1 = b.bits, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i] = (((x = b.bits, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])) | (((mask >>> 0)))) >>> 0))); + i = i + (1) >> 0; + } + return $ifaceNil; + }; + BitArray.prototype.SetRange = function(start, end) { return this.$val.SetRange(start, end); }; + BitArray.ptr.prototype.Clear = function() { + var _i, _ref, b, i, x; + b = this; + _ref = b.bits; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + (x = b.bits, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i] = 0)); + _i++; + } + }; + BitArray.prototype.Clear = function() { return this.$val.Clear(); }; + BitArray.ptr.prototype.IsRange = function(start, end, value) { + var _q, _q$1, _r, _r$1, b, end, expect, firstBit, firstInt, i, lastBit, lastInt, mask, start, value, x, y, y$1; + b = this; + if (end < start || start < 0 || end > b.size) { + return [false, errors.New("IllegalArgumentException")]; + } + if (end === start) { + return [true, $ifaceNil]; + } + end = end - (1) >> 0; + firstInt = (_q = start / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + lastInt = (_q$1 = end / 32, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")); + i = firstInt; + while (true) { + if (!(i <= lastInt)) { break; } + firstBit = 0; + lastBit = 31; + if (i === firstInt) { + firstBit = (_r = start % 32, _r === _r ? _r : $throwRuntimeError("integer divide by zero")); + } + if (i === lastInt) { + lastBit = (_r$1 = end % 32, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")); + } + mask = (((((y = ((lastBit >>> 0)), y < 32 ? (2 << y) : 0) >>> 0)) - (((y$1 = ((firstBit >>> 0)), y$1 < 32 ? (1 << y$1) : 0) >>> 0)) >>> 0)); + expect = 0; + if (value) { + expect = mask; + } + if (!((((((x = b.bits, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])) & mask) >>> 0)) === expect))) { + return [false, $ifaceNil]; + } + i = i + (1) >> 0; + } + return [true, $ifaceNil]; + }; + BitArray.prototype.IsRange = function(start, end, value) { return this.$val.IsRange(start, end, value); }; + BitArray.ptr.prototype.AppendBit = function(bit) { + var _index, _q, _r, b, bit, x, x$1, y; + b = this; + b.ensureCapacity(b.size + 1 >> 0); + if (bit) { + _index = (_q = b.size / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + (x$1 = b.bits, ((_index < 0 || _index >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + _index] = (((x = b.bits, ((_index < 0 || _index >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + _index])) | (((y = (((_r = b.size % 32, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) >>> 0)), y < 32 ? (1 << y) : 0) >>> 0))) >>> 0))); + } + b.size = b.size + (1) >> 0; + }; + BitArray.prototype.AppendBit = function(bit) { return this.$val.AppendBit(bit); }; + BitArray.ptr.prototype.AppendBits = function(value, numBits) { + var b, numBits, numBitsLeft, value; + b = this; + if (numBits < 0 || numBits > 32) { + return errors.New("IllegalArgumentException: Num bits must be between 0 and 32"); + } + b.ensureCapacity(b.size + numBits >> 0); + numBitsLeft = numBits; + while (true) { + if (!(numBitsLeft > 0)) { break; } + b.AppendBit((((((value >> $min((((numBitsLeft - 1 >> 0) >>> 0)), 31)) >> 0)) & 1)) === 1); + numBitsLeft = numBitsLeft - (1) >> 0; + } + return $ifaceNil; + }; + BitArray.prototype.AppendBits = function(value, numBits) { return this.$val.AppendBits(value, numBits); }; + BitArray.ptr.prototype.AppendBitArray = function(other) { + var b, i, other, otherSize; + b = this; + otherSize = other.size; + b.ensureCapacity(b.size + otherSize >> 0); + i = 0; + while (true) { + if (!(i < otherSize)) { break; } + b.AppendBit(other.Get(i)); + i = i + (1) >> 0; + } + }; + BitArray.prototype.AppendBitArray = function(other) { return this.$val.AppendBitArray(other); }; + BitArray.ptr.prototype.Xor = function(other) { + var b, i, other, x, x$1, x$2; + b = this; + if (!((b.size === other.size))) { + return errors.New("IllegalArgumentException: Sizes don't match"); + } + i = 0; + while (true) { + if (!(i < b.bits.$length)) { break; } + (x$2 = b.bits, ((i < 0 || i >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i] = (((x = b.bits, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])) ^ ((x$1 = other.bits, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])))) >>> 0))); + i = i + (1) >> 0; + } + return $ifaceNil; + }; + BitArray.prototype.Xor = function(other) { return this.$val.Xor(other); }; + BitArray.ptr.prototype.ToBytes = function(bitOffset, array, offset, numBytes) { + var array, b, bitOffset, i, j, numBytes, offset, theByte, x, y; + b = this; + i = 0; + while (true) { + if (!(i < numBytes)) { break; } + theByte = 0; + j = 0; + while (true) { + if (!(j < 8)) { break; } + if (b.Get(bitOffset)) { + theByte = (theByte | (((y = (((7 - j >> 0) >>> 0)), y < 32 ? (1 << y) : 0) << 24 >>> 24))) >>> 0; + } + bitOffset = bitOffset + (1) >> 0; + j = j + (1) >> 0; + } + (x = offset + i >> 0, ((x < 0 || x >= array.$length) ? ($throwRuntimeError("index out of range"), undefined) : array.$array[array.$offset + x] = theByte)); + i = i + (1) >> 0; + } + }; + BitArray.prototype.ToBytes = function(bitOffset, array, offset, numBytes) { return this.$val.ToBytes(bitOffset, array, offset, numBytes); }; + BitArray.ptr.prototype.GetBitArray = function() { + var b; + b = this; + return b.bits; + }; + BitArray.prototype.GetBitArray = function() { return this.$val.GetBitArray(); }; + BitArray.ptr.prototype.Reverse = function() { + var _q, b, currentInt, i, i$1, leftOffset, len, newBits, nextInt, oldBitsLen, x, x$1, x$2, x$3, y, y$1, y$2; + b = this; + newBits = $makeSlice(sliceType, b.bits.$length); + len = (_q = ((b.size - 1 >> 0)) / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + oldBitsLen = len + 1 >> 0; + i = 0; + while (true) { + if (!(i < oldBitsLen)) { break; } + (x$1 = len - i >> 0, ((x$1 < 0 || x$1 >= newBits.$length) ? ($throwRuntimeError("index out of range"), undefined) : newBits.$array[newBits.$offset + x$1] = bits.Reverse32((x = b.bits, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]))))); + i = i + (1) >> 0; + } + if (!((b.size === ($imul(oldBitsLen, 32))))) { + leftOffset = (((($imul(oldBitsLen, 32)) - b.size >> 0) >>> 0)); + currentInt = (y = leftOffset, y < 32 ? ((0 >= newBits.$length ? ($throwRuntimeError("index out of range"), undefined) : newBits.$array[newBits.$offset + 0]) >>> y) : 0) >>> 0; + i$1 = 1; + while (true) { + if (!(i$1 < oldBitsLen)) { break; } + nextInt = ((i$1 < 0 || i$1 >= newBits.$length) ? ($throwRuntimeError("index out of range"), undefined) : newBits.$array[newBits.$offset + i$1]); + currentInt = (currentInt | (((y$1 = ((32 - leftOffset >>> 0)), y$1 < 32 ? (nextInt << y$1) : 0) >>> 0))) >>> 0; + (x$2 = i$1 - 1 >> 0, ((x$2 < 0 || x$2 >= newBits.$length) ? ($throwRuntimeError("index out of range"), undefined) : newBits.$array[newBits.$offset + x$2] = currentInt)); + currentInt = (y$2 = leftOffset, y$2 < 32 ? (nextInt >>> y$2) : 0) >>> 0; + i$1 = i$1 + (1) >> 0; + } + (x$3 = oldBitsLen - 1 >> 0, ((x$3 < 0 || x$3 >= newBits.$length) ? ($throwRuntimeError("index out of range"), undefined) : newBits.$array[newBits.$offset + x$3] = currentInt)); + } + b.bits = newBits; + }; + BitArray.prototype.Reverse = function() { return this.$val.Reverse(); }; + makeArray = function(size) { + var _q, size; + return $makeSlice(sliceType, (_q = ((size + 31 >> 0)) / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))); + }; + BitArray.ptr.prototype.String = function() { + var _q, _r, b, i, result; + b = this; + result = $makeSlice(sliceType$1, 0, ((b.size + ((_q = b.size / 8, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))) >> 0) + 1 >> 0)); + i = 0; + while (true) { + if (!(i < b.size)) { break; } + if (((_r = i % 8, _r === _r ? _r : $throwRuntimeError("integer divide by zero"))) === 0) { + result = $append(result, 32); + } + if (b.Get(i)) { + result = $append(result, 88); + } else { + result = $append(result, 46); + } + i = i + (1) >> 0; + } + return ($bytesToString(result)); + }; + BitArray.prototype.String = function() { return this.$val.String(); }; + NewBitMatrix = function(width, height) { + var _q, bits$1, height, rowSize, width; + if (width < 1 || height < 1) { + return [ptrType$1.nil, errors.New("IllegalArgumentException: Both dimensions must be greater than 0")]; + } + rowSize = (_q = ((width + 31 >> 0)) / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + bits$1 = $makeSlice(sliceType, ($imul(rowSize, height))); + return [new BitMatrix.ptr(width, height, rowSize, bits$1), $ifaceNil]; + }; + $pkg.NewBitMatrix = NewBitMatrix; + BitMatrix.ptr.prototype.Get = function(x, y) { + var _q, _r, b, offset, x, x$1, y, y$1; + b = this; + if (x < 0 || x >= b.width || y < 0 || y >= b.height) { + return false; + } + offset = (($imul(y, b.rowSize))) + ((_q = x / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))) >> 0; + return !((((((((y$1 = (((_r = x % 32, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) >>> 0)), y$1 < 32 ? ((x$1 = b.bits, ((offset < 0 || offset >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + offset])) >>> y$1) : 0) >>> 0)) & 1) >>> 0)) === 0)); + }; + BitMatrix.prototype.Get = function(x, y) { return this.$val.Get(x, y); }; + BitMatrix.ptr.prototype.Set = function(x, y) { + var _q, _r, b, offset, x, x$1, x$2, y, y$1; + b = this; + offset = (($imul(y, b.rowSize))) + ((_q = x / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))) >> 0; + (x$2 = b.bits, ((offset < 0 || offset >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + offset] = (((x$1 = b.bits, ((offset < 0 || offset >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + offset])) | (((y$1 = (((_r = x % 32, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) >>> 0)), y$1 < 32 ? (1 << y$1) : 0) >>> 0))) >>> 0))); + }; + BitMatrix.prototype.Set = function(x, y) { return this.$val.Set(x, y); }; + BitMatrix.ptr.prototype.Unset = function(x, y) { + var _q, _r, b, offset, x, x$1, x$2, y, y$1; + b = this; + offset = (($imul(y, b.rowSize))) + ((_q = x / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))) >> 0; + (x$2 = b.bits, ((offset < 0 || offset >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + offset] = (((x$1 = b.bits, ((offset < 0 || offset >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + offset])) & ((~(((y$1 = (((_r = x % 32, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) >>> 0)), y$1 < 32 ? (1 << y$1) : 0) >>> 0)) >>> 0))) >>> 0))); + }; + BitMatrix.prototype.Unset = function(x, y) { return this.$val.Unset(x, y); }; + BitMatrix.ptr.prototype.Flip = function(x, y) { + var _q, _r, b, offset, x, x$1, x$2, y, y$1; + b = this; + offset = (($imul(y, b.rowSize))) + ((_q = x / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))) >> 0; + (x$2 = b.bits, ((offset < 0 || offset >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + offset] = (((x$1 = b.bits, ((offset < 0 || offset >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + offset])) ^ (((y$1 = (((_r = x % 32, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) >>> 0)), y$1 < 32 ? (1 << y$1) : 0) >>> 0))) >>> 0))); + }; + BitMatrix.prototype.Flip = function(x, y) { return this.$val.Flip(x, y); }; + BitMatrix.ptr.prototype.Xor = function(mask) { + var _index, b, bOffset, mOffset, mask, x, x$1, x$2, x$3, x$4, y; + b = this; + if (!((b.width === mask.GetWidth())) || !((b.height === mask.GetHeight())) || !((b.rowSize === mask.GetRowSize()))) { + return errors.New("IllegalArgumentException: input matrix dimensions do not match"); + } + y = 0; + while (true) { + if (!(y < b.height)) { break; } + bOffset = $imul(y, b.rowSize); + mOffset = $imul(y, mask.rowSize); + x = 0; + while (true) { + if (!(x < b.rowSize)) { break; } + _index = bOffset + x >> 0; + (x$4 = b.bits, ((_index < 0 || _index >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + _index] = (((x$1 = b.bits, ((_index < 0 || _index >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + _index])) ^ ((x$2 = mask.bits, x$3 = mOffset + x >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])))) >>> 0))); + x = x + (1) >> 0; + } + y = y + (1) >> 0; + } + return $ifaceNil; + }; + BitMatrix.prototype.Xor = function(mask) { return this.$val.Xor(mask); }; + BitMatrix.ptr.prototype.Clear = function() { + var b, i, max, x; + b = this; + max = b.bits.$length; + i = 0; + while (true) { + if (!(i < max)) { break; } + (x = b.bits, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i] = 0)); + i = i + (1) >> 0; + } + }; + BitMatrix.prototype.Clear = function() { return this.$val.Clear(); }; + BitMatrix.ptr.prototype.SetRegion = function(left, top, width, height) { + var _index, _q, _r, b, bottom, height, left, offset, right, top, width, x, x$1, x$2, y, y$1; + b = this; + if (top < 0 || left < 0) { + return errors.New("IllegalArgumentException: Left and top must be nonnegative"); + } + if (height < 1 || width < 1) { + return errors.New("IllegalArgumentException: Height and width must be at least 1"); + } + right = left + width >> 0; + bottom = top + height >> 0; + if (bottom > b.height || right > b.width) { + return errors.New("IllegalArgumentException: The region must fit inside the matrix"); + } + y = top; + while (true) { + if (!(y < bottom)) { break; } + offset = $imul(y, b.rowSize); + x = left; + while (true) { + if (!(x < right)) { break; } + _index = offset + ((_q = x / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))) >> 0; + (x$2 = b.bits, ((_index < 0 || _index >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + _index] = (((x$1 = b.bits, ((_index < 0 || _index >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + _index])) | (((y$1 = (((_r = x % 32, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) >>> 0)), y$1 < 32 ? (1 << y$1) : 0) >>> 0))) >>> 0))); + x = x + (1) >> 0; + } + y = y + (1) >> 0; + } + return $ifaceNil; + }; + BitMatrix.prototype.SetRegion = function(left, top, width, height) { return this.$val.SetRegion(left, top, width, height); }; + BitMatrix.ptr.prototype.GetRow = function(y, row) { + var b, offset, row, x, x$1, x$2, y; + b = this; + if (row === ptrType$2.nil || row.GetSize() < b.width) { + row = NewBitArray(b.width); + } else { + row.Clear(); + } + offset = $imul(y, b.rowSize); + x = 0; + while (true) { + if (!(x < b.rowSize)) { break; } + row.SetBulk($imul(x, 32), (x$1 = b.bits, x$2 = offset + x >> 0, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2]))); + x = x + (1) >> 0; + } + return row; + }; + BitMatrix.prototype.GetRow = function(y, row) { return this.$val.GetRow(y, row); }; + BitMatrix.ptr.prototype.SetRow = function(y, row) { + var b, offset, row, y; + b = this; + offset = $imul(y, b.rowSize); + $copySlice($subslice(b.bits, offset, (offset + b.rowSize >> 0)), row.bits); + }; + BitMatrix.prototype.SetRow = function(y, row) { return this.$val.SetRow(y, row); }; + BitMatrix.ptr.prototype.Rotate180 = function() { + var _index, _q, _q$1, _q$2, _r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, b, bottom, bottomOffset, curbits, height, i, i$1, j, j$1, j$2, left, offset, offset$1, right, rowSize, shift, top, topOffset, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, y, y$1, y$2; + b = this; + height = b.height; + rowSize = b.rowSize; + i = 0; + while (true) { + if (!(i < (_q = height / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")))) { break; } + topOffset = $imul(i, rowSize); + bottomOffset = ($imul(((height - i >> 0)), rowSize)) - 1 >> 0; + j = 0; + while (true) { + if (!(j < rowSize)) { break; } + top = topOffset + j >> 0; + bottom = bottomOffset - j >> 0; + _tmp = (x = b.bits, ((bottom < 0 || bottom >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + bottom])); + _tmp$1 = (x$1 = b.bits, ((top < 0 || top >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + top])); + (x$2 = b.bits, ((top < 0 || top >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + top] = _tmp)); + (x$3 = b.bits, ((bottom < 0 || bottom >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + bottom] = _tmp$1)); + j = j + (1) >> 0; + } + i = i + (1) >> 0; + } + if (!(((_r = height % 2, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) === 0))) { + offset = (_q$1 = ($imul(rowSize, ((height - 1 >> 0)))) / 2, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")); + j$1 = 0; + while (true) { + if (!(j$1 < (_q$2 = rowSize / 2, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero")))) { break; } + left = offset + j$1 >> 0; + right = ((offset + rowSize >> 0) - 1 >> 0) - j$1 >> 0; + _tmp$2 = (x$4 = b.bits, ((right < 0 || right >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + right])); + _tmp$3 = (x$5 = b.bits, ((left < 0 || left >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + left])); + (x$6 = b.bits, ((left < 0 || left >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + left] = _tmp$2)); + (x$7 = b.bits, ((right < 0 || right >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + right] = _tmp$3)); + j$1 = j$1 + (1) >> 0; + } + } + shift = (((_r$1 = b.width % 32, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) >>> 0)); + if (!((shift === 0))) { + i$1 = 0; + while (true) { + if (!(i$1 < height)) { break; } + offset$1 = $imul(rowSize, i$1); + (x$9 = b.bits, ((offset$1 < 0 || offset$1 >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + offset$1] = ((y = ((32 - shift >>> 0)), y < 32 ? (bits.Reverse32((x$8 = b.bits, ((offset$1 < 0 || offset$1 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + offset$1]))) >>> y) : 0) >>> 0))); + j$2 = 1; + while (true) { + if (!(j$2 < rowSize)) { break; } + curbits = bits.Reverse32((x$10 = b.bits, x$11 = offset$1 + j$2 >> 0, ((x$11 < 0 || x$11 >= x$10.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + x$11]))); + _index = (offset$1 + j$2 >> 0) - 1 >> 0; + (x$13 = b.bits, ((_index < 0 || _index >= x$13.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$13.$array[x$13.$offset + _index] = (((x$12 = b.bits, ((_index < 0 || _index >= x$12.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + _index])) | (((y$1 = shift, y$1 < 32 ? (curbits << y$1) : 0) >>> 0))) >>> 0))); + (x$14 = b.bits, x$15 = offset$1 + j$2 >> 0, ((x$15 < 0 || x$15 >= x$14.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + x$15] = ((y$2 = ((32 - shift >>> 0)), y$2 < 32 ? (curbits >>> y$2) : 0) >>> 0))); + j$2 = j$2 + (1) >> 0; + } + i$1 = i$1 + (1) >> 0; + } + } + }; + BitMatrix.prototype.Rotate180 = function() { return this.$val.Rotate180(); }; + BitMatrix.ptr.prototype.GetEnclosingRectangle = function() { + var b, bit, bit$1, bottom, left, right, theBits, top, x, x$1, x32, y, y$1, y$2; + b = this; + left = b.width; + top = b.height; + right = -1; + bottom = -1; + y = 0; + while (true) { + if (!(y < b.height)) { break; } + x32 = 0; + while (true) { + if (!(x32 < b.rowSize)) { break; } + theBits = (x = b.bits, x$1 = ($imul(y, b.rowSize)) + x32 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + if (!((theBits === 0))) { + if (y < top) { + top = y; + } + if (y > bottom) { + bottom = y; + } + if (($imul(x32, 32)) < left) { + bit = 0; + while (true) { + if (!((((y$1 = (((31 - bit >> 0) >>> 0)), y$1 < 32 ? (theBits << y$1) : 0) >>> 0)) === 0)) { break; } + bit = bit + (1) >> 0; + } + if (((($imul(x32, 32)) + bit >> 0)) < left) { + left = ($imul(x32, 32)) + bit >> 0; + } + } + if ((($imul(x32, 32)) + 31 >> 0) > right) { + bit$1 = 31; + while (true) { + if (!((((y$2 = ((bit$1 >>> 0)), y$2 < 32 ? (theBits >>> y$2) : 0) >>> 0)) === 0)) { break; } + bit$1 = bit$1 - (1) >> 0; + } + if (((($imul(x32, 32)) + bit$1 >> 0)) > right) { + right = ($imul(x32, 32)) + bit$1 >> 0; + } + } + } + x32 = x32 + (1) >> 0; + } + y = y + (1) >> 0; + } + if (right < left || bottom < top) { + return sliceType$3.nil; + } + return new sliceType$3([left, top, (right - left >> 0) + 1 >> 0, (bottom - top >> 0) + 1 >> 0]); + }; + BitMatrix.prototype.GetEnclosingRectangle = function() { return this.$val.GetEnclosingRectangle(); }; + BitMatrix.ptr.prototype.GetTopLeftOnBit = function() { + var _q, _r, b, bit, bitsOffset, theBits, x, x$1, x$2, y, y$1; + b = this; + bitsOffset = 0; + while (true) { + if (!(bitsOffset < b.bits.$length && ((x = b.bits, ((bitsOffset < 0 || bitsOffset >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + bitsOffset])) === 0))) { break; } + bitsOffset = bitsOffset + (1) >> 0; + } + if (bitsOffset === b.bits.$length) { + return sliceType$3.nil; + } + y = (_q = bitsOffset / b.rowSize, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + x$1 = $imul(((_r = bitsOffset % b.rowSize, _r === _r ? _r : $throwRuntimeError("integer divide by zero"))), 32); + theBits = (x$2 = b.bits, ((bitsOffset < 0 || bitsOffset >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + bitsOffset])); + bit = 0; + while (true) { + if (!((((y$1 = ((31 - bit >>> 0)), y$1 < 32 ? (theBits << y$1) : 0) >>> 0)) === 0)) { break; } + bit = bit + (1) >>> 0; + } + x$1 = x$1 + (((bit >> 0))) >> 0; + return new sliceType$3([x$1, y]); + }; + BitMatrix.prototype.GetTopLeftOnBit = function() { return this.$val.GetTopLeftOnBit(); }; + BitMatrix.ptr.prototype.GetBottomRightOnBit = function() { + var _q, _r, b, bit, bitsOffset, theBits, x, x$1, x$2, y, y$1; + b = this; + bitsOffset = b.bits.$length - 1 >> 0; + while (true) { + if (!(bitsOffset >= 0 && ((x = b.bits, ((bitsOffset < 0 || bitsOffset >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + bitsOffset])) === 0))) { break; } + bitsOffset = bitsOffset - (1) >> 0; + } + if (bitsOffset < 0) { + return sliceType$3.nil; + } + y = (_q = bitsOffset / b.rowSize, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + x$1 = $imul(((_r = bitsOffset % b.rowSize, _r === _r ? _r : $throwRuntimeError("integer divide by zero"))), 32); + theBits = (x$2 = b.bits, ((bitsOffset < 0 || bitsOffset >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + bitsOffset])); + bit = 31; + while (true) { + if (!((((y$1 = bit, y$1 < 32 ? (theBits >>> y$1) : 0) >>> 0)) === 0)) { break; } + bit = bit - (1) >>> 0; + } + x$1 = x$1 + (((bit >> 0))) >> 0; + return new sliceType$3([x$1, y]); + }; + BitMatrix.prototype.GetBottomRightOnBit = function() { return this.$val.GetBottomRightOnBit(); }; + BitMatrix.ptr.prototype.GetWidth = function() { + var b; + b = this; + return b.width; + }; + BitMatrix.prototype.GetWidth = function() { return this.$val.GetWidth(); }; + BitMatrix.ptr.prototype.GetHeight = function() { + var b; + b = this; + return b.height; + }; + BitMatrix.prototype.GetHeight = function() { return this.$val.GetHeight(); }; + BitMatrix.ptr.prototype.GetRowSize = function() { + var b; + b = this; + return b.rowSize; + }; + BitMatrix.prototype.GetRowSize = function() { return this.$val.GetRowSize(); }; + BitMatrix.ptr.prototype.String = function() { + var b; + b = this; + return b.ToString("X ", " "); + }; + BitMatrix.prototype.String = function() { return this.$val.String(); }; + BitMatrix.ptr.prototype.ToString = function(setString, unsetString) { + var b, setString, unsetString; + b = this; + return b.ToStringWithLineSeparator(setString, unsetString, "\n"); + }; + BitMatrix.prototype.ToString = function(setString, unsetString) { return this.$val.ToString(setString, unsetString); }; + BitMatrix.ptr.prototype.ToStringWithLineSeparator = function(setString, unsetString, lineSeparator) { + var b, lineSepBytes, lineSeparator, lineSize, result, s, setBytes, setString, unsetBytes, unsetString, x, y; + b = this; + setBytes = (new sliceType$1($stringToBytes(setString))); + unsetBytes = (new sliceType$1($stringToBytes(unsetString))); + lineSepBytes = (new sliceType$1($stringToBytes(lineSeparator))); + lineSize = lineSeparator.length; + if (setString.length > unsetString.length) { + lineSize = lineSize + (($imul(b.width, setString.length))) >> 0; + } else { + lineSize = lineSize + (($imul(b.width, unsetString.length))) >> 0; + } + result = $makeSlice(sliceType$1, 0, ($imul(b.height, lineSize))); + y = 0; + while (true) { + if (!(y < b.height)) { break; } + x = 0; + while (true) { + if (!(x < b.width)) { break; } + s = sliceType$1.nil; + if (b.Get(x, y)) { + s = setBytes; + } else { + s = unsetBytes; + } + result = $appendSlice(result, s); + x = x + (1) >> 0; + } + result = $appendSlice(result, lineSepBytes); + y = y + (1) >> 0; + } + return ($bytesToString(result)); + }; + BitMatrix.prototype.ToStringWithLineSeparator = function(setString, unsetString, lineSeparator) { return this.$val.ToStringWithLineSeparator(setString, unsetString, lineSeparator); }; + checksumException.ptr.prototype.ReaderException = function() { + }; + checksumException.prototype.ReaderException = function() { return this.$val.ReaderException(); }; + checksumException.ptr.prototype.ChecksumException = function() { + }; + checksumException.prototype.ChecksumException = function() { return this.$val.ChecksumException(); }; + formatException.ptr.prototype.ReaderException = function() { + }; + formatException.prototype.ReaderException = function() { return this.$val.ReaderException(); }; + formatException.ptr.prototype.FormatException = function() { + }; + formatException.prototype.FormatException = function() { return this.$val.FormatException(); }; + notFoundException.ptr.prototype.ReaderException = function() { + }; + notFoundException.prototype.ReaderException = function() { return this.$val.ReaderException(); }; + notFoundException.ptr.prototype.NotFoundException = function() { + }; + notFoundException.prototype.NotFoundException = function() { return this.$val.NotFoundException(); }; + GetNotFoundExceptionInstance = function() { + return new notFoundInstance.constructor.elem(notFoundInstance); + }; + $pkg.GetNotFoundExceptionInstance = GetNotFoundExceptionInstance; + ptrType$2.methods = [{prop: "GetSize", name: "GetSize", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetSizeInBytes", name: "GetSizeInBytes", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "ensureCapacity", name: "ensureCapacity", pkg: "github.com/makiuchi-d/gozxing", typ: $funcType([$Int], [], false)}, {prop: "Get", name: "Get", pkg: "", typ: $funcType([$Int], [$Bool], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Flip", name: "Flip", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "GetNextSet", name: "GetNextSet", pkg: "", typ: $funcType([$Int], [$Int], false)}, {prop: "GetNextUnset", name: "GetNextUnset", pkg: "", typ: $funcType([$Int], [$Int], false)}, {prop: "SetBulk", name: "SetBulk", pkg: "", typ: $funcType([$Int, $Uint32], [], false)}, {prop: "SetRange", name: "SetRange", pkg: "", typ: $funcType([$Int, $Int], [$error], false)}, {prop: "Clear", name: "Clear", pkg: "", typ: $funcType([], [], false)}, {prop: "IsRange", name: "IsRange", pkg: "", typ: $funcType([$Int, $Int, $Bool], [$Bool, $error], false)}, {prop: "AppendBit", name: "AppendBit", pkg: "", typ: $funcType([$Bool], [], false)}, {prop: "AppendBits", name: "AppendBits", pkg: "", typ: $funcType([$Int, $Int], [$error], false)}, {prop: "AppendBitArray", name: "AppendBitArray", pkg: "", typ: $funcType([ptrType$2], [], false)}, {prop: "Xor", name: "Xor", pkg: "", typ: $funcType([ptrType$2], [$error], false)}, {prop: "ToBytes", name: "ToBytes", pkg: "", typ: $funcType([$Int, sliceType$1, $Int, $Int], [], false)}, {prop: "GetBitArray", name: "GetBitArray", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "Reverse", name: "Reverse", pkg: "", typ: $funcType([], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$1.methods = [{prop: "Get", name: "Get", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([$Int, $Int], [], false)}, {prop: "Unset", name: "Unset", pkg: "", typ: $funcType([$Int, $Int], [], false)}, {prop: "Flip", name: "Flip", pkg: "", typ: $funcType([$Int, $Int], [], false)}, {prop: "Xor", name: "Xor", pkg: "", typ: $funcType([ptrType$1], [$error], false)}, {prop: "Clear", name: "Clear", pkg: "", typ: $funcType([], [], false)}, {prop: "SetRegion", name: "SetRegion", pkg: "", typ: $funcType([$Int, $Int, $Int, $Int], [$error], false)}, {prop: "GetRow", name: "GetRow", pkg: "", typ: $funcType([$Int, ptrType$2], [ptrType$2], false)}, {prop: "SetRow", name: "SetRow", pkg: "", typ: $funcType([$Int, ptrType$2], [], false)}, {prop: "Rotate180", name: "Rotate180", pkg: "", typ: $funcType([], [], false)}, {prop: "GetEnclosingRectangle", name: "GetEnclosingRectangle", pkg: "", typ: $funcType([], [sliceType$3], false)}, {prop: "GetTopLeftOnBit", name: "GetTopLeftOnBit", pkg: "", typ: $funcType([], [sliceType$3], false)}, {prop: "GetBottomRightOnBit", name: "GetBottomRightOnBit", pkg: "", typ: $funcType([], [sliceType$3], false)}, {prop: "GetWidth", name: "GetWidth", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetHeight", name: "GetHeight", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetRowSize", name: "GetRowSize", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "ToString", name: "ToString", pkg: "", typ: $funcType([$String, $String], [$String], false)}, {prop: "ToStringWithLineSeparator", name: "ToStringWithLineSeparator", pkg: "", typ: $funcType([$String, $String, $String], [$String], false)}]; + checksumException.methods = [{prop: "ReaderException", name: "ReaderException", pkg: "", typ: $funcType([], [], false)}, {prop: "ChecksumException", name: "ChecksumException", pkg: "", typ: $funcType([], [], false)}]; + formatException.methods = [{prop: "ReaderException", name: "ReaderException", pkg: "", typ: $funcType([], [], false)}, {prop: "FormatException", name: "FormatException", pkg: "", typ: $funcType([], [], false)}]; + notFoundException.methods = [{prop: "ReaderException", name: "ReaderException", pkg: "", typ: $funcType([], [], false)}, {prop: "NotFoundException", name: "NotFoundException", pkg: "", typ: $funcType([], [], false)}]; + BitArray.init("github.com/makiuchi-d/gozxing", [{prop: "bits", name: "bits", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "size", name: "size", embedded: false, exported: false, typ: $Int, tag: ""}]); + BitMatrix.init("github.com/makiuchi-d/gozxing", [{prop: "width", name: "width", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "height", name: "height", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "rowSize", name: "rowSize", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "bits", name: "bits", embedded: false, exported: false, typ: sliceType, tag: ""}]); + checksumException.init("github.com/makiuchi-d/gozxing", [{prop: "error", name: "error", embedded: true, exported: false, typ: $error, tag: ""}]); + formatException.init("github.com/makiuchi-d/gozxing", [{prop: "error", name: "error", embedded: true, exported: false, typ: $error, tag: ""}]); + notFoundException.init("github.com/makiuchi-d/gozxing", [{prop: "error", name: "error", embedded: true, exported: false, typ: $error, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fmt.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = util.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = image.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = bits.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = time.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + checksumInstance = new checksumException.ptr(errors.New("ChecksumException")); + formatInstance = new formatException.ptr(errors.New("FormatException")); + notFoundInstance = new notFoundException.ptr(errors.New("NotFoundException")); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["github.com/makiuchi-d/gozxing/common"] = (function() { + var $pkg = {}, $init, fmt, gozxing, CharacterSetECI, DefaultGridSampler, PerspectiveTransform, sliceType, sliceType$1, ptrType, ptrType$1, sliceType$5, ptrType$4, valueToECI, nameToECI, gridSampler, newCharsetECI, NewDefaultGridSampler, GridSampler_checkAndNudgePoints, PerspectiveTransform_QuadrilateralToQuadrilateral, PerspectiveTransform_SquareToQuadrilateral, PerspectiveTransform_QuadrilateralToSquare; + fmt = $packages["fmt"]; + gozxing = $packages["github.com/makiuchi-d/gozxing"]; + CharacterSetECI = $pkg.CharacterSetECI = $newType(0, $kindStruct, "common.CharacterSetECI", true, "github.com/makiuchi-d/gozxing/common", true, function(values_, name_, otherEncodingNames_) { + this.$val = this; + if (arguments.length === 0) { + this.values = sliceType.nil; + this.name = ""; + this.otherEncodingNames = sliceType$1.nil; + return; + } + this.values = values_; + this.name = name_; + this.otherEncodingNames = otherEncodingNames_; + }); + DefaultGridSampler = $pkg.DefaultGridSampler = $newType(0, $kindStruct, "common.DefaultGridSampler", true, "github.com/makiuchi-d/gozxing/common", true, function() { + this.$val = this; + if (arguments.length === 0) { + return; + } + }); + PerspectiveTransform = $pkg.PerspectiveTransform = $newType(0, $kindStruct, "common.PerspectiveTransform", true, "github.com/makiuchi-d/gozxing/common", true, function(a11_, a21_, a31_, a12_, a22_, a32_, a13_, a23_, a33_) { + this.$val = this; + if (arguments.length === 0) { + this.a11 = 0; + this.a21 = 0; + this.a31 = 0; + this.a12 = 0; + this.a22 = 0; + this.a32 = 0; + this.a13 = 0; + this.a23 = 0; + this.a33 = 0; + return; + } + this.a11 = a11_; + this.a21 = a21_; + this.a31 = a31_; + this.a12 = a12_; + this.a22 = a22_; + this.a32 = a32_; + this.a13 = a13_; + this.a23 = a23_; + this.a33 = a33_; + }); + sliceType = $sliceType($Int); + sliceType$1 = $sliceType($String); + ptrType = $ptrType(CharacterSetECI); + ptrType$1 = $ptrType(gozxing.BitMatrix); + sliceType$5 = $sliceType($Float64); + ptrType$4 = $ptrType(PerspectiveTransform); + newCharsetECI = function(values, encodingNames) { + var _i, _i$1, _key, _key$1, _ref, _ref$1, c, encodingNames, name, val, values; + c = new CharacterSetECI.ptr(values, (0 >= encodingNames.$length ? ($throwRuntimeError("index out of range"), undefined) : encodingNames.$array[encodingNames.$offset + 0]), $subslice(encodingNames, 1)); + _ref = values; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + val = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _key = val; (valueToECI || $throwRuntimeError("assignment to entry in nil map"))[$Int.keyFor(_key)] = { k: _key, v: c }; + _i++; + } + _ref$1 = encodingNames; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + name = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + _key$1 = name; (nameToECI || $throwRuntimeError("assignment to entry in nil map"))[$String.keyFor(_key$1)] = { k: _key$1, v: c }; + _i$1++; + } + return c; + }; + CharacterSetECI.ptr.prototype.GetValue = function() { + var this$1, x; + this$1 = this; + return (x = this$1.values, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); + }; + CharacterSetECI.prototype.GetValue = function() { return this.$val.GetValue(); }; + CharacterSetECI.ptr.prototype.Name = function() { + var this$1; + this$1 = this; + return this$1.name; + }; + CharacterSetECI.prototype.Name = function() { return this.$val.Name(); }; + NewDefaultGridSampler = function() { + var x; + return (x = new DefaultGridSampler.ptr(), new x.constructor.elem(x)); + }; + $pkg.NewDefaultGridSampler = NewDefaultGridSampler; + DefaultGridSampler.ptr.prototype.SampleGrid = function(image, dimensionX, dimensionY, p1ToX, p1ToY, p2ToX, p2ToY, p3ToX, p3ToY, p4ToX, p4ToY, p1FromX, p1FromY, p2FromX, p2FromY, p3FromX, p3FromY, p4FromX, p4FromY) { + var dimensionX, dimensionY, image, p1FromX, p1FromY, p1ToX, p1ToY, p2FromX, p2FromY, p2ToX, p2ToY, p3FromX, p3FromY, p3ToX, p3ToY, p4FromX, p4FromY, p4ToX, p4ToY, s, transform; + s = this; + transform = PerspectiveTransform_QuadrilateralToQuadrilateral(p1ToX, p1ToY, p2ToX, p2ToY, p3ToX, p3ToY, p4ToX, p4ToY, p1FromX, p1FromY, p2FromX, p2FromY, p3FromX, p3FromY, p4FromX, p4FromY); + return $clone(s, DefaultGridSampler).SampleGridWithTransform(image, dimensionX, dimensionY, transform); + }; + DefaultGridSampler.prototype.SampleGrid = function(image, dimensionX, dimensionY, p1ToX, p1ToY, p2ToX, p2ToY, p3ToX, p3ToY, p4ToX, p4ToY, p1FromX, p1FromY, p2FromX, p2FromY, p3FromX, p3FromY, p4FromX, p4FromY) { return this.$val.SampleGrid(image, dimensionX, dimensionY, p1ToX, p1ToY, p2ToX, p2ToY, p3ToX, p3ToY, p4ToX, p4ToY, p1FromX, p1FromY, p2FromX, p2FromY, p3FromX, p3FromY, p4FromX, p4FromY); }; + DefaultGridSampler.ptr.prototype.SampleGridWithTransform = function(image, dimensionX, dimensionY, transform) { + var _q, _q$1, _tuple, bits, dimensionX, dimensionY, e, iValue, image, max, points, px, py, s, transform, x, x$1, x$2, x$3, y; + s = this; + if (dimensionX <= 0 || dimensionY <= 0) { + return [ptrType$1.nil, gozxing.GetNotFoundExceptionInstance()]; + } + _tuple = gozxing.NewBitMatrix(dimensionX, dimensionY); + bits = _tuple[0]; + points = $makeSlice(sliceType$5, ($imul(2, dimensionX))); + y = 0; + while (true) { + if (!(y < dimensionY)) { break; } + max = points.$length; + iValue = (y) + 0.5; + x = 0; + while (true) { + if (!(x < max)) { break; } + ((x < 0 || x >= points.$length) ? ($throwRuntimeError("index out of range"), undefined) : points.$array[points.$offset + x] = ((_q = x / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))) + 0.5); + (x$1 = x + 1 >> 0, ((x$1 < 0 || x$1 >= points.$length) ? ($throwRuntimeError("index out of range"), undefined) : points.$array[points.$offset + x$1] = iValue)); + x = x + (2) >> 0; + } + transform.TransformPoints(points); + e = GridSampler_checkAndNudgePoints(image, points); + if (!($interfaceIsEqual(e, $ifaceNil))) { + return [ptrType$1.nil, e]; + } + x$2 = 0; + while (true) { + if (!(x$2 < max)) { break; } + px = ((((x$2 < 0 || x$2 >= points.$length) ? ($throwRuntimeError("index out of range"), undefined) : points.$array[points.$offset + x$2]) >> 0)); + py = (((x$3 = x$2 + 1 >> 0, ((x$3 < 0 || x$3 >= points.$length) ? ($throwRuntimeError("index out of range"), undefined) : points.$array[points.$offset + x$3])) >> 0)); + if (px >= image.GetWidth() || py >= image.GetHeight()) { + return [ptrType$1.nil, gozxing.GetNotFoundExceptionInstance()]; + } + if (image.Get(px, py)) { + bits.Set((_q$1 = x$2 / 2, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")), y); + } + x$2 = x$2 + (2) >> 0; + } + y = y + (1) >> 0; + } + return [bits, $ifaceNil]; + }; + DefaultGridSampler.prototype.SampleGridWithTransform = function(image, dimensionX, dimensionY, transform) { return this.$val.SampleGridWithTransform(image, dimensionX, dimensionY, transform); }; + GridSampler_checkAndNudgePoints = function(image, points) { + var height, image, maxOffset, nudged, offset, offset$1, points, width, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, y, y$1; + width = image.GetWidth(); + height = image.GetHeight(); + nudged = true; + maxOffset = points.$length - 1 >> 0; + offset = 0; + while (true) { + if (!(offset < maxOffset && nudged)) { break; } + x = ((((offset < 0 || offset >= points.$length) ? ($throwRuntimeError("index out of range"), undefined) : points.$array[points.$offset + offset]) >> 0)); + y = (((x$1 = offset + 1 >> 0, ((x$1 < 0 || x$1 >= points.$length) ? ($throwRuntimeError("index out of range"), undefined) : points.$array[points.$offset + x$1])) >> 0)); + if (x < -1 || x > width || y < -1 || y > height) { + return gozxing.GetNotFoundExceptionInstance(); + } + nudged = false; + if (x === -1) { + ((offset < 0 || offset >= points.$length) ? ($throwRuntimeError("index out of range"), undefined) : points.$array[points.$offset + offset] = 0); + nudged = true; + } else if (x === width) { + ((offset < 0 || offset >= points.$length) ? ($throwRuntimeError("index out of range"), undefined) : points.$array[points.$offset + offset] = ((width - 1 >> 0))); + nudged = true; + } + if (y === -1) { + (x$2 = offset + 1 >> 0, ((x$2 < 0 || x$2 >= points.$length) ? ($throwRuntimeError("index out of range"), undefined) : points.$array[points.$offset + x$2] = 0)); + nudged = true; + } else if (y === height) { + (x$3 = offset + 1 >> 0, ((x$3 < 0 || x$3 >= points.$length) ? ($throwRuntimeError("index out of range"), undefined) : points.$array[points.$offset + x$3] = (height))); + nudged = true; + } + offset = offset + (2) >> 0; + } + nudged = true; + offset$1 = points.$length - 2 >> 0; + while (true) { + if (!(offset$1 >= 0 && nudged)) { break; } + x$4 = ((((offset$1 < 0 || offset$1 >= points.$length) ? ($throwRuntimeError("index out of range"), undefined) : points.$array[points.$offset + offset$1]) >> 0)); + y$1 = (((x$5 = offset$1 + 1 >> 0, ((x$5 < 0 || x$5 >= points.$length) ? ($throwRuntimeError("index out of range"), undefined) : points.$array[points.$offset + x$5])) >> 0)); + if (x$4 < -1 || x$4 > width || y$1 < -1 || y$1 > height) { + return gozxing.GetNotFoundExceptionInstance(); + } + nudged = false; + if (x$4 === -1) { + ((offset$1 < 0 || offset$1 >= points.$length) ? ($throwRuntimeError("index out of range"), undefined) : points.$array[points.$offset + offset$1] = 0); + nudged = true; + } else if (x$4 === width) { + ((offset$1 < 0 || offset$1 >= points.$length) ? ($throwRuntimeError("index out of range"), undefined) : points.$array[points.$offset + offset$1] = ((width - 1 >> 0))); + nudged = true; + } + if (y$1 === -1) { + (x$6 = offset$1 + 1 >> 0, ((x$6 < 0 || x$6 >= points.$length) ? ($throwRuntimeError("index out of range"), undefined) : points.$array[points.$offset + x$6] = 0)); + nudged = true; + } else if (y$1 === height) { + (x$7 = offset$1 + 1 >> 0, ((x$7 < 0 || x$7 >= points.$length) ? ($throwRuntimeError("index out of range"), undefined) : points.$array[points.$offset + x$7] = ((height - 1 >> 0)))); + nudged = true; + } + offset$1 = offset$1 - (2) >> 0; + } + return $ifaceNil; + }; + $pkg.GridSampler_checkAndNudgePoints = GridSampler_checkAndNudgePoints; + PerspectiveTransform_QuadrilateralToQuadrilateral = function(x0, y0, x1, y1, x2, y2, x3, y3, x0p, y0p, x1p, y1p, x2p, y2p, x3p, y3p) { + var qToS, sToQ, x0, x0p, x1, x1p, x2, x2p, x3, x3p, y0, y0p, y1, y1p, y2, y2p, y3, y3p; + qToS = PerspectiveTransform_QuadrilateralToSquare(x0, y0, x1, y1, x2, y2, x3, y3); + sToQ = PerspectiveTransform_SquareToQuadrilateral(x0p, y0p, x1p, y1p, x2p, y2p, x3p, y3p); + return sToQ.times(qToS); + }; + $pkg.PerspectiveTransform_QuadrilateralToQuadrilateral = PerspectiveTransform_QuadrilateralToQuadrilateral; + PerspectiveTransform.ptr.prototype.TransformPoints = function(points) { + var denominator, i, maxI, p, points, x, x$1, x$2, y; + p = this; + maxI = points.$length - 1 >> 0; + i = 0; + while (true) { + if (!(i < maxI)) { break; } + x = ((i < 0 || i >= points.$length) ? ($throwRuntimeError("index out of range"), undefined) : points.$array[points.$offset + i]); + y = (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= points.$length) ? ($throwRuntimeError("index out of range"), undefined) : points.$array[points.$offset + x$1])); + denominator = p.a13 * x + p.a23 * y + p.a33; + ((i < 0 || i >= points.$length) ? ($throwRuntimeError("index out of range"), undefined) : points.$array[points.$offset + i] = (p.a11 * x + p.a21 * y + p.a31) / denominator); + (x$2 = i + 1 >> 0, ((x$2 < 0 || x$2 >= points.$length) ? ($throwRuntimeError("index out of range"), undefined) : points.$array[points.$offset + x$2] = (p.a12 * x + p.a22 * y + p.a32) / denominator)); + i = i + (2) >> 0; + } + }; + PerspectiveTransform.prototype.TransformPoints = function(points) { return this.$val.TransformPoints(points); }; + PerspectiveTransform.ptr.prototype.TransformPointsXY = function(xValues, yValues) { + var denominator, i, n, p, x, xValues, y, yValues; + p = this; + n = xValues.$length; + i = 0; + while (true) { + if (!(i < n)) { break; } + x = ((i < 0 || i >= xValues.$length) ? ($throwRuntimeError("index out of range"), undefined) : xValues.$array[xValues.$offset + i]); + y = ((i < 0 || i >= yValues.$length) ? ($throwRuntimeError("index out of range"), undefined) : yValues.$array[yValues.$offset + i]); + denominator = p.a13 * x + p.a23 * y + p.a33; + ((i < 0 || i >= xValues.$length) ? ($throwRuntimeError("index out of range"), undefined) : xValues.$array[xValues.$offset + i] = (p.a11 * x + p.a21 * y + p.a31) / denominator); + ((i < 0 || i >= yValues.$length) ? ($throwRuntimeError("index out of range"), undefined) : yValues.$array[yValues.$offset + i] = (p.a12 * x + p.a22 * y + p.a32) / denominator); + i = i + (1) >> 0; + } + }; + PerspectiveTransform.prototype.TransformPointsXY = function(xValues, yValues) { return this.$val.TransformPointsXY(xValues, yValues); }; + PerspectiveTransform_SquareToQuadrilateral = function(x0, y0, x1, y1, x2, y2, x3, y3) { + var a13, a23, denominator, dx1, dx2, dx3, dy1, dy2, dy3, x0, x1, x2, x3, y0, y1, y2, y3; + dx3 = x0 - x1 + x2 - x3; + dy3 = y0 - y1 + y2 - y3; + if ((dx3 === 0) && (dy3 === 0)) { + return new PerspectiveTransform.ptr(x1 - x0, x2 - x1, x0, y1 - y0, y2 - y1, y0, 0, 0, 1); + } else { + dx1 = x1 - x2; + dx2 = x3 - x2; + dy1 = y1 - y2; + dy2 = y3 - y2; + denominator = dx1 * dy2 - dx2 * dy1; + a13 = (dx3 * dy2 - dx2 * dy3) / denominator; + a23 = (dx1 * dy3 - dx3 * dy1) / denominator; + return new PerspectiveTransform.ptr(x1 - x0 + a13 * x1, x3 - x0 + a23 * x3, x0, y1 - y0 + a13 * y1, y3 - y0 + a23 * y3, y0, a13, a23, 1); + } + }; + $pkg.PerspectiveTransform_SquareToQuadrilateral = PerspectiveTransform_SquareToQuadrilateral; + PerspectiveTransform_QuadrilateralToSquare = function(x0, y0, x1, y1, x2, y2, x3, y3) { + var x0, x1, x2, x3, y0, y1, y2, y3; + return PerspectiveTransform_SquareToQuadrilateral(x0, y0, x1, y1, x2, y2, x3, y3).buildAdjoint(); + }; + $pkg.PerspectiveTransform_QuadrilateralToSquare = PerspectiveTransform_QuadrilateralToSquare; + PerspectiveTransform.ptr.prototype.buildAdjoint = function() { + var p; + p = this; + return new PerspectiveTransform.ptr(p.a22 * p.a33 - p.a23 * p.a32, p.a23 * p.a31 - p.a21 * p.a33, p.a21 * p.a32 - p.a22 * p.a31, p.a13 * p.a32 - p.a12 * p.a33, p.a11 * p.a33 - p.a13 * p.a31, p.a12 * p.a31 - p.a11 * p.a32, p.a12 * p.a23 - p.a13 * p.a22, p.a13 * p.a21 - p.a11 * p.a23, p.a11 * p.a22 - p.a12 * p.a21); + }; + PerspectiveTransform.prototype.buildAdjoint = function() { return this.$val.buildAdjoint(); }; + PerspectiveTransform.ptr.prototype.times = function(other) { + var other, p; + p = this; + return new PerspectiveTransform.ptr(p.a11 * other.a11 + p.a21 * other.a12 + p.a31 * other.a13, p.a11 * other.a21 + p.a21 * other.a22 + p.a31 * other.a23, p.a11 * other.a31 + p.a21 * other.a32 + p.a31 * other.a33, p.a12 * other.a11 + p.a22 * other.a12 + p.a32 * other.a13, p.a12 * other.a21 + p.a22 * other.a22 + p.a32 * other.a23, p.a12 * other.a31 + p.a22 * other.a32 + p.a32 * other.a33, p.a13 * other.a11 + p.a23 * other.a12 + p.a33 * other.a13, p.a13 * other.a21 + p.a23 * other.a22 + p.a33 * other.a23, p.a13 * other.a31 + p.a23 * other.a32 + p.a33 * other.a33); + }; + PerspectiveTransform.prototype.times = function(other) { return this.$val.times(other); }; + ptrType.methods = [{prop: "GetValue", name: "GetValue", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}]; + DefaultGridSampler.methods = [{prop: "SampleGrid", name: "SampleGrid", pkg: "", typ: $funcType([ptrType$1, $Int, $Int, $Float64, $Float64, $Float64, $Float64, $Float64, $Float64, $Float64, $Float64, $Float64, $Float64, $Float64, $Float64, $Float64, $Float64, $Float64, $Float64], [ptrType$1, $error], false)}, {prop: "SampleGridWithTransform", name: "SampleGridWithTransform", pkg: "", typ: $funcType([ptrType$1, $Int, $Int, ptrType$4], [ptrType$1, $error], false)}]; + ptrType$4.methods = [{prop: "TransformPoints", name: "TransformPoints", pkg: "", typ: $funcType([sliceType$5], [], false)}, {prop: "TransformPointsXY", name: "TransformPointsXY", pkg: "", typ: $funcType([sliceType$5, sliceType$5], [], false)}, {prop: "buildAdjoint", name: "buildAdjoint", pkg: "github.com/makiuchi-d/gozxing/common", typ: $funcType([], [ptrType$4], false)}, {prop: "times", name: "times", pkg: "github.com/makiuchi-d/gozxing/common", typ: $funcType([ptrType$4], [ptrType$4], false)}]; + CharacterSetECI.init("github.com/makiuchi-d/gozxing/common", [{prop: "values", name: "values", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "otherEncodingNames", name: "otherEncodingNames", embedded: false, exported: false, typ: sliceType$1, tag: ""}]); + DefaultGridSampler.init("", []); + PerspectiveTransform.init("github.com/makiuchi-d/gozxing/common", [{prop: "a11", name: "a11", embedded: false, exported: false, typ: $Float64, tag: ""}, {prop: "a21", name: "a21", embedded: false, exported: false, typ: $Float64, tag: ""}, {prop: "a31", name: "a31", embedded: false, exported: false, typ: $Float64, tag: ""}, {prop: "a12", name: "a12", embedded: false, exported: false, typ: $Float64, tag: ""}, {prop: "a22", name: "a22", embedded: false, exported: false, typ: $Float64, tag: ""}, {prop: "a32", name: "a32", embedded: false, exported: false, typ: $Float64, tag: ""}, {prop: "a13", name: "a13", embedded: false, exported: false, typ: $Float64, tag: ""}, {prop: "a23", name: "a23", embedded: false, exported: false, typ: $Float64, tag: ""}, {prop: "a33", name: "a33", embedded: false, exported: false, typ: $Float64, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gozxing.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + valueToECI = $makeMap($Int.keyFor, []); + nameToECI = $makeMap($String.keyFor, []); + $pkg.CharacterSetECI_Cp437 = newCharsetECI(new sliceType([0, 2]), new sliceType$1(["Cp437"])); + $pkg.CharacterSetECI_ISO8859_1 = newCharsetECI(new sliceType([1, 3]), new sliceType$1(["ISO-8859-1", "ISO8859_1"])); + $pkg.CharacterSetECI_ISO8859_2 = newCharsetECI(new sliceType([4]), new sliceType$1(["ISO-8859-2", "ISO8859_2"])); + $pkg.CharacterSetECI_ISO8859_3 = newCharsetECI(new sliceType([5]), new sliceType$1(["ISO-8859-3", "ISO8859_3"])); + $pkg.CharacterSetECI_ISO8859_4 = newCharsetECI(new sliceType([6]), new sliceType$1(["ISO-8859-4", "ISO8859_4"])); + $pkg.CharacterSetECI_ISO8859_5 = newCharsetECI(new sliceType([7]), new sliceType$1(["ISO-8859-5", "ISO8859_5"])); + $pkg.CharacterSetECI_ISO8859_6 = newCharsetECI(new sliceType([8]), new sliceType$1(["ISO-8859-6", "ISO8859_6"])); + $pkg.CharacterSetECI_ISO8859_7 = newCharsetECI(new sliceType([9]), new sliceType$1(["ISO-8859-7", "ISO8859_7"])); + $pkg.CharacterSetECI_ISO8859_8 = newCharsetECI(new sliceType([10]), new sliceType$1(["ISO-8859-8", "ISO8859_8"])); + $pkg.CharacterSetECI_ISO8859_9 = newCharsetECI(new sliceType([11]), new sliceType$1(["ISO-8859-9", "ISO8859_9"])); + $pkg.CharacterSetECI_ISO8859_10 = newCharsetECI(new sliceType([12]), new sliceType$1(["ISO-8859-10", "ISO8859_10"])); + $pkg.CharacterSetECI_ISO8859_13 = newCharsetECI(new sliceType([15]), new sliceType$1(["ISO-8859-13", "ISO8859_13"])); + $pkg.CharacterSetECI_ISO8859_14 = newCharsetECI(new sliceType([16]), new sliceType$1(["ISO-8859-14", "ISO8859_14"])); + $pkg.CharacterSetECI_ISO8859_15 = newCharsetECI(new sliceType([17]), new sliceType$1(["ISO-8859-15", "ISO8859_15"])); + $pkg.CharacterSetECI_ISO8859_16 = newCharsetECI(new sliceType([18]), new sliceType$1(["ISO-8859-16", "ISO8859_16"])); + $pkg.CharacterSetECI_SJIS = newCharsetECI(new sliceType([20]), new sliceType$1(["Shift_JIS", "SJIS"])); + $pkg.CharacterSetECI_Cp1250 = newCharsetECI(new sliceType([21]), new sliceType$1(["windows-1250", "Cp1250"])); + $pkg.CharacterSetECI_Cp1251 = newCharsetECI(new sliceType([22]), new sliceType$1(["windows-1251", "Cp1251"])); + $pkg.CharacterSetECI_Cp1252 = newCharsetECI(new sliceType([23]), new sliceType$1(["windows-1252", "Cp1252"])); + $pkg.CharacterSetECI_Cp1256 = newCharsetECI(new sliceType([24]), new sliceType$1(["windows-1256", "Cp1256"])); + $pkg.CharacterSetECI_UnicodeBigUnmarked = newCharsetECI(new sliceType([25]), new sliceType$1(["UTF-16BE", "UnicodeBig", "UnicodeBigUnmarked"])); + $pkg.CharacterSetECI_UTF8 = newCharsetECI(new sliceType([26]), new sliceType$1(["UTF-8", "UTF8"])); + $pkg.CharacterSetECI_ASCII = newCharsetECI(new sliceType([27, 170]), new sliceType$1(["ASCII", "US-ASCII"])); + $pkg.CharacterSetECI_Big5 = newCharsetECI(new sliceType([28]), new sliceType$1(["Big5"])); + $pkg.CharacterSetECI_GB18030 = newCharsetECI(new sliceType([29]), new sliceType$1(["GB18030", "GB2312", "EUC_CN", "GBK"])); + $pkg.CharacterSetECI_EUC_KR = newCharsetECI(new sliceType([30]), new sliceType$1(["EUC-KR", "EUC_KR"])); + gridSampler = NewDefaultGridSampler(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["github.com/makiuchi-d/gozxing/common/reedsolomon"] = (function() { + var $pkg = {}, $init, errors, fmt, GenericGF, GenericGFPoly, sliceType, ptrType, sliceType$1, ptrType$1, sliceType$2, NewGenericGF, GenericGF_addOrSubtract, NewGenericGFPoly; + errors = $packages["errors"]; + fmt = $packages["fmt"]; + GenericGF = $pkg.GenericGF = $newType(0, $kindStruct, "reedsolomon.GenericGF", true, "github.com/makiuchi-d/gozxing/common/reedsolomon", true, function(expTable_, logTable_, zero_, one_, size_, primitive_, generatorBase_) { + this.$val = this; + if (arguments.length === 0) { + this.expTable = sliceType.nil; + this.logTable = sliceType.nil; + this.zero = ptrType.nil; + this.one = ptrType.nil; + this.size = 0; + this.primitive = 0; + this.generatorBase = 0; + return; + } + this.expTable = expTable_; + this.logTable = logTable_; + this.zero = zero_; + this.one = one_; + this.size = size_; + this.primitive = primitive_; + this.generatorBase = generatorBase_; + }); + GenericGFPoly = $pkg.GenericGFPoly = $newType(0, $kindStruct, "reedsolomon.GenericGFPoly", true, "github.com/makiuchi-d/gozxing/common/reedsolomon", true, function(field_, coefficients_) { + this.$val = this; + if (arguments.length === 0) { + this.field = ptrType$1.nil; + this.coefficients = sliceType.nil; + return; + } + this.field = field_; + this.coefficients = coefficients_; + }); + sliceType = $sliceType($Int); + ptrType = $ptrType(GenericGFPoly); + sliceType$1 = $sliceType($emptyInterface); + ptrType$1 = $ptrType(GenericGF); + sliceType$2 = $sliceType($Uint8); + NewGenericGF = function(primitive, size, b) { + var _tuple, _tuple$1, b, expTable, i, i$1, logTable, primitive, size, this$1, x, x$1; + this$1 = new GenericGF.ptr(sliceType.nil, sliceType.nil, ptrType.nil, ptrType.nil, size, primitive, b); + expTable = $makeSlice(sliceType, size); + logTable = $makeSlice(sliceType, size); + x = 1; + i = 0; + while (true) { + if (!(i < size)) { break; } + ((i < 0 || i >= expTable.$length) ? ($throwRuntimeError("index out of range"), undefined) : expTable.$array[expTable.$offset + i] = x); + x = $imul(x, (2)); + if (x >= size) { + x = (x ^ (primitive)) >> 0; + x = x & ((size - 1 >> 0)); + } + i = i + (1) >> 0; + } + i$1 = 0; + while (true) { + if (!(i$1 < (size - 1 >> 0))) { break; } + (x$1 = ((i$1 < 0 || i$1 >= expTable.$length) ? ($throwRuntimeError("index out of range"), undefined) : expTable.$array[expTable.$offset + i$1]), ((x$1 < 0 || x$1 >= logTable.$length) ? ($throwRuntimeError("index out of range"), undefined) : logTable.$array[logTable.$offset + x$1] = i$1)); + i$1 = i$1 + (1) >> 0; + } + this$1.expTable = expTable; + this$1.logTable = logTable; + _tuple = NewGenericGFPoly(this$1, new sliceType([0])); + this$1.zero = _tuple[0]; + _tuple$1 = NewGenericGFPoly(this$1, new sliceType([1])); + this$1.one = _tuple$1[0]; + return this$1; + }; + $pkg.NewGenericGF = NewGenericGF; + GenericGF.ptr.prototype.GetZero = function() { + var this$1; + this$1 = this; + return this$1.zero; + }; + GenericGF.prototype.GetZero = function() { return this.$val.GetZero(); }; + GenericGF.ptr.prototype.GetOne = function() { + var this$1; + this$1 = this; + return this$1.one; + }; + GenericGF.prototype.GetOne = function() { return this.$val.GetOne(); }; + GenericGF.ptr.prototype.BuildMonomial = function(degree, coefficient) { + var coefficient, coefficients, degree, this$1; + this$1 = this; + if (degree < 0) { + return [ptrType.nil, errors.New("IllegalArgumentException")]; + } + if (coefficient === 0) { + return [this$1.zero, $ifaceNil]; + } + coefficients = $makeSlice(sliceType, (degree + 1 >> 0)); + (0 >= coefficients.$length ? ($throwRuntimeError("index out of range"), undefined) : coefficients.$array[coefficients.$offset + 0] = coefficient); + return NewGenericGFPoly(this$1, coefficients); + }; + GenericGF.prototype.BuildMonomial = function(degree, coefficient) { return this.$val.BuildMonomial(degree, coefficient); }; + GenericGF_addOrSubtract = function(a, b) { + var a, b; + return (a ^ b) >> 0; + }; + $pkg.GenericGF_addOrSubtract = GenericGF_addOrSubtract; + GenericGF.ptr.prototype.Exp = function(a) { + var a, this$1, x; + this$1 = this; + return (x = this$1.expTable, ((a < 0 || a >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + a])); + }; + GenericGF.prototype.Exp = function(a) { return this.$val.Exp(a); }; + GenericGF.ptr.prototype.Log = function(a) { + var a, this$1, x; + this$1 = this; + if (a === 0) { + return [0, errors.New("IllegalArgumentException")]; + } + return [(x = this$1.logTable, ((a < 0 || a >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + a])), $ifaceNil]; + }; + GenericGF.prototype.Log = function(a) { return this.$val.Log(a); }; + GenericGF.ptr.prototype.Inverse = function(a) { + var a, this$1, x, x$1, x$2; + this$1 = this; + if (a === 0) { + return [0, errors.New("IllegalArgumentException")]; + } + return [(x = this$1.expTable, x$1 = (this$1.size - (x$2 = this$1.logTable, ((a < 0 || a >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + a])) >> 0) - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])), $ifaceNil]; + }; + GenericGF.prototype.Inverse = function(a) { return this.$val.Inverse(a); }; + GenericGF.ptr.prototype.Multiply = function(a, b) { + var _r, a, b, this$1, x, x$1, x$2, x$3; + this$1 = this; + if ((a === 0) || (b === 0)) { + return 0; + } + return (x = this$1.expTable, x$1 = (_r = (((x$2 = this$1.logTable, ((a < 0 || a >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + a])) + (x$3 = this$1.logTable, ((b < 0 || b >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + b])) >> 0)) % ((this$1.size - 1 >> 0)), _r === _r ? _r : $throwRuntimeError("integer divide by zero")), ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + }; + GenericGF.prototype.Multiply = function(a, b) { return this.$val.Multiply(a, b); }; + GenericGF.ptr.prototype.GetSize = function() { + var this$1; + this$1 = this; + return this$1.size; + }; + GenericGF.prototype.GetSize = function() { return this.$val.GetSize(); }; + GenericGF.ptr.prototype.GetGeneratorBase = function() { + var this$1; + this$1 = this; + return this$1.generatorBase; + }; + GenericGF.prototype.GetGeneratorBase = function() { return this.$val.GetGeneratorBase(); }; + GenericGF.ptr.prototype.String = function() { + var _r, this$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; this$1 = $f.this$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + this$1 = this; + _r = fmt.Sprintf("GF(0x%x,%d)", new sliceType$1([new $Int(this$1.primitive), new $Int(this$1.size)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: GenericGF.ptr.prototype.String }; } $f._r = _r; $f.this$1 = this$1; $f.$s = $s; $f.$r = $r; return $f; + }; + GenericGF.prototype.String = function() { return this.$val.String(); }; + NewGenericGFPoly = function(field, coefficients) { + var coefficients, coefficientsLength, field, firstNonZero, this$1; + if (coefficients.$length === 0) { + return [ptrType.nil, errors.New("IllegalArgumentException")]; + } + this$1 = new GenericGFPoly.ptr(field, sliceType.nil); + coefficientsLength = coefficients.$length; + if (coefficientsLength > 1 && ((0 >= coefficients.$length ? ($throwRuntimeError("index out of range"), undefined) : coefficients.$array[coefficients.$offset + 0]) === 0)) { + firstNonZero = 1; + while (true) { + if (!(firstNonZero < coefficientsLength && (((firstNonZero < 0 || firstNonZero >= coefficients.$length) ? ($throwRuntimeError("index out of range"), undefined) : coefficients.$array[coefficients.$offset + firstNonZero]) === 0))) { break; } + firstNonZero = firstNonZero + (1) >> 0; + } + if (firstNonZero === coefficientsLength) { + this$1.coefficients = new sliceType([0]); + } else { + this$1.coefficients = $subslice(coefficients, firstNonZero); + } + } else { + this$1.coefficients = coefficients; + } + return [this$1, $ifaceNil]; + }; + $pkg.NewGenericGFPoly = NewGenericGFPoly; + GenericGFPoly.ptr.prototype.GetCoefficients = function() { + var this$1; + this$1 = this; + return this$1.coefficients; + }; + GenericGFPoly.prototype.GetCoefficients = function() { return this.$val.GetCoefficients(); }; + GenericGFPoly.ptr.prototype.GetDegree = function() { + var this$1; + this$1 = this; + return this$1.coefficients.$length - 1 >> 0; + }; + GenericGFPoly.prototype.GetDegree = function() { return this.$val.GetDegree(); }; + GenericGFPoly.ptr.prototype.IsZero = function() { + var this$1, x; + this$1 = this; + return (x = this$1.coefficients, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])) === 0; + }; + GenericGFPoly.prototype.IsZero = function() { return this.$val.IsZero(); }; + GenericGFPoly.ptr.prototype.GetCoefficient = function(degree) { + var degree, this$1, x, x$1; + this$1 = this; + return (x = this$1.coefficients, x$1 = (this$1.coefficients.$length - 1 >> 0) - degree >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + }; + GenericGFPoly.prototype.GetCoefficient = function(degree) { return this.$val.GetCoefficient(degree); }; + GenericGFPoly.ptr.prototype.EvaluateAt = function(a) { + var _i, _ref, a, coefficient, i, result, result$1, size, this$1, x, x$1; + this$1 = this; + if (a === 0) { + return this$1.GetCoefficient(0); + } + if (a === 1) { + result = 0; + _ref = this$1.coefficients; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + coefficient = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + result = GenericGF_addOrSubtract(result, coefficient); + _i++; + } + return result; + } + result$1 = (x = this$1.coefficients, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); + size = this$1.coefficients.$length; + i = 1; + while (true) { + if (!(i < size)) { break; } + result$1 = GenericGF_addOrSubtract(this$1.field.Multiply(a, result$1), (x$1 = this$1.coefficients, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i]))); + i = i + (1) >> 0; + } + return result$1; + }; + GenericGFPoly.prototype.EvaluateAt = function(a) { return this.$val.EvaluateAt(a); }; + GenericGFPoly.ptr.prototype.AddOrSubtract = function(other) { + var _tmp, _tmp$1, i, largerCoefficients, lengthDiff, other, smallerCoefficients, sumDiff, this$1, x; + this$1 = this; + if (!(this$1.field === other.field)) { + return [ptrType.nil, errors.New("IllegalArgumentException: GenericGFPolys do not have same GenericGF field")]; + } + if (this$1.IsZero()) { + return [other, $ifaceNil]; + } + if (other.IsZero()) { + return [this$1, $ifaceNil]; + } + smallerCoefficients = this$1.coefficients; + largerCoefficients = other.coefficients; + if (smallerCoefficients.$length > largerCoefficients.$length) { + _tmp = largerCoefficients; + _tmp$1 = smallerCoefficients; + smallerCoefficients = _tmp; + largerCoefficients = _tmp$1; + } + sumDiff = $makeSlice(sliceType, largerCoefficients.$length); + lengthDiff = largerCoefficients.$length - smallerCoefficients.$length >> 0; + $copySlice(sumDiff, $subslice(largerCoefficients, 0, lengthDiff)); + i = lengthDiff; + while (true) { + if (!(i < largerCoefficients.$length)) { break; } + ((i < 0 || i >= sumDiff.$length) ? ($throwRuntimeError("index out of range"), undefined) : sumDiff.$array[sumDiff.$offset + i] = GenericGF_addOrSubtract((x = i - lengthDiff >> 0, ((x < 0 || x >= smallerCoefficients.$length) ? ($throwRuntimeError("index out of range"), undefined) : smallerCoefficients.$array[smallerCoefficients.$offset + x])), ((i < 0 || i >= largerCoefficients.$length) ? ($throwRuntimeError("index out of range"), undefined) : largerCoefficients.$array[largerCoefficients.$offset + i]))); + i = i + (1) >> 0; + } + return NewGenericGFPoly(this$1.field, sumDiff); + }; + GenericGFPoly.prototype.AddOrSubtract = function(other) { return this.$val.AddOrSubtract(other); }; + GenericGFPoly.ptr.prototype.Multiply = function(other) { + var aCoeff, aCoefficients, aLength, bCoefficients, bLength, i, j, other, product, this$1, x, x$1; + this$1 = this; + if (!(this$1.field === other.field)) { + return [ptrType.nil, errors.New("IllegalArgumentException: GenericGFPolys do not have same GenericGF field")]; + } + if (this$1.IsZero() || other.IsZero()) { + return [this$1.field.GetZero(), $ifaceNil]; + } + aCoefficients = this$1.coefficients; + aLength = aCoefficients.$length; + bCoefficients = other.coefficients; + bLength = bCoefficients.$length; + product = $makeSlice(sliceType, ((aLength + bLength >> 0) - 1 >> 0)); + i = 0; + while (true) { + if (!(i < aLength)) { break; } + aCoeff = ((i < 0 || i >= aCoefficients.$length) ? ($throwRuntimeError("index out of range"), undefined) : aCoefficients.$array[aCoefficients.$offset + i]); + j = 0; + while (true) { + if (!(j < bLength)) { break; } + (x$1 = i + j >> 0, ((x$1 < 0 || x$1 >= product.$length) ? ($throwRuntimeError("index out of range"), undefined) : product.$array[product.$offset + x$1] = GenericGF_addOrSubtract((x = i + j >> 0, ((x < 0 || x >= product.$length) ? ($throwRuntimeError("index out of range"), undefined) : product.$array[product.$offset + x])), this$1.field.Multiply(aCoeff, ((j < 0 || j >= bCoefficients.$length) ? ($throwRuntimeError("index out of range"), undefined) : bCoefficients.$array[bCoefficients.$offset + j]))))); + j = j + (1) >> 0; + } + i = i + (1) >> 0; + } + return NewGenericGFPoly(this$1.field, product); + }; + GenericGFPoly.prototype.Multiply = function(other) { return this.$val.Multiply(other); }; + GenericGFPoly.ptr.prototype.MultiplyBy = function(scalar) { + var _tuple, i, product, ret, scalar, size, this$1, x; + this$1 = this; + if (scalar === 0) { + return this$1.field.GetZero(); + } + if (scalar === 1) { + return this$1; + } + size = this$1.coefficients.$length; + product = $makeSlice(sliceType, size); + i = 0; + while (true) { + if (!(i < size)) { break; } + ((i < 0 || i >= product.$length) ? ($throwRuntimeError("index out of range"), undefined) : product.$array[product.$offset + i] = this$1.field.Multiply((x = this$1.coefficients, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])), scalar)); + i = i + (1) >> 0; + } + _tuple = NewGenericGFPoly(this$1.field, product); + ret = _tuple[0]; + return ret; + }; + GenericGFPoly.prototype.MultiplyBy = function(scalar) { return this.$val.MultiplyBy(scalar); }; + GenericGFPoly.ptr.prototype.MultiplyByMonomial = function(degree, coefficient) { + var coefficient, degree, i, product, size, this$1, x; + this$1 = this; + if (degree < 0) { + return [ptrType.nil, errors.New("IllegalArgumentException")]; + } + if (coefficient === 0) { + return [this$1.field.GetZero(), $ifaceNil]; + } + size = this$1.coefficients.$length; + product = $makeSlice(sliceType, (size + degree >> 0)); + i = 0; + while (true) { + if (!(i < size)) { break; } + ((i < 0 || i >= product.$length) ? ($throwRuntimeError("index out of range"), undefined) : product.$array[product.$offset + i] = this$1.field.Multiply((x = this$1.coefficients, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])), coefficient)); + i = i + (1) >> 0; + } + return NewGenericGFPoly(this$1.field, product); + }; + GenericGFPoly.prototype.MultiplyByMonomial = function(degree, coefficient) { return this.$val.MultiplyByMonomial(degree, coefficient); }; + GenericGFPoly.ptr.prototype.Divide = function(other) { + var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, degreeDifference, denominatorLeadingTerm, e, e$1, inverseDenominatorLeadingTerm, iterationQuotient, other, quotient, remainder, scale, term, this$1; + quotient = ptrType.nil; + remainder = ptrType.nil; + e = $ifaceNil; + this$1 = this; + if (!(this$1.field === other.field)) { + _tmp = ptrType.nil; + _tmp$1 = ptrType.nil; + _tmp$2 = errors.New("IllegalArgumentException: GenericGFPolys do not have same GenericGF field"); + quotient = _tmp; + remainder = _tmp$1; + e = _tmp$2; + return [quotient, remainder, e]; + } + if (other.IsZero()) { + _tmp$3 = ptrType.nil; + _tmp$4 = ptrType.nil; + _tmp$5 = errors.New("IllegalArgumentException: Divide by 0"); + quotient = _tmp$3; + remainder = _tmp$4; + e = _tmp$5; + return [quotient, remainder, e]; + } + quotient = this$1.field.GetZero(); + remainder = this$1; + denominatorLeadingTerm = other.GetCoefficient(other.GetDegree()); + _tuple = this$1.field.Inverse(denominatorLeadingTerm); + inverseDenominatorLeadingTerm = _tuple[0]; + e = _tuple[1]; + if (!($interfaceIsEqual(e, $ifaceNil))) { + _tmp$6 = ptrType.nil; + _tmp$7 = ptrType.nil; + _tmp$8 = e; + quotient = _tmp$6; + remainder = _tmp$7; + e = _tmp$8; + return [quotient, remainder, e]; + } + while (true) { + if (!(remainder.GetDegree() >= other.GetDegree() && !remainder.IsZero())) { break; } + degreeDifference = remainder.GetDegree() - other.GetDegree() >> 0; + scale = this$1.field.Multiply(remainder.GetCoefficient(remainder.GetDegree()), inverseDenominatorLeadingTerm); + _tuple$1 = other.MultiplyByMonomial(degreeDifference, scale); + term = _tuple$1[0]; + e$1 = _tuple$1[1]; + if (!($interfaceIsEqual(e$1, $ifaceNil))) { + _tmp$9 = ptrType.nil; + _tmp$10 = ptrType.nil; + _tmp$11 = e$1; + quotient = _tmp$9; + remainder = _tmp$10; + e = _tmp$11; + return [quotient, remainder, e]; + } + _tuple$2 = this$1.field.BuildMonomial(degreeDifference, scale); + iterationQuotient = _tuple$2[0]; + e$1 = _tuple$2[1]; + if (!($interfaceIsEqual(e$1, $ifaceNil))) { + _tmp$12 = ptrType.nil; + _tmp$13 = ptrType.nil; + _tmp$14 = e$1; + quotient = _tmp$12; + remainder = _tmp$13; + e = _tmp$14; + return [quotient, remainder, e]; + } + _tuple$3 = quotient.AddOrSubtract(iterationQuotient); + quotient = _tuple$3[0]; + e$1 = _tuple$3[1]; + if (!($interfaceIsEqual(e$1, $ifaceNil))) { + _tmp$15 = ptrType.nil; + _tmp$16 = ptrType.nil; + _tmp$17 = e$1; + quotient = _tmp$15; + remainder = _tmp$16; + e = _tmp$17; + return [quotient, remainder, e]; + } + _tuple$4 = remainder.AddOrSubtract(term); + remainder = _tuple$4[0]; + e$1 = _tuple$4[1]; + if (!($interfaceIsEqual(e$1, $ifaceNil))) { + _tmp$18 = ptrType.nil; + _tmp$19 = ptrType.nil; + _tmp$20 = e$1; + quotient = _tmp$18; + remainder = _tmp$19; + e = _tmp$20; + return [quotient, remainder, e]; + } + } + _tmp$21 = quotient; + _tmp$22 = remainder; + _tmp$23 = $ifaceNil; + quotient = _tmp$21; + remainder = _tmp$22; + e = _tmp$23; + return [quotient, remainder, e]; + }; + GenericGFPoly.prototype.Divide = function(other) { return this.$val.Divide(other); }; + GenericGFPoly.ptr.prototype.String = function() { + var _arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _tuple, alphaPower, coefficient, degree, result, this$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; alphaPower = $f.alphaPower; coefficient = $f.coefficient; degree = $f.degree; result = $f.result; this$1 = $f.this$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + this$1 = this; + if (this$1.IsZero()) { + $s = -1; return "0"; + } + result = $makeSlice(sliceType$2, 0, ($imul(8, this$1.GetDegree()))); + degree = this$1.GetDegree(); + /* while (true) { */ case 1: + /* if (!(degree >= 0)) { break; } */ if(!(degree >= 0)) { $s = 2; continue; } + coefficient = this$1.GetCoefficient(degree); + /* */ if (!((coefficient === 0))) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!((coefficient === 0))) { */ case 3: + if (coefficient < 0) { + if (degree === this$1.GetDegree()) { + result = $append(result, 45); + } else { + result = $appendSlice(result, (new sliceType$2($stringToBytes(" - ")))); + } + coefficient = -coefficient; + } else { + if (result.$length > 0) { + result = $appendSlice(result, (new sliceType$2($stringToBytes(" + ")))); + } + } + /* */ if ((degree === 0) || !((coefficient === 1))) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if ((degree === 0) || !((coefficient === 1))) { */ case 5: + _tuple = this$1.field.Log(coefficient); + alphaPower = _tuple[0]; + /* */ if (alphaPower === 0) { $s = 7; continue; } + /* */ if (alphaPower === 1) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (alphaPower === 0) { */ case 7: + result = $append(result, 49); + $s = 10; continue; + /* } else if (alphaPower === 1) { */ case 8: + result = $append(result, 97); + $s = 10; continue; + /* } else { */ case 9: + _arg = result; + _r = fmt.Sprintf("a^%d", new sliceType$1([new $Int(alphaPower)])); /* */ $s = 11; case 11: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = (new sliceType$2($stringToBytes(_r))); + result = $appendSlice(_arg, _arg$1); + /* } */ case 10: + /* } */ case 6: + /* */ if (!((degree === 0))) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (!((degree === 0))) { */ case 12: + /* */ if (degree === 1) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (degree === 1) { */ case 14: + result = $append(result, 120); + $s = 16; continue; + /* } else { */ case 15: + _arg$2 = result; + _r$1 = fmt.Sprintf("x^%d", new sliceType$1([new $Int(degree)])); /* */ $s = 17; case 17: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg$3 = (new sliceType$2($stringToBytes(_r$1))); + result = $appendSlice(_arg$2, _arg$3); + /* } */ case 16: + /* } */ case 13: + /* } */ case 4: + degree = degree - (1) >> 0; + /* } */ $s = 1; continue; case 2: + $s = -1; return ($bytesToString(result)); + /* */ } return; } if ($f === undefined) { $f = { $blk: GenericGFPoly.ptr.prototype.String }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.alphaPower = alphaPower; $f.coefficient = coefficient; $f.degree = degree; $f.result = result; $f.this$1 = this$1; $f.$s = $s; $f.$r = $r; return $f; + }; + GenericGFPoly.prototype.String = function() { return this.$val.String(); }; + ptrType$1.methods = [{prop: "GetZero", name: "GetZero", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "GetOne", name: "GetOne", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "BuildMonomial", name: "BuildMonomial", pkg: "", typ: $funcType([$Int, $Int], [ptrType, $error], false)}, {prop: "Exp", name: "Exp", pkg: "", typ: $funcType([$Int], [$Int], false)}, {prop: "Log", name: "Log", pkg: "", typ: $funcType([$Int], [$Int, $error], false)}, {prop: "Inverse", name: "Inverse", pkg: "", typ: $funcType([$Int], [$Int, $error], false)}, {prop: "Multiply", name: "Multiply", pkg: "", typ: $funcType([$Int, $Int], [$Int], false)}, {prop: "GetSize", name: "GetSize", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetGeneratorBase", name: "GetGeneratorBase", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType.methods = [{prop: "GetCoefficients", name: "GetCoefficients", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "GetDegree", name: "GetDegree", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "IsZero", name: "IsZero", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetCoefficient", name: "GetCoefficient", pkg: "", typ: $funcType([$Int], [$Int], false)}, {prop: "EvaluateAt", name: "EvaluateAt", pkg: "", typ: $funcType([$Int], [$Int], false)}, {prop: "AddOrSubtract", name: "AddOrSubtract", pkg: "", typ: $funcType([ptrType], [ptrType, $error], false)}, {prop: "Multiply", name: "Multiply", pkg: "", typ: $funcType([ptrType], [ptrType, $error], false)}, {prop: "MultiplyBy", name: "MultiplyBy", pkg: "", typ: $funcType([$Int], [ptrType], false)}, {prop: "MultiplyByMonomial", name: "MultiplyByMonomial", pkg: "", typ: $funcType([$Int, $Int], [ptrType, $error], false)}, {prop: "Divide", name: "Divide", pkg: "", typ: $funcType([ptrType], [ptrType, ptrType, $error], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + GenericGF.init("github.com/makiuchi-d/gozxing/common/reedsolomon", [{prop: "expTable", name: "expTable", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "logTable", name: "logTable", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "zero", name: "zero", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "one", name: "one", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "size", name: "size", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "primitive", name: "primitive", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "generatorBase", name: "generatorBase", embedded: false, exported: false, typ: $Int, tag: ""}]); + GenericGFPoly.init("github.com/makiuchi-d/gozxing/common/reedsolomon", [{prop: "field", name: "field", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "coefficients", name: "coefficients", embedded: false, exported: false, typ: sliceType, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fmt.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.GenericGF_AZTEC_DATA_12 = NewGenericGF(4201, 4096, 1); + $pkg.GenericGF_AZTEC_DATA_10 = NewGenericGF(1033, 1024, 1); + $pkg.GenericGF_AZTEC_DATA_6 = NewGenericGF(67, 64, 1); + $pkg.GenericGF_AZTEC_PARAM = NewGenericGF(19, 16, 1); + $pkg.GenericGF_QR_CODE_FIELD_256 = NewGenericGF(285, 256, 0); + $pkg.GenericGF_DATA_MATRIX_FIELD_256 = NewGenericGF(301, 256, 1); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["golang.org/x/text/encoding/internal/identifier"] = (function() { + var $pkg = {}, $init, MIB; + MIB = $pkg.MIB = $newType(2, $kindUint16, "identifier.MIB", true, "golang.org/x/text/encoding/internal/identifier", true, null); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["golang.org/x/text/transform"] = (function() { + var $pkg = {}, $init, bytes, errors, io, utf8, Transformer, SpanningTransformer, NopResetter, Reader, Writer, sliceType, arrayType$1, ptrType, ptrType$1, errInconsistentByteCount, errShortInternal, NewReader, NewWriter, grow, String, Bytes, doAppend; + bytes = $packages["bytes"]; + errors = $packages["errors"]; + io = $packages["io"]; + utf8 = $packages["unicode/utf8"]; + Transformer = $pkg.Transformer = $newType(8, $kindInterface, "transform.Transformer", true, "golang.org/x/text/transform", true, null); + SpanningTransformer = $pkg.SpanningTransformer = $newType(8, $kindInterface, "transform.SpanningTransformer", true, "golang.org/x/text/transform", true, null); + NopResetter = $pkg.NopResetter = $newType(0, $kindStruct, "transform.NopResetter", true, "golang.org/x/text/transform", true, function() { + this.$val = this; + if (arguments.length === 0) { + return; + } + }); + Reader = $pkg.Reader = $newType(0, $kindStruct, "transform.Reader", true, "golang.org/x/text/transform", true, function(r_, t_, err_, dst_, dst0_, dst1_, src_, src0_, src1_, transformComplete_) { + this.$val = this; + if (arguments.length === 0) { + this.r = $ifaceNil; + this.t = $ifaceNil; + this.err = $ifaceNil; + this.dst = sliceType.nil; + this.dst0 = 0; + this.dst1 = 0; + this.src = sliceType.nil; + this.src0 = 0; + this.src1 = 0; + this.transformComplete = false; + return; + } + this.r = r_; + this.t = t_; + this.err = err_; + this.dst = dst_; + this.dst0 = dst0_; + this.dst1 = dst1_; + this.src = src_; + this.src0 = src0_; + this.src1 = src1_; + this.transformComplete = transformComplete_; + }); + Writer = $pkg.Writer = $newType(0, $kindStruct, "transform.Writer", true, "golang.org/x/text/transform", true, function(w_, t_, dst_, src_, n_) { + this.$val = this; + if (arguments.length === 0) { + this.w = $ifaceNil; + this.t = $ifaceNil; + this.dst = sliceType.nil; + this.src = sliceType.nil; + this.n = 0; + return; + } + this.w = w_; + this.t = t_; + this.dst = dst_; + this.src = src_; + this.n = n_; + }); + sliceType = $sliceType($Uint8); + arrayType$1 = $arrayType($Uint8, 256); + ptrType = $ptrType(Reader); + ptrType$1 = $ptrType(Writer); + NopResetter.ptr.prototype.Reset = function() { + }; + NopResetter.prototype.Reset = function() { return this.$val.Reset(); }; + NewReader = function(r, t) { + var r, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; r = $f.r; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = t.Reset(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return new Reader.ptr(r, t, $ifaceNil, $makeSlice(sliceType, 4096), 0, 0, $makeSlice(sliceType, 4096), 0, 0, false); + /* */ } return; } if ($f === undefined) { $f = { $blk: NewReader }; } $f.r = r; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.NewReader = NewReader; + Reader.ptr.prototype.Read = function(p) { + var _r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, err, n, p, r, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; err = $f.err; n = $f.n; p = $f.p; r = $f.r; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + r = this; + _tmp = 0; + _tmp$1 = ($ifaceNil); + n = _tmp; + err = _tmp$1; + /* while (true) { */ case 1: + if (!((r.dst0 === r.dst1))) { + n = $copySlice(p, $subslice(r.dst, r.dst0, r.dst1)); + r.dst0 = r.dst0 + (n) >> 0; + if ((r.dst0 === r.dst1) && r.transformComplete) { + $s = -1; return [n, r.err]; + } + $s = -1; return [n, $ifaceNil]; + } else if (r.transformComplete) { + $s = -1; return [0, r.err]; + } + /* */ if (!((r.src0 === r.src1)) || !($interfaceIsEqual(r.err, $ifaceNil))) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!((r.src0 === r.src1)) || !($interfaceIsEqual(r.err, $ifaceNil))) { */ case 3: + r.dst0 = 0; + _r = r.t.Transform(r.dst, $subslice(r.src, r.src0, r.src1), $interfaceIsEqual(r.err, io.EOF)); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + r.dst1 = _tuple[0]; + n = _tuple[1]; + err = _tuple[2]; + r.src0 = r.src0 + (n) >> 0; + if ($interfaceIsEqual(err, $ifaceNil)) { + if (!((r.src0 === r.src1))) { + r.err = errInconsistentByteCount; + } + r.transformComplete = !($interfaceIsEqual(r.err, $ifaceNil)); + /* continue; */ $s = 1; continue; + } else if ($interfaceIsEqual(err, $pkg.ErrShortDst) && (!((r.dst1 === 0)) || !((n === 0)))) { + /* continue; */ $s = 1; continue; + } else if ($interfaceIsEqual(err, $pkg.ErrShortSrc) && !(((r.src1 - r.src0 >> 0) === r.src.$length)) && $interfaceIsEqual(r.err, $ifaceNil)) { + } else { + r.transformComplete = true; + if ($interfaceIsEqual(r.err, $ifaceNil) || $interfaceIsEqual(r.err, io.EOF)) { + r.err = err; + } + /* continue; */ $s = 1; continue; + } + case 6: + /* } */ case 4: + if (!((r.src0 === 0))) { + _tmp$2 = 0; + _tmp$3 = $copySlice(r.src, $subslice(r.src, r.src0, r.src1)); + r.src0 = _tmp$2; + r.src1 = _tmp$3; + } + _r$1 = r.r.Read($subslice(r.src, r.src1)); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + n = _tuple$1[0]; + r.err = _tuple$1[1]; + r.src1 = r.src1 + (n) >> 0; + /* } */ $s = 1; continue; case 2: + $s = -1; return [0, $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Reader.ptr.prototype.Read }; } $f._r = _r; $f._r$1 = _r$1; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.err = err; $f.n = n; $f.p = p; $f.r = r; $f.$s = $s; $f.$r = $r; return $f; + }; + Reader.prototype.Read = function(p) { return this.$val.Read(p); }; + NewWriter = function(w, t) { + var t, w, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; t = $f.t; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = t.Reset(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return new Writer.ptr(w, t, $makeSlice(sliceType, 4096), $makeSlice(sliceType, 4096), 0); + /* */ } return; } if ($f === undefined) { $f = { $blk: NewWriter }; } $f.t = t; $f.w = w; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.NewWriter = NewWriter; + Writer.ptr.prototype.Write = function(data) { + var _1, _r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, data, err, err$1, m, n, nDst, nSrc, src, w, werr, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _r$1 = $f._r$1; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; data = $f.data; err = $f.err; err$1 = $f.err$1; m = $f.m; n = $f.n; nDst = $f.nDst; nSrc = $f.nSrc; src = $f.src; w = $f.w; werr = $f.werr; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + w = this; + src = data; + if (w.n > 0) { + n = $copySlice($subslice(w.src, w.n), data); + w.n = w.n + (n) >> 0; + src = $subslice(w.src, 0, w.n); + } + /* while (true) { */ case 1: + _r = w.t.Transform(w.dst, src, false); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + nDst = _tuple[0]; + nSrc = _tuple[1]; + err$1 = _tuple[2]; + _r$1 = w.w.Write($subslice(w.dst, 0, nDst)); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + werr = _tuple$1[1]; + if (!($interfaceIsEqual(werr, $ifaceNil))) { + _tmp = n; + _tmp$1 = werr; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + } + src = $subslice(src, nSrc); + if (w.n === 0) { + n = n + (nSrc) >> 0; + } else if (src.$length <= n) { + w.n = 0; + n = n - (src.$length) >> 0; + src = $subslice(data, n); + if (n < data.$length && ($interfaceIsEqual(err$1, $ifaceNil) || $interfaceIsEqual(err$1, $pkg.ErrShortSrc))) { + /* continue; */ $s = 1; continue; + } + } + _1 = err$1; + if ($interfaceIsEqual(_1, ($pkg.ErrShortDst))) { + if (nDst > 0 || nSrc > 0) { + /* continue; */ $s = 1; continue; + } + } else if ($interfaceIsEqual(_1, ($pkg.ErrShortSrc))) { + if (src.$length < w.src.$length) { + m = $copySlice(w.src, src); + if (w.n === 0) { + n = n + (m) >> 0; + } + w.n = m; + err$1 = $ifaceNil; + } else if (nDst > 0 || nSrc > 0) { + /* continue; */ $s = 1; continue; + } + } else if ($interfaceIsEqual(_1, $ifaceNil)) { + if (w.n > 0) { + err$1 = errInconsistentByteCount; + } + } + _tmp$2 = n; + _tmp$3 = err$1; + n = _tmp$2; + err = _tmp$3; + $s = -1; return [n, err]; + /* } */ $s = 1; continue; case 2: + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Writer.ptr.prototype.Write }; } $f._1 = _1; $f._r = _r; $f._r$1 = _r$1; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.data = data; $f.err = err; $f.err$1 = err$1; $f.m = m; $f.n = n; $f.nDst = nDst; $f.nSrc = nSrc; $f.src = src; $f.w = w; $f.werr = werr; $f.$s = $s; $f.$r = $r; return $f; + }; + Writer.prototype.Write = function(data) { return this.$val.Write(data); }; + Writer.ptr.prototype.Close = function() { + var _r, _r$1, _tuple, _tuple$1, err, nDst, nSrc, src, w, werr, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; err = $f.err; nDst = $f.nDst; nSrc = $f.nSrc; src = $f.src; w = $f.w; werr = $f.werr; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + w = this; + src = $subslice(w.src, 0, w.n); + /* while (true) { */ case 1: + _r = w.t.Transform(w.dst, src, true); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + nDst = _tuple[0]; + nSrc = _tuple[1]; + err = _tuple[2]; + _r$1 = w.w.Write($subslice(w.dst, 0, nDst)); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + werr = _tuple$1[1]; + if (!($interfaceIsEqual(werr, $ifaceNil))) { + $s = -1; return werr; + } + if (!($interfaceIsEqual(err, $pkg.ErrShortDst))) { + $s = -1; return err; + } + src = $subslice(src, nSrc); + /* } */ $s = 1; continue; case 2: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: Writer.ptr.prototype.Close }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.err = err; $f.nDst = nDst; $f.nSrc = nSrc; $f.src = src; $f.w = w; $f.werr = werr; $f.$s = $s; $f.$r = $r; return $f; + }; + Writer.prototype.Close = function() { return this.$val.Close(); }; + grow = function(b, n) { + var b, buf, m, n; + m = b.$length; + if (m <= 32) { + m = 64; + } else if (m <= 256) { + m = $imul(m, (2)); + } else { + m = m + ((m >> 1 >> 0)) >> 0; + } + buf = $makeSlice(sliceType, m); + $copySlice(buf, $subslice(b, 0, n)); + return buf; + }; + String = function(t, s) { + var _r, _r$1, _r$2, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, buf, dst, err, err$1, err$2, n, n$1, n$2, nDst, nDst$1, nSrc, nSrc$1, newDst, pDst, pPrefix, pSrc, result, s, src, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$10 = $f._tmp$10; _tmp$11 = $f._tmp$11; _tmp$12 = $f._tmp$12; _tmp$13 = $f._tmp$13; _tmp$14 = $f._tmp$14; _tmp$15 = $f._tmp$15; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tmp$6 = $f._tmp$6; _tmp$7 = $f._tmp$7; _tmp$8 = $f._tmp$8; _tmp$9 = $f._tmp$9; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; buf = $f.buf; dst = $f.dst; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; n = $f.n; n$1 = $f.n$1; n$2 = $f.n$2; nDst = $f.nDst; nDst$1 = $f.nDst$1; nSrc = $f.nSrc; nSrc$1 = $f.nSrc$1; newDst = $f.newDst; pDst = $f.pDst; pPrefix = $f.pPrefix; pSrc = $f.pSrc; result = $f.result; s = $f.s; src = $f.src; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + result = ""; + n = 0; + err = $ifaceNil; + $r = t.Reset(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (s === "") { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (s === "") { */ case 2: + _r = t.Transform(sliceType.nil, sliceType.nil, true); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + err$1 = _tuple[2]; + if ($interfaceIsEqual(err$1, $ifaceNil)) { + _tmp = ""; + _tmp$1 = 0; + _tmp$2 = $ifaceNil; + result = _tmp; + n = _tmp$1; + err = _tmp$2; + $s = -1; return [result, n, err]; + } + /* } */ case 3: + buf = arrayType$1.zero(); + dst = $subslice(new sliceType(buf), 0, 128, 128); + src = $subslice(new sliceType(buf), 128, 256); + _tmp$3 = 0; + _tmp$4 = 0; + nDst = _tmp$3; + nSrc = _tmp$4; + _tmp$5 = 0; + _tmp$6 = 0; + pDst = _tmp$5; + pSrc = _tmp$6; + pPrefix = 0; + /* while (true) { */ case 5: + n$1 = $copyString(src, $substring(s, pSrc)); + _r$1 = t.Transform(dst, $subslice(src, 0, n$1), (pSrc + n$1 >> 0) === s.length); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + nDst = _tuple$1[0]; + nSrc = _tuple$1[1]; + err = _tuple$1[2]; + pDst = pDst + (nDst) >> 0; + pSrc = pSrc + (nSrc) >> 0; + if (!bytes.Equal($subslice(dst, 0, nDst), $subslice(src, 0, nSrc))) { + /* break; */ $s = 6; continue; + } + pPrefix = pSrc; + if ($interfaceIsEqual(err, $pkg.ErrShortDst)) { + /* break; */ $s = 6; continue; + } else if ($interfaceIsEqual(err, $pkg.ErrShortSrc)) { + if (nSrc === 0) { + /* break; */ $s = 6; continue; + } + } else if (!($interfaceIsEqual(err, $ifaceNil)) || (pPrefix === s.length)) { + _tmp$7 = ($substring(s, 0, pPrefix)); + _tmp$8 = pPrefix; + _tmp$9 = err; + result = _tmp$7; + n = _tmp$8; + err = _tmp$9; + $s = -1; return [result, n, err]; + } + /* } */ $s = 5; continue; case 6: + if (!((pPrefix === 0))) { + newDst = dst; + if (pDst > newDst.$length) { + newDst = $makeSlice(sliceType, ((s.length + nDst >> 0) - nSrc >> 0)); + } + $copySlice($subslice(newDst, pPrefix, pDst), $subslice(dst, 0, nDst)); + $copyString($subslice(newDst, 0, pPrefix), $substring(s, 0, pPrefix)); + dst = newDst; + } + if (($interfaceIsEqual(err, $ifaceNil) && (pSrc === s.length)) || (!($interfaceIsEqual(err, $ifaceNil)) && !($interfaceIsEqual(err, $pkg.ErrShortDst)) && !($interfaceIsEqual(err, $pkg.ErrShortSrc)))) { + _tmp$10 = ($bytesToString($subslice(dst, 0, pDst))); + _tmp$11 = pSrc; + _tmp$12 = err; + result = _tmp$10; + n = _tmp$11; + err = _tmp$12; + $s = -1; return [result, n, err]; + } + /* while (true) { */ case 8: + n$2 = $copyString(src, $substring(s, pSrc)); + _r$2 = t.Transform($subslice(dst, pDst), $subslice(src, 0, n$2), (pSrc + n$2 >> 0) === s.length); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$2 = _r$2; + nDst$1 = _tuple$2[0]; + nSrc$1 = _tuple$2[1]; + err$2 = _tuple$2[2]; + pDst = pDst + (nDst$1) >> 0; + pSrc = pSrc + (nSrc$1) >> 0; + if ($interfaceIsEqual(err$2, $pkg.ErrShortDst)) { + if (nDst$1 === 0) { + dst = grow(dst, pDst); + } + } else if ($interfaceIsEqual(err$2, $pkg.ErrShortSrc)) { + if (nSrc$1 === 0) { + src = grow(src, 0); + } + } else if (!($interfaceIsEqual(err$2, $ifaceNil)) || (pSrc === s.length)) { + _tmp$13 = ($bytesToString($subslice(dst, 0, pDst))); + _tmp$14 = pSrc; + _tmp$15 = err$2; + result = _tmp$13; + n = _tmp$14; + err = _tmp$15; + $s = -1; return [result, n, err]; + } + /* } */ $s = 8; continue; case 9: + $s = -1; return [result, n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: String }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$10 = _tmp$10; $f._tmp$11 = _tmp$11; $f._tmp$12 = _tmp$12; $f._tmp$13 = _tmp$13; $f._tmp$14 = _tmp$14; $f._tmp$15 = _tmp$15; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tmp$6 = _tmp$6; $f._tmp$7 = _tmp$7; $f._tmp$8 = _tmp$8; $f._tmp$9 = _tmp$9; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.buf = buf; $f.dst = dst; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.n = n; $f.n$1 = n$1; $f.n$2 = n$2; $f.nDst = nDst; $f.nDst$1 = nDst$1; $f.nSrc = nSrc; $f.nSrc$1 = nSrc$1; $f.newDst = newDst; $f.pDst = pDst; $f.pPrefix = pPrefix; $f.pSrc = pSrc; $f.result = result; $f.s = s; $f.src = src; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.String = String; + Bytes = function(t, b) { + var _r, _tuple, b, err, n, result, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; b = $f.b; err = $f.err; n = $f.n; result = $f.result; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + result = sliceType.nil; + n = 0; + err = $ifaceNil; + _r = doAppend(t, 0, $makeSlice(sliceType, b.$length), b); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + result = _tuple[0]; + n = _tuple[1]; + err = _tuple[2]; + $s = -1; return [result, n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Bytes }; } $f._r = _r; $f._tuple = _tuple; $f.b = b; $f.err = err; $f.n = n; $f.result = result; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Bytes = Bytes; + doAppend = function(t, pDst, dst, src) { + var _r, _tmp, _tmp$1, _tmp$2, _tuple, dst, err, err$1, n, nDst, nSrc, pDst, pSrc, result, src, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tuple = $f._tuple; dst = $f.dst; err = $f.err; err$1 = $f.err$1; n = $f.n; nDst = $f.nDst; nSrc = $f.nSrc; pDst = $f.pDst; pSrc = $f.pSrc; result = $f.result; src = $f.src; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + result = sliceType.nil; + n = 0; + err = $ifaceNil; + $r = t.Reset(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + pSrc = 0; + /* while (true) { */ case 2: + _r = t.Transform($subslice(dst, pDst), $subslice(src, pSrc), true); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + nDst = _tuple[0]; + nSrc = _tuple[1]; + err$1 = _tuple[2]; + pDst = pDst + (nDst) >> 0; + pSrc = pSrc + (nSrc) >> 0; + if (!($interfaceIsEqual(err$1, $pkg.ErrShortDst))) { + _tmp = $subslice(dst, 0, pDst); + _tmp$1 = pSrc; + _tmp$2 = err$1; + result = _tmp; + n = _tmp$1; + err = _tmp$2; + $s = -1; return [result, n, err]; + } + if (nDst === 0) { + dst = grow(dst, pDst); + } + /* } */ $s = 2; continue; case 3: + $s = -1; return [result, n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: doAppend }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tuple = _tuple; $f.dst = dst; $f.err = err; $f.err$1 = err$1; $f.n = n; $f.nDst = nDst; $f.nSrc = nSrc; $f.pDst = pDst; $f.pSrc = pSrc; $f.result = result; $f.src = src; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + NopResetter.methods = [{prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}]; + ptrType.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}]; + ptrType$1.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}]; + Transformer.init([{prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}, {prop: "Transform", name: "Transform", pkg: "", typ: $funcType([sliceType, sliceType, $Bool], [$Int, $Int, $error], false)}]); + SpanningTransformer.init([{prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}, {prop: "Span", name: "Span", pkg: "", typ: $funcType([sliceType, $Bool], [$Int, $error], false)}, {prop: "Transform", name: "Transform", pkg: "", typ: $funcType([sliceType, sliceType, $Bool], [$Int, $Int, $error], false)}]); + NopResetter.init("", []); + Reader.init("golang.org/x/text/transform", [{prop: "r", name: "r", embedded: false, exported: false, typ: io.Reader, tag: ""}, {prop: "t", name: "t", embedded: false, exported: false, typ: Transformer, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "dst", name: "dst", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "dst0", name: "dst0", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "dst1", name: "dst1", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "src", name: "src", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "src0", name: "src0", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "src1", name: "src1", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "transformComplete", name: "transformComplete", embedded: false, exported: false, typ: $Bool, tag: ""}]); + Writer.init("golang.org/x/text/transform", [{prop: "w", name: "w", embedded: false, exported: false, typ: io.Writer, tag: ""}, {prop: "t", name: "t", embedded: false, exported: false, typ: Transformer, tag: ""}, {prop: "dst", name: "dst", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "src", name: "src", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "n", name: "n", embedded: false, exported: false, typ: $Int, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errors.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.ErrShortDst = errors.New("transform: short destination buffer"); + $pkg.ErrShortSrc = errors.New("transform: short source buffer"); + $pkg.ErrEndOfSpan = errors.New("transform: input and output are not identical"); + errInconsistentByteCount = errors.New("transform: inconsistent byte count returned"); + errShortInternal = errors.New("transform: short internal buffer"); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["golang.org/x/text/encoding"] = (function() { + var $pkg = {}, $init, errors, identifier, transform, io, strconv, utf8, Encoding, Decoder, Encoder, sliceType, structType, ptrType, ptrType$1; + errors = $packages["errors"]; + identifier = $packages["golang.org/x/text/encoding/internal/identifier"]; + transform = $packages["golang.org/x/text/transform"]; + io = $packages["io"]; + strconv = $packages["strconv"]; + utf8 = $packages["unicode/utf8"]; + Encoding = $pkg.Encoding = $newType(8, $kindInterface, "encoding.Encoding", true, "golang.org/x/text/encoding", true, null); + Decoder = $pkg.Decoder = $newType(0, $kindStruct, "encoding.Decoder", true, "golang.org/x/text/encoding", true, function(Transformer_, _$1_) { + this.$val = this; + if (arguments.length === 0) { + this.Transformer = $ifaceNil; + this._$1 = new structType.ptr(); + return; + } + this.Transformer = Transformer_; + this._$1 = _$1_; + }); + Encoder = $pkg.Encoder = $newType(0, $kindStruct, "encoding.Encoder", true, "golang.org/x/text/encoding", true, function(Transformer_, _$1_) { + this.$val = this; + if (arguments.length === 0) { + this.Transformer = $ifaceNil; + this._$1 = new structType.ptr(); + return; + } + this.Transformer = Transformer_; + this._$1 = _$1_; + }); + sliceType = $sliceType($Uint8); + structType = $structType("", []); + ptrType = $ptrType(Decoder); + ptrType$1 = $ptrType(Encoder); + Decoder.ptr.prototype.Bytes = function(b) { + var _r, _tuple, b, d, err, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; b = $f.b; d = $f.d; err = $f.err; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + d = this; + _r = transform.Bytes(d, b); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + b = _tuple[0]; + err = _tuple[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [sliceType.nil, err]; + } + $s = -1; return [b, $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Decoder.ptr.prototype.Bytes }; } $f._r = _r; $f._tuple = _tuple; $f.b = b; $f.d = d; $f.err = err; $f.$s = $s; $f.$r = $r; return $f; + }; + Decoder.prototype.Bytes = function(b) { return this.$val.Bytes(b); }; + Decoder.ptr.prototype.String = function(s) { + var _r, _tuple, d, err, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; d = $f.d; err = $f.err; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + d = this; + _r = transform.String(d, s); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + s = _tuple[0]; + err = _tuple[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return ["", err]; + } + $s = -1; return [s, $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Decoder.ptr.prototype.String }; } $f._r = _r; $f._tuple = _tuple; $f.d = d; $f.err = err; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + Decoder.prototype.String = function(s) { return this.$val.String(s); }; + Decoder.ptr.prototype.Reader = function(r) { + var _r, d, r, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; d = $f.d; r = $f.r; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + d = this; + _r = transform.NewReader(r, d); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: Decoder.ptr.prototype.Reader }; } $f._r = _r; $f.d = d; $f.r = r; $f.$s = $s; $f.$r = $r; return $f; + }; + Decoder.prototype.Reader = function(r) { return this.$val.Reader(r); }; + Encoder.ptr.prototype.Bytes = function(b) { + var _r, _tuple, b, e, err, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; b = $f.b; e = $f.e; err = $f.err; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + e = this; + _r = transform.Bytes(e, b); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + b = _tuple[0]; + err = _tuple[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [sliceType.nil, err]; + } + $s = -1; return [b, $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Encoder.ptr.prototype.Bytes }; } $f._r = _r; $f._tuple = _tuple; $f.b = b; $f.e = e; $f.err = err; $f.$s = $s; $f.$r = $r; return $f; + }; + Encoder.prototype.Bytes = function(b) { return this.$val.Bytes(b); }; + Encoder.ptr.prototype.String = function(s) { + var _r, _tuple, e, err, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; e = $f.e; err = $f.err; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + e = this; + _r = transform.String(e, s); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + s = _tuple[0]; + err = _tuple[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return ["", err]; + } + $s = -1; return [s, $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Encoder.ptr.prototype.String }; } $f._r = _r; $f._tuple = _tuple; $f.e = e; $f.err = err; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + Encoder.prototype.String = function(s) { return this.$val.String(s); }; + Encoder.ptr.prototype.Writer = function(w) { + var _r, e, w, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + e = this; + _r = transform.NewWriter(w, e); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: Encoder.ptr.prototype.Writer }; } $f._r = _r; $f.e = e; $f.w = w; $f.$s = $s; $f.$r = $r; return $f; + }; + Encoder.prototype.Writer = function(w) { return this.$val.Writer(w); }; + ptrType.methods = [{prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([sliceType], [sliceType, $error], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([$String], [$String, $error], false)}, {prop: "Reader", name: "Reader", pkg: "", typ: $funcType([io.Reader], [io.Reader], false)}]; + ptrType$1.methods = [{prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([sliceType], [sliceType, $error], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([$String], [$String, $error], false)}, {prop: "Writer", name: "Writer", pkg: "", typ: $funcType([io.Writer], [io.Writer], false)}]; + Encoding.init([{prop: "NewDecoder", name: "NewDecoder", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "NewEncoder", name: "NewEncoder", pkg: "", typ: $funcType([], [ptrType$1], false)}]); + Decoder.init("golang.org/x/text/encoding", [{prop: "Transformer", name: "Transformer", embedded: true, exported: true, typ: transform.Transformer, tag: ""}, {prop: "_$1", name: "_", embedded: false, exported: false, typ: structType, tag: ""}]); + Encoder.init("golang.org/x/text/encoding", [{prop: "Transformer", name: "Transformer", embedded: true, exported: true, typ: transform.Transformer, tag: ""}, {prop: "_$1", name: "_", embedded: false, exported: false, typ: structType, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = identifier.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = transform.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.ErrInvalidUTF8 = errors.New("encoding: invalid UTF-8"); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["golang.org/x/text/encoding/internal"] = (function() { + var $pkg = {}, $init, encoding, identifier, transform, Encoding, SimpleEncoding, FuncEncoding, RepertoireError, ptrType, structType, ptrType$1, ptrType$2, ptrType$3, funcType; + encoding = $packages["golang.org/x/text/encoding"]; + identifier = $packages["golang.org/x/text/encoding/internal/identifier"]; + transform = $packages["golang.org/x/text/transform"]; + Encoding = $pkg.Encoding = $newType(0, $kindStruct, "internal.Encoding", true, "golang.org/x/text/encoding/internal", true, function(Encoding_, Name_, MIB_) { + this.$val = this; + if (arguments.length === 0) { + this.Encoding = $ifaceNil; + this.Name = ""; + this.MIB = 0; + return; + } + this.Encoding = Encoding_; + this.Name = Name_; + this.MIB = MIB_; + }); + SimpleEncoding = $pkg.SimpleEncoding = $newType(0, $kindStruct, "internal.SimpleEncoding", true, "golang.org/x/text/encoding/internal", true, function(Decoder_, Encoder_) { + this.$val = this; + if (arguments.length === 0) { + this.Decoder = $ifaceNil; + this.Encoder = $ifaceNil; + return; + } + this.Decoder = Decoder_; + this.Encoder = Encoder_; + }); + FuncEncoding = $pkg.FuncEncoding = $newType(0, $kindStruct, "internal.FuncEncoding", true, "golang.org/x/text/encoding/internal", true, function(Decoder_, Encoder_) { + this.$val = this; + if (arguments.length === 0) { + this.Decoder = $throwNilPointerError; + this.Encoder = $throwNilPointerError; + return; + } + this.Decoder = Decoder_; + this.Encoder = Encoder_; + }); + RepertoireError = $pkg.RepertoireError = $newType(1, $kindUint8, "internal.RepertoireError", true, "golang.org/x/text/encoding/internal", true, null); + ptrType = $ptrType(Encoding); + structType = $structType("", []); + ptrType$1 = $ptrType(encoding.Decoder); + ptrType$2 = $ptrType(encoding.Encoder); + ptrType$3 = $ptrType(SimpleEncoding); + funcType = $funcType([], [transform.Transformer], false); + Encoding.ptr.prototype.String = function() { + var e; + e = this; + return e.Name; + }; + Encoding.prototype.String = function() { return this.$val.String(); }; + Encoding.ptr.prototype.ID = function() { + var _tmp, _tmp$1, e, mib, other; + mib = 0; + other = ""; + e = this; + _tmp = e.MIB; + _tmp$1 = ""; + mib = _tmp; + other = _tmp$1; + return [mib, other]; + }; + Encoding.prototype.ID = function() { return this.$val.ID(); }; + SimpleEncoding.ptr.prototype.NewDecoder = function() { + var e; + e = this; + return new encoding.Decoder.ptr(e.Decoder, new structType.ptr()); + }; + SimpleEncoding.prototype.NewDecoder = function() { return this.$val.NewDecoder(); }; + SimpleEncoding.ptr.prototype.NewEncoder = function() { + var e; + e = this; + return new encoding.Encoder.ptr(e.Encoder, new structType.ptr()); + }; + SimpleEncoding.prototype.NewEncoder = function() { return this.$val.NewEncoder(); }; + FuncEncoding.ptr.prototype.NewDecoder = function() { + var _r, e, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + e = this; + _r = e.Decoder(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return new encoding.Decoder.ptr(_r, new structType.ptr()); + /* */ } return; } if ($f === undefined) { $f = { $blk: FuncEncoding.ptr.prototype.NewDecoder }; } $f._r = _r; $f.e = e; $f.$s = $s; $f.$r = $r; return $f; + }; + FuncEncoding.prototype.NewDecoder = function() { return this.$val.NewDecoder(); }; + FuncEncoding.ptr.prototype.NewEncoder = function() { + var _r, e, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + e = this; + _r = e.Encoder(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return new encoding.Encoder.ptr(_r, new structType.ptr()); + /* */ } return; } if ($f === undefined) { $f = { $blk: FuncEncoding.ptr.prototype.NewEncoder }; } $f._r = _r; $f.e = e; $f.$s = $s; $f.$r = $r; return $f; + }; + FuncEncoding.prototype.NewEncoder = function() { return this.$val.NewEncoder(); }; + RepertoireError.prototype.Error = function() { + var r; + r = this.$val; + return "encoding: rune not supported by encoding."; + }; + $ptrType(RepertoireError).prototype.Error = function() { return new RepertoireError(this.$get()).Error(); }; + RepertoireError.prototype.Replacement = function() { + var r; + r = this.$val; + return ((r << 24 >>> 24)); + }; + $ptrType(RepertoireError).prototype.Replacement = function() { return new RepertoireError(this.$get()).Replacement(); }; + ptrType.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "ID", name: "ID", pkg: "", typ: $funcType([], [identifier.MIB, $String], false)}]; + ptrType$3.methods = [{prop: "NewDecoder", name: "NewDecoder", pkg: "", typ: $funcType([], [ptrType$1], false)}, {prop: "NewEncoder", name: "NewEncoder", pkg: "", typ: $funcType([], [ptrType$2], false)}]; + FuncEncoding.methods = [{prop: "NewDecoder", name: "NewDecoder", pkg: "", typ: $funcType([], [ptrType$1], false)}, {prop: "NewEncoder", name: "NewEncoder", pkg: "", typ: $funcType([], [ptrType$2], false)}]; + RepertoireError.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Replacement", name: "Replacement", pkg: "", typ: $funcType([], [$Uint8], false)}]; + Encoding.init("", [{prop: "Encoding", name: "Encoding", embedded: true, exported: true, typ: encoding.Encoding, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "MIB", name: "MIB", embedded: false, exported: true, typ: identifier.MIB, tag: ""}]); + SimpleEncoding.init("", [{prop: "Decoder", name: "Decoder", embedded: false, exported: true, typ: transform.Transformer, tag: ""}, {prop: "Encoder", name: "Encoder", embedded: false, exported: true, typ: transform.Transformer, tag: ""}]); + FuncEncoding.init("", [{prop: "Decoder", name: "Decoder", embedded: false, exported: true, typ: funcType, tag: ""}, {prop: "Encoder", name: "Encoder", embedded: false, exported: true, typ: funcType, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = encoding.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = identifier.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = transform.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.ErrASCIIReplacement = 26; + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["golang.org/x/text/encoding/charmap"] = (function() { + var $pkg = {}, $init, encoding, internal, identifier, transform, utf8, utf8Enc, Charmap, charmapDecoder, charmapEncoder, arrayType, arrayType$1, arrayType$2, structType, ptrType, ptrType$1, ptrType$2, sliceType$1, iso8859_6E, iso8859_6E$24ptr, iso8859_6I, iso8859_6I$24ptr, iso8859_8E, iso8859_8E$24ptr, iso8859_8I, iso8859_8I$24ptr, codePage037, codePage037$24ptr, codePage437, codePage437$24ptr, codePage850, codePage850$24ptr, codePage852, codePage852$24ptr, codePage855, codePage855$24ptr, codePage858, codePage858$24ptr, codePage860, codePage860$24ptr, codePage862, codePage862$24ptr, codePage863, codePage863$24ptr, codePage865, codePage865$24ptr, codePage866, codePage866$24ptr, codePage1047, codePage1047$24ptr, codePage1140, codePage1140$24ptr, iso8859_1, iso8859_1$24ptr, iso8859_2, iso8859_2$24ptr, iso8859_3, iso8859_3$24ptr, iso8859_4, iso8859_4$24ptr, iso8859_5, iso8859_5$24ptr, iso8859_6, iso8859_6$24ptr, iso8859_7, iso8859_7$24ptr, iso8859_8, iso8859_8$24ptr, iso8859_9, iso8859_9$24ptr, iso8859_10, iso8859_10$24ptr, iso8859_13, iso8859_13$24ptr, iso8859_14, iso8859_14$24ptr, iso8859_15, iso8859_15$24ptr, iso8859_16, iso8859_16$24ptr, koi8R, koi8R$24ptr, koi8U, koi8U$24ptr, macintosh, macintosh$24ptr, windows874, windows874$24ptr, windows1250, windows1250$24ptr, windows1251, windows1251$24ptr, windows1252, windows1252$24ptr, windows1253, windows1253$24ptr, windows1254, windows1254$24ptr, windows1255, windows1255$24ptr, windows1256, windows1256$24ptr, windows1257, windows1257$24ptr, windows1258, windows1258$24ptr; + encoding = $packages["golang.org/x/text/encoding"]; + internal = $packages["golang.org/x/text/encoding/internal"]; + identifier = $packages["golang.org/x/text/encoding/internal/identifier"]; + transform = $packages["golang.org/x/text/transform"]; + utf8 = $packages["unicode/utf8"]; + utf8Enc = $pkg.utf8Enc = $newType(0, $kindStruct, "charmap.utf8Enc", true, "golang.org/x/text/encoding/charmap", false, function(len_, data_) { + this.$val = this; + if (arguments.length === 0) { + this.len = 0; + this.data = arrayType.zero(); + return; + } + this.len = len_; + this.data = data_; + }); + Charmap = $pkg.Charmap = $newType(0, $kindStruct, "charmap.Charmap", true, "golang.org/x/text/encoding/charmap", true, function(name_, mib_, asciiSuperset_, low_, replacement_, decode_, encode_) { + this.$val = this; + if (arguments.length === 0) { + this.name = ""; + this.mib = 0; + this.asciiSuperset = false; + this.low = 0; + this.replacement = 0; + this.decode = arrayType$1.zero(); + this.encode = arrayType$2.zero(); + return; + } + this.name = name_; + this.mib = mib_; + this.asciiSuperset = asciiSuperset_; + this.low = low_; + this.replacement = replacement_; + this.decode = decode_; + this.encode = encode_; + }); + charmapDecoder = $pkg.charmapDecoder = $newType(0, $kindStruct, "charmap.charmapDecoder", true, "golang.org/x/text/encoding/charmap", false, function(NopResetter_, charmap_) { + this.$val = this; + if (arguments.length === 0) { + this.NopResetter = new transform.NopResetter.ptr(); + this.charmap = ptrType.nil; + return; + } + this.NopResetter = NopResetter_; + this.charmap = charmap_; + }); + charmapEncoder = $pkg.charmapEncoder = $newType(0, $kindStruct, "charmap.charmapEncoder", true, "golang.org/x/text/encoding/charmap", false, function(NopResetter_, charmap_) { + this.$val = this; + if (arguments.length === 0) { + this.NopResetter = new transform.NopResetter.ptr(); + this.charmap = ptrType.nil; + return; + } + this.NopResetter = NopResetter_; + this.charmap = charmap_; + }); + arrayType = $arrayType($Uint8, 3); + arrayType$1 = $arrayType(utf8Enc, 256); + arrayType$2 = $arrayType($Uint32, 256); + structType = $structType("", []); + ptrType = $ptrType(Charmap); + ptrType$1 = $ptrType(encoding.Decoder); + ptrType$2 = $ptrType(encoding.Encoder); + sliceType$1 = $sliceType($Uint8); + Charmap.ptr.prototype.NewDecoder = function() { + var m, x; + m = this; + return new encoding.Decoder.ptr((x = new charmapDecoder.ptr(new transform.NopResetter.ptr(), m), new x.constructor.elem(x)), new structType.ptr()); + }; + Charmap.prototype.NewDecoder = function() { return this.$val.NewDecoder(); }; + Charmap.ptr.prototype.NewEncoder = function() { + var m, x; + m = this; + return new encoding.Encoder.ptr((x = new charmapEncoder.ptr(new transform.NopResetter.ptr(), m), new x.constructor.elem(x)), new structType.ptr()); + }; + Charmap.prototype.NewEncoder = function() { return this.$val.NewEncoder(); }; + Charmap.ptr.prototype.String = function() { + var m; + m = this; + return m.name; + }; + Charmap.prototype.String = function() { return this.$val.String(); }; + Charmap.ptr.prototype.ID = function() { + var _tmp, _tmp$1, m, mib, other; + mib = 0; + other = ""; + m = this; + _tmp = m.mib; + _tmp$1 = ""; + mib = _tmp; + other = _tmp$1; + return [mib, other]; + }; + Charmap.prototype.ID = function() { return this.$val.ID(); }; + charmapDecoder.ptr.prototype.Transform = function(dst, src, atEOF) { + var _i, _ref, _tmp, _tmp$1, _tmp$2, atEOF, c, decode, dst, err, i, j, m, n, nDst, nSrc, src, x, x$1; + nDst = 0; + nSrc = 0; + err = $ifaceNil; + m = this; + _ref = src; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (m.charmap.asciiSuperset && c < 128) { + if (nDst >= dst.$length) { + err = transform.ErrShortDst; + break; + } + ((nDst < 0 || nDst >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + nDst] = c); + nDst = nDst + (1) >> 0; + nSrc = i + 1 >> 0; + _i++; + continue; + } + decode = (x = m.charmap.decode, ((c < 0 || c >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[c])); + n = ((decode.len >> 0)); + if ((nDst + n >> 0) > dst.$length) { + err = transform.ErrShortDst; + break; + } + j = 0; + while (true) { + if (!(j < n)) { break; } + ((nDst < 0 || nDst >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + nDst] = (x$1 = decode.data, ((j < 0 || j >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[j]))); + nDst = nDst + (1) >> 0; + j = j + (1) >> 0; + } + nSrc = i + 1 >> 0; + _i++; + } + _tmp = nDst; + _tmp$1 = nSrc; + _tmp$2 = err; + nDst = _tmp; + nSrc = _tmp$1; + err = _tmp$2; + return [nDst, nSrc, err]; + }; + charmapDecoder.prototype.Transform = function(dst, src, atEOF) { return this.$val.Transform(dst, src, atEOF); }; + Charmap.ptr.prototype.DecodeByte = function(b) { + var _1, b, m, x, x$1; + m = this; + x$1 = (x = m.decode, ((b < 0 || b >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[b])); + _1 = x$1.len; + if (_1 === (1)) { + return ((x$1.data[0] >> 0)); + } else if (_1 === (2)) { + return (((((x$1.data[0] & 31) >>> 0) >> 0)) << 6 >> 0) | ((((x$1.data[1] & 63) >>> 0) >> 0)); + } else { + return ((((((x$1.data[0] & 15) >>> 0) >> 0)) << 12 >> 0) | (((((x$1.data[1] & 63) >>> 0) >> 0)) << 6 >> 0)) | ((((x$1.data[2] & 63) >>> 0) >> 0)); + } + }; + Charmap.prototype.DecodeByte = function(b) { return this.$val.DecodeByte(b); }; + charmapEncoder.ptr.prototype.Transform = function(dst, src, atEOF) { + var _q, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tuple, atEOF, dst, err, got, gotRune, high, low, m, mid, nDst, nSrc, r, size, src, x; + nDst = 0; + nSrc = 0; + err = $ifaceNil; + m = this; + _tmp = 0; + _tmp$1 = 0; + r = _tmp; + size = _tmp$1; + loop: + while (true) { + if (!(nSrc < src.$length)) { break; } + if (nDst >= dst.$length) { + err = transform.ErrShortDst; + break; + } + r = ((((nSrc < 0 || nSrc >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + nSrc]) >> 0)); + if (r < 128) { + if (m.charmap.asciiSuperset) { + nSrc = nSrc + (1) >> 0; + ((nDst < 0 || nDst >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + nDst] = ((r << 24 >>> 24))); + nDst = nDst + (1) >> 0; + continue; + } + size = 1; + } else { + _tuple = utf8.DecodeRune($subslice(src, nSrc)); + r = _tuple[0]; + size = _tuple[1]; + if (size === 1) { + if (!atEOF && !utf8.FullRune($subslice(src, nSrc))) { + err = transform.ErrShortSrc; + } else { + err = new internal.RepertoireError(((m.charmap.replacement << 24 >>> 24))); + } + break; + } + } + _tmp$2 = ((m.charmap.low >> 0)); + _tmp$3 = 256; + low = _tmp$2; + high = _tmp$3; + while (true) { + if (low >= high) { + err = new internal.RepertoireError(((m.charmap.replacement << 24 >>> 24))); + break loop; + } + mid = (_q = ((low + high >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + got = (x = m.charmap.encode, ((mid < 0 || mid >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[mid])); + gotRune = ((((got & 16777215) >>> 0) >> 0)); + if (gotRune < r) { + low = mid + 1 >> 0; + } else if (gotRune > r) { + high = mid; + } else { + ((nDst < 0 || nDst >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + nDst] = (((got >>> 24 >>> 0) << 24 >>> 24))); + nDst = nDst + (1) >> 0; + break; + } + } + nSrc = nSrc + (size) >> 0; + } + _tmp$4 = nDst; + _tmp$5 = nSrc; + _tmp$6 = err; + nDst = _tmp$4; + nSrc = _tmp$5; + err = _tmp$6; + return [nDst, nSrc, err]; + }; + charmapEncoder.prototype.Transform = function(dst, src, atEOF) { return this.$val.Transform(dst, src, atEOF); }; + Charmap.ptr.prototype.EncodeRune = function(r) { + var _q, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, b, got, gotRune, high, low, m, mid, ok, r, x; + b = 0; + ok = false; + m = this; + if (r < 128 && m.asciiSuperset) { + _tmp = ((r << 24 >>> 24)); + _tmp$1 = true; + b = _tmp; + ok = _tmp$1; + return [b, ok]; + } + _tmp$2 = ((m.low >> 0)); + _tmp$3 = 256; + low = _tmp$2; + high = _tmp$3; + while (true) { + if (low >= high) { + _tmp$4 = m.replacement; + _tmp$5 = false; + b = _tmp$4; + ok = _tmp$5; + return [b, ok]; + } + mid = (_q = ((low + high >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + got = (x = m.encode, ((mid < 0 || mid >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[mid])); + gotRune = ((((got & 16777215) >>> 0) >> 0)); + if (gotRune < r) { + low = mid + 1 >> 0; + } else if (gotRune > r) { + high = mid; + } else { + _tmp$6 = (((got >>> 24 >>> 0) << 24 >>> 24)); + _tmp$7 = true; + b = _tmp$6; + ok = _tmp$7; + return [b, ok]; + } + } + }; + Charmap.prototype.EncodeRune = function(r) { return this.$val.EncodeRune(r); }; + ptrType.methods = [{prop: "NewDecoder", name: "NewDecoder", pkg: "", typ: $funcType([], [ptrType$1], false)}, {prop: "NewEncoder", name: "NewEncoder", pkg: "", typ: $funcType([], [ptrType$2], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "ID", name: "ID", pkg: "", typ: $funcType([], [identifier.MIB, $String], false)}, {prop: "DecodeByte", name: "DecodeByte", pkg: "", typ: $funcType([$Uint8], [$Int32], false)}, {prop: "EncodeRune", name: "EncodeRune", pkg: "", typ: $funcType([$Int32], [$Uint8, $Bool], false)}]; + charmapDecoder.methods = [{prop: "Transform", name: "Transform", pkg: "", typ: $funcType([sliceType$1, sliceType$1, $Bool], [$Int, $Int, $error], false)}]; + charmapEncoder.methods = [{prop: "Transform", name: "Transform", pkg: "", typ: $funcType([sliceType$1, sliceType$1, $Bool], [$Int, $Int, $error], false)}]; + utf8Enc.init("golang.org/x/text/encoding/charmap", [{prop: "len", name: "len", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "data", name: "data", embedded: false, exported: false, typ: arrayType, tag: ""}]); + Charmap.init("golang.org/x/text/encoding/charmap", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "mib", name: "mib", embedded: false, exported: false, typ: identifier.MIB, tag: ""}, {prop: "asciiSuperset", name: "asciiSuperset", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "low", name: "low", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "replacement", name: "replacement", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "decode", name: "decode", embedded: false, exported: false, typ: arrayType$1, tag: ""}, {prop: "encode", name: "encode", embedded: false, exported: false, typ: arrayType$2, tag: ""}]); + charmapDecoder.init("golang.org/x/text/encoding/charmap", [{prop: "NopResetter", name: "NopResetter", embedded: true, exported: true, typ: transform.NopResetter, tag: ""}, {prop: "charmap", name: "charmap", embedded: false, exported: false, typ: ptrType, tag: ""}]); + charmapEncoder.init("golang.org/x/text/encoding/charmap", [{prop: "NopResetter", name: "NopResetter", embedded: true, exported: true, typ: transform.NopResetter, tag: ""}, {prop: "charmap", name: "charmap", embedded: false, exported: false, typ: ptrType, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = encoding.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = internal.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = identifier.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = transform.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + codePage037 = new Charmap.ptr("IBM Code Page 037", 2028, false, 0, 63, $toNativeArray($kindStruct, [new utf8Enc.ptr(1, $toNativeArray($kindUint8, [0, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [1, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [2, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [3, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 156, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [9, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 134, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [127, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 151, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 141, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 142, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [11, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [12, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [13, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [14, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [15, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [16, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [17, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [18, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [19, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 157, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 133, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [8, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 135, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [24, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [25, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 146, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 143, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [28, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [29, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [30, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [31, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 128, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 131, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 132, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [10, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [23, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [27, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 136, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 137, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 138, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 139, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 140, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [5, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [6, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [7, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 144, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 145, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [22, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 148, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 149, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 150, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [4, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 153, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 155, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [20, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [21, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 158, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [26, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [32, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 162, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [46, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [60, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [40, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [43, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [124, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [38, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 159, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [33, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [36, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [42, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [41, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [59, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 172, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [45, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [47, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 128, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 131, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 133, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 166, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [44, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [37, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [95, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [62, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [63, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 137, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 138, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 139, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 136, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 141, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 142, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 143, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 140, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [96, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [58, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [35, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [64, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [39, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [61, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [34, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 152, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [97, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [98, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [99, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [100, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [101, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [102, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [103, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [104, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [105, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 190, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 176, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [106, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [107, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [108, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [109, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [110, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [111, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [112, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [113, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [114, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 181, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [126, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [115, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [116, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [117, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [118, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [119, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [120, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [121, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [122, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 191, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 144, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 157, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 158, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 174, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [94, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 190, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [91, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [93, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 151, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [123, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [65, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [66, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [67, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [68, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [69, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [70, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [71, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [72, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [73, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 181, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [125, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [74, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [75, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [76, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [77, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [78, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [79, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [80, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [81, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [82, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 191, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [92, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 183, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [83, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [84, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [85, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [86, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [87, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [88, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [89, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [90, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 148, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 150, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 146, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 149, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [48, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [49, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [50, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [51, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [52, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [53, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [54, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [55, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [56, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [57, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 156, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 153, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 159, 0]))]), $toNativeArray($kindUint32, [0, 16777217, 33554434, 50331651, 922746884, 754974725, 771751942, 788529159, 369098760, 83886089, 620757002, 184549387, 201326604, 218103821, 234881038, 251658255, 268435472, 285212689, 301989906, 318767123, 1006632980, 1023410197, 838860822, 637534231, 402653208, 419430425, 1056964634, 654311451, 469762076, 486539293, 503316510, 520093727, 1073741856, 1509949473, 2130706466, 2063597603, 1526726692, 1811939365, 1342177318, 2097152039, 1291845672, 1560281129, 1543503914, 1308622891, 1795162156, 1610612781, 1258291246, 1627389999, 4026531888, 4043309105, 4060086322, 4076863539, 4093640756, 4110417973, 4127195190, 4143972407, 4160749624, 4177526841, 2046820410, 1577058363, 1275068476, 2113929277, 1845493822, 1862271039, 2080374848, 3238002753, 3254779970, 3271557187, 3288334404, 3305111621, 3321888838, 3338666055, 3355443272, 3372220489, 3506438218, 3523215435, 3539992652, 3556769869, 3573547086, 3590324303, 3607101520, 3623878737, 3640655954, 3791650899, 3808428116, 3825205333, 3841982550, 3858759767, 3875536984, 3892314201, 3909091418, 3120562267, 3758096476, 3137339485, 2952790110, 1828716639, 2030043232, 2164260961, 2181038178, 2197815395, 2214592612, 2231369829, 2248147046, 2264924263, 2281701480, 2298478697, 2432696426, 2449473643, 2466250860, 2483028077, 2499805294, 2516582511, 2533359728, 2550136945, 2566914162, 2717909107, 2734686324, 2751463541, 2768240758, 2785017975, 2801795192, 2818572409, 2835349626, 3221225595, 1325400188, 3489661053, 2701131902, 117440639, 536871040, 553648257, 570425474, 587202691, 603979908, 352321669, 100663430, 385876103, 671088776, 687865993, 704643210, 721420427, 738197644, 150995085, 167772302, 452984975, 805306512, 822083729, 436207762, 855638163, 872415380, 889192597, 905969814, 134217879, 939524248, 956301465, 973078682, 989855899, 67109020, 335544477, 1040187550, 4278190239, 1090519200, 2852126881, 1241514146, 2969567395, 2667577508, 2986344613, 1778385062, 3036676263, 3170893992, 3019899049, 2583691434, 2315255979, 1593835692, 3388997805, 2936012974, 3154116783, 2415919280, 2399142065, 3925868722, 4194304179, 3187671220, 2684354741, 3053453494, 3003121847, 2634023096, 3657433273, 2600468666, 2332033211, 3070230716, 3087007933, 3103785150, 2868904127, 1677721792, 1694499009, 1644167362, 1711276227, 1660944580, 1728053445, 2650800326, 1744830663, 1946157256, 1895825609, 1912602826, 1929380043, 2013266124, 1962934477, 1979711694, 1996488911, 2885681360, 1761607889, 3976200402, 3992977619, 3942645972, 4009754837, 3959423190, 3204448471, 2147483864, 4244635865, 4261413082, 4211081435, 4227858652, 2902458589, 2919235806, 1493172447, 1140850912, 1157628129, 1107296482, 1174405347, 1124073700, 1191182565, 2617245926, 1207959783, 1409286376, 1358954729, 1375731946, 1392509163, 1476395244, 1426063597, 1442840814, 1459618031, 2348810480, 1224737009, 3439329522, 3456106739, 3405775092, 3472883957, 3422552310, 3774873847, 1879048440, 3707764985, 3724542202, 3674210555, 3690987772, 2365587709, 2382364926, 3741319423])); + $pkg.CodePage037 = codePage037; + codePage437 = new Charmap.ptr("IBM Code Page 437", 2011, true, 128, 26, $toNativeArray($kindStruct, [new utf8Enc.ptr(1, $toNativeArray($kindUint8, [0, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [1, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [2, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [3, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [4, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [5, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [6, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [7, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [8, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [9, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [10, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [11, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [12, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [13, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [14, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [15, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [16, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [17, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [18, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [19, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [20, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [21, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [22, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [23, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [24, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [25, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [26, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [27, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [28, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [29, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [30, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [31, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [32, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [33, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [34, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [35, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [36, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [37, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [38, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [39, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [40, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [41, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [42, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [43, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [44, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [45, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [46, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [47, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [48, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [49, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [50, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [51, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [52, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [53, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [54, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [55, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [56, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [57, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [58, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [59, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [60, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [61, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [62, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [63, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [64, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [65, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [66, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [67, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [68, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [69, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [70, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [71, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [72, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [73, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [74, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [75, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [76, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [77, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [78, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [79, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [80, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [81, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [82, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [83, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [84, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [85, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [86, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [87, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [88, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [89, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [90, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [91, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [92, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [93, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [94, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [95, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [96, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [97, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [98, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [99, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [100, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [101, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [102, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [103, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [104, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [105, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [106, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [107, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [108, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [109, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [110, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [111, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [112, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [113, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [114, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [115, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [116, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [117, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [118, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [119, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [120, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [121, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [122, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [123, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [124, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [125, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [126, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [127, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 133, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 137, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 191, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 150, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 156, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 165, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 130, 167])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [198, 146, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 191, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 140, 144])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 187, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 145])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 146])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 147])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 130])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 164])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 161])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 162])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 150])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 149])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 163])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 145])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 151])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 157])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 156])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 155])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 144])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 148])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 180])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 172])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 156])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 128])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 188])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 158])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 159])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 154])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 148])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 169])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 166])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 160])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 144])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 172])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 167])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 168])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 164])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 165])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 153])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 152])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 146])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 147])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 171])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 170])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 152])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 140])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 136])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 132])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 140])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 144])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 128])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 128, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 131, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 180, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 136, 158])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 181, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 136, 169])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 137, 161])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 177, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 137, 165])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 137, 164])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 140, 160])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 140, 161])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 183, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 137, 136])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 176, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 136, 153])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 183, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 136, 154])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 129, 191])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 178, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 160])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 160, 0]))]), $toNativeArray($kindUint32, [0, 16777217, 33554434, 50331651, 67108868, 83886085, 100663302, 117440519, 134217736, 150994953, 167772170, 184549387, 201326604, 218103821, 234881038, 251658255, 268435472, 285212689, 301989906, 318767123, 335544340, 352321557, 369098774, 385875991, 402653208, 419430425, 436207642, 452984859, 469762076, 486539293, 503316510, 520093727, 536870944, 553648161, 570425378, 587202595, 603979812, 620757029, 637534246, 654311463, 671088680, 687865897, 704643114, 721420331, 738197548, 754974765, 771751982, 788529199, 805306416, 822083633, 838860850, 855638067, 872415284, 889192501, 905969718, 922746935, 939524152, 956301369, 973078586, 989855803, 1006633020, 1023410237, 1040187454, 1056964671, 1073741888, 1090519105, 1107296322, 1124073539, 1140850756, 1157627973, 1174405190, 1191182407, 1207959624, 1224736841, 1241514058, 1258291275, 1275068492, 1291845709, 1308622926, 1325400143, 1342177360, 1358954577, 1375731794, 1392509011, 1409286228, 1426063445, 1442840662, 1459617879, 1476395096, 1493172313, 1509949530, 1526726747, 1543503964, 1560281181, 1577058398, 1593835615, 1610612832, 1627390049, 1644167266, 1660944483, 1677721700, 1694498917, 1711276134, 1728053351, 1744830568, 1761607785, 1778385002, 1795162219, 1811939436, 1828716653, 1845493870, 1862271087, 1879048304, 1895825521, 1912602738, 1929379955, 1946157172, 1962934389, 1979711606, 1996488823, 2013266040, 2030043257, 2046820474, 2063597691, 2080374908, 2097152125, 2113929342, 2130706559, 4278190240, 2902458529, 2600468642, 2617245859, 2634023077, 2785018026, 2919235755, 2852126892, 4160749744, 4043309233, 4244635826, 3858759861, 4194304183, 2801795258, 2936012987, 2885681340, 2868904125, 2818572479, 2382364868, 2399142085, 2449473734, 2147483847, 2415919305, 2768240849, 2566914262, 2583691484, 3774873823, 2231369952, 2684354785, 2197815522, 2214592740, 2248147173, 2432696550, 2264924391, 2315256040, 2181038313, 2281701610, 2298478827, 2365587692, 2701132013, 2348810478, 2332033263, 2751463665, 2499805426, 2717909235, 2466250996, 2483028214, 4127195383, 2533359865, 2734686458, 2516582651, 2164261116, 2550137087, 2667577746, 3791651731, 3909092248, 3825206179, 3892315046, 3925869481, 3758097329, 3942646708, 3992978357, 3808428992, 3841983427, 3875537860, 3976201158, 4227866751, 2650808487, 4177535513, 4211089946, 3959431710, 4009763369, 4143981128, 4026540641, 4076872292, 4060095077, 2835358480, 4093649696, 4110426913, 3288343808, 3003131138, 3657442572, 3204457744, 3221234964, 3640665368, 3271566620, 3019908388, 3254789420, 3238012212, 3305121084, 3439338832, 3120571729, 3573556562, 3590333779, 3372229972, 3087017301, 3070240086, 3137348951, 3556779352, 3540002137, 3355452762, 3187680603, 3170903388, 3154126173, 3321898334, 3338675551, 3422561632, 3036685665, 3053462882, 3103794531, 3506447716, 3523224933, 3405784422, 3472893287, 3489670504, 3389007209, 3623888234, 3607111019, 3456116076, 3741328768, 3690997124, 3674219912, 3707774348, 3724551568, 2952799633, 2969576850, 2986354067, 4261422496])); + $pkg.CodePage437 = codePage437; + codePage850 = new Charmap.ptr("IBM Code Page 850", 2009, true, 128, 26, $toNativeArray($kindStruct, [new utf8Enc.ptr(1, $toNativeArray($kindUint8, [0, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [1, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [2, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [3, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [4, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [5, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [6, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [7, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [8, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [9, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [10, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [11, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [12, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [13, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [14, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [15, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [16, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [17, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [18, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [19, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [20, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [21, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [22, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [23, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [24, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [25, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [26, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [27, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [28, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [29, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [30, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [31, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [32, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [33, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [34, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [35, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [36, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [37, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [38, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [39, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [40, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [41, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [42, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [43, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [44, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [45, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [46, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [47, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [48, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [49, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [50, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [51, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [52, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [53, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [54, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [55, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [56, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [57, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [58, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [59, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [60, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [61, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [62, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [63, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [64, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [65, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [66, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [67, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [68, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [69, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [70, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [71, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [72, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [73, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [74, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [75, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [76, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [77, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [78, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [79, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [80, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [81, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [82, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [83, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [84, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [85, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [86, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [87, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [88, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [89, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [90, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [91, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [92, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [93, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [94, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [95, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [96, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [97, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [98, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [99, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [100, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [101, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [102, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [103, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [104, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [105, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [106, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [107, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [108, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [109, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [110, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [111, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [112, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [113, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [114, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [115, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [116, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [117, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [118, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [119, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [120, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [121, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [122, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [123, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [124, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [125, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [126, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [127, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 133, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 137, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 191, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 150, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 156, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 151, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [198, 146, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 191, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 187, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 145])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 146])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 147])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 130])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 164])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 128, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 169, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 163])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 145])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 151])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 157])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 165, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 144])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 148])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 180])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 172])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 156])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 128])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 188])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 131, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 154])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 148])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 169])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 166])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 160])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 144])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 172])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 144, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 138, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 139, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 136, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 141, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 142, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 143, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 152])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 140])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 136])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 132])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 140, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 128])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 148, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 146, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 149, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 190, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 158, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 153, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 157, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 177, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 151])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 190, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 178, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 160])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 160, 0]))]), $toNativeArray($kindUint32, [0, 16777217, 33554434, 50331651, 67108868, 83886085, 100663302, 117440519, 134217736, 150994953, 167772170, 184549387, 201326604, 218103821, 234881038, 251658255, 268435472, 285212689, 301989906, 318767123, 335544340, 352321557, 369098774, 385875991, 402653208, 419430425, 436207642, 452984859, 469762076, 486539293, 503316510, 520093727, 536870944, 553648161, 570425378, 587202595, 603979812, 620757029, 637534246, 654311463, 671088680, 687865897, 704643114, 721420331, 738197548, 754974765, 771751982, 788529199, 805306416, 822083633, 838860850, 855638067, 872415284, 889192501, 905969718, 922746935, 939524152, 956301369, 973078586, 989855803, 1006633020, 1023410237, 1040187454, 1056964671, 1073741888, 1090519105, 1107296322, 1124073539, 1140850756, 1157627973, 1174405190, 1191182407, 1207959624, 1224736841, 1241514058, 1258291275, 1275068492, 1291845709, 1308622926, 1325400143, 1342177360, 1358954577, 1375731794, 1392509011, 1409286228, 1426063445, 1442840662, 1459617879, 1476395096, 1493172313, 1509949530, 1526726747, 1543503964, 1560281181, 1577058398, 1593835615, 1610612832, 1627390049, 1644167266, 1660944483, 1677721700, 1694498917, 1711276134, 1728053351, 1744830568, 1761607785, 1778385002, 1795162219, 1811939436, 1828716653, 1845493870, 1862271087, 1879048304, 1895825521, 1912602738, 1929379955, 1946157172, 1962934389, 1979711606, 1996488823, 2013266040, 2030043257, 2046820474, 2063597691, 2080374908, 2097152125, 2113929342, 2130706559, 4278190240, 2902458529, 3170893986, 2617245859, 3472883876, 3187671205, 3707764902, 4110418087, 4177526952, 3087007913, 2785018026, 2919235755, 2852126892, 4026532013, 2835349678, 3992977583, 4160749744, 4043309233, 4244635826, 4227858611, 4009754804, 3858759861, 4093640886, 4194304183, 4143972536, 4211081401, 2801795258, 2936012987, 2885681340, 2868904125, 4076863678, 2818572479, 3070230720, 3036676289, 3053453506, 3338666179, 2382364868, 2399142085, 2449473734, 2147483847, 3556769992, 2415919305, 3523215562, 3539992779, 3724542156, 3590324429, 3607101646, 3623878863, 3506438352, 2768240849, 3808428242, 3758096595, 3791651028, 3841982677, 2566914262, 2650800343, 2634023128, 3942645977, 3909091546, 3925868763, 2583691484, 3976200413, 3892314334, 3774873823, 2231369952, 2684354785, 2197815522, 3321888995, 2214592740, 2248147173, 2432696550, 2264924391, 2315256040, 2181038313, 2281701610, 2298478827, 2365587692, 2701132013, 2348810478, 2332033263, 3489661168, 2751463665, 2499805426, 2717909235, 2466250996, 3825205493, 2483028214, 4127195383, 2600468728, 2533359865, 2734686458, 2516582651, 2164261116, 3959423229, 3875537150, 2550137087, 3573547313, 2667577746, 4060094487, 3288343808, 3003131138, 3657442572, 3204457744, 3221234964, 3640665368, 3271566620, 3019908388, 3254789420, 3238012212, 3305121084, 3439338832, 3120571729, 3372229972, 3137348951, 3355452762, 3154126173, 3422561632, 3103794531, 3405784422, 3389007209, 3456116076, 3741328768, 3690997124, 3674219912, 2952799633, 2969576850, 2986354067, 4261422496])); + $pkg.CodePage850 = codePage850; + codePage852 = new Charmap.ptr("IBM Code Page 852", 2010, true, 128, 26, $toNativeArray($kindStruct, [new utf8Enc.ptr(1, $toNativeArray($kindUint8, [0, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [1, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [2, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [3, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [4, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [5, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [6, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [7, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [8, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [9, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [10, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [11, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [12, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [13, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [14, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [15, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [16, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [17, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [18, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [19, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [20, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [21, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [22, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [23, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [24, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [25, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [26, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [27, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [28, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [29, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [30, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [31, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [32, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [33, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [34, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [35, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [36, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [37, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [38, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [39, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [40, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [41, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [42, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [43, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [44, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [45, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [46, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [47, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [48, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [49, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [50, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [51, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [52, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [53, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [54, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [55, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [56, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [57, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [58, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [59, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [60, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [61, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [62, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [63, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [64, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [65, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [66, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [67, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [68, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [69, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [70, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [71, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [72, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [73, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [74, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [75, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [76, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [77, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [78, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [79, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [80, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [81, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [82, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [83, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [84, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [85, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [86, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [87, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [88, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [89, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [90, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [91, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [92, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [93, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [94, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [95, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [96, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [97, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [98, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [99, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [100, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [101, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [102, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [103, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [104, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [105, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [106, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [107, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [108, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [109, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [110, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [111, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [112, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [113, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [114, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [115, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [116, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [117, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [118, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [119, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [120, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [121, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [122, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [123, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [124, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [125, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [126, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [127, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 144, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 137, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 190, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 150, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 156, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 151, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 141, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 133, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 190, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 153, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 140, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 187, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 145])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 146])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 147])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 130])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 164])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 158, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 163])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 145])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 151])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 157])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 188, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 144])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 148])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 180])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 172])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 156])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 128])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 188])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 131, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 154])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 148])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 169])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 166])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 160])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 144])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 172])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 144, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 142, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 139, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 143, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 141, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 142, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 155, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 152])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 140])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 136])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 132])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 174, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 128])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 148, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 131, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 136, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 148, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 149, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 157, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [203, 157, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [203, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [203, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [203, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [203, 153, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 153, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 160])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 160, 0]))]), $toNativeArray($kindUint32, [0, 16777217, 33554434, 50331651, 67108868, 83886085, 100663302, 117440519, 134217736, 150994953, 167772170, 184549387, 201326604, 218103821, 234881038, 251658255, 268435472, 285212689, 301989906, 318767123, 335544340, 352321557, 369098774, 385875991, 402653208, 419430425, 436207642, 452984859, 469762076, 486539293, 503316510, 520093727, 536870944, 553648161, 570425378, 587202595, 603979812, 620757029, 637534246, 654311463, 671088680, 687865897, 704643114, 721420331, 738197548, 754974765, 771751982, 788529199, 805306416, 822083633, 838860850, 855638067, 872415284, 889192501, 905969718, 922746935, 939524152, 956301369, 973078586, 989855803, 1006633020, 1023410237, 1040187454, 1056964671, 1073741888, 1090519105, 1107296322, 1124073539, 1140850756, 1157627973, 1174405190, 1191182407, 1207959624, 1224736841, 1241514058, 1258291275, 1275068492, 1291845709, 1308622926, 1325400143, 1342177360, 1358954577, 1375731794, 1392509011, 1409286228, 1426063445, 1442840662, 1459617879, 1476395096, 1493172313, 1509949530, 1526726747, 1543503964, 1560281181, 1577058398, 1593835615, 1610612832, 1627390049, 1644167266, 1660944483, 1677721700, 1694498917, 1711276134, 1728053351, 1744830568, 1761607785, 1778385002, 1795162219, 1811939436, 1828716653, 1845493870, 1862271087, 1879048304, 1895825521, 1912602738, 1929379955, 1946157172, 1962934389, 1979711606, 1996488823, 2013266040, 2030043257, 2046820474, 2063597691, 2080374908, 2097152125, 2113929342, 2130706559, 4278190240, 3472883876, 4110418087, 4177526952, 2919235755, 2852126892, 4026532013, 4160749744, 4009754804, 4143972536, 2936012987, 3036676289, 3053453506, 2382364868, 2147483847, 2415919305, 3539992779, 3590324429, 3607101646, 3758096595, 3791651028, 2566914262, 2650800343, 3909091546, 2583691484, 3976200413, 3774873823, 2684354785, 2197815522, 2214592740, 2264924391, 2181038313, 2298478827, 2701132013, 2348810478, 2717909235, 2466250996, 2483028214, 4127195383, 2734686458, 2164261116, 3959423229, 3321889026, 3338666243, 2751463684, 2768240901, 2399142150, 2248147207, 2885681420, 2667577613, 3523215630, 3556770063, 3506438416, 3489661201, 2818572568, 2835349785, 3070230810, 3623878939, 2432696633, 2449473850, 2499805501, 2516582718, 2634023233, 2281701698, 3808428355, 3825205572, 3573547335, 3841982792, 2315256144, 2332033361, 3892314452, 3925868885, 4227858776, 4244635993, 2533359962, 2550137179, 3087008094, 2902458719, 3858760032, 3875537249, 3707765090, 3992977763, 2600468836, 2617246053, 3724542318, 2231370095, 3942646128, 4211081585, 2365587833, 2868904314, 3170894203, 3187671420, 2785018237, 2801795454, 4076864199, 4093641432, 4194304729, 4060087003, 4043309789, 3288343808, 3003131138, 3657442572, 3204457744, 3221234964, 3640665368, 3271566620, 3019908388, 3254789420, 3238012212, 3305121084, 3439338832, 3120571729, 3372229972, 3137348951, 3355452762, 3154126173, 3422561632, 3103794531, 3405784422, 3389007209, 3456116076, 3741328768, 3690997124, 3674219912, 2952799633, 2969576850, 2986354067, 4261422496])); + $pkg.CodePage852 = codePage852; + codePage855 = new Charmap.ptr("IBM Code Page 855", 2046, true, 128, 26, $toNativeArray($kindStruct, [new utf8Enc.ptr(1, $toNativeArray($kindUint8, [0, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [1, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [2, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [3, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [4, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [5, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [6, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [7, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [8, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [9, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [10, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [11, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [12, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [13, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [14, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [15, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [16, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [17, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [18, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [19, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [20, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [21, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [22, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [23, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [24, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [25, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [26, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [27, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [28, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [29, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [30, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [31, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [32, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [33, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [34, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [35, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [36, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [37, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [38, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [39, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [40, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [41, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [42, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [43, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [44, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [45, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [46, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [47, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [48, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [49, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [50, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [51, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [52, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [53, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [54, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [55, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [56, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [57, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [58, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [59, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [60, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [61, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [62, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [63, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [64, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [65, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [66, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [67, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [68, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [69, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [70, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [71, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [72, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [73, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [74, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [75, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [76, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [77, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [78, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [79, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [80, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [81, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [82, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [83, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [84, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [85, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [86, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [87, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [88, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [89, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [90, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [91, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [92, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [93, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [94, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [95, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [96, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [97, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [98, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [99, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [100, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [101, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [102, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [103, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [104, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [105, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [106, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [107, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [108, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [109, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [110, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [111, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [112, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [113, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [114, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [115, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [116, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [117, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [118, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [119, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [120, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [121, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [122, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [123, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [124, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [125, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [126, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [127, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 146, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 131, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 148, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 149, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 133, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 150, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 151, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 136, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 153, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 137, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 138, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 139, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 156, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 140, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 158, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 142, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 143, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 142, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 138, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 144, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 148, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 149, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 187, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 145])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 146])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 147])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 130])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 164])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 133, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 152, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 163])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 145])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 151])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 157])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 153, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 144])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 148])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 180])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 172])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 156])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 128])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 188])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 154, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 154])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 148])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 169])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 166])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 160])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 144])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 172])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 156, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 157, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 190, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 158, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 191, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 152])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 140])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 136])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 132])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 143, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 128])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 128, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 131, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 150, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 146, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 140, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 172, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 132, 150])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 139, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 151, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 136, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 141, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 137, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 167, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 160])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 160, 0]))]), $toNativeArray($kindUint32, [0, 16777217, 33554434, 50331651, 67108868, 83886085, 100663302, 117440519, 134217736, 150994953, 167772170, 184549387, 201326604, 218103821, 234881038, 251658255, 268435472, 285212689, 301989906, 318767123, 335544340, 352321557, 369098774, 385875991, 402653208, 419430425, 436207642, 452984859, 469762076, 486539293, 503316510, 520093727, 536870944, 553648161, 570425378, 587202595, 603979812, 620757029, 637534246, 654311463, 671088680, 687865897, 704643114, 721420331, 738197548, 754974765, 771751982, 788529199, 805306416, 822083633, 838860850, 855638067, 872415284, 889192501, 905969718, 922746935, 939524152, 956301369, 973078586, 989855803, 1006633020, 1023410237, 1040187454, 1056964671, 1073741888, 1090519105, 1107296322, 1124073539, 1140850756, 1157627973, 1174405190, 1191182407, 1207959624, 1224736841, 1241514058, 1258291275, 1275068492, 1291845709, 1308622926, 1325400143, 1342177360, 1358954577, 1375731794, 1392509011, 1409286228, 1426063445, 1442840662, 1459617879, 1476395096, 1493172313, 1509949530, 1526726747, 1543503964, 1560281181, 1577058398, 1593835615, 1610612832, 1627390049, 1644167266, 1660944483, 1677721700, 1694498917, 1711276134, 1728053351, 1744830568, 1761607785, 1778385002, 1795162219, 1811939436, 1828716653, 1845493870, 1862271087, 1879048304, 1895825521, 1912602738, 1929379955, 1946157172, 1962934389, 1979711606, 1996488823, 2013266040, 2030043257, 2046820474, 2063597691, 2080374908, 2097152125, 2113929342, 2130706559, 4278190240, 3472883876, 4244635815, 2919235755, 4026532013, 2936012987, 2231370753, 2164261890, 2197816323, 2264925188, 2298479621, 2332034054, 2365588487, 2399142920, 2432697353, 2466251786, 2499806219, 2533360652, 2566915086, 2600469519, 2701132816, 2734687249, 3959424018, 2902459411, 2801796116, 2835350549, 3925869590, 4093641751, 3087008792, 3187672089, 3338667034, 3506439195, 3539993628, 3573548061, 3607102494, 3707765791, 3791651872, 3825206305, 3858760738, 3892315171, 2868904996, 3053454373, 2768241702, 4227859495, 4127196200, 4194305065, 2667578410, 4060087339, 3992978476, 4160750637, 2634023982, 3758097455, 2684355632, 2717910065, 3942646834, 2885682227, 2785018932, 2818573365, 3909092406, 4076864567, 3070231608, 3170894905, 3321889850, 3489662011, 3523216444, 3556770877, 3590325310, 3623879743, 3774874688, 3808429121, 3841983554, 3875537987, 2852127812, 3036677189, 2751464518, 4211082311, 4110419016, 4177527881, 2650801226, 4043310155, 3976201292, 4143973453, 2617246798, 3724543055, 2214593617, 2147484754, 2181039187, 2248148052, 2281702485, 2315256918, 2348811351, 2382365784, 2415920217, 2449474650, 2483029083, 2516583516, 2550137950, 2583692383, 4009763094, 3288343808, 3003131138, 3657442572, 3204457744, 3221234964, 3640665368, 3271566620, 3019908388, 3254789420, 3238012212, 3305121084, 3439338832, 3120571729, 3372229972, 3137348951, 3355452762, 3154126173, 3422561632, 3103794531, 3405784422, 3389007209, 3456116076, 3741328768, 3690997124, 3674219912, 2952799633, 2969576850, 2986354067, 4261422496])); + $pkg.CodePage855 = codePage855; + codePage858 = new Charmap.ptr("Windows Code Page 858", 2089, true, 128, 26, $toNativeArray($kindStruct, [new utf8Enc.ptr(1, $toNativeArray($kindUint8, [0, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [1, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [2, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [3, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [4, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [5, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [6, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [7, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [8, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [9, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [10, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [11, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [12, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [13, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [14, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [15, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [16, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [17, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [18, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [19, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [20, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [21, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [22, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [23, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [24, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [25, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [26, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [27, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [28, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [29, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [30, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [31, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [32, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [33, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [34, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [35, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [36, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [37, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [38, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [39, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [40, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [41, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [42, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [43, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [44, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [45, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [46, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [47, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [48, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [49, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [50, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [51, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [52, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [53, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [54, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [55, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [56, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [57, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [58, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [59, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [60, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [61, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [62, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [63, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [64, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [65, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [66, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [67, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [68, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [69, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [70, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [71, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [72, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [73, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [74, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [75, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [76, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [77, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [78, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [79, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [80, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [81, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [82, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [83, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [84, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [85, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [86, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [87, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [88, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [89, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [90, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [91, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [92, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [93, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [94, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [95, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [96, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [97, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [98, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [99, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [100, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [101, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [102, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [103, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [104, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [105, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [106, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [107, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [108, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [109, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [110, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [111, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [112, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [113, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [114, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [115, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [116, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [117, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [118, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [119, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [120, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [121, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [122, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [123, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [124, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [125, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [126, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [127, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 133, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 137, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 191, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 150, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 156, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 151, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [198, 146, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 191, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 187, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 145])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 146])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 147])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 130])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 164])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 128, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 169, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 163])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 145])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 151])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 157])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 165, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 144])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 148])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 180])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 172])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 156])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 128])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 188])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 131, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 154])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 148])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 169])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 166])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 160])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 144])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 172])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 144, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 138, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 139, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 136, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 130, 172])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 141, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 142, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 143, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 152])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 140])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 136])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 132])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 140, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 128])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 148, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 146, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 149, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 190, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 158, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 153, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 157, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 177, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 151])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 190, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 178, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 160])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 160, 0]))]), $toNativeArray($kindUint32, [0, 16777217, 33554434, 50331651, 67108868, 83886085, 100663302, 117440519, 134217736, 150994953, 167772170, 184549387, 201326604, 218103821, 234881038, 251658255, 268435472, 285212689, 301989906, 318767123, 335544340, 352321557, 369098774, 385875991, 402653208, 419430425, 436207642, 452984859, 469762076, 486539293, 503316510, 520093727, 536870944, 553648161, 570425378, 587202595, 603979812, 620757029, 637534246, 654311463, 671088680, 687865897, 704643114, 721420331, 738197548, 754974765, 771751982, 788529199, 805306416, 822083633, 838860850, 855638067, 872415284, 889192501, 905969718, 922746935, 939524152, 956301369, 973078586, 989855803, 1006633020, 1023410237, 1040187454, 1056964671, 1073741888, 1090519105, 1107296322, 1124073539, 1140850756, 1157627973, 1174405190, 1191182407, 1207959624, 1224736841, 1241514058, 1258291275, 1275068492, 1291845709, 1308622926, 1325400143, 1342177360, 1358954577, 1375731794, 1392509011, 1409286228, 1426063445, 1442840662, 1459617879, 1476395096, 1493172313, 1509949530, 1526726747, 1543503964, 1560281181, 1577058398, 1593835615, 1610612832, 1627390049, 1644167266, 1660944483, 1677721700, 1694498917, 1711276134, 1728053351, 1744830568, 1761607785, 1778385002, 1795162219, 1811939436, 1828716653, 1845493870, 1862271087, 1879048304, 1895825521, 1912602738, 1929379955, 1946157172, 1962934389, 1979711606, 1996488823, 2013266040, 2030043257, 2046820474, 2063597691, 2080374908, 2097152125, 2113929342, 2130706559, 4278190240, 2902458529, 3170893986, 2617245859, 3472883876, 3187671205, 3707764902, 4110418087, 4177526952, 3087007913, 2785018026, 2919235755, 2852126892, 4026532013, 2835349678, 3992977583, 4160749744, 4043309233, 4244635826, 4227858611, 4009754804, 3858759861, 4093640886, 4194304183, 4143972536, 4211081401, 2801795258, 2936012987, 2885681340, 2868904125, 4076863678, 2818572479, 3070230720, 3036676289, 3053453506, 3338666179, 2382364868, 2399142085, 2449473734, 2147483847, 3556769992, 2415919305, 3523215562, 3539992779, 3724542156, 3590324429, 3607101646, 3623878863, 3506438352, 2768240849, 3808428242, 3758096595, 3791651028, 3841982677, 2566914262, 2650800343, 2634023128, 3942645977, 3909091546, 3925868763, 2583691484, 3976200413, 3892314334, 3774873823, 2231369952, 2684354785, 2197815522, 3321888995, 2214592740, 2248147173, 2432696550, 2264924391, 2315256040, 2181038313, 2281701610, 2298478827, 2365587692, 2701132013, 2348810478, 2332033263, 3489661168, 2751463665, 2499805426, 2717909235, 2466250996, 3825205493, 2483028214, 4127195383, 2600468728, 2533359865, 2734686458, 2516582651, 2164261116, 3959423229, 3875537150, 2550137087, 2667577746, 4060094487, 3573555372, 3288343808, 3003131138, 3657442572, 3204457744, 3221234964, 3640665368, 3271566620, 3019908388, 3254789420, 3238012212, 3305121084, 3439338832, 3120571729, 3372229972, 3137348951, 3355452762, 3154126173, 3422561632, 3103794531, 3405784422, 3389007209, 3456116076, 3741328768, 3690997124, 3674219912, 2952799633, 2969576850, 2986354067, 4261422496])); + $pkg.CodePage858 = codePage858; + codePage860 = new Charmap.ptr("IBM Code Page 860", 2048, true, 128, 26, $toNativeArray($kindStruct, [new utf8Enc.ptr(1, $toNativeArray($kindUint8, [0, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [1, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [2, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [3, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [4, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [5, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [6, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [7, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [8, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [9, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [10, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [11, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [12, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [13, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [14, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [15, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [16, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [17, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [18, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [19, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [20, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [21, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [22, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [23, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [24, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [25, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [26, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [27, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [28, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [29, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [30, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [31, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [32, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [33, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [34, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [35, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [36, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [37, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [38, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [39, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [40, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [41, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [42, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [43, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [44, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [45, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [46, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [47, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [48, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [49, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [50, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [51, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [52, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [53, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [54, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [55, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [56, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [57, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [58, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [59, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [60, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [61, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [62, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [63, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [64, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [65, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [66, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [67, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [68, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [69, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [70, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [71, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [72, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [73, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [74, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [75, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [76, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [77, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [78, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [79, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [80, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [81, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [82, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [83, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [84, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [85, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [86, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [87, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [88, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [89, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [90, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [91, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [92, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [93, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [94, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [95, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [96, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [97, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [98, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [99, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [100, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [101, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [102, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [103, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [104, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [105, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [106, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [107, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [108, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [109, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [110, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [111, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [112, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [113, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [114, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [115, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [116, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [117, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [118, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [119, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [120, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [121, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [122, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [123, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [124, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [125, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [126, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [127, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 138, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 141, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 148, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 131, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 137, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 128, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 136, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 140, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 149, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 156, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 153, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 130, 167])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 191, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 146, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 187, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 145])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 146])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 147])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 130])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 164])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 161])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 162])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 150])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 149])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 163])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 145])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 151])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 157])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 156])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 155])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 144])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 148])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 180])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 172])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 156])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 128])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 188])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 158])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 159])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 154])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 148])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 169])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 166])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 160])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 144])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 172])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 167])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 168])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 164])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 165])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 153])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 152])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 146])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 147])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 171])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 170])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 152])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 140])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 136])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 132])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 140])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 144])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 128])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 128, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 131, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 180, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 136, 158])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 181, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 136, 169])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 137, 161])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 177, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 137, 165])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 137, 164])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 140, 160])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 140, 161])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 183, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 137, 136])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 176, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 136, 153])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 183, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 136, 154])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 129, 191])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 178, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 160])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 160, 0]))]), $toNativeArray($kindUint32, [0, 16777217, 33554434, 50331651, 67108868, 83886085, 100663302, 117440519, 134217736, 150994953, 167772170, 184549387, 201326604, 218103821, 234881038, 251658255, 268435472, 285212689, 301989906, 318767123, 335544340, 352321557, 369098774, 385875991, 402653208, 419430425, 436207642, 452984859, 469762076, 486539293, 503316510, 520093727, 536870944, 553648161, 570425378, 587202595, 603979812, 620757029, 637534246, 654311463, 671088680, 687865897, 704643114, 721420331, 738197548, 754974765, 771751982, 788529199, 805306416, 822083633, 838860850, 855638067, 872415284, 889192501, 905969718, 922746935, 939524152, 956301369, 973078586, 989855803, 1006633020, 1023410237, 1040187454, 1056964671, 1073741888, 1090519105, 1107296322, 1124073539, 1140850756, 1157627973, 1174405190, 1191182407, 1207959624, 1224736841, 1241514058, 1258291275, 1275068492, 1291845709, 1308622926, 1325400143, 1342177360, 1358954577, 1375731794, 1392509011, 1409286228, 1426063445, 1442840662, 1459617879, 1476395096, 1493172313, 1509949530, 1526726747, 1543503964, 1560281181, 1577058398, 1593835615, 1610612832, 1627390049, 1644167266, 1660944483, 1677721700, 1694498917, 1711276134, 1728053351, 1744830568, 1761607785, 1778385002, 1795162219, 1811939436, 1828716653, 1845493870, 1862271087, 1879048304, 1895825521, 1912602738, 1929379955, 1946157172, 1962934389, 1979711606, 1996488823, 2013266040, 2030043257, 2046820474, 2063597691, 2080374908, 2097152125, 2113929342, 2130706559, 4278190240, 2902458529, 2600468642, 2617245859, 2785018026, 2919235755, 2852126892, 4160749744, 4043309233, 4244635826, 3858759861, 4194304183, 2801795258, 2936012987, 2885681340, 2868904125, 2818572479, 2432696512, 2248147137, 2399142082, 2382364867, 2147483847, 2449473736, 2415919305, 2298478794, 2550137036, 2332033229, 2768240849, 2835349714, 2667577555, 2348810452, 2566914261, 2634023129, 2516582618, 2583691484, 3774873823, 2231369952, 2684354785, 2197815522, 2214592739, 2264924391, 2315256040, 2181038313, 2281701610, 2365587692, 2701132013, 2751463665, 2499805426, 2717909235, 2466250996, 2483028213, 4127195383, 2533359865, 2734686458, 2164261116, 3791651731, 3909092248, 3825206179, 3892315046, 3925869481, 3758097329, 3942646708, 3992978357, 3808428992, 3841983427, 3875537860, 3976201158, 4227866751, 2650808487, 4177535513, 4211089946, 3959431710, 4009763369, 4143981128, 4026540641, 4076872292, 4060095077, 4093649696, 4110426913, 3288343808, 3003131138, 3657442572, 3204457744, 3221234964, 3640665368, 3271566620, 3019908388, 3254789420, 3238012212, 3305121084, 3439338832, 3120571729, 3573556562, 3590333779, 3372229972, 3087017301, 3070240086, 3137348951, 3556779352, 3540002137, 3355452762, 3187680603, 3170903388, 3154126173, 3321898334, 3338675551, 3422561632, 3036685665, 3053462882, 3103794531, 3506447716, 3523224933, 3405784422, 3472893287, 3489670504, 3389007209, 3623888234, 3607111019, 3456116076, 3741328768, 3690997124, 3674219912, 3707774348, 3724551568, 2952799633, 2969576850, 2986354067, 4261422496])); + $pkg.CodePage860 = codePage860; + codePage862 = new Charmap.ptr("IBM Code Page 862", 2013, true, 128, 26, $toNativeArray($kindStruct, [new utf8Enc.ptr(1, $toNativeArray($kindUint8, [0, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [1, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [2, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [3, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [4, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [5, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [6, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [7, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [8, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [9, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [10, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [11, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [12, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [13, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [14, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [15, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [16, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [17, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [18, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [19, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [20, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [21, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [22, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [23, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [24, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [25, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [26, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [27, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [28, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [29, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [30, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [31, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [32, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [33, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [34, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [35, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [36, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [37, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [38, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [39, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [40, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [41, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [42, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [43, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [44, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [45, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [46, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [47, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [48, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [49, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [50, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [51, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [52, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [53, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [54, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [55, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [56, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [57, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [58, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [59, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [60, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [61, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [62, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [63, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [64, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [65, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [66, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [67, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [68, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [69, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [70, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [71, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [72, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [73, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [74, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [75, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [76, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [77, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [78, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [79, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [80, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [81, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [82, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [83, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [84, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [85, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [86, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [87, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [88, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [89, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [90, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [91, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [92, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [93, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [94, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [95, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [96, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [97, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [98, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [99, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [100, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [101, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [102, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [103, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [104, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [105, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [106, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [107, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [108, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [109, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [110, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [111, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [112, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [113, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [114, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [115, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [116, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [117, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [118, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [119, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [120, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [121, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [122, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [123, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [124, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [125, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [126, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [127, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 144, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 146, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 148, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 149, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 150, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 151, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 153, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 156, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 157, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 158, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 165, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 130, 167])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [198, 146, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 191, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 140, 144])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 187, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 145])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 146])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 147])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 130])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 164])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 161])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 162])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 150])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 149])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 163])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 145])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 151])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 157])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 156])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 155])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 144])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 148])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 180])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 172])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 156])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 128])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 188])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 158])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 159])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 154])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 148])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 169])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 166])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 160])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 144])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 172])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 167])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 168])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 164])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 165])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 153])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 152])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 146])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 147])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 171])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 170])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 152])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 140])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 136])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 132])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 140])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 144])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 128])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 128, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 131, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 180, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 136, 158])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 181, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 136, 169])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 137, 161])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 177, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 137, 165])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 137, 164])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 140, 160])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 140, 161])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 183, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 137, 136])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 176, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 136, 153])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 183, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 136, 154])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 129, 191])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 178, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 160])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 160, 0]))]), $toNativeArray($kindUint32, [0, 16777217, 33554434, 50331651, 67108868, 83886085, 100663302, 117440519, 134217736, 150994953, 167772170, 184549387, 201326604, 218103821, 234881038, 251658255, 268435472, 285212689, 301989906, 318767123, 335544340, 352321557, 369098774, 385875991, 402653208, 419430425, 436207642, 452984859, 469762076, 486539293, 503316510, 520093727, 536870944, 553648161, 570425378, 587202595, 603979812, 620757029, 637534246, 654311463, 671088680, 687865897, 704643114, 721420331, 738197548, 754974765, 771751982, 788529199, 805306416, 822083633, 838860850, 855638067, 872415284, 889192501, 905969718, 922746935, 939524152, 956301369, 973078586, 989855803, 1006633020, 1023410237, 1040187454, 1056964671, 1073741888, 1090519105, 1107296322, 1124073539, 1140850756, 1157627973, 1174405190, 1191182407, 1207959624, 1224736841, 1241514058, 1258291275, 1275068492, 1291845709, 1308622926, 1325400143, 1342177360, 1358954577, 1375731794, 1392509011, 1409286228, 1426063445, 1442840662, 1459617879, 1476395096, 1493172313, 1509949530, 1526726747, 1543503964, 1560281181, 1577058398, 1593835615, 1610612832, 1627390049, 1644167266, 1660944483, 1677721700, 1694498917, 1711276134, 1728053351, 1744830568, 1761607785, 1778385002, 1795162219, 1811939436, 1828716653, 1845493870, 1862271087, 1879048304, 1895825521, 1912602738, 1929379955, 1946157172, 1962934389, 1979711606, 1996488823, 2013266040, 2030043257, 2046820474, 2063597691, 2080374908, 2097152125, 2113929342, 2130706559, 4278190240, 2902458529, 2600468642, 2617245859, 2634023077, 2785018026, 2919235755, 2852126892, 4160749744, 4043309233, 4244635826, 3858759861, 4194304183, 2801795258, 2936012987, 2885681340, 2868904125, 2818572479, 2768240849, 3774873823, 2684354785, 2701132013, 2751463665, 2717909235, 4127195383, 2734686458, 2667577746, 3791651731, 3909092248, 3825206179, 3892315046, 3925869481, 3758097329, 3942646708, 3992978357, 3808428992, 3841983427, 3875537860, 3976201158, 2147485136, 2164262353, 2181039570, 2197816787, 2214594004, 2231371221, 2248148438, 2264925655, 2281702872, 2298480089, 2315257306, 2332034523, 2348811740, 2365588957, 2382366174, 2399143391, 2415920608, 2432697825, 2449475042, 2466252259, 2483029476, 2499806693, 2516583910, 2533361127, 2550138344, 2566915561, 2583692778, 4227866751, 2650808487, 4177535513, 4211089946, 3959431710, 4009763369, 4143981128, 4026540641, 4076872292, 4060095077, 2835358480, 4093649696, 4110426913, 3288343808, 3003131138, 3657442572, 3204457744, 3221234964, 3640665368, 3271566620, 3019908388, 3254789420, 3238012212, 3305121084, 3439338832, 3120571729, 3573556562, 3590333779, 3372229972, 3087017301, 3070240086, 3137348951, 3556779352, 3540002137, 3355452762, 3187680603, 3170903388, 3154126173, 3321898334, 3338675551, 3422561632, 3036685665, 3053462882, 3103794531, 3506447716, 3523224933, 3405784422, 3472893287, 3489670504, 3389007209, 3623888234, 3607111019, 3456116076, 3741328768, 3690997124, 3674219912, 3707774348, 3724551568, 2952799633, 2969576850, 2986354067, 4261422496])); + $pkg.CodePage862 = codePage862; + codePage863 = new Charmap.ptr("IBM Code Page 863", 2050, true, 128, 26, $toNativeArray($kindStruct, [new utf8Enc.ptr(1, $toNativeArray($kindUint8, [0, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [1, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [2, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [3, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [4, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [5, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [6, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [7, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [8, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [9, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [10, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [11, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [12, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [13, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [14, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [15, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [16, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [17, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [18, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [19, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [20, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [21, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [22, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [23, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [24, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [25, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [26, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [27, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [28, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [29, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [30, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [31, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [32, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [33, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [34, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [35, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [36, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [37, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [38, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [39, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [40, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [41, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [42, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [43, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [44, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [45, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [46, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [47, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [48, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [49, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [50, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [51, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [52, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [53, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [54, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [55, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [56, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [57, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [58, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [59, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [60, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [61, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [62, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [63, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [64, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [65, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [66, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [67, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [68, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [69, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [70, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [71, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [72, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [73, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [74, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [75, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [76, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [77, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [78, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [79, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [80, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [81, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [82, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [83, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [84, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [85, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [86, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [87, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [88, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [89, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [90, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [91, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [92, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [93, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [94, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [95, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [96, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [97, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [98, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [99, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [100, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [101, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [102, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [103, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [104, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [105, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [106, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [107, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [108, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [109, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [110, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [111, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [112, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [113, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [114, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [115, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [116, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [117, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [118, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [119, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [120, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [121, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [122, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [123, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [124, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [125, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [126, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [127, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 174, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 151])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 128, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 137, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 136, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 138, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 139, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 143, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 148, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 156, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 153, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [198, 146, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 142, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 140, 144])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 190, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 187, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 145])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 146])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 147])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 130])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 164])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 161])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 162])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 150])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 149])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 163])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 145])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 151])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 157])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 156])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 155])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 144])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 148])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 180])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 172])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 156])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 128])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 188])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 158])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 159])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 154])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 148])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 169])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 166])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 160])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 144])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 172])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 167])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 168])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 164])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 165])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 153])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 152])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 146])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 147])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 171])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 170])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 152])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 140])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 136])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 132])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 140])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 144])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 128])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 128, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 131, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 180, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 136, 158])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 181, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 136, 169])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 137, 161])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 177, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 137, 165])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 137, 164])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 140, 160])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 140, 161])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 183, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 137, 136])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 176, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 136, 153])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 183, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 136, 154])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 129, 191])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 178, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 160])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 160, 0]))]), $toNativeArray($kindUint32, [0, 16777217, 33554434, 50331651, 67108868, 83886085, 100663302, 117440519, 134217736, 150994953, 167772170, 184549387, 201326604, 218103821, 234881038, 251658255, 268435472, 285212689, 301989906, 318767123, 335544340, 352321557, 369098774, 385875991, 402653208, 419430425, 436207642, 452984859, 469762076, 486539293, 503316510, 520093727, 536870944, 553648161, 570425378, 587202595, 603979812, 620757029, 637534246, 654311463, 671088680, 687865897, 704643114, 721420331, 738197548, 754974765, 771751982, 788529199, 805306416, 822083633, 838860850, 855638067, 872415284, 889192501, 905969718, 922746935, 939524152, 956301369, 973078586, 989855803, 1006633020, 1023410237, 1040187454, 1056964671, 1073741888, 1090519105, 1107296322, 1124073539, 1140850756, 1157627973, 1174405190, 1191182407, 1207959624, 1224736841, 1241514058, 1258291275, 1275068492, 1291845709, 1308622926, 1325400143, 1342177360, 1358954577, 1375731794, 1392509011, 1409286228, 1426063445, 1442840662, 1459617879, 1476395096, 1493172313, 1509949530, 1526726747, 1543503964, 1560281181, 1577058398, 1593835615, 1610612832, 1627390049, 1644167266, 1660944483, 1677721700, 1694498917, 1711276134, 1728053351, 1744830568, 1761607785, 1778385002, 1795162219, 1811939436, 1828716653, 1845493870, 1862271087, 1879048304, 1895825521, 1912602738, 1929379955, 1946157172, 1962934389, 1979711606, 1996488823, 2013266040, 2030043257, 2046820474, 2063597691, 2080374908, 2097152125, 2113929342, 2130706559, 4278190240, 2600468642, 2617245859, 2550136996, 2684354726, 2399142055, 2751463592, 2919235755, 2852126892, 2801795247, 4160749744, 4043309233, 4244635826, 2785018035, 2701131956, 3858759861, 2248147126, 4194304183, 2768240824, 2936012987, 2885681340, 2868904125, 2902458558, 2382364864, 2214592706, 2147483847, 2432696520, 2415919305, 2449473738, 2483028171, 2818572494, 2499805391, 2566914260, 2634023129, 2650800347, 2583691484, 3774873823, 2231369952, 2197815522, 2264924391, 2315256040, 2181038313, 2281701610, 2298478827, 2348810478, 2332033263, 2717909235, 2466250996, 4127195383, 2533359865, 2734686458, 2516582651, 2164261116, 2667577746, 3791651731, 3909092248, 3825206179, 3892315046, 3925869481, 3758097329, 3942646708, 3992978357, 3808428992, 3841983427, 3875537860, 3976201158, 2365595671, 4227866751, 4177535513, 4211089946, 3959431710, 4009763369, 4143981128, 4026540641, 4076872292, 4060095077, 2835358480, 4093649696, 4110426913, 3288343808, 3003131138, 3657442572, 3204457744, 3221234964, 3640665368, 3271566620, 3019908388, 3254789420, 3238012212, 3305121084, 3439338832, 3120571729, 3573556562, 3590333779, 3372229972, 3087017301, 3070240086, 3137348951, 3556779352, 3540002137, 3355452762, 3187680603, 3170903388, 3154126173, 3321898334, 3338675551, 3422561632, 3036685665, 3053462882, 3103794531, 3506447716, 3523224933, 3405784422, 3472893287, 3489670504, 3389007209, 3623888234, 3607111019, 3456116076, 3741328768, 3690997124, 3674219912, 3707774348, 3724551568, 2952799633, 2969576850, 2986354067, 4261422496])); + $pkg.CodePage863 = codePage863; + codePage865 = new Charmap.ptr("IBM Code Page 865", 2052, true, 128, 26, $toNativeArray($kindStruct, [new utf8Enc.ptr(1, $toNativeArray($kindUint8, [0, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [1, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [2, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [3, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [4, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [5, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [6, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [7, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [8, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [9, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [10, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [11, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [12, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [13, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [14, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [15, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [16, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [17, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [18, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [19, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [20, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [21, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [22, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [23, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [24, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [25, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [26, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [27, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [28, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [29, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [30, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [31, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [32, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [33, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [34, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [35, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [36, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [37, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [38, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [39, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [40, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [41, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [42, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [43, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [44, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [45, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [46, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [47, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [48, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [49, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [50, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [51, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [52, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [53, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [54, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [55, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [56, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [57, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [58, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [59, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [60, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [61, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [62, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [63, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [64, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [65, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [66, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [67, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [68, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [69, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [70, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [71, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [72, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [73, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [74, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [75, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [76, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [77, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [78, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [79, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [80, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [81, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [82, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [83, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [84, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [85, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [86, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [87, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [88, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [89, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [90, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [91, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [92, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [93, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [94, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [95, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [96, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [97, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [98, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [99, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [100, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [101, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [102, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [103, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [104, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [105, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [106, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [107, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [108, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [109, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [110, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [111, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [112, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [113, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [114, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [115, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [116, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [117, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [118, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [119, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [120, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [121, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [122, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [123, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [124, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [125, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [126, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [127, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 133, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 137, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 191, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 150, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 156, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 152, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 130, 167])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [198, 146, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 191, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 140, 144])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 164, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 145])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 146])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 147])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 130])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 164])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 161])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 162])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 150])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 149])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 163])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 145])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 151])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 157])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 156])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 155])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 144])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 148])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 180])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 172])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 156])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 128])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 188])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 158])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 159])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 154])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 148])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 169])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 166])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 160])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 144])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 172])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 167])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 168])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 164])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 165])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 153])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 152])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 146])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 147])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 171])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 170])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 152])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 140])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 136])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 132])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 140])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 144])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 128])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 128, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 131, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 180, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 136, 158])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 181, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 136, 169])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 137, 161])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 177, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 137, 165])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 137, 164])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 140, 160])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 140, 161])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 183, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 137, 136])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 176, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 136, 153])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 183, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 136, 154])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 129, 191])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 178, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 160])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 160, 0]))]), $toNativeArray($kindUint32, [0, 16777217, 33554434, 50331651, 67108868, 83886085, 100663302, 117440519, 134217736, 150994953, 167772170, 184549387, 201326604, 218103821, 234881038, 251658255, 268435472, 285212689, 301989906, 318767123, 335544340, 352321557, 369098774, 385875991, 402653208, 419430425, 436207642, 452984859, 469762076, 486539293, 503316510, 520093727, 536870944, 553648161, 570425378, 587202595, 603979812, 620757029, 637534246, 654311463, 671088680, 687865897, 704643114, 721420331, 738197548, 754974765, 771751982, 788529199, 805306416, 822083633, 838860850, 855638067, 872415284, 889192501, 905969718, 922746935, 939524152, 956301369, 973078586, 989855803, 1006633020, 1023410237, 1040187454, 1056964671, 1073741888, 1090519105, 1107296322, 1124073539, 1140850756, 1157627973, 1174405190, 1191182407, 1207959624, 1224736841, 1241514058, 1258291275, 1275068492, 1291845709, 1308622926, 1325400143, 1342177360, 1358954577, 1375731794, 1392509011, 1409286228, 1426063445, 1442840662, 1459617879, 1476395096, 1493172313, 1509949530, 1526726747, 1543503964, 1560281181, 1577058398, 1593835615, 1610612832, 1627390049, 1644167266, 1660944483, 1677721700, 1694498917, 1711276134, 1728053351, 1744830568, 1761607785, 1778385002, 1795162219, 1811939436, 1828716653, 1845493870, 1862271087, 1879048304, 1895825521, 1912602738, 1929379955, 1946157172, 1962934389, 1979711606, 1996488823, 2013266040, 2030043257, 2046820474, 2063597691, 2080374908, 2097152125, 2113929342, 2130706559, 4278190240, 2902458529, 2617245859, 2936012964, 2785018026, 2919235755, 2852126892, 4160749744, 4043309233, 4244635826, 3858759861, 4194304183, 2801795258, 2885681340, 2868904125, 2818572479, 2382364868, 2399142085, 2449473734, 2147483847, 2415919305, 2768240849, 2566914262, 2634023128, 2583691484, 3774873823, 2231369952, 2684354785, 2197815522, 2214592740, 2248147173, 2432696550, 2264924391, 2315256040, 2181038313, 2281701610, 2298478827, 2365587692, 2701132013, 2348810478, 2332033263, 2751463665, 2499805426, 2717909235, 2466250996, 2483028214, 4127195383, 2600468728, 2533359865, 2734686458, 2516582651, 2164261116, 2550137087, 2667577746, 3791651731, 3909092248, 3825206179, 3892315046, 3925869481, 3758097329, 3942646708, 3992978357, 3808428992, 3841983427, 3875537860, 3976201158, 4227866751, 2650808487, 4177535513, 4211089946, 3959431710, 4009763369, 4143981128, 4026540641, 4076872292, 4060095077, 2835358480, 4093649696, 4110426913, 3288343808, 3003131138, 3657442572, 3204457744, 3221234964, 3640665368, 3271566620, 3019908388, 3254789420, 3238012212, 3305121084, 3439338832, 3120571729, 3573556562, 3590333779, 3372229972, 3087017301, 3070240086, 3137348951, 3556779352, 3540002137, 3355452762, 3187680603, 3170903388, 3154126173, 3321898334, 3338675551, 3422561632, 3036685665, 3053462882, 3103794531, 3506447716, 3523224933, 3405784422, 3472893287, 3489670504, 3389007209, 3623888234, 3607111019, 3456116076, 3741328768, 3690997124, 3674219912, 3707774348, 3724551568, 2952799633, 2969576850, 2986354067, 4261422496])); + $pkg.CodePage865 = codePage865; + codePage866 = new Charmap.ptr("IBM Code Page 866", 2086, true, 128, 26, $toNativeArray($kindStruct, [new utf8Enc.ptr(1, $toNativeArray($kindUint8, [0, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [1, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [2, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [3, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [4, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [5, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [6, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [7, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [8, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [9, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [10, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [11, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [12, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [13, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [14, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [15, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [16, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [17, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [18, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [19, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [20, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [21, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [22, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [23, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [24, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [25, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [26, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [27, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [28, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [29, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [30, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [31, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [32, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [33, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [34, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [35, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [36, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [37, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [38, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [39, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [40, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [41, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [42, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [43, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [44, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [45, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [46, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [47, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [48, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [49, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [50, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [51, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [52, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [53, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [54, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [55, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [56, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [57, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [58, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [59, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [60, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [61, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [62, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [63, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [64, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [65, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [66, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [67, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [68, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [69, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [70, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [71, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [72, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [73, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [74, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [75, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [76, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [77, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [78, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [79, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [80, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [81, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [82, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [83, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [84, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [85, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [86, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [87, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [88, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [89, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [90, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [91, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [92, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [93, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [94, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [95, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [96, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [97, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [98, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [99, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [100, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [101, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [102, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [103, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [104, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [105, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [106, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [107, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [108, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [109, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [110, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [111, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [112, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [113, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [114, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [115, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [116, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [117, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [118, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [119, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [120, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [121, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [122, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [123, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [124, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [125, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [126, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [127, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 144, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 146, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 148, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 149, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 150, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 151, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 153, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 156, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 157, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 158, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 190, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 191, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 145])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 146])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 147])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 130])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 164])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 161])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 162])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 150])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 149])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 163])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 145])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 151])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 157])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 156])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 155])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 144])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 148])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 180])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 172])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 156])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 128])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 188])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 158])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 159])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 154])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 148])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 169])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 166])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 160])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 144])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 172])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 167])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 168])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 164])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 165])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 153])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 152])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 146])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 147])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 171])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 170])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 152])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 140])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 136])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 132])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 140])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 144])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 128])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 128, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 131, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 133, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 136, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 137, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 138, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 139, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 140, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 141, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 142, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 143, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 148, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 151, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 142, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 158, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 176, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 136, 153])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 183, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 136, 154])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 132, 150])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 164, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 160])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 160, 0]))]), $toNativeArray($kindUint32, [0, 16777217, 33554434, 50331651, 67108868, 83886085, 100663302, 117440519, 134217736, 150994953, 167772170, 184549387, 201326604, 218103821, 234881038, 251658255, 268435472, 285212689, 301989906, 318767123, 335544340, 352321557, 369098774, 385875991, 402653208, 419430425, 436207642, 452984859, 469762076, 486539293, 503316510, 520093727, 536870944, 553648161, 570425378, 587202595, 603979812, 620757029, 637534246, 654311463, 671088680, 687865897, 704643114, 721420331, 738197548, 754974765, 771751982, 788529199, 805306416, 822083633, 838860850, 855638067, 872415284, 889192501, 905969718, 922746935, 939524152, 956301369, 973078586, 989855803, 1006633020, 1023410237, 1040187454, 1056964671, 1073741888, 1090519105, 1107296322, 1124073539, 1140850756, 1157627973, 1174405190, 1191182407, 1207959624, 1224736841, 1241514058, 1258291275, 1275068492, 1291845709, 1308622926, 1325400143, 1342177360, 1358954577, 1375731794, 1392509011, 1409286228, 1426063445, 1442840662, 1459617879, 1476395096, 1493172313, 1509949530, 1526726747, 1543503964, 1560281181, 1577058398, 1593835615, 1610612832, 1627390049, 1644167266, 1660944483, 1677721700, 1694498917, 1711276134, 1728053351, 1744830568, 1761607785, 1778385002, 1795162219, 1811939436, 1828716653, 1845493870, 1862271087, 1879048304, 1895825521, 1912602738, 1929379955, 1946157172, 1962934389, 1979711606, 1996488823, 2013266040, 2030043257, 2046820474, 2063597691, 2080374908, 2097152125, 2113929342, 2130706559, 4278190240, 4244635812, 4160749744, 4194304183, 4026532865, 4060087300, 4093641735, 4127196174, 2147484688, 2164261905, 2181039122, 2197816339, 2214593556, 2231370773, 2248147990, 2264925207, 2281702424, 2298479641, 2315256858, 2332034075, 2348811292, 2365588509, 2382365726, 2399142943, 2415920160, 2432697377, 2449474594, 2466251811, 2483029028, 2499806245, 2516583462, 2533360679, 2550137896, 2566915113, 2583692330, 2600469547, 2617246764, 2634023981, 2650801198, 2667578415, 2684355632, 2701132849, 2717910066, 2734687283, 2751464500, 2768241717, 2785018934, 2801796151, 2818573368, 2835350585, 2852127802, 2868905019, 2885682236, 2902459453, 2919236670, 2936013887, 3758097472, 3774874689, 3791651906, 3808429123, 3825206340, 3841983557, 3858760774, 3875537991, 3892315208, 3909092425, 3925869642, 3942646859, 3959424076, 3976201293, 3992978510, 4009755727, 4043310161, 4076864596, 4110419031, 4143973470, 4227866902, 4177535513, 4211089946, 3288343808, 3003131138, 3657442572, 3204457744, 3221234964, 3640665368, 3271566620, 3019908388, 3254789420, 3238012212, 3305121084, 3439338832, 3120571729, 3573556562, 3590333779, 3372229972, 3087017301, 3070240086, 3137348951, 3556779352, 3540002137, 3355452762, 3187680603, 3170903388, 3154126173, 3321898334, 3338675551, 3422561632, 3036685665, 3053462882, 3103794531, 3506447716, 3523224933, 3405784422, 3472893287, 3489670504, 3389007209, 3623888234, 3607111019, 3456116076, 3741328768, 3690997124, 3674219912, 3707774348, 3724551568, 2952799633, 2969576850, 2986354067, 4261422496])); + $pkg.CodePage866 = codePage866; + codePage1047 = new Charmap.ptr("IBM Code Page 1047", 2102, false, 0, 63, $toNativeArray($kindStruct, [new utf8Enc.ptr(1, $toNativeArray($kindUint8, [0, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [1, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [2, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [3, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 156, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [9, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 134, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [127, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 151, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 141, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 142, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [11, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [12, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [13, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [14, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [15, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [16, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [17, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [18, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [19, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 157, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 133, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [8, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 135, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [24, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [25, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 146, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 143, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [28, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [29, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [30, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [31, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 128, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 131, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 132, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [10, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [23, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [27, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 136, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 137, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 138, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 139, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 140, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [5, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [6, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [7, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 144, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 145, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [22, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 148, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 149, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 150, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [4, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 153, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 155, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [20, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [21, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 158, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [26, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [32, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 162, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [46, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [60, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [40, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [43, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [124, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [38, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 159, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [33, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [36, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [42, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [41, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [59, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [94, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [45, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [47, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 128, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 131, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 133, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 166, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [44, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [37, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [95, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [62, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [63, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 137, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 138, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 139, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 136, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 141, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 142, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 143, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 140, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [96, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [58, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [35, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [64, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [39, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [61, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [34, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 152, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [97, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [98, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [99, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [100, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [101, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [102, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [103, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [104, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [105, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 190, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 176, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [106, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [107, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [108, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [109, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [110, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [111, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [112, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [113, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [114, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 181, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [126, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [115, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [116, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [117, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [118, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [119, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [120, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [121, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [122, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 191, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 144, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [91, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 158, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 190, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 157, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 175, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [93, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 151, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [123, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [65, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [66, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [67, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [68, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [69, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [70, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [71, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [72, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [73, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 181, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [125, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [74, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [75, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [76, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [77, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [78, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [79, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [80, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [81, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [82, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 191, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [92, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 183, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [83, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [84, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [85, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [86, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [87, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [88, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [89, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [90, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 148, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 150, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 146, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 149, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [48, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [49, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [50, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [51, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [52, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [53, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [54, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [55, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [56, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [57, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 156, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 153, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 159, 0]))]), $toNativeArray($kindUint32, [0, 16777217, 33554434, 50331651, 922746884, 754974725, 771751942, 788529159, 369098760, 83886089, 620757002, 184549387, 201326604, 218103821, 234881038, 251658255, 268435472, 285212689, 301989906, 318767123, 1006632980, 1023410197, 838860822, 637534231, 402653208, 419430425, 1056964634, 654311451, 469762076, 486539293, 503316510, 520093727, 1073741856, 1509949473, 2130706466, 2063597603, 1526726692, 1811939365, 1342177318, 2097152039, 1291845672, 1560281129, 1543503914, 1308622891, 1795162156, 1610612781, 1258291246, 1627389999, 4026531888, 4043309105, 4060086322, 4076863539, 4093640756, 4110417973, 4127195190, 4143972407, 4160749624, 4177526841, 2046820410, 1577058363, 1275068476, 2113929277, 1845493822, 1862271039, 2080374848, 3238002753, 3254779970, 3271557187, 3288334404, 3305111621, 3321888838, 3338666055, 3355443272, 3372220489, 3506438218, 3523215435, 3539992652, 3556769869, 3573547086, 3590324303, 3607101520, 3623878737, 3640655954, 3791650899, 3808428116, 3825205333, 3841982550, 3858759767, 3875536984, 3892314201, 3909091418, 2902458459, 3758096476, 3170893917, 1593835614, 1828716639, 2030043232, 2164260961, 2181038178, 2197815395, 2214592612, 2231369829, 2248147046, 2264924263, 2281701480, 2298478697, 2432696426, 2449473643, 2466250860, 2483028077, 2499805294, 2516582511, 2533359728, 2550136945, 2566914162, 2717909107, 2734686324, 2751463541, 2768240758, 2785017975, 2801795192, 2818572409, 2835349626, 3221225595, 1325400188, 3489661053, 2701131902, 117440639, 536871040, 553648257, 570425474, 587202691, 603979908, 352321669, 100663430, 385876103, 671088776, 687865993, 704643210, 721420427, 738197644, 150995085, 167772302, 452984975, 805306512, 822083729, 436207762, 855638163, 872415380, 889192597, 905969814, 134217879, 939524248, 956301465, 973078682, 989855899, 67109020, 335544477, 1040187550, 4278190239, 1090519200, 2852126881, 1241514146, 2969567395, 2667577508, 2986344613, 1778385062, 3036676263, 3137339560, 3019899049, 2583691434, 2315255979, 2952790188, 3388997805, 2936012974, 3154116783, 2415919280, 2399142065, 3925868722, 4194304179, 3187671220, 2684354741, 3053453494, 3003121847, 2634023096, 3657433273, 2600468666, 2332033211, 3070230716, 3087007933, 3103785150, 2868904127, 1677721792, 1694499009, 1644167362, 1711276227, 1660944580, 1728053445, 2650800326, 1744830663, 1946157256, 1895825609, 1912602826, 1929380043, 2013266124, 1962934477, 1979711694, 1996488911, 2885681360, 1761607889, 3976200402, 3992977619, 3942645972, 4009754837, 3959423190, 3204448471, 2147483864, 4244635865, 4261413082, 4211081435, 4227858652, 3120562397, 2919235806, 1493172447, 1140850912, 1157628129, 1107296482, 1174405347, 1124073700, 1191182565, 2617245926, 1207959783, 1409286376, 1358954729, 1375731946, 1392509163, 1476395244, 1426063597, 1442840814, 1459618031, 2348810480, 1224737009, 3439329522, 3456106739, 3405775092, 3472883957, 3422552310, 3774873847, 1879048440, 3707764985, 3724542202, 3674210555, 3690987772, 2365587709, 2382364926, 3741319423])); + $pkg.CodePage1047 = codePage1047; + codePage1140 = new Charmap.ptr("IBM Code Page 1140", 2091, false, 0, 63, $toNativeArray($kindStruct, [new utf8Enc.ptr(1, $toNativeArray($kindUint8, [0, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [1, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [2, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [3, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 156, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [9, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 134, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [127, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 151, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 141, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 142, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [11, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [12, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [13, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [14, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [15, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [16, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [17, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [18, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [19, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 157, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 133, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [8, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 135, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [24, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [25, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 146, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 143, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [28, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [29, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [30, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [31, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 128, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 131, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 132, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [10, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [23, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [27, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 136, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 137, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 138, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 139, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 140, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [5, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [6, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [7, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 144, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 145, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [22, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 148, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 149, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 150, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [4, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 153, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 155, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [20, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [21, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 158, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [26, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [32, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 162, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [46, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [60, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [40, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [43, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [124, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [38, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 159, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [33, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [36, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [42, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [41, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [59, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 172, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [45, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [47, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 128, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 131, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 133, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 166, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [44, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [37, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [95, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [62, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [63, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 137, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 138, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 139, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 136, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 141, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 142, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 143, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 140, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [96, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [58, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [35, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [64, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [39, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [61, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [34, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 152, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [97, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [98, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [99, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [100, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [101, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [102, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [103, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [104, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [105, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 190, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 176, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [106, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [107, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [108, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [109, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [110, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [111, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [112, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [113, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [114, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 134, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 130, 172])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 181, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [126, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [115, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [116, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [117, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [118, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [119, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [120, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [121, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [122, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 191, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 144, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 157, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 158, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 174, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [94, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 190, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [91, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [93, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 151, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [123, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [65, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [66, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [67, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [68, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [69, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [70, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [71, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [72, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [73, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 181, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [125, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [74, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [75, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [76, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [77, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [78, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [79, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [80, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [81, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [82, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 191, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [92, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 183, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [83, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [84, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [85, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [86, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [87, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [88, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [89, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [90, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 148, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 150, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 146, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 149, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [48, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [49, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [50, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [51, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [52, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [53, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [54, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [55, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [56, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [57, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 156, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 153, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 159, 0]))]), $toNativeArray($kindUint32, [0, 16777217, 33554434, 50331651, 922746884, 754974725, 771751942, 788529159, 369098760, 83886089, 620757002, 184549387, 201326604, 218103821, 234881038, 251658255, 268435472, 285212689, 301989906, 318767123, 1006632980, 1023410197, 838860822, 637534231, 402653208, 419430425, 1056964634, 654311451, 469762076, 486539293, 503316510, 520093727, 1073741856, 1509949473, 2130706466, 2063597603, 1526726692, 1811939365, 1342177318, 2097152039, 1291845672, 1560281129, 1543503914, 1308622891, 1795162156, 1610612781, 1258291246, 1627389999, 4026531888, 4043309105, 4060086322, 4076863539, 4093640756, 4110417973, 4127195190, 4143972407, 4160749624, 4177526841, 2046820410, 1577058363, 1275068476, 2113929277, 1845493822, 1862271039, 2080374848, 3238002753, 3254779970, 3271557187, 3288334404, 3305111621, 3321888838, 3338666055, 3355443272, 3372220489, 3506438218, 3523215435, 3539992652, 3556769869, 3573547086, 3590324303, 3607101520, 3623878737, 3640655954, 3791650899, 3808428116, 3825205333, 3841982550, 3858759767, 3875536984, 3892314201, 3909091418, 3120562267, 3758096476, 3137339485, 2952790110, 1828716639, 2030043232, 2164260961, 2181038178, 2197815395, 2214592612, 2231369829, 2248147046, 2264924263, 2281701480, 2298478697, 2432696426, 2449473643, 2466250860, 2483028077, 2499805294, 2516582511, 2533359728, 2550136945, 2566914162, 2717909107, 2734686324, 2751463541, 2768240758, 2785017975, 2801795192, 2818572409, 2835349626, 3221225595, 1325400188, 3489661053, 2701131902, 117440639, 536871040, 553648257, 570425474, 587202691, 603979908, 352321669, 100663430, 385876103, 671088776, 687865993, 704643210, 721420427, 738197644, 150995085, 167772302, 452984975, 805306512, 822083729, 436207762, 855638163, 872415380, 889192597, 905969814, 134217879, 939524248, 956301465, 973078682, 989855899, 67109020, 335544477, 1040187550, 4278190239, 1090519200, 2852126881, 1241514146, 2969567395, 2986344613, 1778385062, 3036676263, 3170893992, 3019899049, 2583691434, 2315255979, 1593835692, 3388997805, 2936012974, 3154116783, 2415919280, 2399142065, 3925868722, 4194304179, 3187671220, 2684354741, 3053453494, 3003121847, 2634023096, 3657433273, 2600468666, 2332033211, 3070230716, 3087007933, 3103785150, 2868904127, 1677721792, 1694499009, 1644167362, 1711276227, 1660944580, 1728053445, 2650800326, 1744830663, 1946157256, 1895825609, 1912602826, 1929380043, 2013266124, 1962934477, 1979711694, 1996488911, 2885681360, 1761607889, 3976200402, 3992977619, 3942645972, 4009754837, 3959423190, 3204448471, 2147483864, 4244635865, 4261413082, 4211081435, 4227858652, 2902458589, 2919235806, 1493172447, 1140850912, 1157628129, 1107296482, 1174405347, 1124073700, 1191182565, 2617245926, 1207959783, 1409286376, 1358954729, 1375731946, 1392509163, 1476395244, 1426063597, 1442840814, 1459618031, 2348810480, 1224737009, 3439329522, 3456106739, 3405775092, 3472883957, 3422552310, 3774873847, 1879048440, 3707764985, 3724542202, 3674210555, 3690987772, 2365587709, 2382364926, 3741319423, 2667585708])); + $pkg.CodePage1140 = codePage1140; + iso8859_1 = new Charmap.ptr("ISO 8859-1", 4, true, 128, 26, $toNativeArray($kindStruct, [new utf8Enc.ptr(1, $toNativeArray($kindUint8, [0, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [1, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [2, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [3, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [4, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [5, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [6, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [7, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [8, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [9, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [10, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [11, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [12, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [13, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [14, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [15, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [16, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [17, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [18, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [19, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [20, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [21, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [22, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [23, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [24, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [25, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [26, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [27, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [28, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [29, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [30, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [31, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [32, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [33, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [34, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [35, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [36, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [37, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [38, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [39, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [40, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [41, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [42, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [43, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [44, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [45, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [46, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [47, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [48, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [49, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [50, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [51, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [52, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [53, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [54, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [55, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [56, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [57, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [58, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [59, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [60, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [61, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [62, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [63, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [64, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [65, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [66, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [67, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [68, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [69, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [70, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [71, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [72, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [73, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [74, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [75, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [76, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [77, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [78, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [79, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [80, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [81, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [82, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [83, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [84, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [85, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [86, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [87, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [88, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [89, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [90, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [91, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [92, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [93, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [94, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [95, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [96, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [97, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [98, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [99, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [100, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [101, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [102, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [103, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [104, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [105, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [106, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [107, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [108, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [109, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [110, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [111, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [112, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [113, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [114, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [115, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [116, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [117, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [118, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [119, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [120, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [121, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [122, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [123, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [124, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [125, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [126, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [127, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 128, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 131, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 133, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 136, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 137, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 138, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 139, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 140, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 141, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 142, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 143, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 144, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 146, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 148, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 149, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 150, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 151, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 153, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 156, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 157, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 158, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 190, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 191, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 128, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 131, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 133, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 136, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 137, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 138, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 139, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 140, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 141, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 142, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 143, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 144, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 146, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 148, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 149, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 150, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 151, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 153, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 156, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 157, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 158, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 190, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 191, 0]))]), $toNativeArray($kindUint32, [0, 16777217, 33554434, 50331651, 67108868, 83886085, 100663302, 117440519, 134217736, 150994953, 167772170, 184549387, 201326604, 218103821, 234881038, 251658255, 268435472, 285212689, 301989906, 318767123, 335544340, 352321557, 369098774, 385875991, 402653208, 419430425, 436207642, 452984859, 469762076, 486539293, 503316510, 520093727, 536870944, 553648161, 570425378, 587202595, 603979812, 620757029, 637534246, 654311463, 671088680, 687865897, 704643114, 721420331, 738197548, 754974765, 771751982, 788529199, 805306416, 822083633, 838860850, 855638067, 872415284, 889192501, 905969718, 922746935, 939524152, 956301369, 973078586, 989855803, 1006633020, 1023410237, 1040187454, 1056964671, 1073741888, 1090519105, 1107296322, 1124073539, 1140850756, 1157627973, 1174405190, 1191182407, 1207959624, 1224736841, 1241514058, 1258291275, 1275068492, 1291845709, 1308622926, 1325400143, 1342177360, 1358954577, 1375731794, 1392509011, 1409286228, 1426063445, 1442840662, 1459617879, 1476395096, 1493172313, 1509949530, 1526726747, 1543503964, 1560281181, 1577058398, 1593835615, 1610612832, 1627390049, 1644167266, 1660944483, 1677721700, 1694498917, 1711276134, 1728053351, 1744830568, 1761607785, 1778385002, 1795162219, 1811939436, 1828716653, 1845493870, 1862271087, 1879048304, 1895825521, 1912602738, 1929379955, 1946157172, 1962934389, 1979711606, 1996488823, 2013266040, 2030043257, 2046820474, 2063597691, 2080374908, 2097152125, 2113929342, 2130706559, 2147483776, 2164260993, 2181038210, 2197815427, 2214592644, 2231369861, 2248147078, 2264924295, 2281701512, 2298478729, 2315255946, 2332033163, 2348810380, 2365587597, 2382364814, 2399142031, 2415919248, 2432696465, 2449473682, 2466250899, 2483028116, 2499805333, 2516582550, 2533359767, 2550136984, 2566914201, 2583691418, 2600468635, 2617245852, 2634023069, 2650800286, 2667577503, 2684354720, 2701131937, 2717909154, 2734686371, 2751463588, 2768240805, 2785018022, 2801795239, 2818572456, 2835349673, 2852126890, 2868904107, 2885681324, 2902458541, 2919235758, 2936012975, 2952790192, 2969567409, 2986344626, 3003121843, 3019899060, 3036676277, 3053453494, 3070230711, 3087007928, 3103785145, 3120562362, 3137339579, 3154116796, 3170894013, 3187671230, 3204448447, 3221225664, 3238002881, 3254780098, 3271557315, 3288334532, 3305111749, 3321888966, 3338666183, 3355443400, 3372220617, 3388997834, 3405775051, 3422552268, 3439329485, 3456106702, 3472883919, 3489661136, 3506438353, 3523215570, 3539992787, 3556770004, 3573547221, 3590324438, 3607101655, 3623878872, 3640656089, 3657433306, 3674210523, 3690987740, 3707764957, 3724542174, 3741319391, 3758096608, 3774873825, 3791651042, 3808428259, 3825205476, 3841982693, 3858759910, 3875537127, 3892314344, 3909091561, 3925868778, 3942645995, 3959423212, 3976200429, 3992977646, 4009754863, 4026532080, 4043309297, 4060086514, 4076863731, 4093640948, 4110418165, 4127195382, 4143972599, 4160749816, 4177527033, 4194304250, 4211081467, 4227858684, 4244635901, 4261413118, 4278190335])); + $pkg.ISO8859_1 = iso8859_1; + iso8859_2 = new Charmap.ptr("ISO 8859-2", 5, true, 128, 26, $toNativeArray($kindStruct, [new utf8Enc.ptr(1, $toNativeArray($kindUint8, [0, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [1, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [2, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [3, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [4, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [5, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [6, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [7, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [8, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [9, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [10, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [11, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [12, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [13, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [14, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [15, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [16, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [17, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [18, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [19, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [20, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [21, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [22, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [23, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [24, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [25, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [26, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [27, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [28, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [29, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [30, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [31, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [32, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [33, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [34, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [35, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [36, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [37, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [38, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [39, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [40, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [41, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [42, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [43, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [44, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [45, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [46, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [47, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [48, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [49, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [50, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [51, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [52, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [53, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [54, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [55, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [56, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [57, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [58, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [59, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [60, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [61, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [62, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [63, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [64, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [65, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [66, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [67, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [68, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [69, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [70, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [71, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [72, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [73, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [74, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [75, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [76, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [77, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [78, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [79, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [80, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [81, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [82, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [83, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [84, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [85, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [86, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [87, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [88, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [89, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [90, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [91, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [92, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [93, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [94, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [95, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [96, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [97, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [98, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [99, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [100, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [101, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [102, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [103, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [104, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [105, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [106, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [107, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [108, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [109, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [110, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [111, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [112, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [113, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [114, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [115, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [116, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [117, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [118, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [119, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [120, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [121, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [122, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [123, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [124, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [125, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [126, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [127, 0, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [203, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 158, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 133, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [203, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 190, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [203, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [203, 157, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 190, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 148, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 140, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 137, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 139, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 141, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 142, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 142, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 144, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 131, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 148, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 144, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 150, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 151, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 156, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 157, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 149, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 131, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 141, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 153, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 143, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 136, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 153, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [203, 153, 0]))]), $toNativeArray($kindUint32, [0, 16777217, 33554434, 50331651, 67108868, 83886085, 100663302, 117440519, 134217736, 150994953, 167772170, 184549387, 201326604, 218103821, 234881038, 251658255, 268435472, 285212689, 301989906, 318767123, 335544340, 352321557, 369098774, 385875991, 402653208, 419430425, 436207642, 452984859, 469762076, 486539293, 503316510, 520093727, 536870944, 553648161, 570425378, 587202595, 603979812, 620757029, 637534246, 654311463, 671088680, 687865897, 704643114, 721420331, 738197548, 754974765, 771751982, 788529199, 805306416, 822083633, 838860850, 855638067, 872415284, 889192501, 905969718, 922746935, 939524152, 956301369, 973078586, 989855803, 1006633020, 1023410237, 1040187454, 1056964671, 1073741888, 1090519105, 1107296322, 1124073539, 1140850756, 1157627973, 1174405190, 1191182407, 1207959624, 1224736841, 1241514058, 1258291275, 1275068492, 1291845709, 1308622926, 1325400143, 1342177360, 1358954577, 1375731794, 1392509011, 1409286228, 1426063445, 1442840662, 1459617879, 1476395096, 1493172313, 1509949530, 1526726747, 1543503964, 1560281181, 1577058398, 1593835615, 1610612832, 1627390049, 1644167266, 1660944483, 1677721700, 1694498917, 1711276134, 1728053351, 1744830568, 1761607785, 1778385002, 1795162219, 1811939436, 1828716653, 1845493870, 1862271087, 1879048304, 1895825521, 1912602738, 1929379955, 1946157172, 1962934389, 1979711606, 1996488823, 2013266040, 2030043257, 2046820474, 2063597691, 2080374908, 2097152125, 2113929342, 2130706559, 2684354720, 2751463588, 2801795239, 2818572456, 2902458541, 2952790192, 3019899060, 3087007928, 3238002881, 3254780098, 3288334532, 3338666183, 3372220617, 3405775051, 3439329485, 3456106702, 3539992787, 3556770004, 3590324438, 3607101655, 3657433306, 3690987740, 3707764957, 3741319391, 3774873825, 3791651042, 3825205476, 3875537127, 3909091561, 3942645995, 3976200429, 3992977646, 4076863731, 4093640948, 4127195382, 4143972599, 4194304250, 4227858684, 4244635901, 3271557378, 3808428291, 2701132036, 2969567493, 3321889030, 3858759943, 3355443468, 3892314381, 3472883982, 4009754895, 3489661200, 4026532113, 3388997912, 3925868825, 3422552346, 3959423259, 3305111865, 3841982778, 2768240957, 3036676414, 2734686529, 3003121986, 3506438467, 4043309380, 3523215687, 4060086600, 3573547344, 4110418257, 3221225812, 3758096725, 3623879000, 4160749913, 2785018202, 3053453659, 2852127070, 3120562527, 2835349856, 3103785313, 3724542306, 4261413219, 2868904292, 3137339749, 3640656238, 4177527151, 3674210672, 4211081585, 2885681529, 3154116986, 2936013179, 3204448636, 2919235965, 3187671422, 3070231239, 2717909720, 4278190809, 2986345179, 3170894557, 3170894557, 3170894557, 3170894557, 3170894557, 3170894557, 3170894557, 3170894557, 3170894557, 3170894557, 3170894557, 3170894557, 3170894557, 3170894557, 3170894557, 3170894557, 3170894557, 3170894557, 3170894557, 3170894557, 3170894557, 3170894557, 3170894557, 3170894557, 3170894557, 3170894557, 3170894557, 3170894557, 3170894557, 3170894557, 3170894557, 3170894557, 3170894557])); + $pkg.ISO8859_2 = iso8859_2; + iso8859_3 = new Charmap.ptr("ISO 8859-3", 6, true, 128, 26, $toNativeArray($kindStruct, [new utf8Enc.ptr(1, $toNativeArray($kindUint8, [0, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [1, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [2, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [3, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [4, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [5, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [6, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [7, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [8, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [9, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [10, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [11, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [12, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [13, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [14, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [15, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [16, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [17, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [18, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [19, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [20, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [21, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [22, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [23, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [24, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [25, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [26, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [27, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [28, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [29, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [30, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [31, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [32, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [33, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [34, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [35, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [36, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [37, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [38, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [39, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [40, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [41, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [42, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [43, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [44, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [45, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [46, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [47, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [48, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [49, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [50, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [51, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [52, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [53, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [54, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [55, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [56, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [57, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [58, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [59, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [60, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [61, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [62, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [63, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [64, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [65, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [66, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [67, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [68, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [69, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [70, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [71, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [72, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [73, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [74, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [75, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [76, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [77, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [78, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [79, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [80, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [81, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [82, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [83, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [84, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [85, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [86, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [87, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [88, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [89, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [90, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [91, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [92, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [93, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [94, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [95, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [96, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [97, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [98, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [99, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [100, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [101, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [102, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [103, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [104, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [105, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [106, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [107, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [108, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [109, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [110, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [111, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [112, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [113, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [114, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [115, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [116, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [117, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [118, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [119, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [120, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [121, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [122, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [123, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [124, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [125, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [126, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [127, 0, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [203, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 164, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 158, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 158, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 173, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 189, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 128, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 130, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 138, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 136, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 136, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 137, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 138, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 139, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 140, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 141, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 142, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 143, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 146, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 148, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 150, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 151, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 156, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 153, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 156, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 156, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 162, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 139, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 137, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 175, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 157, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 157, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [203, 153, 0]))]), $toNativeArray($kindUint32, [0, 16777217, 33554434, 50331651, 67108868, 83886085, 100663302, 117440519, 134217736, 150994953, 167772170, 184549387, 201326604, 218103821, 234881038, 251658255, 268435472, 285212689, 301989906, 318767123, 335544340, 352321557, 369098774, 385875991, 402653208, 419430425, 436207642, 452984859, 469762076, 486539293, 503316510, 520093727, 536870944, 553648161, 570425378, 587202595, 603979812, 620757029, 637534246, 654311463, 671088680, 687865897, 704643114, 721420331, 738197548, 754974765, 771751982, 788529199, 805306416, 822083633, 838860850, 855638067, 872415284, 889192501, 905969718, 922746935, 939524152, 956301369, 973078586, 989855803, 1006633020, 1023410237, 1040187454, 1056964671, 1073741888, 1090519105, 1107296322, 1124073539, 1140850756, 1157627973, 1174405190, 1191182407, 1207959624, 1224736841, 1241514058, 1258291275, 1275068492, 1291845709, 1308622926, 1325400143, 1342177360, 1358954577, 1375731794, 1392509011, 1409286228, 1426063445, 1442840662, 1459617879, 1476395096, 1493172313, 1509949530, 1526726747, 1543503964, 1560281181, 1577058398, 1593835615, 1610612832, 1627390049, 1644167266, 1660944483, 1677721700, 1694498917, 1711276134, 1728053351, 1744830568, 1761607785, 1778385002, 1795162219, 1811939436, 1828716653, 1845493870, 1862271087, 1879048304, 1895825521, 1912602738, 1929379955, 1946157172, 1962934389, 1979711606, 1996488823, 2013266040, 2030043257, 2046820474, 2063597691, 2080374908, 2097152125, 2113929342, 2130706559, 2684354720, 2734686371, 2751463588, 2801795239, 2818572456, 2902458541, 2952790192, 2986344626, 3003121843, 3019899060, 3036676277, 3070230711, 3087007928, 3170894013, 3221225664, 3238002881, 3254780098, 3288334532, 3338666183, 3355443400, 3372220617, 3388997834, 3405775051, 3422552268, 3439329485, 3456106702, 3472883919, 3506438353, 3523215570, 3539992787, 3556770004, 3590324438, 3607101655, 3640656089, 3657433306, 3674210523, 3690987740, 3741319391, 3758096608, 3774873825, 3791651042, 3825205476, 3875537127, 3892314344, 3909091561, 3925868778, 3942645995, 3959423212, 3976200429, 3992977646, 4009754863, 4043309297, 4060086514, 4076863731, 4093640948, 4127195382, 4143972599, 4177527033, 4194304250, 4211081467, 4227858684, 3321889032, 3858759945, 3305111818, 3841982731, 3623878940, 4160749853, 2868904222, 3137339679, 3573547296, 4110418209, 2785018148, 3053453605, 2701132070, 2969567527, 2835349808, 3103785265, 2885681460, 3154116917, 3724542300, 4261413213, 2852127070, 3120562527, 3707765100, 4244636013, 2936013179, 3204448636, 2717909720, 4278190809, 4278190809, 4278190809, 4278190809, 4278190809, 4278190809, 4278190809, 4278190809, 4278190809, 4278190809, 4278190809, 4278190809, 4278190809, 4278190809, 4278190809, 4278190809, 4278190809, 4278190809, 4278190809, 4278190809, 4278190809, 4278190809, 4278190809, 4278190809, 4278190809, 4278190809, 4278190809, 4278190809, 4278190809, 4278190809, 4278190809, 4278190809, 4278190809, 4278190809, 4278190809, 4278190809, 4278190809, 4278190809, 4278190809, 4278190809])); + $pkg.ISO8859_3 = iso8859_3; + iso8859_4 = new Charmap.ptr("ISO 8859-4", 7, true, 128, 26, $toNativeArray($kindStruct, [new utf8Enc.ptr(1, $toNativeArray($kindUint8, [0, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [1, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [2, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [3, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [4, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [5, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [6, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [7, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [8, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [9, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [10, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [11, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [12, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [13, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [14, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [15, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [16, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [17, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [18, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [19, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [20, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [21, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [22, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [23, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [24, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [25, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [26, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [27, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [28, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [29, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [30, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [31, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [32, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [33, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [34, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [35, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [36, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [37, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [38, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [39, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [40, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [41, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [42, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [43, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [44, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [45, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [46, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [47, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [48, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [49, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [50, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [51, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [52, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [53, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [54, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [55, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [56, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [57, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [58, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [59, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [60, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [61, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [62, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [63, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [64, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [65, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [66, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [67, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [68, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [69, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [70, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [71, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [72, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [73, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [74, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [75, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [76, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [77, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [78, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [79, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [80, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [81, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [82, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [83, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [84, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [85, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [86, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [87, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [88, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [89, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [90, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [91, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [92, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [93, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [94, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [95, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [96, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [97, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [98, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [99, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [100, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [101, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [102, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [103, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [104, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [105, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [106, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [107, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [108, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [109, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [110, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [111, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [112, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [113, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [114, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [115, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [116, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [117, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [118, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [119, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [120, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [121, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [122, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [123, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [124, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [125, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [126, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [127, 0, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 150, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 146, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 133, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [203, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 151, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [203, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 138, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 190, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 139, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 128, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 131, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 133, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 140, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 137, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 139, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 150, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 141, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 142, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 144, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 133, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 140, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 148, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 149, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 150, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 151, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 156, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 141, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 153, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 151, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 141, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [203, 153, 0]))]), $toNativeArray($kindUint32, [0, 16777217, 33554434, 50331651, 67108868, 83886085, 100663302, 117440519, 134217736, 150994953, 167772170, 184549387, 201326604, 218103821, 234881038, 251658255, 268435472, 285212689, 301989906, 318767123, 335544340, 352321557, 369098774, 385875991, 402653208, 419430425, 436207642, 452984859, 469762076, 486539293, 503316510, 520093727, 536870944, 553648161, 570425378, 587202595, 603979812, 620757029, 637534246, 654311463, 671088680, 687865897, 704643114, 721420331, 738197548, 754974765, 771751982, 788529199, 805306416, 822083633, 838860850, 855638067, 872415284, 889192501, 905969718, 922746935, 939524152, 956301369, 973078586, 989855803, 1006633020, 1023410237, 1040187454, 1056964671, 1073741888, 1090519105, 1107296322, 1124073539, 1140850756, 1157627973, 1174405190, 1191182407, 1207959624, 1224736841, 1241514058, 1258291275, 1275068492, 1291845709, 1308622926, 1325400143, 1342177360, 1358954577, 1375731794, 1392509011, 1409286228, 1426063445, 1442840662, 1459617879, 1476395096, 1493172313, 1509949530, 1526726747, 1543503964, 1560281181, 1577058398, 1593835615, 1610612832, 1627390049, 1644167266, 1660944483, 1677721700, 1694498917, 1711276134, 1728053351, 1744830568, 1761607785, 1778385002, 1795162219, 1811939436, 1828716653, 1845493870, 1862271087, 1879048304, 1895825521, 1912602738, 1929379955, 1946157172, 1962934389, 1979711606, 1996488823, 2013266040, 2030043257, 2046820474, 2063597691, 2080374908, 2097152125, 2113929342, 2130706559, 2684354720, 2751463588, 2801795239, 2818572456, 2902458541, 2936012975, 2952790192, 3019899060, 3087007928, 3238002881, 3254780098, 3271557315, 3288334532, 3305111749, 3321888966, 3372220617, 3405775051, 3439329485, 3456106702, 3556770004, 3573547221, 3590324438, 3607101655, 3623878872, 3657433306, 3674210523, 3690987740, 3741319391, 3774873825, 3791651042, 3808428259, 3825205476, 3841982693, 3858759910, 3909091561, 3942645995, 3976200429, 3992977646, 4093640948, 4110418165, 4127195382, 4143972599, 4160749816, 4194304250, 4211081467, 4227858684, 3221225728, 3758096641, 2701132036, 2969567493, 3355443468, 3892314381, 3489661200, 4026532113, 2852126994, 3120562451, 3422552342, 3959423255, 3388997912, 3925868825, 2868904226, 3137339683, 2768240936, 3036676393, 3472884010, 4009754923, 3338666286, 3875537199, 3539992886, 4076863799, 2717909304, 2785018171, 3053453628, 3506438469, 4043309382, 3170894154, 3204448587, 3523215692, 4060086605, 2734686550, 3003122007, 2835349856, 3103785313, 2885681510, 3154116967, 3707765096, 4244636009, 3724542314, 4261413227, 3640656242, 4177527155, 2919235965, 3187671422, 3070231239, 4278190809, 2986345179, 2986345179, 2986345179, 2986345179, 2986345179, 2986345179, 2986345179, 2986345179, 2986345179, 2986345179, 2986345179, 2986345179, 2986345179, 2986345179, 2986345179, 2986345179, 2986345179, 2986345179, 2986345179, 2986345179, 2986345179, 2986345179, 2986345179, 2986345179, 2986345179, 2986345179, 2986345179, 2986345179, 2986345179, 2986345179, 2986345179, 2986345179, 2986345179])); + $pkg.ISO8859_4 = iso8859_4; + iso8859_5 = new Charmap.ptr("ISO 8859-5", 8, true, 128, 26, $toNativeArray($kindStruct, [new utf8Enc.ptr(1, $toNativeArray($kindUint8, [0, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [1, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [2, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [3, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [4, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [5, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [6, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [7, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [8, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [9, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [10, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [11, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [12, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [13, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [14, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [15, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [16, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [17, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [18, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [19, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [20, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [21, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [22, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [23, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [24, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [25, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [26, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [27, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [28, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [29, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [30, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [31, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [32, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [33, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [34, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [35, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [36, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [37, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [38, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [39, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [40, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [41, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [42, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [43, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [44, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [45, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [46, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [47, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [48, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [49, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [50, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [51, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [52, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [53, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [54, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [55, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [56, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [57, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [58, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [59, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [60, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [61, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [62, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [63, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [64, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [65, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [66, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [67, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [68, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [69, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [70, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [71, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [72, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [73, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [74, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [75, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [76, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [77, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [78, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [79, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [80, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [81, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [82, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [83, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [84, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [85, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [86, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [87, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [88, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [89, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [90, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [91, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [92, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [93, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [94, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [95, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [96, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [97, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [98, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [99, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [100, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [101, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [102, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [103, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [104, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [105, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [106, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [107, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [108, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [109, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [110, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [111, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [112, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [113, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [114, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [115, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [116, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [117, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [118, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [119, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [120, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [121, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [122, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [123, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [124, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [125, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [126, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [127, 0, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 131, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 133, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 136, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 137, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 138, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 139, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 140, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 142, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 143, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 144, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 146, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 148, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 149, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 150, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 151, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 153, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 156, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 157, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 158, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 190, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 191, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 128, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 131, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 133, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 136, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 137, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 138, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 139, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 140, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 141, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 142, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 143, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 132, 150])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 146, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 148, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 149, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 150, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 151, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 153, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 156, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 158, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 159, 0]))]), $toNativeArray($kindUint32, [0, 16777217, 33554434, 50331651, 67108868, 83886085, 100663302, 117440519, 134217736, 150994953, 167772170, 184549387, 201326604, 218103821, 234881038, 251658255, 268435472, 285212689, 301989906, 318767123, 335544340, 352321557, 369098774, 385875991, 402653208, 419430425, 436207642, 452984859, 469762076, 486539293, 503316510, 520093727, 536870944, 553648161, 570425378, 587202595, 603979812, 620757029, 637534246, 654311463, 671088680, 687865897, 704643114, 721420331, 738197548, 754974765, 771751982, 788529199, 805306416, 822083633, 838860850, 855638067, 872415284, 889192501, 905969718, 922746935, 939524152, 956301369, 973078586, 989855803, 1006633020, 1023410237, 1040187454, 1056964671, 1073741888, 1090519105, 1107296322, 1124073539, 1140850756, 1157627973, 1174405190, 1191182407, 1207959624, 1224736841, 1241514058, 1258291275, 1275068492, 1291845709, 1308622926, 1325400143, 1342177360, 1358954577, 1375731794, 1392509011, 1409286228, 1426063445, 1442840662, 1459617879, 1476395096, 1493172313, 1509949530, 1526726747, 1543503964, 1560281181, 1577058398, 1593835615, 1610612832, 1627390049, 1644167266, 1660944483, 1677721700, 1694498917, 1711276134, 1728053351, 1744830568, 1761607785, 1778385002, 1795162219, 1811939436, 1828716653, 1845493870, 1862271087, 1879048304, 1895825521, 1912602738, 1929379955, 1946157172, 1962934389, 1979711606, 1996488823, 2013266040, 2030043257, 2046820474, 2063597691, 2080374908, 2097152125, 2113929342, 2130706559, 2684354720, 4244635815, 2902458541, 2701132801, 2717910018, 2734687235, 2751464452, 2768241669, 2785018886, 2801796103, 2818573320, 2835350537, 2852127754, 2868904971, 2885682188, 2919236622, 2936013839, 2952791056, 2969568273, 2986345490, 3003122707, 3019899924, 3036677141, 3053454358, 3070231575, 3087008792, 3103786009, 3120563226, 3137340443, 3154117660, 3170894877, 3187672094, 3204449311, 3221226528, 3238003745, 3254780962, 3271558179, 3288335396, 3305112613, 3321889830, 3338667047, 3355444264, 3372221481, 3388998698, 3405775915, 3422553132, 3439330349, 3456107566, 3472884783, 3489662000, 3506439217, 3523216434, 3539993651, 3556770868, 3573548085, 3590325302, 3607102519, 3623879736, 3640656953, 3657434170, 3674211387, 3690988604, 3707765821, 3724543038, 3741320255, 3758097472, 3774874689, 3791651906, 3808429123, 3825206340, 3841983557, 3858760774, 3875537991, 3892315208, 3909092425, 3925869642, 3942646859, 3959424076, 3976201293, 3992978510, 4009755727, 4043310161, 4060087378, 4076864595, 4093641812, 4110419029, 4127196246, 4143973463, 4160750680, 4177527897, 4194305114, 4211082331, 4227859548, 4261413982, 4278191199, 4026540310, 4026540310, 4026540310, 4026540310, 4026540310, 4026540310, 4026540310, 4026540310, 4026540310, 4026540310, 4026540310, 4026540310, 4026540310, 4026540310, 4026540310, 4026540310, 4026540310, 4026540310, 4026540310, 4026540310, 4026540310, 4026540310, 4026540310, 4026540310, 4026540310, 4026540310, 4026540310, 4026540310, 4026540310, 4026540310, 4026540310, 4026540310, 4026540310])); + $pkg.ISO8859_5 = iso8859_5; + iso8859_6 = new Charmap.ptr("ISO 8859-6", 9, true, 128, 26, $toNativeArray($kindStruct, [new utf8Enc.ptr(1, $toNativeArray($kindUint8, [0, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [1, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [2, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [3, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [4, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [5, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [6, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [7, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [8, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [9, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [10, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [11, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [12, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [13, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [14, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [15, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [16, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [17, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [18, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [19, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [20, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [21, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [22, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [23, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [24, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [25, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [26, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [27, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [28, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [29, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [30, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [31, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [32, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [33, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [34, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [35, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [36, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [37, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [38, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [39, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [40, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [41, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [42, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [43, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [44, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [45, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [46, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [47, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [48, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [49, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [50, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [51, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [52, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [53, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [54, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [55, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [56, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [57, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [58, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [59, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [60, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [61, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [62, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [63, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [64, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [65, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [66, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [67, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [68, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [69, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [70, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [71, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [72, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [73, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [74, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [75, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [76, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [77, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [78, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [79, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [80, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [81, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [82, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [83, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [84, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [85, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [86, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [87, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [88, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [89, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [90, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [91, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [92, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [93, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [94, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [95, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [96, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [97, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [98, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [99, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [100, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [101, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [102, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [103, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [104, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [105, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [106, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [107, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [108, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [109, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [110, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [111, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [112, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [113, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [114, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [115, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [116, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [117, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [118, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [119, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [120, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [121, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [122, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [123, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [124, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [125, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [126, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [127, 0, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 160, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 164, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 140, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 173, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 155, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 159, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 186, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [217, 128, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [217, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [217, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [217, 131, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [217, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [217, 133, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [217, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [217, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [217, 136, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [217, 137, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [217, 138, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [217, 139, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [217, 140, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [217, 141, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [217, 142, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [217, 143, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [217, 144, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [217, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [217, 146, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189]))]), $toNativeArray($kindUint32, [0, 16777217, 33554434, 50331651, 67108868, 83886085, 100663302, 117440519, 134217736, 150994953, 167772170, 184549387, 201326604, 218103821, 234881038, 251658255, 268435472, 285212689, 301989906, 318767123, 335544340, 352321557, 369098774, 385875991, 402653208, 419430425, 436207642, 452984859, 469762076, 486539293, 503316510, 520093727, 536870944, 553648161, 570425378, 587202595, 603979812, 620757029, 637534246, 654311463, 671088680, 687865897, 704643114, 721420331, 738197548, 754974765, 771751982, 788529199, 805306416, 822083633, 838860850, 855638067, 872415284, 889192501, 905969718, 922746935, 939524152, 956301369, 973078586, 989855803, 1006633020, 1023410237, 1040187454, 1056964671, 1073741888, 1090519105, 1107296322, 1124073539, 1140850756, 1157627973, 1174405190, 1191182407, 1207959624, 1224736841, 1241514058, 1258291275, 1275068492, 1291845709, 1308622926, 1325400143, 1342177360, 1358954577, 1375731794, 1392509011, 1409286228, 1426063445, 1442840662, 1459617879, 1476395096, 1493172313, 1509949530, 1526726747, 1543503964, 1560281181, 1577058398, 1593835615, 1610612832, 1627390049, 1644167266, 1660944483, 1677721700, 1694498917, 1711276134, 1728053351, 1744830568, 1761607785, 1778385002, 1795162219, 1811939436, 1828716653, 1845493870, 1862271087, 1879048304, 1895825521, 1912602738, 1929379955, 1946157172, 1962934389, 1979711606, 1996488823, 2013266040, 2030043257, 2046820474, 2063597691, 2080374908, 2097152125, 2113929342, 2130706559, 2684354720, 2751463588, 2902458541, 2885682700, 3137340955, 3204449823, 3238004257, 3254781474, 3271558691, 3288335908, 3305113125, 3321890342, 3338667559, 3355444776, 3372221993, 3388999210, 3405776427, 3422553644, 3439330861, 3456108078, 3472885295, 3489662512, 3506439729, 3523216946, 3539994163, 3556771380, 3573548597, 3590325814, 3607103031, 3623880248, 3640657465, 3657434682, 3758097984, 3774875201, 3791652418, 3808429635, 3825206852, 3841984069, 3858761286, 3875538503, 3892315720, 3909092937, 3925870154, 3942647371, 3959424588, 3976201805, 3992979022, 4009756239, 4026533456, 4043310673, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890, 4060087890])); + $pkg.ISO8859_6 = iso8859_6; + iso8859_6E = new internal.Encoding.ptr($pkg.ISO8859_6, "ISO-8859-6E", 81); + $pkg.ISO8859_6E = iso8859_6E; + iso8859_6I = new internal.Encoding.ptr($pkg.ISO8859_6, "ISO-8859-6I", 82); + $pkg.ISO8859_6I = iso8859_6I; + iso8859_7 = new Charmap.ptr("ISO 8859-7", 10, true, 128, 26, $toNativeArray($kindStruct, [new utf8Enc.ptr(1, $toNativeArray($kindUint8, [0, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [1, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [2, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [3, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [4, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [5, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [6, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [7, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [8, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [9, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [10, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [11, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [12, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [13, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [14, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [15, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [16, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [17, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [18, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [19, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [20, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [21, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [22, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [23, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [24, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [25, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [26, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [27, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [28, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [29, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [30, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [31, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [32, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [33, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [34, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [35, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [36, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [37, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [38, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [39, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [40, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [41, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [42, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [43, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [44, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [45, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [46, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [47, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [48, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [49, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [50, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [51, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [52, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [53, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [54, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [55, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [56, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [57, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [58, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [59, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [60, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [61, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [62, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [63, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [64, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [65, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [66, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [67, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [68, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [69, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [70, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [71, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [72, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [73, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [74, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [75, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [76, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [77, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [78, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [79, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [80, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [81, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [82, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [83, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [84, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [85, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [86, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [87, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [88, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [89, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [90, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [91, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [92, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [93, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [94, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [95, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [96, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [97, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [98, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [99, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [100, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [101, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [102, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [103, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [104, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [105, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [106, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [107, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [108, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [109, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [110, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [111, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [112, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [113, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [114, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [115, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [116, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [117, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [118, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [119, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [120, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [121, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [122, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [123, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [124, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [125, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [126, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [127, 0, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 160, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 152])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 153])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 163, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 130, 172])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 130, 175])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [205, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 173, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 149])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 133, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 136, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 137, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 138, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 140, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 142, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 143, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 144, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 146, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 148, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 149, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 150, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 151, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 153, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 156, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 157, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 158, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 161, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 190, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 191, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 128, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 131, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 133, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 136, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 137, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 138, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 139, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 140, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 141, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 142, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189]))]), $toNativeArray($kindUint32, [0, 16777217, 33554434, 50331651, 67108868, 83886085, 100663302, 117440519, 134217736, 150994953, 167772170, 184549387, 201326604, 218103821, 234881038, 251658255, 268435472, 285212689, 301989906, 318767123, 335544340, 352321557, 369098774, 385875991, 402653208, 419430425, 436207642, 452984859, 469762076, 486539293, 503316510, 520093727, 536870944, 553648161, 570425378, 587202595, 603979812, 620757029, 637534246, 654311463, 671088680, 687865897, 704643114, 721420331, 738197548, 754974765, 771751982, 788529199, 805306416, 822083633, 838860850, 855638067, 872415284, 889192501, 905969718, 922746935, 939524152, 956301369, 973078586, 989855803, 1006633020, 1023410237, 1040187454, 1056964671, 1073741888, 1090519105, 1107296322, 1124073539, 1140850756, 1157627973, 1174405190, 1191182407, 1207959624, 1224736841, 1241514058, 1258291275, 1275068492, 1291845709, 1308622926, 1325400143, 1342177360, 1358954577, 1375731794, 1392509011, 1409286228, 1426063445, 1442840662, 1459617879, 1476395096, 1493172313, 1509949530, 1526726747, 1543503964, 1560281181, 1577058398, 1593835615, 1610612832, 1627390049, 1644167266, 1660944483, 1677721700, 1694498917, 1711276134, 1728053351, 1744830568, 1761607785, 1778385002, 1795162219, 1811939436, 1828716653, 1845493870, 1862271087, 1879048304, 1895825521, 1912602738, 1929379955, 1946157172, 1962934389, 1979711606, 1996488823, 2013266040, 2030043257, 2046820474, 2063597691, 2080374908, 2097152125, 2113929342, 2130706559, 2684354720, 2734686371, 2785018022, 2801795239, 2818572456, 2835349673, 2868904107, 2885681324, 2902458541, 2952790192, 2969567409, 2986344626, 3003121843, 3070230711, 3137339579, 3170894013, 2852127610, 3019899780, 3036676997, 3053454214, 3087008648, 3103785865, 3120563082, 3154117516, 3187671950, 3204449167, 3221226384, 3238003601, 3254780818, 3271558035, 3288335252, 3305112469, 3321889686, 3338666903, 3355444120, 3372221337, 3388998554, 3405775771, 3422552988, 3439330205, 3456107422, 3472884639, 3489661856, 3506439073, 3539993507, 3556770724, 3573547941, 3590325158, 3607102375, 3623879592, 3640656809, 3657434026, 3674211243, 3690988460, 3707765677, 3724542894, 3741320111, 3758097328, 3774874545, 3791651762, 3808428979, 3825206196, 3841983413, 3858760630, 3875537847, 3892315064, 3909092281, 3925869498, 3942646715, 3959423932, 3976201149, 3992978366, 4009755583, 4026532800, 4043310017, 4060087234, 4076864451, 4093641668, 4110418885, 4127196102, 4143973319, 4160750536, 4177527753, 4194304970, 4211082187, 4227859404, 4244636621, 4261413838, 2936021013, 2701139992, 2717917209, 2751471788, 2768249007, 2768249007, 2768249007, 2768249007, 2768249007, 2768249007, 2768249007, 2768249007, 2768249007, 2768249007, 2768249007, 2768249007, 2768249007, 2768249007, 2768249007, 2768249007, 2768249007, 2768249007, 2768249007, 2768249007, 2768249007, 2768249007, 2768249007, 2768249007, 2768249007, 2768249007, 2768249007, 2768249007, 2768249007, 2768249007, 2768249007, 2768249007, 2768249007, 2768249007, 2768249007, 2768249007])); + $pkg.ISO8859_7 = iso8859_7; + iso8859_8 = new Charmap.ptr("ISO 8859-8", 11, true, 128, 26, $toNativeArray($kindStruct, [new utf8Enc.ptr(1, $toNativeArray($kindUint8, [0, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [1, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [2, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [3, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [4, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [5, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [6, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [7, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [8, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [9, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [10, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [11, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [12, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [13, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [14, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [15, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [16, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [17, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [18, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [19, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [20, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [21, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [22, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [23, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [24, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [25, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [26, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [27, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [28, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [29, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [30, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [31, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [32, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [33, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [34, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [35, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [36, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [37, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [38, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [39, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [40, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [41, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [42, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [43, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [44, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [45, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [46, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [47, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [48, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [49, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [50, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [51, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [52, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [53, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [54, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [55, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [56, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [57, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [58, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [59, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [60, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [61, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [62, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [63, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [64, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [65, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [66, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [67, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [68, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [69, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [70, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [71, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [72, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [73, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [74, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [75, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [76, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [77, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [78, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [79, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [80, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [81, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [82, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [83, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [84, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [85, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [86, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [87, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [88, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [89, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [90, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [91, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [92, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [93, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [94, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [95, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [96, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [97, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [98, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [99, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [100, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [101, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [102, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [103, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [104, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [105, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [106, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [107, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [108, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [109, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [110, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [111, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [112, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [113, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [114, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [115, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [116, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [117, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [118, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [119, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [120, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [121, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [122, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [123, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [124, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [125, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [126, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [127, 0, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 160, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 151, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 190, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 151])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 144, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 146, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 148, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 149, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 150, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 151, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 153, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 156, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 157, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 158, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 170, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 142])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 143])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189]))]), $toNativeArray($kindUint32, [0, 16777217, 33554434, 50331651, 67108868, 83886085, 100663302, 117440519, 134217736, 150994953, 167772170, 184549387, 201326604, 218103821, 234881038, 251658255, 268435472, 285212689, 301989906, 318767123, 335544340, 352321557, 369098774, 385875991, 402653208, 419430425, 436207642, 452984859, 469762076, 486539293, 503316510, 520093727, 536870944, 553648161, 570425378, 587202595, 603979812, 620757029, 637534246, 654311463, 671088680, 687865897, 704643114, 721420331, 738197548, 754974765, 771751982, 788529199, 805306416, 822083633, 838860850, 855638067, 872415284, 889192501, 905969718, 922746935, 939524152, 956301369, 973078586, 989855803, 1006633020, 1023410237, 1040187454, 1056964671, 1073741888, 1090519105, 1107296322, 1124073539, 1140850756, 1157627973, 1174405190, 1191182407, 1207959624, 1224736841, 1241514058, 1258291275, 1275068492, 1291845709, 1308622926, 1325400143, 1342177360, 1358954577, 1375731794, 1392509011, 1409286228, 1426063445, 1442840662, 1459617879, 1476395096, 1493172313, 1509949530, 1526726747, 1543503964, 1560281181, 1577058398, 1593835615, 1610612832, 1627390049, 1644167266, 1660944483, 1677721700, 1694498917, 1711276134, 1728053351, 1744830568, 1761607785, 1778385002, 1795162219, 1811939436, 1828716653, 1845493870, 1862271087, 1879048304, 1895825521, 1912602738, 1929379955, 1946157172, 1962934389, 1979711606, 1996488823, 2013266040, 2030043257, 2046820474, 2063597691, 2080374908, 2097152125, 2113929342, 2130706559, 2684354720, 2717909154, 2734686371, 2751463588, 2768240805, 2785018022, 2801795239, 2818572456, 2835349673, 2868904107, 2885681324, 2902458541, 2919235758, 2936012975, 2952790192, 2969567409, 2986344626, 3003121843, 3019899060, 3036676277, 3053453494, 3070230711, 3087007928, 3103785145, 3137339579, 3154116796, 3170894013, 3187671230, 2852126935, 3120562423, 3758097872, 3774875089, 3791652306, 3808429523, 3825206740, 3841983957, 3858761174, 3875538391, 3892315608, 3909092825, 3925870042, 3942647259, 3959424476, 3976201693, 3992978910, 4009756127, 4026533344, 4043310561, 4060087778, 4076864995, 4093642212, 4110419429, 4127196646, 4143973863, 4160751080, 4177528297, 4194305514, 4244643854, 4261421071, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383, 3741327383])); + $pkg.ISO8859_8 = iso8859_8; + iso8859_8E = new internal.Encoding.ptr($pkg.ISO8859_8, "ISO-8859-8E", 84); + $pkg.ISO8859_8E = iso8859_8E; + iso8859_8I = new internal.Encoding.ptr($pkg.ISO8859_8, "ISO-8859-8I", 85); + $pkg.ISO8859_8I = iso8859_8I; + iso8859_9 = new Charmap.ptr("ISO 8859-9", 12, true, 128, 26, $toNativeArray($kindStruct, [new utf8Enc.ptr(1, $toNativeArray($kindUint8, [0, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [1, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [2, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [3, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [4, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [5, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [6, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [7, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [8, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [9, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [10, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [11, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [12, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [13, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [14, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [15, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [16, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [17, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [18, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [19, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [20, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [21, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [22, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [23, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [24, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [25, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [26, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [27, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [28, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [29, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [30, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [31, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [32, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [33, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [34, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [35, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [36, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [37, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [38, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [39, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [40, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [41, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [42, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [43, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [44, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [45, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [46, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [47, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [48, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [49, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [50, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [51, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [52, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [53, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [54, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [55, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [56, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [57, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [58, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [59, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [60, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [61, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [62, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [63, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [64, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [65, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [66, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [67, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [68, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [69, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [70, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [71, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [72, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [73, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [74, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [75, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [76, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [77, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [78, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [79, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [80, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [81, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [82, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [83, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [84, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [85, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [86, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [87, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [88, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [89, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [90, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [91, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [92, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [93, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [94, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [95, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [96, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [97, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [98, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [99, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [100, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [101, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [102, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [103, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [104, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [105, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [106, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [107, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [108, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [109, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [110, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [111, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [112, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [113, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [114, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [115, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [116, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [117, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [118, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [119, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [120, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [121, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [122, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [123, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [124, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [125, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [126, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [127, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 128, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 131, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 133, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 136, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 137, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 138, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 139, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 140, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 141, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 142, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 143, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 144, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 146, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 148, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 149, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 150, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 151, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 153, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 156, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 157, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 158, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 190, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 191, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 128, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 131, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 133, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 136, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 137, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 138, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 139, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 140, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 141, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 142, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 143, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 158, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 146, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 148, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 149, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 150, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 151, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 153, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 156, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 158, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 191, 0]))]), $toNativeArray($kindUint32, [0, 16777217, 33554434, 50331651, 67108868, 83886085, 100663302, 117440519, 134217736, 150994953, 167772170, 184549387, 201326604, 218103821, 234881038, 251658255, 268435472, 285212689, 301989906, 318767123, 335544340, 352321557, 369098774, 385875991, 402653208, 419430425, 436207642, 452984859, 469762076, 486539293, 503316510, 520093727, 536870944, 553648161, 570425378, 587202595, 603979812, 620757029, 637534246, 654311463, 671088680, 687865897, 704643114, 721420331, 738197548, 754974765, 771751982, 788529199, 805306416, 822083633, 838860850, 855638067, 872415284, 889192501, 905969718, 922746935, 939524152, 956301369, 973078586, 989855803, 1006633020, 1023410237, 1040187454, 1056964671, 1073741888, 1090519105, 1107296322, 1124073539, 1140850756, 1157627973, 1174405190, 1191182407, 1207959624, 1224736841, 1241514058, 1258291275, 1275068492, 1291845709, 1308622926, 1325400143, 1342177360, 1358954577, 1375731794, 1392509011, 1409286228, 1426063445, 1442840662, 1459617879, 1476395096, 1493172313, 1509949530, 1526726747, 1543503964, 1560281181, 1577058398, 1593835615, 1610612832, 1627390049, 1644167266, 1660944483, 1677721700, 1694498917, 1711276134, 1728053351, 1744830568, 1761607785, 1778385002, 1795162219, 1811939436, 1828716653, 1845493870, 1862271087, 1879048304, 1895825521, 1912602738, 1929379955, 1946157172, 1962934389, 1979711606, 1996488823, 2013266040, 2030043257, 2046820474, 2063597691, 2080374908, 2097152125, 2113929342, 2130706559, 2147483776, 2164260993, 2181038210, 2197815427, 2214592644, 2231369861, 2248147078, 2264924295, 2281701512, 2298478729, 2315255946, 2332033163, 2348810380, 2365587597, 2382364814, 2399142031, 2415919248, 2432696465, 2449473682, 2466250899, 2483028116, 2499805333, 2516582550, 2533359767, 2550136984, 2566914201, 2583691418, 2600468635, 2617245852, 2634023069, 2650800286, 2667577503, 2684354720, 2701131937, 2717909154, 2734686371, 2751463588, 2768240805, 2785018022, 2801795239, 2818572456, 2835349673, 2852126890, 2868904107, 2885681324, 2902458541, 2919235758, 2936012975, 2952790192, 2969567409, 2986344626, 3003121843, 3019899060, 3036676277, 3053453494, 3070230711, 3087007928, 3103785145, 3120562362, 3137339579, 3154116796, 3170894013, 3187671230, 3204448447, 3221225664, 3238002881, 3254780098, 3271557315, 3288334532, 3305111749, 3321888966, 3338666183, 3355443400, 3372220617, 3388997834, 3405775051, 3422552268, 3439329485, 3456106702, 3472883919, 3506438353, 3523215570, 3539992787, 3556770004, 3573547221, 3590324438, 3607101655, 3623878872, 3640656089, 3657433306, 3674210523, 3690987740, 3741319391, 3758096608, 3774873825, 3791651042, 3808428259, 3825205476, 3841982693, 3858759910, 3875537127, 3892314344, 3909091561, 3925868778, 3942645995, 3959423212, 3976200429, 3992977646, 4009754863, 4043309297, 4060086514, 4076863731, 4093640948, 4110418165, 4127195382, 4143972599, 4160749816, 4177527033, 4194304250, 4211081467, 4227858684, 4278190335, 3489661214, 4026532127, 3707765040, 4244635953, 3724542302, 4261413215])); + $pkg.ISO8859_9 = iso8859_9; + iso8859_10 = new Charmap.ptr("ISO 8859-10", 13, true, 128, 26, $toNativeArray($kindStruct, [new utf8Enc.ptr(1, $toNativeArray($kindUint8, [0, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [1, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [2, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [3, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [4, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [5, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [6, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [7, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [8, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [9, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [10, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [11, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [12, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [13, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [14, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [15, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [16, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [17, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [18, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [19, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [20, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [21, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [22, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [23, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [24, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [25, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [26, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [27, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [28, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [29, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [30, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [31, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [32, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [33, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [34, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [35, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [36, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [37, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [38, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [39, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [40, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [41, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [42, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [43, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [44, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [45, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [46, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [47, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [48, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [49, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [50, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [51, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [52, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [53, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [54, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [55, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [56, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [57, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [58, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [59, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [60, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [61, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [62, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [63, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [64, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [65, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [66, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [67, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [68, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [69, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [70, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [71, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [72, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [73, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [74, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [75, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [76, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [77, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [78, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [79, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [80, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [81, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [82, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [83, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [84, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [85, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [86, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [87, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [88, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [89, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [90, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [91, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [92, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [93, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [94, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [95, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [96, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [97, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [98, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [99, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [100, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [101, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [102, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [103, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [104, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [105, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [106, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [107, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [108, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [109, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [110, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [111, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [112, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [113, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [114, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [115, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [116, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [117, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [118, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [119, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [120, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [121, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [122, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [123, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [124, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [125, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [126, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [127, 0, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 146, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 144, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 138, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 133, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 190, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 149])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 139, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 128, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 131, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 133, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 140, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 137, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 139, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 150, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 141, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 142, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 143, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 144, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 133, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 140, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 148, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 149, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 150, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 156, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 157, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 158, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 141, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 153, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 151, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 141, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 190, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 184, 0]))]), $toNativeArray($kindUint32, [0, 16777217, 33554434, 50331651, 67108868, 83886085, 100663302, 117440519, 134217736, 150994953, 167772170, 184549387, 201326604, 218103821, 234881038, 251658255, 268435472, 285212689, 301989906, 318767123, 335544340, 352321557, 369098774, 385875991, 402653208, 419430425, 436207642, 452984859, 469762076, 486539293, 503316510, 520093727, 536870944, 553648161, 570425378, 587202595, 603979812, 620757029, 637534246, 654311463, 671088680, 687865897, 704643114, 721420331, 738197548, 754974765, 771751982, 788529199, 805306416, 822083633, 838860850, 855638067, 872415284, 889192501, 905969718, 922746935, 939524152, 956301369, 973078586, 989855803, 1006633020, 1023410237, 1040187454, 1056964671, 1073741888, 1090519105, 1107296322, 1124073539, 1140850756, 1157627973, 1174405190, 1191182407, 1207959624, 1224736841, 1241514058, 1258291275, 1275068492, 1291845709, 1308622926, 1325400143, 1342177360, 1358954577, 1375731794, 1392509011, 1409286228, 1426063445, 1442840662, 1459617879, 1476395096, 1493172313, 1509949530, 1526726747, 1543503964, 1560281181, 1577058398, 1593835615, 1610612832, 1627390049, 1644167266, 1660944483, 1677721700, 1694498917, 1711276134, 1728053351, 1744830568, 1761607785, 1778385002, 1795162219, 1811939436, 1828716653, 1845493870, 1862271087, 1879048304, 1895825521, 1912602738, 1929379955, 1946157172, 1962934389, 1979711606, 1996488823, 2013266040, 2030043257, 2046820474, 2063597691, 2080374908, 2097152125, 2113929342, 2130706559, 2684354720, 2801795239, 2902458541, 2952790192, 3070230711, 3238002881, 3254780098, 3271557315, 3288334532, 3305111749, 3321888966, 3372220617, 3405775051, 3439329485, 3456106702, 3472883919, 3489661136, 3539992787, 3556770004, 3573547221, 3590324438, 3623878872, 3657433306, 3674210523, 3690987740, 3707764957, 3724542174, 3741319391, 3774873825, 3791651042, 3808428259, 3825205476, 3841982693, 3858759910, 3909091561, 3942645995, 3976200429, 3992977646, 4009754863, 4026532080, 4076863731, 4093640948, 4110418165, 4127195382, 4160749816, 4194304250, 4211081467, 4227858684, 4244635901, 4261413118, 3221225728, 3758096641, 2701132036, 2969567493, 3355443468, 3892314381, 2835349776, 3103785233, 2717909266, 2986344723, 3422552342, 3959423255, 3388997912, 3925868825, 2734686498, 3003121955, 2768240936, 3036676393, 2751463722, 3019899179, 3338666286, 3875537199, 2785018166, 3053453623, 4278190392, 2818572603, 3087008060, 3506438469, 4043309382, 2936013130, 3204448587, 3523215692, 4060086605, 2852127072, 3120562529, 2868904294, 3137339751, 3607101800, 4143972713, 2919235946, 3187671403, 3640656242, 4177527155, 2885681533, 3154116990, 3170902037, 3170902037, 3170902037, 3170902037, 3170902037, 3170902037, 3170902037, 3170902037, 3170902037, 3170902037, 3170902037, 3170902037, 3170902037, 3170902037, 3170902037, 3170902037, 3170902037, 3170902037, 3170902037, 3170902037, 3170902037, 3170902037, 3170902037, 3170902037, 3170902037, 3170902037, 3170902037, 3170902037, 3170902037, 3170902037, 3170902037, 3170902037, 3170902037])); + $pkg.ISO8859_10 = iso8859_10; + iso8859_13 = new Charmap.ptr("ISO 8859-13", 109, true, 128, 26, $toNativeArray($kindStruct, [new utf8Enc.ptr(1, $toNativeArray($kindUint8, [0, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [1, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [2, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [3, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [4, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [5, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [6, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [7, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [8, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [9, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [10, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [11, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [12, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [13, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [14, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [15, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [16, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [17, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [18, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [19, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [20, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [21, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [22, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [23, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [24, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [25, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [26, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [27, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [28, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [29, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [30, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [31, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [32, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [33, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [34, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [35, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [36, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [37, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [38, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [39, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [40, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [41, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [42, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [43, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [44, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [45, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [46, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [47, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [48, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [49, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [50, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [51, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [52, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [53, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [54, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [55, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [56, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [57, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [58, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [59, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [60, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [61, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [62, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [63, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [64, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [65, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [66, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [67, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [68, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [69, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [70, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [71, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [72, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [73, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [74, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [75, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [76, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [77, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [78, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [79, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [80, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [81, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [82, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [83, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [84, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [85, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [86, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [87, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [88, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [89, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [90, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [91, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [92, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [93, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [94, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [95, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [96, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [97, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [98, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [99, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [100, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [101, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [102, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [103, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [104, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [105, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [106, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [107, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [108, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [109, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [110, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [111, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [112, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [113, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [114, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [115, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [116, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [117, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [118, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [119, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [120, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [121, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [122, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [123, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [124, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [125, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [126, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [127, 0, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 160, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 157])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 164, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 158])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 150, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 179, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 156])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 151, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 190, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 128, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 133, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 146, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 140, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 137, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 150, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 131, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 133, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 140, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 149, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 150, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 151, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 156, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 133, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 153, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 141, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 151, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 141, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 190, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 153]))]), $toNativeArray($kindUint32, [0, 16777217, 33554434, 50331651, 67108868, 83886085, 100663302, 117440519, 134217736, 150994953, 167772170, 184549387, 201326604, 218103821, 234881038, 251658255, 268435472, 285212689, 301989906, 318767123, 335544340, 352321557, 369098774, 385875991, 402653208, 419430425, 436207642, 452984859, 469762076, 486539293, 503316510, 520093727, 536870944, 553648161, 570425378, 587202595, 603979812, 620757029, 637534246, 654311463, 671088680, 687865897, 704643114, 721420331, 738197548, 754974765, 771751982, 788529199, 805306416, 822083633, 838860850, 855638067, 872415284, 889192501, 905969718, 922746935, 939524152, 956301369, 973078586, 989855803, 1006633020, 1023410237, 1040187454, 1056964671, 1073741888, 1090519105, 1107296322, 1124073539, 1140850756, 1157627973, 1174405190, 1191182407, 1207959624, 1224736841, 1241514058, 1258291275, 1275068492, 1291845709, 1308622926, 1325400143, 1342177360, 1358954577, 1375731794, 1392509011, 1409286228, 1426063445, 1442840662, 1459617879, 1476395096, 1493172313, 1509949530, 1526726747, 1543503964, 1560281181, 1577058398, 1593835615, 1610612832, 1627390049, 1644167266, 1660944483, 1677721700, 1694498917, 1711276134, 1728053351, 1744830568, 1761607785, 1778385002, 1795162219, 1811939436, 1828716653, 1845493870, 1862271087, 1879048304, 1895825521, 1912602738, 1929379955, 1946157172, 1962934389, 1979711606, 1996488823, 2013266040, 2030043257, 2046820474, 2063597691, 2080374908, 2097152125, 2113929342, 2130706559, 2684354720, 2717909154, 2734686371, 2751463588, 2785018022, 2801795239, 2835349673, 2868904107, 2885681324, 2902458541, 2919235758, 2952790192, 2969567409, 2986344626, 3003121843, 3036676277, 3053453494, 3070230711, 3103785145, 3137339579, 3154116796, 3170894013, 3187671230, 3288334532, 3305111749, 2936012998, 3372220617, 3539992787, 3573547221, 3590324438, 3607101655, 2818572504, 3690987740, 3741319391, 3825205476, 3841982693, 3204448486, 3909091561, 4076863731, 4110418165, 4127195382, 4143972599, 3087007992, 4227858684, 3254780160, 3791651073, 3221225732, 3758096645, 3271557382, 3808428295, 3355443468, 3892314381, 3338666258, 3875537171, 3405775126, 3942646039, 3321889048, 3858759961, 3422552354, 3959423267, 3456106794, 3992977707, 3238002990, 3774873903, 3439329590, 3976200503, 3472884027, 4009754940, 3640656193, 4177527106, 3506438467, 4043309380, 3523215685, 4060086598, 3556770124, 4093641037, 2852127062, 3120562519, 3657433434, 4194304347, 3489661280, 4026532193, 3674210666, 4211081579, 3623879026, 4160749939, 3388998009, 3925868922, 3707765115, 4244636028, 3724542333, 4261413246, 4278198297, 3019907100, 2701139997, 2768248862, 2768248862, 2768248862, 2768248862, 2768248862, 2768248862, 2768248862, 2768248862, 2768248862, 2768248862, 2768248862, 2768248862, 2768248862, 2768248862, 2768248862, 2768248862, 2768248862, 2768248862, 2768248862, 2768248862, 2768248862, 2768248862, 2768248862, 2768248862, 2768248862, 2768248862, 2768248862, 2768248862, 2768248862, 2768248862, 2768248862, 2768248862, 2768248862])); + $pkg.ISO8859_13 = iso8859_13; + iso8859_14 = new Charmap.ptr("ISO 8859-14", 110, true, 128, 26, $toNativeArray($kindStruct, [new utf8Enc.ptr(1, $toNativeArray($kindUint8, [0, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [1, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [2, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [3, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [4, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [5, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [6, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [7, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [8, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [9, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [10, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [11, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [12, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [13, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [14, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [15, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [16, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [17, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [18, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [19, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [20, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [21, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [22, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [23, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [24, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [25, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [26, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [27, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [28, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [29, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [30, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [31, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [32, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [33, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [34, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [35, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [36, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [37, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [38, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [39, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [40, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [41, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [42, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [43, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [44, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [45, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [46, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [47, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [48, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [49, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [50, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [51, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [52, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [53, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [54, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [55, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [56, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [57, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [58, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [59, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [60, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [61, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [62, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [63, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [64, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [65, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [66, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [67, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [68, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [69, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [70, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [71, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [72, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [73, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [74, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [75, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [76, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [77, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [78, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [79, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [80, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [81, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [82, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [83, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [84, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [85, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [86, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [87, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [88, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [89, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [90, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [91, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [92, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [93, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [94, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [95, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [96, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [97, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [98, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [99, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [100, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [101, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [102, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [103, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [104, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [105, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [106, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [107, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [108, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [109, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [110, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [111, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [112, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [113, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [114, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [115, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [116, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [117, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [118, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [119, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [120, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [121, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [122, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [123, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [124, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [125, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [126, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [127, 0, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 160, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [225, 184, 130])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [225, 184, 131])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 138, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 139, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [225, 184, 138])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 167, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [225, 186, 128])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 169, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [225, 186, 130])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [225, 184, 139])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [225, 187, 178])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 184, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [225, 184, 158])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [225, 184, 159])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 161, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [225, 185, 128])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [225, 185, 129])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 182, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [225, 185, 150])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [225, 186, 129])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [225, 185, 151])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [225, 186, 131])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [225, 185, 160])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [225, 187, 179])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [225, 186, 132])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [225, 186, 133])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [225, 185, 161])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 128, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 131, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 133, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 136, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 137, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 138, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 139, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 140, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 141, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 142, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 143, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 146, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 148, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 149, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 150, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [225, 185, 170])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 153, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 156, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 157, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 182, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [225, 185, 171])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 191, 0]))]), $toNativeArray($kindUint32, [0, 16777217, 33554434, 50331651, 67108868, 83886085, 100663302, 117440519, 134217736, 150994953, 167772170, 184549387, 201326604, 218103821, 234881038, 251658255, 268435472, 285212689, 301989906, 318767123, 335544340, 352321557, 369098774, 385875991, 402653208, 419430425, 436207642, 452984859, 469762076, 486539293, 503316510, 520093727, 536870944, 553648161, 570425378, 587202595, 603979812, 620757029, 637534246, 654311463, 671088680, 687865897, 704643114, 721420331, 738197548, 754974765, 771751982, 788529199, 805306416, 822083633, 838860850, 855638067, 872415284, 889192501, 905969718, 922746935, 939524152, 956301369, 973078586, 989855803, 1006633020, 1023410237, 1040187454, 1056964671, 1073741888, 1090519105, 1107296322, 1124073539, 1140850756, 1157627973, 1174405190, 1191182407, 1207959624, 1224736841, 1241514058, 1258291275, 1275068492, 1291845709, 1308622926, 1325400143, 1342177360, 1358954577, 1375731794, 1392509011, 1409286228, 1426063445, 1442840662, 1459617879, 1476395096, 1493172313, 1509949530, 1526726747, 1543503964, 1560281181, 1577058398, 1593835615, 1610612832, 1627390049, 1644167266, 1660944483, 1677721700, 1694498917, 1711276134, 1728053351, 1744830568, 1761607785, 1778385002, 1795162219, 1811939436, 1828716653, 1845493870, 1862271087, 1879048304, 1895825521, 1912602738, 1929379955, 1946157172, 1962934389, 1979711606, 1996488823, 2013266040, 2030043257, 2046820474, 2063597691, 2080374908, 2097152125, 2113929342, 2130706559, 2684354720, 2734686371, 2801795239, 2835349673, 2902458541, 2919235758, 3053453494, 3221225664, 3238002881, 3254780098, 3271557315, 3288334532, 3305111749, 3321888966, 3338666183, 3355443400, 3372220617, 3388997834, 3405775051, 3422552268, 3439329485, 3456106702, 3472883919, 3506438353, 3523215570, 3539992787, 3556770004, 3573547221, 3590324438, 3623878872, 3640656089, 3657433306, 3674210523, 3690987740, 3707764957, 3741319391, 3758096608, 3774873825, 3791651042, 3808428259, 3825205476, 3841982693, 3858759910, 3875537127, 3892314344, 3909091561, 3925868778, 3942645995, 3959423212, 3976200429, 3992977646, 4009754863, 4043309297, 4060086514, 4076863731, 4093640948, 4110418165, 4127195382, 4160749816, 4177527033, 4194304250, 4211081467, 4227858684, 4244635901, 4278190335, 2751463690, 2768240907, 2986344736, 3003121953, 3489661300, 4026532213, 3724542326, 4261413239, 2936013176, 2701139458, 2717916675, 2785025546, 2868911627, 2952797726, 2969574943, 3019906624, 3036683841, 3070238294, 3103792727, 3137347168, 3204456033, 3607109226, 4143980139, 2818580096, 3087015553, 2852134530, 3120569987, 3170901636, 3187678853, 2885689074, 3154124531, 3154124531, 3154124531, 3154124531, 3154124531, 3154124531, 3154124531, 3154124531, 3154124531, 3154124531, 3154124531, 3154124531, 3154124531, 3154124531, 3154124531, 3154124531, 3154124531, 3154124531, 3154124531, 3154124531, 3154124531, 3154124531, 3154124531, 3154124531, 3154124531, 3154124531, 3154124531, 3154124531, 3154124531, 3154124531, 3154124531, 3154124531, 3154124531])); + $pkg.ISO8859_14 = iso8859_14; + iso8859_15 = new Charmap.ptr("ISO 8859-15", 111, true, 128, 26, $toNativeArray($kindStruct, [new utf8Enc.ptr(1, $toNativeArray($kindUint8, [0, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [1, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [2, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [3, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [4, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [5, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [6, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [7, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [8, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [9, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [10, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [11, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [12, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [13, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [14, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [15, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [16, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [17, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [18, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [19, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [20, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [21, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [22, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [23, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [24, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [25, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [26, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [27, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [28, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [29, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [30, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [31, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [32, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [33, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [34, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [35, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [36, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [37, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [38, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [39, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [40, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [41, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [42, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [43, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [44, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [45, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [46, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [47, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [48, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [49, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [50, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [51, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [52, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [53, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [54, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [55, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [56, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [57, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [58, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [59, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [60, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [61, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [62, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [63, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [64, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [65, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [66, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [67, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [68, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [69, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [70, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [71, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [72, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [73, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [74, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [75, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [76, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [77, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [78, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [79, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [80, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [81, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [82, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [83, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [84, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [85, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [86, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [87, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [88, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [89, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [90, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [91, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [92, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [93, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [94, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [95, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [96, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [97, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [98, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [99, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [100, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [101, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [102, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [103, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [104, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [105, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [106, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [107, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [108, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [109, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [110, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [111, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [112, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [113, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [114, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [115, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [116, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [117, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [118, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [119, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [120, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [121, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [122, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [123, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [124, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [125, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [126, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [127, 0, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 163, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 130, 172])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 190, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 146, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 191, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 128, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 131, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 133, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 136, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 137, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 138, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 139, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 140, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 141, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 142, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 143, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 144, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 146, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 148, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 149, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 150, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 151, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 153, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 156, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 157, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 158, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 190, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 191, 0]))]), $toNativeArray($kindUint32, [0, 16777217, 33554434, 50331651, 67108868, 83886085, 100663302, 117440519, 134217736, 150994953, 167772170, 184549387, 201326604, 218103821, 234881038, 251658255, 268435472, 285212689, 301989906, 318767123, 335544340, 352321557, 369098774, 385875991, 402653208, 419430425, 436207642, 452984859, 469762076, 486539293, 503316510, 520093727, 536870944, 553648161, 570425378, 587202595, 603979812, 620757029, 637534246, 654311463, 671088680, 687865897, 704643114, 721420331, 738197548, 754974765, 771751982, 788529199, 805306416, 822083633, 838860850, 855638067, 872415284, 889192501, 905969718, 922746935, 939524152, 956301369, 973078586, 989855803, 1006633020, 1023410237, 1040187454, 1056964671, 1073741888, 1090519105, 1107296322, 1124073539, 1140850756, 1157627973, 1174405190, 1191182407, 1207959624, 1224736841, 1241514058, 1258291275, 1275068492, 1291845709, 1308622926, 1325400143, 1342177360, 1358954577, 1375731794, 1392509011, 1409286228, 1426063445, 1442840662, 1459617879, 1476395096, 1493172313, 1509949530, 1526726747, 1543503964, 1560281181, 1577058398, 1593835615, 1610612832, 1627390049, 1644167266, 1660944483, 1677721700, 1694498917, 1711276134, 1728053351, 1744830568, 1761607785, 1778385002, 1795162219, 1811939436, 1828716653, 1845493870, 1862271087, 1879048304, 1895825521, 1912602738, 1929379955, 1946157172, 1962934389, 1979711606, 1996488823, 2013266040, 2030043257, 2046820474, 2063597691, 2080374908, 2097152125, 2113929342, 2130706559, 2684354720, 2701131937, 2717909154, 2734686371, 2768240805, 2801795239, 2835349673, 2852126890, 2868904107, 2885681324, 2902458541, 2919235758, 2936012975, 2952790192, 2969567409, 2986344626, 3003121843, 3036676277, 3053453494, 3070230711, 3103785145, 3120562362, 3137339579, 3204448447, 3221225664, 3238002881, 3254780098, 3271557315, 3288334532, 3305111749, 3321888966, 3338666183, 3355443400, 3372220617, 3388997834, 3405775051, 3422552268, 3439329485, 3456106702, 3472883919, 3489661136, 3506438353, 3523215570, 3539992787, 3556770004, 3573547221, 3590324438, 3607101655, 3623878872, 3640656089, 3657433306, 3674210523, 3690987740, 3707764957, 3724542174, 3741319391, 3758096608, 3774873825, 3791651042, 3808428259, 3825205476, 3841982693, 3858759910, 3875537127, 3892314344, 3909091561, 3925868778, 3942645995, 3959423212, 3976200429, 3992977646, 4009754863, 4026532080, 4043309297, 4060086514, 4076863731, 4093640948, 4110418165, 4127195382, 4143972599, 4160749816, 4177527033, 4194304250, 4211081467, 4227858684, 4244635901, 4261413118, 4278190335, 3154116946, 3170894163, 2785018208, 2818572641, 3187671416, 3019899261, 3087008126, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788])); + $pkg.ISO8859_15 = iso8859_15; + iso8859_16 = new Charmap.ptr("ISO 8859-16", 112, true, 128, 26, $toNativeArray($kindStruct, [new utf8Enc.ptr(1, $toNativeArray($kindUint8, [0, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [1, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [2, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [3, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [4, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [5, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [6, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [7, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [8, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [9, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [10, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [11, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [12, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [13, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [14, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [15, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [16, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [17, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [18, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [19, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [20, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [21, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [22, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [23, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [24, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [25, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [26, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [27, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [28, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [29, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [30, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [31, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [32, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [33, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [34, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [35, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [36, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [37, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [38, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [39, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [40, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [41, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [42, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [43, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [44, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [45, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [46, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [47, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [48, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [49, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [50, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [51, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [52, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [53, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [54, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [55, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [56, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [57, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [58, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [59, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [60, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [61, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [62, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [63, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [64, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [65, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [66, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [67, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [68, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [69, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [70, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [71, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [72, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [73, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [74, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [75, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [76, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [77, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [78, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [79, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [80, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [81, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [82, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [83, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [84, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [85, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [86, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [87, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [88, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [89, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [90, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [91, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [92, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [93, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [94, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [95, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [96, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [97, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [98, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [99, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [100, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [101, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [102, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [103, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [104, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [105, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [106, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [107, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [108, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [109, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [110, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [111, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [112, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [113, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [114, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [115, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [116, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [117, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [118, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [119, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [120, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [121, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [122, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [123, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [124, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [125, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [126, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [127, 0, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 133, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 129, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 130, 172])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 158])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [200, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 140, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 189, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 157])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 190, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 141, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [200, 153, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 146, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 128, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 136, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 137, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 138, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 139, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 140, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 141, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 142, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 143, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 144, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 131, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 146, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 148, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 144, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 150, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 153, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 156, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [200, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 131, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 153, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [200, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 191, 0]))]), $toNativeArray($kindUint32, [0, 16777217, 33554434, 50331651, 67108868, 83886085, 100663302, 117440519, 134217736, 150994953, 167772170, 184549387, 201326604, 218103821, 234881038, 251658255, 268435472, 285212689, 301989906, 318767123, 335544340, 352321557, 369098774, 385875991, 402653208, 419430425, 436207642, 452984859, 469762076, 486539293, 503316510, 520093727, 536870944, 553648161, 570425378, 587202595, 603979812, 620757029, 637534246, 654311463, 671088680, 687865897, 704643114, 721420331, 738197548, 754974765, 771751982, 788529199, 805306416, 822083633, 838860850, 855638067, 872415284, 889192501, 905969718, 922746935, 939524152, 956301369, 973078586, 989855803, 1006633020, 1023410237, 1040187454, 1056964671, 1073741888, 1090519105, 1107296322, 1124073539, 1140850756, 1157627973, 1174405190, 1191182407, 1207959624, 1224736841, 1241514058, 1258291275, 1275068492, 1291845709, 1308622926, 1325400143, 1342177360, 1358954577, 1375731794, 1392509011, 1409286228, 1426063445, 1442840662, 1459617879, 1476395096, 1493172313, 1509949530, 1526726747, 1543503964, 1560281181, 1577058398, 1593835615, 1610612832, 1627390049, 1644167266, 1660944483, 1677721700, 1694498917, 1711276134, 1728053351, 1744830568, 1761607785, 1778385002, 1795162219, 1811939436, 1828716653, 1845493870, 1862271087, 1879048304, 1895825521, 1912602738, 1929379955, 1946157172, 1962934389, 1979711606, 1996488823, 2013266040, 2030043257, 2046820474, 2063597691, 2080374908, 2097152125, 2113929342, 2130706559, 2684354720, 2801795239, 2835349673, 2868904107, 2902458541, 2952790192, 2969567409, 3053453494, 3070230711, 3137339579, 3221225664, 3238002881, 3254780098, 3288334532, 3321888966, 3338666183, 3355443400, 3372220617, 3388997834, 3405775051, 3422552268, 3439329485, 3456106702, 3472883919, 3523215570, 3539992787, 3556770004, 3590324438, 3640656089, 3657433306, 3674210523, 3690987740, 3741319391, 3758096608, 3774873825, 3791651042, 3825205476, 3858759910, 3875537127, 3892314344, 3909091561, 3925868778, 3942645995, 3959423212, 3976200429, 3992977646, 4009754863, 4060086514, 4076863731, 4093640948, 4127195382, 4177527033, 4194304250, 4211081467, 4227858684, 4278190335, 3271557378, 3808428291, 2701132036, 2717909253, 3305111814, 3841982727, 2986344716, 3103785229, 3489661200, 4026532113, 3707765016, 4244635929, 2734686529, 3003121986, 3506438467, 4043309380, 3573547344, 4110418257, 3154116946, 3170894163, 3607101786, 4143972699, 2785018208, 2818572641, 3623879024, 4160749937, 3187671416, 2885681529, 2919235962, 2936013179, 3204448636, 3019899261, 3087008126, 2852127256, 3120562713, 3724542490, 4261413403, 3036684317, 2768248862, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788, 2751471788])); + $pkg.ISO8859_16 = iso8859_16; + koi8R = new Charmap.ptr("KOI8-R", 2084, true, 128, 26, $toNativeArray($kindStruct, [new utf8Enc.ptr(1, $toNativeArray($kindUint8, [0, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [1, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [2, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [3, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [4, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [5, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [6, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [7, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [8, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [9, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [10, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [11, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [12, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [13, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [14, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [15, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [16, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [17, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [18, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [19, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [20, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [21, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [22, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [23, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [24, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [25, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [26, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [27, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [28, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [29, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [30, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [31, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [32, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [33, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [34, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [35, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [36, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [37, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [38, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [39, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [40, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [41, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [42, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [43, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [44, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [45, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [46, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [47, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [48, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [49, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [50, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [51, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [52, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [53, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [54, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [55, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [56, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [57, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [58, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [59, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [60, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [61, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [62, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [63, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [64, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [65, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [66, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [67, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [68, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [69, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [70, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [71, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [72, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [73, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [74, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [75, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [76, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [77, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [78, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [79, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [80, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [81, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [82, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [83, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [84, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [85, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [86, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [87, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [88, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [89, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [90, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [91, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [92, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [93, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [94, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [95, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [96, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [97, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [98, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [99, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [100, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [101, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [102, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [103, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [104, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [105, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [106, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [107, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [108, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [109, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [110, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [111, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [112, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [113, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [114, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [115, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [116, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [117, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [118, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [119, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [120, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [121, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [122, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [123, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [124, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [125, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [126, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [127, 0, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 128])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 130])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 140])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 144])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 148])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 152])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 156])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 164])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 172])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 180])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 188])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 128])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 132])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 136])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 140])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 144])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 145])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 146])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 147])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 140, 160])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 160])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 136, 153])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 136, 154])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 137, 136])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 137, 164])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 137, 165])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 160, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 140, 161])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 183, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 144])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 145])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 146])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 145, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 147])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 148])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 149])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 150])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 151])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 152])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 153])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 154])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 155])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 156])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 157])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 158])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 159])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 160])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 161])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 129, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 162])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 163])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 164])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 165])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 166])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 167])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 168])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 169])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 170])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 171])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 172])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 142, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 133, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 190, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 191, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 143, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 128, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 131, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 140, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 139, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 136, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 141, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 137, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 138, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 144, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 148, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 149, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 153, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 156, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 157, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 158, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 150, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 146, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 151, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 170, 0]))]), $toNativeArray($kindUint32, [0, 16777217, 33554434, 50331651, 67108868, 83886085, 100663302, 117440519, 134217736, 150994953, 167772170, 184549387, 201326604, 218103821, 234881038, 251658255, 268435472, 285212689, 301989906, 318767123, 335544340, 352321557, 369098774, 385875991, 402653208, 419430425, 436207642, 452984859, 469762076, 486539293, 503316510, 520093727, 536870944, 553648161, 570425378, 587202595, 603979812, 620757029, 637534246, 654311463, 671088680, 687865897, 704643114, 721420331, 738197548, 754974765, 771751982, 788529199, 805306416, 822083633, 838860850, 855638067, 872415284, 889192501, 905969718, 922746935, 939524152, 956301369, 973078586, 989855803, 1006633020, 1023410237, 1040187454, 1056964671, 1073741888, 1090519105, 1107296322, 1124073539, 1140850756, 1157627973, 1174405190, 1191182407, 1207959624, 1224736841, 1241514058, 1258291275, 1275068492, 1291845709, 1308622926, 1325400143, 1342177360, 1358954577, 1375731794, 1392509011, 1409286228, 1426063445, 1442840662, 1459617879, 1476395096, 1493172313, 1509949530, 1526726747, 1543503964, 1560281181, 1577058398, 1593835615, 1610612832, 1627390049, 1644167266, 1660944483, 1677721700, 1694498917, 1711276134, 1728053351, 1744830568, 1761607785, 1778385002, 1795162219, 1811939436, 1828716653, 1845493870, 1862271087, 1879048304, 1895825521, 1912602738, 1929379955, 1946157172, 1962934389, 1979711606, 1996488823, 2013266040, 2030043257, 2046820474, 2063597691, 2080374908, 2097152125, 2113929342, 2130706559, 2583691424, 3204448425, 2617245872, 2634023090, 2650800311, 2667577591, 3003122689, 3774874640, 3791651857, 4143973394, 3875537939, 3825206292, 3841983509, 4127196182, 4194305047, 3909092376, 3925869593, 3942646810, 3959424027, 3976201244, 3992978461, 4009755678, 4026532895, 4060087328, 4076864545, 4093641762, 4110418979, 3858760740, 3892315173, 3808429094, 4261413927, 4211082280, 4244636713, 4278191146, 4177527851, 4160750636, 4227859501, 3758097454, 4043310127, 3238003760, 3254780977, 3607102514, 3338667059, 3288335412, 3305112629, 3590325302, 3657434167, 3372221496, 3388998713, 3405775930, 3422553147, 3439330364, 3456107581, 3472884798, 3489662015, 3523216448, 3539993665, 3556770882, 3573548099, 3321889860, 3355444293, 3271558214, 3724543047, 3674211400, 3707765833, 3741320266, 3640656971, 3623879756, 3690988621, 3221226574, 3506439247, 2734687313, 2499813913, 2516591130, 2533368392, 2550145636, 2566922853, 2466259744, 2600477473, 2147493120, 2164270338, 2181047564, 2197824784, 2214602004, 2231379224, 2248156444, 2264933668, 2281710892, 2298488116, 2315265340, 2684364112, 2701141329, 2717918546, 2751472979, 2768250196, 2785027413, 2801804630, 2818581847, 2835359064, 2852136281, 2868913498, 2885690715, 2902467932, 2919245149, 2936022366, 2952799583, 2969576800, 2986354017, 3019908450, 3036685667, 3053462884, 3070240101, 3087017318, 3103794535, 3120571752, 3137348969, 3154126186, 3170903403, 3187680620, 2332042624, 2348819844, 2365597064, 2382374284, 2399151504, 2415928721, 2432705938, 2449483155, 2483037600])); + $pkg.KOI8R = koi8R; + koi8U = new Charmap.ptr("KOI8-U", 2088, true, 128, 26, $toNativeArray($kindStruct, [new utf8Enc.ptr(1, $toNativeArray($kindUint8, [0, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [1, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [2, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [3, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [4, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [5, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [6, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [7, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [8, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [9, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [10, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [11, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [12, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [13, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [14, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [15, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [16, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [17, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [18, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [19, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [20, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [21, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [22, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [23, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [24, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [25, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [26, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [27, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [28, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [29, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [30, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [31, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [32, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [33, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [34, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [35, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [36, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [37, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [38, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [39, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [40, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [41, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [42, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [43, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [44, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [45, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [46, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [47, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [48, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [49, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [50, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [51, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [52, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [53, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [54, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [55, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [56, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [57, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [58, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [59, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [60, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [61, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [62, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [63, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [64, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [65, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [66, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [67, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [68, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [69, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [70, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [71, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [72, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [73, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [74, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [75, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [76, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [77, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [78, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [79, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [80, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [81, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [82, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [83, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [84, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [85, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [86, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [87, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [88, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [89, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [90, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [91, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [92, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [93, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [94, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [95, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [96, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [97, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [98, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [99, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [100, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [101, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [102, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [103, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [104, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [105, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [106, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [107, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [108, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [109, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [110, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [111, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [112, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [113, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [114, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [115, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [116, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [117, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [118, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [119, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [120, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [121, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [122, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [123, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [124, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [125, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [126, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [127, 0, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 128])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 130])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 140])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 144])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 148])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 152])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 156])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 164])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 172])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 180])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 148, 188])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 128])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 132])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 136])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 140])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 144])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 145])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 146])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 147])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 140, 160])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 150, 160])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 136, 153])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 136, 154])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 137, 136])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 137, 164])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 137, 165])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 160, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 140, 161])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 183, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 144])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 145])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 146])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 148, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 148])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 150, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 151, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 151])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 152])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 153])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 154])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 155])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [210, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 158, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 158])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 159])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 160])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 161])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 132, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 163])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 135, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 166])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 167])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 168])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 169])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 149, 170])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [210, 144, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 142, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 142, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 133, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 190, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 191, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 143, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 128, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 131, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 140, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 139, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 136, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 141, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 137, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 138, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 144, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 148, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 149, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 153, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 156, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 157, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 158, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 150, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 146, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 151, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 170, 0]))]), $toNativeArray($kindUint32, [0, 16777217, 33554434, 50331651, 67108868, 83886085, 100663302, 117440519, 134217736, 150994953, 167772170, 184549387, 201326604, 218103821, 234881038, 251658255, 268435472, 285212689, 301989906, 318767123, 335544340, 352321557, 369098774, 385875991, 402653208, 419430425, 436207642, 452984859, 469762076, 486539293, 503316510, 520093727, 536870944, 553648161, 570425378, 587202595, 603979812, 620757029, 637534246, 654311463, 671088680, 687865897, 704643114, 721420331, 738197548, 754974765, 771751982, 788529199, 805306416, 822083633, 838860850, 855638067, 872415284, 889192501, 905969718, 922746935, 939524152, 956301369, 973078586, 989855803, 1006633020, 1023410237, 1040187454, 1056964671, 1073741888, 1090519105, 1107296322, 1124073539, 1140850756, 1157627973, 1174405190, 1191182407, 1207959624, 1224736841, 1241514058, 1258291275, 1275068492, 1291845709, 1308622926, 1325400143, 1342177360, 1358954577, 1375731794, 1392509011, 1409286228, 1426063445, 1442840662, 1459617879, 1476395096, 1493172313, 1509949530, 1526726747, 1543503964, 1560281181, 1577058398, 1593835615, 1610612832, 1627390049, 1644167266, 1660944483, 1677721700, 1694498917, 1711276134, 1728053351, 1744830568, 1761607785, 1778385002, 1795162219, 1811939436, 1828716653, 1845493870, 1862271087, 1879048304, 1895825521, 1912602738, 1929379955, 1946157172, 1962934389, 1979711606, 1996488823, 2013266040, 2030043257, 2046820474, 2063597691, 2080374908, 2097152125, 2113929342, 2130706559, 2583691424, 3204448425, 2617245872, 2634023090, 2650800311, 2667577591, 3003122689, 3019899908, 3053454342, 3070231559, 3187672078, 3774874640, 3791651857, 4143973394, 3875537939, 3825206292, 3841983509, 4127196182, 4194305047, 3909092376, 3925869593, 3942646810, 3959424027, 3976201244, 3992978461, 4009755678, 4026532895, 4060087328, 4076864545, 4093641762, 4110418979, 3858760740, 3892315173, 3808429094, 4261413927, 4211082280, 4244636713, 4278191146, 4177527851, 4160750636, 4227859501, 3758097454, 4043310127, 3238003760, 3254780977, 3607102514, 3338667059, 3288335412, 3305112629, 3590325302, 3657434167, 3372221496, 3388998713, 3405775930, 3422553147, 3439330364, 3456107581, 3472884798, 3489662015, 3523216448, 3539993665, 3556770882, 3573548099, 3321889860, 3355444293, 3271558214, 3724543047, 3674211400, 3707765833, 3741320266, 3640656971, 3623879756, 3690988621, 3221226574, 3506439247, 2734687313, 2751464532, 2785018966, 2801796183, 2919236702, 3170894992, 2902459537, 2499813913, 2516591130, 2533368392, 2550145636, 2566922853, 2466259744, 2600477473, 2147493120, 2164270338, 2181047564, 2197824784, 2214602004, 2231379224, 2248156444, 2264933668, 2281710892, 2298488116, 2315265340, 2684364112, 2701141329, 2717918546, 2768250196, 2818581847, 2835359064, 2852136281, 2868913498, 2885690715, 2936022366, 2952799583, 2969576800, 2986354017, 3036685667, 3087017318, 3103794535, 3120571752, 3137348969, 3154126186, 2332042624, 2348819844, 2365597064, 2382374284, 2399151504, 2415928721, 2432705938, 2449483155, 2483037600])); + $pkg.KOI8U = koi8U; + macintosh = new Charmap.ptr("Macintosh", 2027, true, 128, 26, $toNativeArray($kindStruct, [new utf8Enc.ptr(1, $toNativeArray($kindUint8, [0, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [1, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [2, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [3, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [4, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [5, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [6, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [7, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [8, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [9, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [10, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [11, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [12, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [13, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [14, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [15, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [16, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [17, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [18, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [19, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [20, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [21, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [22, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [23, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [24, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [25, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [26, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [27, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [28, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [29, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [30, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [31, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [32, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [33, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [34, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [35, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [36, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [37, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [38, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [39, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [40, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [41, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [42, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [43, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [44, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [45, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [46, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [47, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [48, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [49, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [50, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [51, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [52, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [53, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [54, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [55, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [56, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [57, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [58, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [59, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [60, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [61, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [62, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [63, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [64, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [65, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [66, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [67, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [68, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [69, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [70, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [71, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [72, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [73, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [74, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [75, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [76, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [77, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [78, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [79, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [80, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [81, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [82, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [83, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [84, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [85, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [86, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [87, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [88, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [89, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [90, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [91, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [92, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [93, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [94, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [95, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [96, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [97, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [98, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [99, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [100, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [101, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [102, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [103, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [104, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [105, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [106, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [107, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [108, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [109, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [110, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [111, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [112, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [113, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [114, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [115, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [116, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [117, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [118, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [119, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [120, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [121, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [122, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [123, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [124, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [125, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [126, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [127, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 133, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 137, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 150, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 156, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 188, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 160])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 167, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 162])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 169, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 132, 162])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 168, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 137, 160])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 152, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 136, 158])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 177, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 137, 164])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 137, 165])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 181, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 136, 130])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 136, 145])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 136, 143])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 128, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 136, 171])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 191, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 172, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 136, 154])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [198, 146, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 137, 136])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 136, 134])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 187, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 166])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 128, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 131, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 149, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 146, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 147, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 147])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 148])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 156])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 157])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 152])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 153])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 183, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 151, 138])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 191, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 184, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 129, 132])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 130, 172])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 185])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 186])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 172, 129])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 172, 130])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 161])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 183, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 154])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 158])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 176])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 138, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 139, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 136, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 141, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 142, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 143, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 140, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 148, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 163, 191])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 146, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 153, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [203, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [203, 156, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [203, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [203, 153, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [203, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [203, 157, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [203, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [203, 135, 0]))]), $toNativeArray($kindUint32, [0, 16777217, 33554434, 50331651, 67108868, 83886085, 100663302, 117440519, 134217736, 150994953, 167772170, 184549387, 201326604, 218103821, 234881038, 251658255, 268435472, 285212689, 301989906, 318767123, 335544340, 352321557, 369098774, 385875991, 402653208, 419430425, 436207642, 452984859, 469762076, 486539293, 503316510, 520093727, 536870944, 553648161, 570425378, 587202595, 603979812, 620757029, 637534246, 654311463, 671088680, 687865897, 704643114, 721420331, 738197548, 754974765, 771751982, 788529199, 805306416, 822083633, 838860850, 855638067, 872415284, 889192501, 905969718, 922746935, 939524152, 956301369, 973078586, 989855803, 1006633020, 1023410237, 1040187454, 1056964671, 1073741888, 1090519105, 1107296322, 1124073539, 1140850756, 1157627973, 1174405190, 1191182407, 1207959624, 1224736841, 1241514058, 1258291275, 1275068492, 1291845709, 1308622926, 1325400143, 1342177360, 1358954577, 1375731794, 1392509011, 1409286228, 1426063445, 1442840662, 1459617879, 1476395096, 1493172313, 1509949530, 1526726747, 1543503964, 1560281181, 1577058398, 1593835615, 1610612832, 1627390049, 1644167266, 1660944483, 1677721700, 1694498917, 1711276134, 1728053351, 1744830568, 1761607785, 1778385002, 1795162219, 1811939436, 1828716653, 1845493870, 1862271087, 1879048304, 1895825521, 1912602738, 1929379955, 1946157172, 1962934389, 1979711606, 1996488823, 2013266040, 2030043257, 2046820474, 2063597691, 2080374908, 2097152125, 2113929342, 2130706559, 3388997792, 3238002849, 2717909154, 2734686371, 3019899045, 2751463591, 2885681320, 2835349673, 3137339562, 3338666155, 3254780076, 2818572462, 4160749743, 2701131952, 2969567409, 2868904116, 3036676277, 2785018038, 3774873783, 4227858616, 3154116794, 3355443387, 3221225663, 3405775040, 3875537089, 3841982658, 3422552259, 2147483844, 2164261061, 2919235782, 2181038279, 3909091528, 2197815497, 3858759882, 3892314315, 3976200396, 3925868749, 3942645966, 3959423183, 2214592721, 4043309266, 3992977619, 4009754836, 3439329493, 2231369942, 2936013016, 4093640921, 4060086490, 4076863707, 2248147164, 2801795295, 2281701600, 2264924385, 2298478818, 2332033251, 2315256036, 2348810469, 3187671270, 2365587687, 2399142120, 2382364905, 2415919338, 2432696555, 2466250988, 2449473773, 2483028206, 2499805423, 2516582641, 2550137074, 2533359859, 2566914292, 2600468725, 2583691510, 3590324471, 3204448504, 2634023161, 2617245946, 2650800379, 2667577596, 3623878911, 4110418225, 3456106834, 3472884051, 3640656248, 3288334738, 4127195846, 4278190791, 4177527512, 4194304729, 4211081946, 4261413595, 4143973084, 4244636381, 3170894761, 3103785920, 3489669139, 3506446356, 3556778008, 3573555225, 3791659034, 3523223580, 3540000797, 3808436254, 2684362784, 3758104609, 2768248866, 3372228646, 3825213488, 3690995769, 3707772986, 3657441348, 3674218668, 2852135202, 3053462018, 3321897478, 3087016463, 3070239249, 3271565850, 2952798750, 3120570923, 3305120328, 2902467168, 2986353252, 3003130469, 3607111114, 4026595583, 3724606209, 3741383426])); + $pkg.Macintosh = macintosh; + windows874 = new Charmap.ptr("Windows 874", 2109, true, 128, 26, $toNativeArray($kindStruct, [new utf8Enc.ptr(1, $toNativeArray($kindUint8, [0, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [1, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [2, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [3, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [4, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [5, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [6, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [7, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [8, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [9, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [10, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [11, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [12, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [13, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [14, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [15, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [16, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [17, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [18, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [19, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [20, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [21, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [22, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [23, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [24, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [25, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [26, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [27, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [28, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [29, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [30, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [31, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [32, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [33, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [34, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [35, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [36, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [37, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [38, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [39, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [40, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [41, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [42, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [43, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [44, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [45, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [46, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [47, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [48, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [49, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [50, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [51, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [52, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [53, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [54, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [55, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [56, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [57, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [58, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [59, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [60, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [61, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [62, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [63, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [64, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [65, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [66, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [67, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [68, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [69, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [70, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [71, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [72, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [73, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [74, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [75, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [76, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [77, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [78, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [79, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [80, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [81, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [82, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [83, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [84, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [85, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [86, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [87, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [88, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [89, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [90, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [91, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [92, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [93, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [94, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [95, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [96, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [97, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [98, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [99, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [100, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [101, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [102, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [103, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [104, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [105, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [106, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [107, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [108, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [109, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [110, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [111, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [112, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [113, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [114, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [115, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [116, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [117, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [118, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [119, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [120, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [121, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [122, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [123, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [124, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [125, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [126, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [127, 0, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 130, 172])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 166])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 152])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 153])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 156])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 157])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 162])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 147])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 148])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 160, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 129])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 130])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 131])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 132])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 133])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 134])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 135])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 136])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 137])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 138])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 139])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 140])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 141])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 142])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 143])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 144])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 145])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 146])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 147])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 148])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 149])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 150])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 151])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 152])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 153])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 154])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 155])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 156])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 157])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 158])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 159])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 160])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 161])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 162])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 163])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 164])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 165])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 166])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 167])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 168])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 169])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 170])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 171])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 172])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 173])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 174])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 175])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 176])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 177])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 178])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 179])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 180])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 181])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 182])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 183])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 184])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 185])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 186])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 184, 191])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 185, 128])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 185, 129])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 185, 130])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 185, 131])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 185, 132])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 185, 133])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 185, 134])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 185, 135])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 185, 136])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 185, 137])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 185, 138])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 185, 139])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 185, 140])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 185, 141])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 185, 142])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 185, 143])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 185, 144])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 185, 145])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 185, 146])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 185, 147])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 185, 148])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 185, 149])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 185, 150])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 185, 151])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 185, 152])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 185, 153])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 185, 154])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [224, 185, 155])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189]))]), $toNativeArray($kindUint32, [0, 16777217, 33554434, 50331651, 67108868, 83886085, 100663302, 117440519, 134217736, 150994953, 167772170, 184549387, 201326604, 218103821, 234881038, 251658255, 268435472, 285212689, 301989906, 318767123, 335544340, 352321557, 369098774, 385875991, 402653208, 419430425, 436207642, 452984859, 469762076, 486539293, 503316510, 520093727, 536870944, 553648161, 570425378, 587202595, 603979812, 620757029, 637534246, 654311463, 671088680, 687865897, 704643114, 721420331, 738197548, 754974765, 771751982, 788529199, 805306416, 822083633, 838860850, 855638067, 872415284, 889192501, 905969718, 922746935, 939524152, 956301369, 973078586, 989855803, 1006633020, 1023410237, 1040187454, 1056964671, 1073741888, 1090519105, 1107296322, 1124073539, 1140850756, 1157627973, 1174405190, 1191182407, 1207959624, 1224736841, 1241514058, 1258291275, 1275068492, 1291845709, 1308622926, 1325400143, 1342177360, 1358954577, 1375731794, 1392509011, 1409286228, 1426063445, 1442840662, 1459617879, 1476395096, 1493172313, 1509949530, 1526726747, 1543503964, 1560281181, 1577058398, 1593835615, 1610612832, 1627390049, 1644167266, 1660944483, 1677721700, 1694498917, 1711276134, 1728053351, 1744830568, 1761607785, 1778385002, 1795162219, 1811939436, 1828716653, 1845493870, 1862271087, 1879048304, 1895825521, 1912602738, 1929379955, 1946157172, 1962934389, 1979711606, 1996488823, 2013266040, 2030043257, 2046820474, 2063597691, 2080374908, 2097152125, 2113929342, 2130706559, 2684354720, 2701135361, 2717912578, 2734689795, 2751467012, 2768244229, 2785021446, 2801798663, 2818575880, 2835353097, 2852130314, 2868907531, 2885684748, 2902461965, 2919239182, 2936016399, 2952793616, 2969570833, 2986348050, 3003125267, 3019902484, 3036679701, 3053456918, 3070234135, 3087011352, 3103788569, 3120565786, 3137343003, 3154120220, 3170897437, 3187674654, 3204451871, 3221229088, 3238006305, 3254783522, 3271560739, 3288337956, 3305115173, 3321892390, 3338669607, 3355446824, 3372224041, 3389001258, 3405778475, 3422555692, 3439332909, 3456110126, 3472887343, 3489664560, 3506441777, 3523218994, 3539996211, 3556773428, 3573550645, 3590327862, 3607105079, 3623882296, 3640659513, 3657436730, 3741322815, 3758100032, 3774877249, 3791654466, 3808431683, 3825208900, 3841986117, 3858763334, 3875540551, 3892317768, 3909094985, 3925872202, 3942649419, 3959426636, 3976203853, 3992981070, 4009758287, 4026535504, 4043312721, 4060089938, 4076867155, 4093644372, 4110421589, 4127198806, 4143976023, 4160753240, 4177530457, 4194307674, 4211084891, 2516590611, 2533367828, 2432704536, 2449481753, 2466258972, 2483036189, 2499813410, 2231377958, 2147492012, 2147492012, 2147492012, 2147492012, 2147492012, 2147492012, 2147492012, 2147492012, 2147492012, 2147492012, 2147492012, 2147492012, 2147492012, 2147492012, 2147492012, 2147492012, 2147492012, 2147492012, 2147492012, 2147492012, 2147492012, 2147492012, 2147492012, 2147492012, 2147492012, 2147492012, 2147492012, 2147492012, 2147492012, 2147492012, 2147492012, 2147492012])); + $pkg.Windows874 = windows874; + windows1250 = new Charmap.ptr("Windows 1250", 2250, true, 128, 26, $toNativeArray($kindStruct, [new utf8Enc.ptr(1, $toNativeArray($kindUint8, [0, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [1, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [2, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [3, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [4, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [5, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [6, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [7, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [8, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [9, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [10, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [11, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [12, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [13, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [14, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [15, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [16, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [17, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [18, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [19, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [20, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [21, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [22, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [23, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [24, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [25, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [26, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [27, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [28, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [29, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [30, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [31, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [32, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [33, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [34, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [35, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [36, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [37, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [38, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [39, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [40, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [41, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [42, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [43, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [44, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [45, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [46, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [47, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [48, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [49, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [50, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [51, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [52, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [53, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [54, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [55, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [56, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [57, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [58, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [59, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [60, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [61, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [62, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [63, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [64, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [65, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [66, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [67, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [68, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [69, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [70, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [71, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [72, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [73, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [74, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [75, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [76, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [77, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [78, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [79, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [80, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [81, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [82, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [83, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [84, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [85, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [86, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [87, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [88, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [89, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [90, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [91, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [92, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [93, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [94, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [95, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [96, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [97, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [98, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [99, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [100, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [101, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [102, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [103, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [104, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [105, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [106, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [107, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [108, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [109, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [110, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [111, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [112, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [113, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [114, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [115, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [116, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [117, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [118, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [119, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [120, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [121, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [122, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [123, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [124, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [125, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [126, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [127, 0, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 130, 172])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 154])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 158])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 166])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 160])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 161])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 176])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 160, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 185])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 185, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 152])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 153])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 156])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 157])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 162])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 147])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 148])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 132, 162])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 161, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 186])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 190, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [203, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [203, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 158, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [203, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 133, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [203, 157, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 190, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 148, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 140, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 137, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 139, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 141, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 142, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 142, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 144, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 131, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 148, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 144, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 150, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 151, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 156, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 157, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 149, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 131, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 141, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 153, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 143, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 136, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 153, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [203, 153, 0]))]), $toNativeArray($kindUint32, [0, 16777217, 33554434, 50331651, 67108868, 83886085, 100663302, 117440519, 134217736, 150994953, 167772170, 184549387, 201326604, 218103821, 234881038, 251658255, 268435472, 285212689, 301989906, 318767123, 335544340, 352321557, 369098774, 385875991, 402653208, 419430425, 436207642, 452984859, 469762076, 486539293, 503316510, 520093727, 536870944, 553648161, 570425378, 587202595, 603979812, 620757029, 637534246, 654311463, 671088680, 687865897, 704643114, 721420331, 738197548, 754974765, 771751982, 788529199, 805306416, 822083633, 838860850, 855638067, 872415284, 889192501, 905969718, 922746935, 939524152, 956301369, 973078586, 989855803, 1006633020, 1023410237, 1040187454, 1056964671, 1073741888, 1090519105, 1107296322, 1124073539, 1140850756, 1157627973, 1174405190, 1191182407, 1207959624, 1224736841, 1241514058, 1258291275, 1275068492, 1291845709, 1308622926, 1325400143, 1342177360, 1358954577, 1375731794, 1392509011, 1409286228, 1426063445, 1442840662, 1459617879, 1476395096, 1493172313, 1509949530, 1526726747, 1543503964, 1560281181, 1577058398, 1593835615, 1610612832, 1627390049, 1644167266, 1660944483, 1677721700, 1694498917, 1711276134, 1728053351, 1744830568, 1761607785, 1778385002, 1795162219, 1811939436, 1828716653, 1845493870, 1862271087, 1879048304, 1895825521, 1912602738, 1929379955, 1946157172, 1962934389, 1979711606, 1996488823, 2013266040, 2030043257, 2046820474, 2063597691, 2080374908, 2097152125, 2113929342, 2130706559, 2684354720, 2751463588, 2785018022, 2801795239, 2818572456, 2835349673, 2868904107, 2885681324, 2902458541, 2919235758, 2952790192, 2969567409, 3019899060, 3036676277, 3053453494, 3070230711, 3087007928, 3137339579, 3238002881, 3254780098, 3288334532, 3338666183, 3372220617, 3405775051, 3439329485, 3456106702, 3539992787, 3556770004, 3590324438, 3607101655, 3657433306, 3690987740, 3707764957, 3741319391, 3774873825, 3791651042, 3825205476, 3875537127, 3909091561, 3942645995, 3976200429, 3992977646, 4076863731, 4093640948, 4127195382, 4143972599, 4194304250, 4227858684, 4244635901, 3271557378, 3808428291, 2768240900, 3103785221, 3321889030, 3858759943, 3355443468, 3892314381, 3472883982, 4009754895, 3489661200, 4026532113, 3388997912, 3925868825, 3422552346, 3959423259, 3305111865, 3841982778, 3154116925, 3187671358, 2734686529, 3003121986, 3506438467, 4043309380, 3523215687, 4060086600, 3573547344, 4110418257, 3221225812, 3758096725, 3623879000, 4160749913, 2348810586, 2617246043, 2852127070, 3120562527, 2315256160, 2583691617, 3724542306, 4261413219, 2365587812, 2634023269, 3640656238, 4177527151, 3674210672, 4211081585, 2399142265, 2667577722, 2936013179, 3204448636, 2382365053, 2650800510, 2701132487, 2717909720, 4278190809, 2986345179, 3170894557, 2516590611, 2533367828, 2432704536, 2449481753, 2181046298, 2466258972, 2483036189, 2214600734, 2248155168, 2264932385, 2499813410, 2231377958, 2298486832, 2332041273, 2600476730, 2147492012, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530])); + $pkg.Windows1250 = windows1250; + windows1251 = new Charmap.ptr("Windows 1251", 2251, true, 128, 26, $toNativeArray($kindStruct, [new utf8Enc.ptr(1, $toNativeArray($kindUint8, [0, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [1, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [2, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [3, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [4, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [5, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [6, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [7, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [8, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [9, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [10, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [11, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [12, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [13, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [14, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [15, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [16, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [17, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [18, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [19, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [20, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [21, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [22, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [23, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [24, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [25, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [26, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [27, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [28, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [29, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [30, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [31, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [32, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [33, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [34, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [35, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [36, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [37, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [38, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [39, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [40, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [41, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [42, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [43, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [44, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [45, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [46, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [47, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [48, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [49, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [50, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [51, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [52, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [53, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [54, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [55, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [56, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [57, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [58, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [59, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [60, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [61, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [62, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [63, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [64, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [65, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [66, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [67, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [68, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [69, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [70, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [71, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [72, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [73, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [74, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [75, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [76, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [77, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [78, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [79, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [80, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [81, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [82, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [83, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [84, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [85, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [86, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [87, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [88, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [89, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [90, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [91, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [92, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [93, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [94, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [95, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [96, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [97, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [98, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [99, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [100, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [101, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [102, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [103, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [104, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [105, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [106, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [107, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [108, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [109, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [110, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [111, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [112, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [113, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [114, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [115, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [116, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [117, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [118, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [119, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [120, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [121, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [122, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [123, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [124, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [125, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [126, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [127, 0, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 131, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 154])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 147, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 158])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 166])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 160])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 161])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 130, 172])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 176])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 137, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 185])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 138, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 140, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 139, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 143, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 146, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 152])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 153])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 156])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 157])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 162])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 147])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 148])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 132, 162])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 153, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 186])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 156, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 142, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 158, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 136, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [210, 144, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 150, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [210, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 145, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 132, 150])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 148, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 133, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 149, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 151, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 144, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 146, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 148, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 149, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 150, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 151, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 153, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 156, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 157, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 158, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 190, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [208, 191, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 128, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 131, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 133, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 136, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 137, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 138, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 139, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 140, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 141, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 142, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [209, 143, 0]))]), $toNativeArray($kindUint32, [0, 16777217, 33554434, 50331651, 67108868, 83886085, 100663302, 117440519, 134217736, 150994953, 167772170, 184549387, 201326604, 218103821, 234881038, 251658255, 268435472, 285212689, 301989906, 318767123, 335544340, 352321557, 369098774, 385875991, 402653208, 419430425, 436207642, 452984859, 469762076, 486539293, 503316510, 520093727, 536870944, 553648161, 570425378, 587202595, 603979812, 620757029, 637534246, 654311463, 671088680, 687865897, 704643114, 721420331, 738197548, 754974765, 771751982, 788529199, 805306416, 822083633, 838860850, 855638067, 872415284, 889192501, 905969718, 922746935, 939524152, 956301369, 973078586, 989855803, 1006633020, 1023410237, 1040187454, 1056964671, 1073741888, 1090519105, 1107296322, 1124073539, 1140850756, 1157627973, 1174405190, 1191182407, 1207959624, 1224736841, 1241514058, 1258291275, 1275068492, 1291845709, 1308622926, 1325400143, 1342177360, 1358954577, 1375731794, 1392509011, 1409286228, 1426063445, 1442840662, 1459617879, 1476395096, 1493172313, 1509949530, 1526726747, 1543503964, 1560281181, 1577058398, 1593835615, 1610612832, 1627390049, 1644167266, 1660944483, 1677721700, 1694498917, 1711276134, 1728053351, 1744830568, 1761607785, 1778385002, 1795162219, 1811939436, 1828716653, 1845493870, 1862271087, 1879048304, 1895825521, 1912602738, 1929379955, 1946157172, 1962934389, 1979711606, 1996488823, 2013266040, 2030043257, 2046820474, 2063597691, 2080374908, 2097152125, 2113929342, 2130706559, 2684354720, 2751463588, 2785018022, 2801795239, 2835349673, 2868904107, 2885681324, 2902458541, 2919235758, 2952790192, 2969567409, 3036676277, 3053453494, 3070230711, 3137339579, 2818573313, 2147484674, 2164261891, 2852127748, 3170894853, 2986345478, 2936013831, 2734687240, 2315256841, 2348811274, 2382365707, 2365588492, 2701132814, 2399142927, 3221226512, 3238003729, 3254780946, 3271558163, 3288335380, 3305112597, 3321889814, 3338667031, 3355444248, 3372221465, 3388998682, 3405775899, 3422553116, 3439330333, 3456107550, 3472884767, 3489661984, 3506439201, 3523216418, 3539993635, 3556770852, 3573548069, 3590325286, 3607102503, 3623879720, 3640656937, 3657434154, 3674211371, 3690988588, 3707765805, 3724543022, 3741320239, 3758097456, 3774874673, 3791651890, 3808429107, 3825206324, 3841983541, 3858760758, 3875537975, 3892315192, 3909092409, 3925869626, 3942646843, 3959424060, 3976201277, 3992978494, 4009755711, 4026532928, 4043310145, 4060087362, 4076864579, 4093641796, 4110419013, 4127196230, 4143973447, 4160750664, 4177527881, 4194305098, 4211082315, 4227859532, 4244636749, 4261413966, 4278191183, 3087008849, 2415920210, 2197816403, 3120563284, 3187672149, 3003122774, 3204449367, 3154117720, 2583692377, 2617246810, 2650801243, 2634024028, 2717910110, 2667578463, 2768241808, 3019900049, 2516590611, 2533367828, 2432704536, 2449481753, 2181046298, 2466258972, 2483036189, 2214600734, 2248155168, 2264932385, 2499813410, 2231377958, 2298486832, 2332041273, 2600476730, 2281709740, 3103793430, 2566922530, 2566922530])); + $pkg.Windows1251 = windows1251; + windows1252 = new Charmap.ptr("Windows 1252", 2252, true, 128, 26, $toNativeArray($kindStruct, [new utf8Enc.ptr(1, $toNativeArray($kindUint8, [0, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [1, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [2, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [3, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [4, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [5, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [6, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [7, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [8, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [9, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [10, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [11, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [12, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [13, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [14, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [15, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [16, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [17, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [18, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [19, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [20, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [21, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [22, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [23, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [24, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [25, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [26, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [27, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [28, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [29, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [30, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [31, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [32, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [33, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [34, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [35, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [36, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [37, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [38, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [39, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [40, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [41, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [42, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [43, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [44, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [45, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [46, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [47, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [48, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [49, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [50, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [51, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [52, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [53, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [54, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [55, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [56, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [57, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [58, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [59, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [60, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [61, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [62, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [63, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [64, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [65, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [66, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [67, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [68, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [69, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [70, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [71, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [72, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [73, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [74, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [75, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [76, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [77, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [78, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [79, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [80, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [81, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [82, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [83, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [84, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [85, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [86, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [87, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [88, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [89, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [90, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [91, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [92, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [93, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [94, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [95, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [96, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [97, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [98, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [99, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [100, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [101, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [102, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [103, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [104, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [105, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [106, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [107, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [108, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [109, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [110, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [111, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [112, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [113, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [114, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [115, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [116, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [117, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [118, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [119, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [120, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [121, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [122, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [123, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [124, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [125, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [126, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [127, 0, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 130, 172])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 154])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [198, 146, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 158])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 166])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 160])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 161])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [203, 134, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 176])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 160, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 185])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 146, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 189, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 152])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 153])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 156])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 157])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 162])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 147])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 148])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [203, 156, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 132, 162])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 161, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 186])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 147, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 190, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 190, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 191, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 128, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 131, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 133, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 136, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 137, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 138, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 139, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 140, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 141, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 142, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 143, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 144, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 146, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 148, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 149, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 150, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 151, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 153, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 156, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 157, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 158, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 190, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 191, 0]))]), $toNativeArray($kindUint32, [0, 16777217, 33554434, 50331651, 67108868, 83886085, 100663302, 117440519, 134217736, 150994953, 167772170, 184549387, 201326604, 218103821, 234881038, 251658255, 268435472, 285212689, 301989906, 318767123, 335544340, 352321557, 369098774, 385875991, 402653208, 419430425, 436207642, 452984859, 469762076, 486539293, 503316510, 520093727, 536870944, 553648161, 570425378, 587202595, 603979812, 620757029, 637534246, 654311463, 671088680, 687865897, 704643114, 721420331, 738197548, 754974765, 771751982, 788529199, 805306416, 822083633, 838860850, 855638067, 872415284, 889192501, 905969718, 922746935, 939524152, 956301369, 973078586, 989855803, 1006633020, 1023410237, 1040187454, 1056964671, 1073741888, 1090519105, 1107296322, 1124073539, 1140850756, 1157627973, 1174405190, 1191182407, 1207959624, 1224736841, 1241514058, 1258291275, 1275068492, 1291845709, 1308622926, 1325400143, 1342177360, 1358954577, 1375731794, 1392509011, 1409286228, 1426063445, 1442840662, 1459617879, 1476395096, 1493172313, 1509949530, 1526726747, 1543503964, 1560281181, 1577058398, 1593835615, 1610612832, 1627390049, 1644167266, 1660944483, 1677721700, 1694498917, 1711276134, 1728053351, 1744830568, 1761607785, 1778385002, 1795162219, 1811939436, 1828716653, 1845493870, 1862271087, 1879048304, 1895825521, 1912602738, 1929379955, 1946157172, 1962934389, 1979711606, 1996488823, 2013266040, 2030043257, 2046820474, 2063597691, 2080374908, 2097152125, 2113929342, 2130706559, 2684354720, 2701131937, 2717909154, 2734686371, 2751463588, 2768240805, 2785018022, 2801795239, 2818572456, 2835349673, 2852126890, 2868904107, 2885681324, 2902458541, 2919235758, 2936012975, 2952790192, 2969567409, 2986344626, 3003121843, 3019899060, 3036676277, 3053453494, 3070230711, 3087007928, 3103785145, 3120562362, 3137339579, 3154116796, 3170894013, 3187671230, 3204448447, 3221225664, 3238002881, 3254780098, 3271557315, 3288334532, 3305111749, 3321888966, 3338666183, 3355443400, 3372220617, 3388997834, 3405775051, 3422552268, 3439329485, 3456106702, 3472883919, 3489661136, 3506438353, 3523215570, 3539992787, 3556770004, 3573547221, 3590324438, 3607101655, 3623878872, 3640656089, 3657433306, 3674210523, 3690987740, 3707764957, 3724542174, 3741319391, 3758096608, 3774873825, 3791651042, 3808428259, 3825205476, 3841982693, 3858759910, 3875537127, 3892314344, 3909091561, 3925868778, 3942645995, 3959423212, 3976200429, 3992977646, 4009754863, 4026532080, 4043309297, 4060086514, 4076863731, 4093640948, 4110418165, 4127195382, 4143972599, 4160749816, 4177527033, 4194304250, 4211081467, 4227858684, 4244635901, 4261413118, 4278190335, 2348810578, 2617246035, 2315256160, 2583691617, 2667577720, 2382365053, 2650800510, 2197815698, 2281702086, 2550137564, 2516590611, 2533367828, 2432704536, 2449481753, 2181046298, 2466258972, 2483036189, 2214600734, 2248155168, 2264932385, 2499813410, 2231377958, 2298486832, 2332041273, 2600476730, 2147492012, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530])); + $pkg.Windows1252 = windows1252; + windows1253 = new Charmap.ptr("Windows 1253", 2253, true, 128, 26, $toNativeArray($kindStruct, [new utf8Enc.ptr(1, $toNativeArray($kindUint8, [0, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [1, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [2, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [3, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [4, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [5, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [6, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [7, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [8, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [9, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [10, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [11, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [12, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [13, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [14, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [15, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [16, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [17, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [18, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [19, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [20, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [21, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [22, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [23, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [24, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [25, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [26, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [27, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [28, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [29, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [30, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [31, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [32, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [33, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [34, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [35, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [36, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [37, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [38, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [39, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [40, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [41, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [42, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [43, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [44, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [45, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [46, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [47, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [48, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [49, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [50, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [51, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [52, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [53, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [54, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [55, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [56, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [57, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [58, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [59, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [60, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [61, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [62, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [63, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [64, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [65, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [66, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [67, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [68, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [69, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [70, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [71, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [72, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [73, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [74, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [75, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [76, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [77, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [78, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [79, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [80, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [81, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [82, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [83, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [84, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [85, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [86, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [87, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [88, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [89, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [90, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [91, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [92, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [93, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [94, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [95, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [96, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [97, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [98, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [99, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [100, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [101, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [102, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [103, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [104, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [105, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [106, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [107, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [108, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [109, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [110, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [111, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [112, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [113, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [114, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [115, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [116, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [117, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [118, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [119, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [120, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [121, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [122, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [123, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [124, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [125, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [126, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [127, 0, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 130, 172])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 154])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [198, 146, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 158])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 166])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 160])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 161])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 176])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 185])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 152])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 153])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 156])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 157])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 162])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 147])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 148])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 132, 162])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 186])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 133, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 169, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 174, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 149])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 136, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 137, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 138, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 140, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 142, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 143, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 144, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 146, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 148, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 149, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 150, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 151, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 153, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 156, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 157, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 158, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 161, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 190, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [206, 191, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 128, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 131, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 133, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 136, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 137, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 138, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 139, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 140, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 141, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [207, 142, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189]))]), $toNativeArray($kindUint32, [0, 16777217, 33554434, 50331651, 67108868, 83886085, 100663302, 117440519, 134217736, 150994953, 167772170, 184549387, 201326604, 218103821, 234881038, 251658255, 268435472, 285212689, 301989906, 318767123, 335544340, 352321557, 369098774, 385875991, 402653208, 419430425, 436207642, 452984859, 469762076, 486539293, 503316510, 520093727, 536870944, 553648161, 570425378, 587202595, 603979812, 620757029, 637534246, 654311463, 671088680, 687865897, 704643114, 721420331, 738197548, 754974765, 771751982, 788529199, 805306416, 822083633, 838860850, 855638067, 872415284, 889192501, 905969718, 922746935, 939524152, 956301369, 973078586, 989855803, 1006633020, 1023410237, 1040187454, 1056964671, 1073741888, 1090519105, 1107296322, 1124073539, 1140850756, 1157627973, 1174405190, 1191182407, 1207959624, 1224736841, 1241514058, 1258291275, 1275068492, 1291845709, 1308622926, 1325400143, 1342177360, 1358954577, 1375731794, 1392509011, 1409286228, 1426063445, 1442840662, 1459617879, 1476395096, 1493172313, 1509949530, 1526726747, 1543503964, 1560281181, 1577058398, 1593835615, 1610612832, 1627390049, 1644167266, 1660944483, 1677721700, 1694498917, 1711276134, 1728053351, 1744830568, 1761607785, 1778385002, 1795162219, 1811939436, 1828716653, 1845493870, 1862271087, 1879048304, 1895825521, 1912602738, 1929379955, 1946157172, 1962934389, 1979711606, 1996488823, 2013266040, 2030043257, 2046820474, 2063597691, 2080374908, 2097152125, 2113929342, 2130706559, 2684354720, 2734686371, 2751463588, 2768240805, 2785018022, 2801795239, 2818572456, 2835349673, 2868904107, 2885681324, 2902458541, 2919235758, 2952790192, 2969567409, 2986344626, 3003121843, 3036676277, 3053453494, 3070230711, 3137339579, 3170894013, 2197815698, 3019899780, 2701132677, 2717909894, 3087008648, 3103785865, 3120563082, 3154117516, 3187671950, 3204449167, 3221226384, 3238003601, 3254780818, 3271558035, 3288335252, 3305112469, 3321889686, 3338666903, 3355444120, 3372221337, 3388998554, 3405775771, 3422552988, 3439330205, 3456107422, 3472884639, 3489661856, 3506439073, 3539993507, 3556770724, 3573547941, 3590325158, 3607102375, 3623879592, 3640656809, 3657434026, 3674211243, 3690988460, 3707765677, 3724542894, 3741320111, 3758097328, 3774874545, 3791651762, 3808428979, 3825206196, 3841983413, 3858760630, 3875537847, 3892315064, 3909092281, 3925869498, 3942646715, 3959423932, 3976201149, 3992978366, 4009755583, 4026532800, 4043310017, 4060087234, 4076864451, 4093641668, 4110418885, 4127196102, 4143973319, 4160750536, 4177527753, 4194304970, 4211082187, 4227859404, 4244636621, 4261413838, 2516590611, 2533367828, 2936021013, 2432704536, 2449481753, 2181046298, 2466258972, 2483036189, 2214600734, 2248155168, 2264932385, 2499813410, 2231377958, 2298486832, 2332041273, 2600476730, 2147492012, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530])); + $pkg.Windows1253 = windows1253; + windows1254 = new Charmap.ptr("Windows 1254", 2254, true, 128, 26, $toNativeArray($kindStruct, [new utf8Enc.ptr(1, $toNativeArray($kindUint8, [0, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [1, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [2, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [3, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [4, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [5, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [6, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [7, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [8, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [9, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [10, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [11, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [12, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [13, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [14, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [15, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [16, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [17, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [18, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [19, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [20, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [21, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [22, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [23, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [24, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [25, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [26, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [27, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [28, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [29, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [30, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [31, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [32, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [33, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [34, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [35, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [36, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [37, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [38, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [39, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [40, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [41, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [42, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [43, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [44, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [45, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [46, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [47, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [48, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [49, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [50, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [51, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [52, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [53, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [54, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [55, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [56, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [57, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [58, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [59, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [60, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [61, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [62, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [63, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [64, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [65, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [66, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [67, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [68, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [69, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [70, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [71, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [72, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [73, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [74, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [75, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [76, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [77, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [78, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [79, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [80, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [81, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [82, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [83, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [84, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [85, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [86, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [87, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [88, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [89, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [90, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [91, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [92, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [93, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [94, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [95, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [96, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [97, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [98, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [99, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [100, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [101, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [102, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [103, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [104, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [105, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [106, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [107, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [108, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [109, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [110, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [111, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [112, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [113, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [114, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [115, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [116, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [117, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [118, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [119, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [120, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [121, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [122, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [123, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [124, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [125, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [126, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [127, 0, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 130, 172])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 154])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [198, 146, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 158])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 166])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 160])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 161])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [203, 134, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 176])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 160, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 185])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 146, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 152])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 153])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 156])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 157])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 162])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 147])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 148])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [203, 156, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 132, 162])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 161, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 186])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 147, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 190, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 191, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 128, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 131, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 133, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 136, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 137, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 138, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 139, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 140, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 141, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 142, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 143, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 158, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 146, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 148, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 149, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 150, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 151, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 153, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 156, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 158, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 191, 0]))]), $toNativeArray($kindUint32, [0, 16777217, 33554434, 50331651, 67108868, 83886085, 100663302, 117440519, 134217736, 150994953, 167772170, 184549387, 201326604, 218103821, 234881038, 251658255, 268435472, 285212689, 301989906, 318767123, 335544340, 352321557, 369098774, 385875991, 402653208, 419430425, 436207642, 452984859, 469762076, 486539293, 503316510, 520093727, 536870944, 553648161, 570425378, 587202595, 603979812, 620757029, 637534246, 654311463, 671088680, 687865897, 704643114, 721420331, 738197548, 754974765, 771751982, 788529199, 805306416, 822083633, 838860850, 855638067, 872415284, 889192501, 905969718, 922746935, 939524152, 956301369, 973078586, 989855803, 1006633020, 1023410237, 1040187454, 1056964671, 1073741888, 1090519105, 1107296322, 1124073539, 1140850756, 1157627973, 1174405190, 1191182407, 1207959624, 1224736841, 1241514058, 1258291275, 1275068492, 1291845709, 1308622926, 1325400143, 1342177360, 1358954577, 1375731794, 1392509011, 1409286228, 1426063445, 1442840662, 1459617879, 1476395096, 1493172313, 1509949530, 1526726747, 1543503964, 1560281181, 1577058398, 1593835615, 1610612832, 1627390049, 1644167266, 1660944483, 1677721700, 1694498917, 1711276134, 1728053351, 1744830568, 1761607785, 1778385002, 1795162219, 1811939436, 1828716653, 1845493870, 1862271087, 1879048304, 1895825521, 1912602738, 1929379955, 1946157172, 1962934389, 1979711606, 1996488823, 2013266040, 2030043257, 2046820474, 2063597691, 2080374908, 2097152125, 2113929342, 2130706559, 2684354720, 2701131937, 2717909154, 2734686371, 2751463588, 2768240805, 2785018022, 2801795239, 2818572456, 2835349673, 2852126890, 2868904107, 2885681324, 2902458541, 2919235758, 2936012975, 2952790192, 2969567409, 2986344626, 3003121843, 3019899060, 3036676277, 3053453494, 3070230711, 3087007928, 3103785145, 3120562362, 3137339579, 3154116796, 3170894013, 3187671230, 3204448447, 3221225664, 3238002881, 3254780098, 3271557315, 3288334532, 3305111749, 3321888966, 3338666183, 3355443400, 3372220617, 3388997834, 3405775051, 3422552268, 3439329485, 3456106702, 3472883919, 3506438353, 3523215570, 3539992787, 3556770004, 3573547221, 3590324438, 3607101655, 3623878872, 3640656089, 3657433306, 3674210523, 3690987740, 3741319391, 3758096608, 3774873825, 3791651042, 3808428259, 3825205476, 3841982693, 3858759910, 3875537127, 3892314344, 3909091561, 3925868778, 3942645995, 3959423212, 3976200429, 3992977646, 4009754863, 4043309297, 4060086514, 4076863731, 4093640948, 4110418165, 4127195382, 4143972599, 4160749816, 4177527033, 4194304250, 4211081467, 4227858684, 4278190335, 3489661214, 4026532127, 3707765040, 4244635953, 2348810578, 2617246035, 3724542302, 4261413215, 2315256160, 2583691617, 2667577720, 2197815698, 2281702086, 2550137564, 2516590611, 2533367828, 2432704536, 2449481753, 2181046298, 2466258972, 2483036189, 2214600734, 2248155168, 2264932385, 2499813410, 2231377958, 2298486832, 2332041273, 2600476730, 2147492012, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530])); + $pkg.Windows1254 = windows1254; + windows1255 = new Charmap.ptr("Windows 1255", 2255, true, 128, 26, $toNativeArray($kindStruct, [new utf8Enc.ptr(1, $toNativeArray($kindUint8, [0, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [1, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [2, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [3, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [4, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [5, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [6, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [7, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [8, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [9, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [10, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [11, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [12, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [13, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [14, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [15, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [16, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [17, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [18, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [19, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [20, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [21, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [22, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [23, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [24, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [25, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [26, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [27, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [28, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [29, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [30, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [31, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [32, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [33, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [34, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [35, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [36, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [37, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [38, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [39, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [40, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [41, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [42, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [43, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [44, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [45, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [46, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [47, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [48, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [49, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [50, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [51, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [52, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [53, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [54, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [55, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [56, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [57, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [58, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [59, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [60, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [61, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [62, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [63, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [64, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [65, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [66, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [67, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [68, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [69, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [70, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [71, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [72, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [73, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [74, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [75, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [76, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [77, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [78, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [79, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [80, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [81, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [82, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [83, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [84, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [85, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [86, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [87, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [88, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [89, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [90, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [91, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [92, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [93, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [94, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [95, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [96, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [97, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [98, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [99, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [100, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [101, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [102, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [103, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [104, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [105, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [106, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [107, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [108, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [109, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [110, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [111, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [112, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [113, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [114, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [115, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [116, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [117, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [118, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [119, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [120, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [121, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [122, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [123, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [124, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [125, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [126, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [127, 0, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 130, 172])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 154])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [198, 146, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 158])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 166])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 160])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 161])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [203, 134, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 176])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 185])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 152])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 153])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 156])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 157])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 162])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 147])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 148])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [203, 156, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 132, 162])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 186])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 163, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 130, 170])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 151, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 190, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 191, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [214, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [214, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [214, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [214, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [214, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [214, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [214, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [214, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [214, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [214, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [214, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [214, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [214, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [214, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [214, 190, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [214, 191, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 128, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 131, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 180, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 144, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 146, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 148, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 149, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 150, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 151, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 153, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 156, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 157, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 158, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [215, 170, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 142])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 143])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189]))]), $toNativeArray($kindUint32, [0, 16777217, 33554434, 50331651, 67108868, 83886085, 100663302, 117440519, 134217736, 150994953, 167772170, 184549387, 201326604, 218103821, 234881038, 251658255, 268435472, 285212689, 301989906, 318767123, 335544340, 352321557, 369098774, 385875991, 402653208, 419430425, 436207642, 452984859, 469762076, 486539293, 503316510, 520093727, 536870944, 553648161, 570425378, 587202595, 603979812, 620757029, 637534246, 654311463, 671088680, 687865897, 704643114, 721420331, 738197548, 754974765, 771751982, 788529199, 805306416, 822083633, 838860850, 855638067, 872415284, 889192501, 905969718, 922746935, 939524152, 956301369, 973078586, 989855803, 1006633020, 1023410237, 1040187454, 1056964671, 1073741888, 1090519105, 1107296322, 1124073539, 1140850756, 1157627973, 1174405190, 1191182407, 1207959624, 1224736841, 1241514058, 1258291275, 1275068492, 1291845709, 1308622926, 1325400143, 1342177360, 1358954577, 1375731794, 1392509011, 1409286228, 1426063445, 1442840662, 1459617879, 1476395096, 1493172313, 1509949530, 1526726747, 1543503964, 1560281181, 1577058398, 1593835615, 1610612832, 1627390049, 1644167266, 1660944483, 1677721700, 1694498917, 1711276134, 1728053351, 1744830568, 1761607785, 1778385002, 1795162219, 1811939436, 1828716653, 1845493870, 1862271087, 1879048304, 1895825521, 1912602738, 1929379955, 1946157172, 1962934389, 1979711606, 1996488823, 2013266040, 2030043257, 2046820474, 2063597691, 2080374908, 2097152125, 2113929342, 2130706559, 2684354720, 2701131937, 2717909154, 2734686371, 2768240805, 2785018022, 2801795239, 2818572456, 2835349673, 2868904107, 2885681324, 2902458541, 2919235758, 2936012975, 2952790192, 2969567409, 2986344626, 3003121843, 3019899060, 3036676277, 3053453494, 3070230711, 3087007928, 3103785145, 3137339579, 3154116796, 3170894013, 3187671230, 3204448447, 2852126935, 3120562423, 2197815698, 2281702086, 2550137564, 3221226928, 3238004145, 3254781362, 3271558579, 3288335796, 3305113013, 3321890230, 3338667447, 3355444664, 3372221881, 3388999098, 3405776315, 3422553532, 3439330749, 3456107966, 3472885183, 3489662400, 3506439617, 3523216834, 3539994051, 3758097872, 3774875089, 3791652306, 3808429523, 3825206740, 3841983957, 3858761174, 3875538391, 3892315608, 3909092825, 3925870042, 3942647259, 3959424476, 3976201693, 3992978910, 4009756127, 4026533344, 4043310561, 4060087778, 4076864995, 4093642212, 4110419429, 4127196646, 4143973863, 4160751080, 4177528297, 4194305514, 3556771312, 3573548529, 3590325746, 3607102963, 3623880180, 4244643854, 4261421071, 2516590611, 2533367828, 2432704536, 2449481753, 2181046298, 2466258972, 2483036189, 2214600734, 2248155168, 2264932385, 2499813410, 2231377958, 2298486832, 2332041273, 2600476730, 2751471786, 2147492012, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530])); + $pkg.Windows1255 = windows1255; + windows1256 = new Charmap.ptr("Windows 1256", 2256, true, 128, 26, $toNativeArray($kindStruct, [new utf8Enc.ptr(1, $toNativeArray($kindUint8, [0, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [1, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [2, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [3, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [4, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [5, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [6, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [7, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [8, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [9, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [10, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [11, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [12, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [13, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [14, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [15, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [16, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [17, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [18, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [19, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [20, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [21, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [22, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [23, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [24, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [25, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [26, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [27, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [28, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [29, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [30, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [31, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [32, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [33, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [34, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [35, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [36, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [37, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [38, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [39, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [40, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [41, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [42, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [43, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [44, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [45, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [46, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [47, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [48, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [49, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [50, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [51, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [52, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [53, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [54, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [55, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [56, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [57, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [58, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [59, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [60, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [61, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [62, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [63, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [64, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [65, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [66, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [67, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [68, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [69, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [70, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [71, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [72, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [73, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [74, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [75, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [76, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [77, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [78, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [79, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [80, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [81, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [82, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [83, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [84, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [85, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [86, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [87, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [88, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [89, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [90, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [91, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [92, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [93, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [94, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [95, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [96, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [97, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [98, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [99, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [100, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [101, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [102, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [103, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [104, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [105, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [106, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [107, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [108, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [109, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [110, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [111, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [112, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [113, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [114, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [115, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [116, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [117, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [118, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [119, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [120, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [121, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [122, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [123, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [124, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [125, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [126, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [127, 0, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 130, 172])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [217, 190, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 154])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [198, 146, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 158])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 166])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 160])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 161])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [203, 134, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 176])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [217, 185, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 185])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 146, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [218, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [218, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [218, 136, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [218, 175, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 152])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 153])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 156])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 157])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 162])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 147])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 148])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [218, 169, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 132, 162])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [218, 145, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 186])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 147, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 140])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 141])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [218, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 140, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [218, 190, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 190, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [219, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 151, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [216, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [217, 128, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [217, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [217, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [217, 131, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [217, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [217, 133, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [217, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [217, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [217, 136, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [217, 137, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [217, 138, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [217, 139, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [217, 140, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [217, 141, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [217, 142, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [217, 143, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [217, 144, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [217, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [217, 146, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 188, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 142])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 143])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [219, 146, 0]))]), $toNativeArray($kindUint32, [0, 16777217, 33554434, 50331651, 67108868, 83886085, 100663302, 117440519, 134217736, 150994953, 167772170, 184549387, 201326604, 218103821, 234881038, 251658255, 268435472, 285212689, 301989906, 318767123, 335544340, 352321557, 369098774, 385875991, 402653208, 419430425, 436207642, 452984859, 469762076, 486539293, 503316510, 520093727, 536870944, 553648161, 570425378, 587202595, 603979812, 620757029, 637534246, 654311463, 671088680, 687865897, 704643114, 721420331, 738197548, 754974765, 771751982, 788529199, 805306416, 822083633, 838860850, 855638067, 872415284, 889192501, 905969718, 922746935, 939524152, 956301369, 973078586, 989855803, 1006633020, 1023410237, 1040187454, 1056964671, 1073741888, 1090519105, 1107296322, 1124073539, 1140850756, 1157627973, 1174405190, 1191182407, 1207959624, 1224736841, 1241514058, 1258291275, 1275068492, 1291845709, 1308622926, 1325400143, 1342177360, 1358954577, 1375731794, 1392509011, 1409286228, 1426063445, 1442840662, 1459617879, 1476395096, 1493172313, 1509949530, 1526726747, 1543503964, 1560281181, 1577058398, 1593835615, 1610612832, 1627390049, 1644167266, 1660944483, 1677721700, 1694498917, 1711276134, 1728053351, 1744830568, 1761607785, 1778385002, 1795162219, 1811939436, 1828716653, 1845493870, 1862271087, 1879048304, 1895825521, 1912602738, 1929379955, 1946157172, 1962934389, 1979711606, 1996488823, 2013266040, 2030043257, 2046820474, 2063597691, 2080374908, 2097152125, 2113929342, 2130706559, 2684354720, 2717909154, 2734686371, 2751463588, 2768240805, 2785018022, 2801795239, 2818572456, 2835349673, 2868904107, 2885681324, 2902458541, 2919235758, 2936012975, 2952790192, 2969567409, 2986344626, 3003121843, 3019899060, 3036676277, 3053453494, 3070230711, 3087007928, 3103785145, 3137339579, 3154116796, 3170894013, 3187671230, 3607101655, 3758096608, 3791651042, 3875537127, 3892314344, 3909091561, 3925868778, 3942645995, 3992977646, 4009754863, 4093640948, 4143972599, 4177527033, 4211081467, 4227858684, 2348810578, 2617246035, 2197815698, 2281702086, 2701133324, 3120563739, 3204449823, 3238004257, 3254781474, 3271558691, 3288335908, 3305113125, 3321890342, 3338667559, 3355444776, 3372221993, 3388999210, 3405776427, 3422553644, 3439330861, 3456108078, 3472885295, 3489662512, 3506439729, 3523216946, 3539994163, 3556771380, 3573548597, 3590325814, 3623880247, 3640657464, 3657434681, 3674211898, 3690989120, 3707766337, 3724543554, 3741320771, 3774875204, 3808429637, 3825206854, 3841984071, 3858761288, 3959424585, 3976201802, 4026533451, 4043310668, 4060087885, 4076865102, 4110419535, 4127196752, 4160751185, 4194305618, 2315257465, 2164262526, 2365589126, 2399143560, 2583692945, 2382366360, 2550138537, 2415920815, 2667579066, 2852128446, 3221227201, 4278191826, 2634031116, 2650808333, 4244643854, 4261421071, 2516590611, 2533367828, 2432704536, 2449481753, 2181046298, 2466258972, 2483036189, 2214600734, 2248155168, 2264932385, 2499813410, 2231377958, 2298486832, 2332041273, 2600476730, 2147492012, 2566922530])); + $pkg.Windows1256 = windows1256; + windows1257 = new Charmap.ptr("Windows 1257", 2257, true, 128, 26, $toNativeArray($kindStruct, [new utf8Enc.ptr(1, $toNativeArray($kindUint8, [0, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [1, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [2, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [3, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [4, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [5, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [6, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [7, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [8, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [9, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [10, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [11, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [12, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [13, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [14, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [15, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [16, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [17, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [18, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [19, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [20, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [21, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [22, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [23, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [24, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [25, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [26, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [27, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [28, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [29, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [30, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [31, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [32, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [33, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [34, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [35, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [36, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [37, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [38, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [39, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [40, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [41, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [42, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [43, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [44, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [45, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [46, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [47, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [48, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [49, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [50, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [51, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [52, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [53, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [54, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [55, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [56, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [57, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [58, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [59, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [60, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [61, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [62, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [63, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [64, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [65, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [66, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [67, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [68, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [69, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [70, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [71, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [72, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [73, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [74, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [75, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [76, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [77, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [78, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [79, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [80, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [81, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [82, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [83, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [84, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [85, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [86, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [87, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [88, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [89, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [90, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [91, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [92, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [93, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [94, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [95, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [96, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [97, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [98, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [99, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [100, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [101, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [102, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [103, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [104, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [105, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [106, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [107, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [108, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [109, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [110, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [111, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [112, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [113, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [114, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [115, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [116, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [117, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [118, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [119, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [120, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [121, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [122, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [123, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [124, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [125, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [126, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [127, 0, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 130, 172])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 154])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 158])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 166])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 160])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 161])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 176])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 185])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [203, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 184, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 152])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 153])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 156])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 157])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 162])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 147])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 148])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 132, 162])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 186])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [203, 155, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 160, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 164, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 150, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 151, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 190, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 128, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 133, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 146, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 140, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 137, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 150, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 131, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 133, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 140, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 149, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 150, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 151, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 156, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 133, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 153, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 141, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 151, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 141, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 190, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [203, 153, 0]))]), $toNativeArray($kindUint32, [0, 16777217, 33554434, 50331651, 67108868, 83886085, 100663302, 117440519, 134217736, 150994953, 167772170, 184549387, 201326604, 218103821, 234881038, 251658255, 268435472, 285212689, 301989906, 318767123, 335544340, 352321557, 369098774, 385875991, 402653208, 419430425, 436207642, 452984859, 469762076, 486539293, 503316510, 520093727, 536870944, 553648161, 570425378, 587202595, 603979812, 620757029, 637534246, 654311463, 671088680, 687865897, 704643114, 721420331, 738197548, 754974765, 771751982, 788529199, 805306416, 822083633, 838860850, 855638067, 872415284, 889192501, 905969718, 922746935, 939524152, 956301369, 973078586, 989855803, 1006633020, 1023410237, 1040187454, 1056964671, 1073741888, 1090519105, 1107296322, 1124073539, 1140850756, 1157627973, 1174405190, 1191182407, 1207959624, 1224736841, 1241514058, 1258291275, 1275068492, 1291845709, 1308622926, 1325400143, 1342177360, 1358954577, 1375731794, 1392509011, 1409286228, 1426063445, 1442840662, 1459617879, 1476395096, 1493172313, 1509949530, 1526726747, 1543503964, 1560281181, 1577058398, 1593835615, 1610612832, 1627390049, 1644167266, 1660944483, 1677721700, 1694498917, 1711276134, 1728053351, 1744830568, 1761607785, 1778385002, 1795162219, 1811939436, 1828716653, 1845493870, 1862271087, 1879048304, 1895825521, 1912602738, 1929379955, 1946157172, 1962934389, 1979711606, 1996488823, 2013266040, 2030043257, 2046820474, 2063597691, 2080374908, 2097152125, 2113929342, 2130706559, 2684354720, 2717909154, 2734686371, 2751463588, 2785018022, 2801795239, 2365587624, 2835349673, 2868904107, 2885681324, 2902458541, 2919235758, 2634023087, 2952790192, 2969567409, 2986344626, 3003121843, 3019899060, 3036676277, 3053453494, 3070230711, 2399142072, 3103785145, 3137339579, 3154116796, 3170894013, 3187671230, 3288334532, 3305111749, 2936012998, 3372220617, 3539992787, 3573547221, 3590324438, 3607101655, 2818572504, 3690987740, 3741319391, 3825205476, 3841982693, 3204448486, 3909091561, 4076863731, 4110418165, 4127195382, 4143972599, 3087007992, 4227858684, 3254780160, 3791651073, 3221225732, 3758096645, 3271557382, 3808428295, 3355443468, 3892314381, 3338666258, 3875537171, 3405775126, 3942646039, 3321889048, 3858759961, 3422552354, 3959423267, 3456106794, 3992977707, 3238002990, 3774873903, 3439329590, 3976200503, 3472884027, 4009754940, 3640656193, 4177527106, 3506438467, 4043309380, 3523215685, 4060086598, 3556770124, 4093641037, 2852127062, 3120562519, 3657433434, 4194304347, 3489661280, 4026532193, 3674210666, 4211081579, 3623879026, 4160749939, 3388998009, 3925868922, 3707765115, 4244636028, 3724542333, 4261413246, 2382365383, 4278190809, 2650800859, 2516590611, 2533367828, 2432704536, 2449481753, 2181046298, 2466258972, 2483036189, 2214600734, 2248155168, 2264932385, 2499813410, 2231377958, 2298486832, 2332041273, 2600476730, 2147492012, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530])); + $pkg.Windows1257 = windows1257; + windows1258 = new Charmap.ptr("Windows 1258", 2258, true, 128, 26, $toNativeArray($kindStruct, [new utf8Enc.ptr(1, $toNativeArray($kindUint8, [0, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [1, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [2, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [3, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [4, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [5, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [6, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [7, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [8, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [9, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [10, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [11, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [12, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [13, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [14, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [15, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [16, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [17, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [18, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [19, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [20, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [21, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [22, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [23, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [24, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [25, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [26, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [27, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [28, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [29, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [30, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [31, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [32, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [33, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [34, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [35, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [36, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [37, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [38, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [39, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [40, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [41, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [42, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [43, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [44, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [45, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [46, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [47, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [48, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [49, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [50, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [51, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [52, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [53, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [54, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [55, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [56, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [57, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [58, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [59, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [60, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [61, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [62, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [63, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [64, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [65, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [66, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [67, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [68, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [69, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [70, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [71, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [72, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [73, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [74, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [75, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [76, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [77, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [78, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [79, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [80, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [81, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [82, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [83, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [84, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [85, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [86, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [87, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [88, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [89, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [90, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [91, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [92, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [93, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [94, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [95, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [96, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [97, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [98, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [99, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [100, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [101, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [102, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [103, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [104, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [105, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [106, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [107, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [108, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [109, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [110, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [111, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [112, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [113, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [114, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [115, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [116, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [117, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [118, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [119, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [120, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [121, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [122, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [123, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [124, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [125, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [126, 0, 0])), new utf8Enc.ptr(1, $toNativeArray($kindUint8, [127, 0, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 130, 172])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 154])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [198, 146, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 158])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 166])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 160])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 161])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [203, 134, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 176])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 185])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 146, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 152])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 153])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 156])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 157])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 162])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 147])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 148])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [203, 156, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 132, 162])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 128, 186])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 147, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [239, 191, 189])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [197, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 172, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 176, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 178, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 181, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 189, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 190, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [194, 191, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 128, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 130, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 132, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 133, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 134, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 135, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 136, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 137, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 138, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 139, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [204, 128, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 141, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 142, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 143, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 144, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [204, 137, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 147, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 148, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [198, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 150, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 151, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 152, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 153, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 154, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 155, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 156, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [198, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [204, 131, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 159, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 160, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 162, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 131, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 164, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 165, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 166, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 167, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 168, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 169, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 170, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 171, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [204, 129, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 173, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 174, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 175, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [196, 145, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 177, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [204, 163, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 179, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 180, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [198, 161, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 182, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 183, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 184, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 185, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 186, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 187, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 188, 0])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [198, 176, 0])), new utf8Enc.ptr(3, $toNativeArray($kindUint8, [226, 130, 171])), new utf8Enc.ptr(2, $toNativeArray($kindUint8, [195, 191, 0]))]), $toNativeArray($kindUint32, [0, 16777217, 33554434, 50331651, 67108868, 83886085, 100663302, 117440519, 134217736, 150994953, 167772170, 184549387, 201326604, 218103821, 234881038, 251658255, 268435472, 285212689, 301989906, 318767123, 335544340, 352321557, 369098774, 385875991, 402653208, 419430425, 436207642, 452984859, 469762076, 486539293, 503316510, 520093727, 536870944, 553648161, 570425378, 587202595, 603979812, 620757029, 637534246, 654311463, 671088680, 687865897, 704643114, 721420331, 738197548, 754974765, 771751982, 788529199, 805306416, 822083633, 838860850, 855638067, 872415284, 889192501, 905969718, 922746935, 939524152, 956301369, 973078586, 989855803, 1006633020, 1023410237, 1040187454, 1056964671, 1073741888, 1090519105, 1107296322, 1124073539, 1140850756, 1157627973, 1174405190, 1191182407, 1207959624, 1224736841, 1241514058, 1258291275, 1275068492, 1291845709, 1308622926, 1325400143, 1342177360, 1358954577, 1375731794, 1392509011, 1409286228, 1426063445, 1442840662, 1459617879, 1476395096, 1493172313, 1509949530, 1526726747, 1543503964, 1560281181, 1577058398, 1593835615, 1610612832, 1627390049, 1644167266, 1660944483, 1677721700, 1694498917, 1711276134, 1728053351, 1744830568, 1761607785, 1778385002, 1795162219, 1811939436, 1828716653, 1845493870, 1862271087, 1879048304, 1895825521, 1912602738, 1929379955, 1946157172, 1962934389, 1979711606, 1996488823, 2013266040, 2030043257, 2046820474, 2063597691, 2080374908, 2097152125, 2113929342, 2130706559, 2684354720, 2701131937, 2717909154, 2734686371, 2751463588, 2768240805, 2785018022, 2801795239, 2818572456, 2835349673, 2852126890, 2868904107, 2885681324, 2902458541, 2919235758, 2936012975, 2952790192, 2969567409, 2986344626, 3003121843, 3019899060, 3036676277, 3053453494, 3070230711, 3087007928, 3103785145, 3120562362, 3137339579, 3154116796, 3170894013, 3187671230, 3204448447, 3221225664, 3238002881, 3254780098, 3288334532, 3305111749, 3321888966, 3338666183, 3355443400, 3372220617, 3388997834, 3405775051, 3439329485, 3456106702, 3472883919, 3506438353, 3539992787, 3556770004, 3590324438, 3607101655, 3623878872, 3640656089, 3657433306, 3674210523, 3690987740, 3741319391, 3758096608, 3774873825, 3791651042, 3825205476, 3841982693, 3858759910, 3875537127, 3892314344, 3909091561, 3925868778, 3942645995, 3976200429, 3992977646, 4009754863, 4043309297, 4076863731, 4093640948, 4127195382, 4143972599, 4160749816, 4177527033, 4194304250, 4211081467, 4227858684, 4278190335, 3271557378, 3808428291, 3489661200, 4026532113, 2348810578, 2617246035, 2667577720, 2197815698, 3573547424, 4110418337, 3707765167, 4244636080, 2281702086, 2550137564, 3422552832, 3959423745, 3724542723, 3523216137, 4060087075, 2516590611, 2533367828, 2432704536, 2449481753, 2181046298, 2466258972, 2483036189, 2214600734, 2248155168, 2264932385, 2499813410, 2231377958, 2298486832, 2332041273, 2600476730, 4261421227, 2147492012, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530, 2566922530])); + $pkg.Windows1258 = windows1258; + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["golang.org/x/text/encoding/japanese"] = (function() { + var $pkg = {}, $init, encoding, internal, identifier, transform, utf8, eucJPDecoder, eucJPEncoder, iso2022JPDecoder, iso2022JPEncoder, shiftJISDecoder, shiftJISEncoder, ptrType, ptrType$1, sliceType$1, eucJP, eucJP$24ptr, iso2022JP, iso2022JP$24ptr, shiftJIS, shiftJIS$24ptr, jis0208Decode, jis0212Decode, encode0, encode1, encode2, encode3, encode4, encode5, x, x$1, x$2, x$3, x$4, init, iso2022JPNewDecoder, iso2022JPNewEncoder; + encoding = $packages["golang.org/x/text/encoding"]; + internal = $packages["golang.org/x/text/encoding/internal"]; + identifier = $packages["golang.org/x/text/encoding/internal/identifier"]; + transform = $packages["golang.org/x/text/transform"]; + utf8 = $packages["unicode/utf8"]; + eucJPDecoder = $pkg.eucJPDecoder = $newType(0, $kindStruct, "japanese.eucJPDecoder", true, "golang.org/x/text/encoding/japanese", false, function(NopResetter_) { + this.$val = this; + if (arguments.length === 0) { + this.NopResetter = new transform.NopResetter.ptr(); + return; + } + this.NopResetter = NopResetter_; + }); + eucJPEncoder = $pkg.eucJPEncoder = $newType(0, $kindStruct, "japanese.eucJPEncoder", true, "golang.org/x/text/encoding/japanese", false, function(NopResetter_) { + this.$val = this; + if (arguments.length === 0) { + this.NopResetter = new transform.NopResetter.ptr(); + return; + } + this.NopResetter = NopResetter_; + }); + iso2022JPDecoder = $pkg.iso2022JPDecoder = $newType(4, $kindInt, "japanese.iso2022JPDecoder", true, "golang.org/x/text/encoding/japanese", false, null); + iso2022JPEncoder = $pkg.iso2022JPEncoder = $newType(4, $kindInt, "japanese.iso2022JPEncoder", true, "golang.org/x/text/encoding/japanese", false, null); + shiftJISDecoder = $pkg.shiftJISDecoder = $newType(0, $kindStruct, "japanese.shiftJISDecoder", true, "golang.org/x/text/encoding/japanese", false, function(NopResetter_) { + this.$val = this; + if (arguments.length === 0) { + this.NopResetter = new transform.NopResetter.ptr(); + return; + } + this.NopResetter = NopResetter_; + }); + shiftJISEncoder = $pkg.shiftJISEncoder = $newType(0, $kindStruct, "japanese.shiftJISEncoder", true, "golang.org/x/text/encoding/japanese", false, function(NopResetter_) { + this.$val = this; + if (arguments.length === 0) { + this.NopResetter = new transform.NopResetter.ptr(); + return; + } + this.NopResetter = NopResetter_; + }); + ptrType = $ptrType(iso2022JPDecoder); + ptrType$1 = $ptrType(iso2022JPEncoder); + sliceType$1 = $sliceType($Uint8); + eucJPDecoder.ptr.prototype.Transform = function(dst, src, atEOF) { + var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, atEOF, c0, c1, c1$1, c1$2, c2, dst, err, i, i$1, nDst, nSrc, p, r, size, src, x$5, x$6, x$7, x$8; + nDst = 0; + nSrc = 0; + err = $ifaceNil; + _tmp = 0; + _tmp$1 = 0; + r = _tmp; + size = _tmp$1; + loop: + while (true) { + if (!(nSrc < src.$length)) { break; } + switch (0) { default: + c0 = ((nSrc < 0 || nSrc >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + nSrc]); + if (c0 < 128) { + _tmp$2 = ((c0 >> 0)); + _tmp$3 = 1; + r = _tmp$2; + size = _tmp$3; + } else if ((c0 === 142)) { + if ((nSrc + 1 >> 0) >= src.$length) { + if (!atEOF) { + err = transform.ErrShortSrc; + break loop; + } + _tmp$4 = 65533; + _tmp$5 = 1; + r = _tmp$4; + size = _tmp$5; + break; + } + c1 = (x$5 = nSrc + 1 >> 0, ((x$5 < 0 || x$5 >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x$5])); + if (c1 < 161) { + _tmp$6 = 65533; + _tmp$7 = 1; + r = _tmp$6; + size = _tmp$7; + } else if (c1 > 223) { + _tmp$8 = 65533; + _tmp$9 = 2; + r = _tmp$8; + size = _tmp$9; + if (c1 === 255) { + size = 1; + } + } else { + _tmp$10 = ((c1 >> 0)) + 65216 >> 0; + _tmp$11 = 2; + r = _tmp$10; + size = _tmp$11; + } + } else if ((c0 === 143)) { + if ((nSrc + 2 >> 0) >= src.$length) { + if (!atEOF) { + err = transform.ErrShortSrc; + break loop; + } + _tmp$12 = 65533; + _tmp$13 = 1; + r = _tmp$12; + size = _tmp$13; + p = nSrc + 1 >> 0; + if (p < src.$length && 161 <= ((p < 0 || p >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + p]) && ((p < 0 || p >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + p]) < 254) { + size = 2; + } + break; + } + c1$1 = (x$6 = nSrc + 1 >> 0, ((x$6 < 0 || x$6 >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x$6])); + if (c1$1 < 161 || 254 < c1$1) { + _tmp$14 = 65533; + _tmp$15 = 1; + r = _tmp$14; + size = _tmp$15; + break; + } + c2 = (x$7 = nSrc + 2 >> 0, ((x$7 < 0 || x$7 >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x$7])); + if (c2 < 161 || 254 < c2) { + _tmp$16 = 65533; + _tmp$17 = 2; + r = _tmp$16; + size = _tmp$17; + break; + } + _tmp$18 = 65533; + _tmp$19 = 3; + r = _tmp$18; + size = _tmp$19; + i = ($imul((((c1$1 - 161 << 24 >>> 24) >> 0)), 94)) + (((c2 - 161 << 24 >>> 24) >> 0)) >> 0; + if (i < 7211) { + r = ((((i < 0 || i >= jis0212Decode.length) ? ($throwRuntimeError("index out of range"), undefined) : jis0212Decode[i]) >> 0)); + if (r === 0) { + r = 65533; + } + } + } else if (161 <= c0 && c0 <= 254) { + if ((nSrc + 1 >> 0) >= src.$length) { + if (!atEOF) { + err = transform.ErrShortSrc; + break loop; + } + _tmp$20 = 65533; + _tmp$21 = 1; + r = _tmp$20; + size = _tmp$21; + break; + } + c1$2 = (x$8 = nSrc + 1 >> 0, ((x$8 < 0 || x$8 >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x$8])); + if (c1$2 < 161 || 254 < c1$2) { + _tmp$22 = 65533; + _tmp$23 = 1; + r = _tmp$22; + size = _tmp$23; + break; + } + _tmp$24 = 65533; + _tmp$25 = 2; + r = _tmp$24; + size = _tmp$25; + i$1 = ($imul((((c0 - 161 << 24 >>> 24) >> 0)), 94)) + (((c1$2 - 161 << 24 >>> 24) >> 0)) >> 0; + if (i$1 < 11104) { + r = ((((i$1 < 0 || i$1 >= jis0208Decode.length) ? ($throwRuntimeError("index out of range"), undefined) : jis0208Decode[i$1]) >> 0)); + if (r === 0) { + r = 65533; + } + } + } else { + _tmp$26 = 65533; + _tmp$27 = 1; + r = _tmp$26; + size = _tmp$27; + } + } + if ((nDst + utf8.RuneLen(r) >> 0) > dst.$length) { + err = transform.ErrShortDst; + break loop; + } + nDst = nDst + (utf8.EncodeRune($subslice(dst, nDst), r)) >> 0; + nSrc = nSrc + (size) >> 0; + } + _tmp$28 = nDst; + _tmp$29 = nSrc; + _tmp$30 = err; + nDst = _tmp$28; + nSrc = _tmp$29; + err = _tmp$30; + return [nDst, nSrc, err]; + }; + eucJPDecoder.prototype.Transform = function(dst, src, atEOF) { return this.$val.Transform(dst, src, atEOF); }; + eucJPEncoder.ptr.prototype.Transform = function(dst, src, atEOF) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tuple, atEOF, dst, err, nDst, nSrc, r, size, src, x$10, x$11, x$12, x$13, x$14, x$5, x$6, x$7, x$8, x$9, $s; + /* */ $s = 0; s: while (true) { switch ($s) { case 0: + nDst = 0; + nSrc = 0; + err = $ifaceNil; + _tmp = 0; + _tmp$1 = 0; + r = _tmp; + size = _tmp$1; + /* while (true) { */ case 1: + /* if (!(nSrc < src.$length)) { break; } */ if(!(nSrc < src.$length)) { $s = 2; continue; } + r = ((((nSrc < 0 || nSrc >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + nSrc]) >> 0)); + /* */ if (r < 128) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (r < 128) { */ case 3: + size = 1; + $s = 5; continue; + /* } else { */ case 4: + _tuple = utf8.DecodeRune($subslice(src, nSrc)); + r = _tuple[0]; + size = _tuple[1]; + if (size === 1) { + if (!atEOF && !utf8.FullRune($subslice(src, nSrc))) { + err = transform.ErrShortSrc; + /* break; */ $s = 2; continue; + } + } + /* */ if (19968 <= r && r < 40870) { $s = 7; continue; } + /* */ if (8208 <= r && r < 9840) { $s = 8; continue; } + /* */ if (12288 <= r && r < 13262) { $s = 9; continue; } + /* */ if (161 <= r && r < 1120) { $s = 10; continue; } + /* */ if (63785 <= r && r < 64046) { $s = 11; continue; } + /* */ if (65281 <= r && r < 65510) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (19968 <= r && r < 40870) { */ case 7: + r = (((x$5 = r - 19968 >> 0, ((x$5 < 0 || x$5 >= encode0.length) ? ($throwRuntimeError("index out of range"), undefined) : encode0[x$5])) >> 0)); + /* */ if (!((r === 0))) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (!((r === 0))) { */ case 14: + /* goto write2or3 */ $s = 16; continue; + /* } */ case 15: + $s = 13; continue; + /* } else if (8208 <= r && r < 9840) { */ case 8: + r = (((x$6 = r - 8208 >> 0, ((x$6 < 0 || x$6 >= encode1.length) ? ($throwRuntimeError("index out of range"), undefined) : encode1[x$6])) >> 0)); + /* */ if (!((r === 0))) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (!((r === 0))) { */ case 17: + /* goto write2or3 */ $s = 16; continue; + /* } */ case 18: + $s = 13; continue; + /* } else if (12288 <= r && r < 13262) { */ case 9: + r = (((x$7 = r - 12288 >> 0, ((x$7 < 0 || x$7 >= encode2.length) ? ($throwRuntimeError("index out of range"), undefined) : encode2[x$7])) >> 0)); + /* */ if (!((r === 0))) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (!((r === 0))) { */ case 19: + /* goto write2or3 */ $s = 16; continue; + /* } */ case 20: + $s = 13; continue; + /* } else if (161 <= r && r < 1120) { */ case 10: + r = (((x$8 = r - 161 >> 0, ((x$8 < 0 || x$8 >= encode3.length) ? ($throwRuntimeError("index out of range"), undefined) : encode3[x$8])) >> 0)); + /* */ if (!((r === 0))) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (!((r === 0))) { */ case 21: + /* goto write2or3 */ $s = 16; continue; + /* } */ case 22: + $s = 13; continue; + /* } else if (63785 <= r && r < 64046) { */ case 11: + r = (((x$9 = r - 63785 >> 0, ((x$9 < 0 || x$9 >= encode4.length) ? ($throwRuntimeError("index out of range"), undefined) : encode4[x$9])) >> 0)); + /* */ if (!((r === 0))) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (!((r === 0))) { */ case 23: + /* goto write2or3 */ $s = 16; continue; + /* } */ case 24: + $s = 13; continue; + /* } else if (65281 <= r && r < 65510) { */ case 12: + /* */ if (65377 <= r && r < 65440) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (65377 <= r && r < 65440) { */ case 25: + /* goto write2 */ $s = 27; continue; + /* } */ case 26: + r = (((x$10 = r - 65281 >> 0, ((x$10 < 0 || x$10 >= encode5.length) ? ($throwRuntimeError("index out of range"), undefined) : encode5[x$10])) >> 0)); + /* */ if (!((r === 0))) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if (!((r === 0))) { */ case 28: + /* goto write2or3 */ $s = 16; continue; + /* } */ case 29: + /* } */ case 13: + case 6: + err = new internal.RepertoireError(internal.ErrASCIIReplacement); + /* break; */ $s = 2; continue; + /* } */ case 5: + if (nDst >= dst.$length) { + err = transform.ErrShortDst; + /* break; */ $s = 2; continue; + } + ((nDst < 0 || nDst >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + nDst] = ((r << 24 >>> 24))); + nDst = nDst + (1) >> 0; + nSrc = nSrc + (size) >> 0; + /* continue; */ $s = 1; continue; + /* write2or3: */ case 16: + if ((r >> 14 >> 0) === 1) { + if ((nDst + 2 >> 0) > dst.$length) { + err = transform.ErrShortDst; + /* break; */ $s = 2; continue; + } + } else { + if ((nDst + 3 >> 0) > dst.$length) { + err = transform.ErrShortDst; + /* break; */ $s = 2; continue; + } + ((nDst < 0 || nDst >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + nDst] = 143); + nDst = nDst + (1) >> 0; + } + (x$11 = nDst + 0 >> 0, ((x$11 < 0 || x$11 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$11] = (161 + (((((r >> 7 >> 0) << 24 >>> 24)) & 127) >>> 0) << 24 >>> 24))); + (x$12 = nDst + 1 >> 0, ((x$12 < 0 || x$12 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$12] = (161 + ((((r << 24 >>> 24)) & 127) >>> 0) << 24 >>> 24))); + nDst = nDst + (2) >> 0; + nSrc = nSrc + (size) >> 0; + /* continue; */ $s = 1; continue; + /* write2: */ case 27: + if ((nDst + 2 >> 0) > dst.$length) { + err = transform.ErrShortDst; + /* break; */ $s = 2; continue; + } + (x$13 = nDst + 0 >> 0, ((x$13 < 0 || x$13 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$13] = 142)); + (x$14 = nDst + 1 >> 0, ((x$14 < 0 || x$14 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$14] = (((r - 65216 >> 0) << 24 >>> 24)))); + nDst = nDst + (2) >> 0; + nSrc = nSrc + (size) >> 0; + /* continue; */ $s = 1; continue; + /* } */ $s = 1; continue; case 2: + _tmp$2 = nDst; + _tmp$3 = nSrc; + _tmp$4 = err; + nDst = _tmp$2; + nSrc = _tmp$3; + err = _tmp$4; + $s = -1; return [nDst, nSrc, err]; + /* */ } return; } + }; + eucJPEncoder.prototype.Transform = function(dst, src, atEOF) { return this.$val.Transform(dst, src, atEOF); }; + init = function() { + if (false) { + $panic(new $String("bad numEncodeTables")); + } + }; + iso2022JPNewDecoder = function() { + return $newDataPointer(0, ptrType); + }; + iso2022JPNewEncoder = function() { + return $newDataPointer(0, ptrType$1); + }; + $ptrType(iso2022JPDecoder).prototype.Reset = function() { + var d; + d = this; + d.$set(0); + }; + $ptrType(iso2022JPDecoder).prototype.Transform = function(dst, src, atEOF) { + var _1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$32, _tmp$33, _tmp$34, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, atEOF, c0, c1, c1$1, c2, d, dst, err, i, nDst, nSrc, r, size, src, x$5, x$6, x$7, x$8, $s; + /* */ $s = 0; s: while (true) { switch ($s) { case 0: + nDst = 0; + nSrc = 0; + err = $ifaceNil; + d = this; + _tmp = 0; + _tmp$1 = 0; + r = _tmp; + size = _tmp$1; + /* while (true) { */ case 1: + /* if (!(nSrc < src.$length)) { break; } */ if(!(nSrc < src.$length)) { $s = 2; continue; } + c0 = ((nSrc < 0 || nSrc >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + nSrc]); + /* */ if (c0 >= 128) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (c0 >= 128) { */ case 3: + _tmp$2 = 65533; + _tmp$3 = 1; + r = _tmp$2; + size = _tmp$3; + /* goto write */ $s = 5; continue; + /* } */ case 4: + /* */ if (c0 === 27) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (c0 === 27) { */ case 6: + /* */ if ((nSrc + 2 >> 0) >= src.$length) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if ((nSrc + 2 >> 0) >= src.$length) { */ case 8: + if (!atEOF) { + _tmp$4 = nDst; + _tmp$5 = nSrc; + _tmp$6 = transform.ErrShortSrc; + nDst = _tmp$4; + nSrc = _tmp$5; + err = _tmp$6; + $s = -1; return [nDst, nSrc, err]; + } + _tmp$7 = 65533; + _tmp$8 = 1; + r = _tmp$7; + size = _tmp$8; + /* goto write */ $s = 5; continue; + /* } */ case 9: + size = 3; + c1 = (x$5 = nSrc + 1 >> 0, ((x$5 < 0 || x$5 >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x$5])); + c2 = (x$6 = nSrc + 2 >> 0, ((x$6 < 0 || x$6 >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x$6])); + /* */ if ((c1 === 36) && ((c2 === 64) || (c2 === 66))) { $s = 11; continue; } + /* */ if ((c1 === 36) && (c2 === 40)) { $s = 12; continue; } + /* */ if ((c1 === 40) && ((c2 === 66) || (c2 === 74))) { $s = 13; continue; } + /* */ if ((c1 === 40) && (c2 === 73)) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if ((c1 === 36) && ((c2 === 64) || (c2 === 66))) { */ case 11: + d.$set(2); + nSrc = nSrc + (size) >> 0; + /* continue; */ $s = 1; continue; + $s = 15; continue; + /* } else if ((c1 === 36) && (c2 === 40)) { */ case 12: + /* */ if ((nSrc + 3 >> 0) >= src.$length) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if ((nSrc + 3 >> 0) >= src.$length) { */ case 16: + if (!atEOF) { + _tmp$9 = nDst; + _tmp$10 = nSrc; + _tmp$11 = transform.ErrShortSrc; + nDst = _tmp$9; + nSrc = _tmp$10; + err = _tmp$11; + $s = -1; return [nDst, nSrc, err]; + } + _tmp$12 = 65533; + _tmp$13 = 1; + r = _tmp$12; + size = _tmp$13; + /* goto write */ $s = 5; continue; + /* } */ case 17: + size = 4; + if ((x$7 = nSrc + 3 >> 0, ((x$7 < 0 || x$7 >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x$7])) === 68) { + d.$set(3); + nSrc = nSrc + (size) >> 0; + /* continue; */ $s = 1; continue; + } + $s = 15; continue; + /* } else if ((c1 === 40) && ((c2 === 66) || (c2 === 74))) { */ case 13: + d.$set(0); + nSrc = nSrc + (size) >> 0; + /* continue; */ $s = 1; continue; + $s = 15; continue; + /* } else if ((c1 === 40) && (c2 === 73)) { */ case 14: + d.$set(1); + nSrc = nSrc + (size) >> 0; + /* continue; */ $s = 1; continue; + /* } */ case 15: + case 10: + _tmp$14 = 65533; + _tmp$15 = 1; + r = _tmp$14; + size = _tmp$15; + /* goto write */ $s = 5; continue; + /* } */ case 7: + _1 = d.$get(); + /* */ if (_1 === (0)) { $s = 19; continue; } + /* */ if (_1 === (1)) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (_1 === (0)) { */ case 19: + _tmp$16 = ((c0 >> 0)); + _tmp$17 = 1; + r = _tmp$16; + size = _tmp$17; + $s = 22; continue; + /* } else if (_1 === (1)) { */ case 20: + /* */ if (c0 < 33 || 96 <= c0) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (c0 < 33 || 96 <= c0) { */ case 23: + _tmp$18 = 65533; + _tmp$19 = 1; + r = _tmp$18; + size = _tmp$19; + /* goto write */ $s = 5; continue; + /* } */ case 24: + _tmp$20 = ((c0 >> 0)) + 65344 >> 0; + _tmp$21 = 1; + r = _tmp$20; + size = _tmp$21; + $s = 22; continue; + /* } else { */ case 21: + /* */ if (c0 === 10) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (c0 === 10) { */ case 25: + d.$set(0); + _tmp$22 = ((c0 >> 0)); + _tmp$23 = 1; + r = _tmp$22; + size = _tmp$23; + /* goto write */ $s = 5; continue; + /* } */ case 26: + /* */ if ((nSrc + 1 >> 0) >= src.$length) { $s = 27; continue; } + /* */ $s = 28; continue; + /* if ((nSrc + 1 >> 0) >= src.$length) { */ case 27: + if (!atEOF) { + _tmp$24 = nDst; + _tmp$25 = nSrc; + _tmp$26 = transform.ErrShortSrc; + nDst = _tmp$24; + nSrc = _tmp$25; + err = _tmp$26; + $s = -1; return [nDst, nSrc, err]; + } + _tmp$27 = 65533; + _tmp$28 = 1; + r = _tmp$27; + size = _tmp$28; + /* goto write */ $s = 5; continue; + /* } */ case 28: + size = 2; + c1$1 = (x$8 = nSrc + 1 >> 0, ((x$8 < 0 || x$8 >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x$8])); + i = ($imul((((c0 - 33 << 24 >>> 24) >> 0)), 94)) + (((c1$1 - 33 << 24 >>> 24) >> 0)) >> 0; + /* */ if ((d.$get() === 2) && i < 11104) { $s = 29; continue; } + /* */ if ((d.$get() === 3) && i < 7211) { $s = 30; continue; } + /* */ $s = 31; continue; + /* if ((d.$get() === 2) && i < 11104) { */ case 29: + r = ((((i < 0 || i >= jis0208Decode.length) ? ($throwRuntimeError("index out of range"), undefined) : jis0208Decode[i]) >> 0)); + $s = 32; continue; + /* } else if ((d.$get() === 3) && i < 7211) { */ case 30: + r = ((((i < 0 || i >= jis0212Decode.length) ? ($throwRuntimeError("index out of range"), undefined) : jis0212Decode[i]) >> 0)); + $s = 32; continue; + /* } else { */ case 31: + r = 65533; + /* goto write */ $s = 5; continue; + /* } */ case 32: + if (r === 0) { + r = 65533; + } + /* } */ case 22: + case 18: + /* write: */ case 5: + if ((nDst + utf8.RuneLen(r) >> 0) > dst.$length) { + _tmp$29 = nDst; + _tmp$30 = nSrc; + _tmp$31 = transform.ErrShortDst; + nDst = _tmp$29; + nSrc = _tmp$30; + err = _tmp$31; + $s = -1; return [nDst, nSrc, err]; + } + nDst = nDst + (utf8.EncodeRune($subslice(dst, nDst), r)) >> 0; + nSrc = nSrc + (size) >> 0; + /* } */ $s = 1; continue; case 2: + _tmp$32 = nDst; + _tmp$33 = nSrc; + _tmp$34 = err; + nDst = _tmp$32; + nSrc = _tmp$33; + err = _tmp$34; + $s = -1; return [nDst, nSrc, err]; + /* */ } return; } + }; + $ptrType(iso2022JPEncoder).prototype.Reset = function() { + var e; + e = this; + e.$set(0); + }; + $ptrType(iso2022JPEncoder).prototype.Transform = function(dst, src, atEOF) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tuple, atEOF, dst, e, err, nDst, nSrc, r, size, src, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$20, x$21, x$22, x$23, x$24, x$25, x$26, x$27, x$5, x$6, x$7, x$8, x$9, $s; + /* */ $s = 0; s: while (true) { switch ($s) { case 0: + nDst = 0; + nSrc = 0; + err = $ifaceNil; + e = this; + _tmp = 0; + _tmp$1 = 0; + r = _tmp; + size = _tmp$1; + /* while (true) { */ case 1: + /* if (!(nSrc < src.$length)) { break; } */ if(!(nSrc < src.$length)) { $s = 2; continue; } + r = ((((nSrc < 0 || nSrc >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + nSrc]) >> 0)); + /* */ if (r < 128) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (r < 128) { */ case 3: + size = 1; + $s = 5; continue; + /* } else { */ case 4: + _tuple = utf8.DecodeRune($subslice(src, nSrc)); + r = _tuple[0]; + size = _tuple[1]; + if (size === 1) { + if (!atEOF && !utf8.FullRune($subslice(src, nSrc))) { + err = transform.ErrShortSrc; + /* break; */ $s = 2; continue; + } + } + /* */ if (19968 <= r && r < 40870) { $s = 7; continue; } + /* */ if (8208 <= r && r < 9840) { $s = 8; continue; } + /* */ if (12288 <= r && r < 13262) { $s = 9; continue; } + /* */ if (161 <= r && r < 1120) { $s = 10; continue; } + /* */ if (63785 <= r && r < 64046) { $s = 11; continue; } + /* */ if (65281 <= r && r < 65510) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (19968 <= r && r < 40870) { */ case 7: + r = (((x$5 = r - 19968 >> 0, ((x$5 < 0 || x$5 >= encode0.length) ? ($throwRuntimeError("index out of range"), undefined) : encode0[x$5])) >> 0)); + /* */ if ((r >> 14 >> 0) === 1) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if ((r >> 14 >> 0) === 1) { */ case 14: + /* goto writeJIS */ $s = 16; continue; + /* } */ case 15: + $s = 13; continue; + /* } else if (8208 <= r && r < 9840) { */ case 8: + r = (((x$6 = r - 8208 >> 0, ((x$6 < 0 || x$6 >= encode1.length) ? ($throwRuntimeError("index out of range"), undefined) : encode1[x$6])) >> 0)); + /* */ if ((r >> 14 >> 0) === 1) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if ((r >> 14 >> 0) === 1) { */ case 17: + /* goto writeJIS */ $s = 16; continue; + /* } */ case 18: + $s = 13; continue; + /* } else if (12288 <= r && r < 13262) { */ case 9: + r = (((x$7 = r - 12288 >> 0, ((x$7 < 0 || x$7 >= encode2.length) ? ($throwRuntimeError("index out of range"), undefined) : encode2[x$7])) >> 0)); + /* */ if ((r >> 14 >> 0) === 1) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if ((r >> 14 >> 0) === 1) { */ case 19: + /* goto writeJIS */ $s = 16; continue; + /* } */ case 20: + $s = 13; continue; + /* } else if (161 <= r && r < 1120) { */ case 10: + r = (((x$8 = r - 161 >> 0, ((x$8 < 0 || x$8 >= encode3.length) ? ($throwRuntimeError("index out of range"), undefined) : encode3[x$8])) >> 0)); + /* */ if ((r >> 14 >> 0) === 1) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if ((r >> 14 >> 0) === 1) { */ case 21: + /* goto writeJIS */ $s = 16; continue; + /* } */ case 22: + $s = 13; continue; + /* } else if (63785 <= r && r < 64046) { */ case 11: + r = (((x$9 = r - 63785 >> 0, ((x$9 < 0 || x$9 >= encode4.length) ? ($throwRuntimeError("index out of range"), undefined) : encode4[x$9])) >> 0)); + /* */ if ((r >> 14 >> 0) === 1) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if ((r >> 14 >> 0) === 1) { */ case 23: + /* goto writeJIS */ $s = 16; continue; + /* } */ case 24: + $s = 13; continue; + /* } else if (65281 <= r && r < 65510) { */ case 12: + /* */ if (65377 <= r && r < 65440) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (65377 <= r && r < 65440) { */ case 25: + /* goto writeKatakana */ $s = 27; continue; + /* } */ case 26: + r = (((x$10 = r - 65281 >> 0, ((x$10 < 0 || x$10 >= encode5.length) ? ($throwRuntimeError("index out of range"), undefined) : encode5[x$10])) >> 0)); + /* */ if ((r >> 14 >> 0) === 1) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if ((r >> 14 >> 0) === 1) { */ case 28: + /* goto writeJIS */ $s = 16; continue; + /* } */ case 29: + /* } */ case 13: + case 6: + if (!((e.$get() === 0))) { + if ((nDst + 3 >> 0) > dst.$length) { + err = transform.ErrShortDst; + /* break; */ $s = 2; continue; + } + e.$set(0); + (x$11 = nDst + 0 >> 0, ((x$11 < 0 || x$11 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$11] = 27)); + (x$12 = nDst + 1 >> 0, ((x$12 < 0 || x$12 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$12] = 40)); + (x$13 = nDst + 2 >> 0, ((x$13 < 0 || x$13 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$13] = 66)); + nDst = nDst + (3) >> 0; + } + err = new internal.RepertoireError(internal.ErrASCIIReplacement); + /* break; */ $s = 2; continue; + /* } */ case 5: + if (!((e.$get() === 0))) { + if ((nDst + 4 >> 0) > dst.$length) { + err = transform.ErrShortDst; + /* break; */ $s = 2; continue; + } + e.$set(0); + (x$14 = nDst + 0 >> 0, ((x$14 < 0 || x$14 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$14] = 27)); + (x$15 = nDst + 1 >> 0, ((x$15 < 0 || x$15 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$15] = 40)); + (x$16 = nDst + 2 >> 0, ((x$16 < 0 || x$16 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$16] = 66)); + nDst = nDst + (3) >> 0; + } else if (nDst >= dst.$length) { + err = transform.ErrShortDst; + /* break; */ $s = 2; continue; + } + ((nDst < 0 || nDst >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + nDst] = ((r << 24 >>> 24))); + nDst = nDst + (1) >> 0; + nSrc = nSrc + (size) >> 0; + /* continue; */ $s = 1; continue; + /* writeJIS: */ case 16: + if (!((e.$get() === 2))) { + if ((nDst + 5 >> 0) > dst.$length) { + err = transform.ErrShortDst; + /* break; */ $s = 2; continue; + } + e.$set(2); + (x$17 = nDst + 0 >> 0, ((x$17 < 0 || x$17 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$17] = 27)); + (x$18 = nDst + 1 >> 0, ((x$18 < 0 || x$18 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$18] = 36)); + (x$19 = nDst + 2 >> 0, ((x$19 < 0 || x$19 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$19] = 66)); + nDst = nDst + (3) >> 0; + } else if ((nDst + 2 >> 0) > dst.$length) { + err = transform.ErrShortDst; + /* break; */ $s = 2; continue; + } + (x$20 = nDst + 0 >> 0, ((x$20 < 0 || x$20 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$20] = (33 + (((((r >> 7 >> 0) << 24 >>> 24)) & 127) >>> 0) << 24 >>> 24))); + (x$21 = nDst + 1 >> 0, ((x$21 < 0 || x$21 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$21] = (33 + ((((r << 24 >>> 24)) & 127) >>> 0) << 24 >>> 24))); + nDst = nDst + (2) >> 0; + nSrc = nSrc + (size) >> 0; + /* continue; */ $s = 1; continue; + /* writeKatakana: */ case 27: + if (!((e.$get() === 1))) { + if ((nDst + 4 >> 0) > dst.$length) { + err = transform.ErrShortDst; + /* break; */ $s = 2; continue; + } + e.$set(1); + (x$22 = nDst + 0 >> 0, ((x$22 < 0 || x$22 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$22] = 27)); + (x$23 = nDst + 1 >> 0, ((x$23 < 0 || x$23 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$23] = 40)); + (x$24 = nDst + 2 >> 0, ((x$24 < 0 || x$24 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$24] = 73)); + nDst = nDst + (3) >> 0; + } else if (nDst >= dst.$length) { + err = transform.ErrShortDst; + /* break; */ $s = 2; continue; + } + ((nDst < 0 || nDst >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + nDst] = (((r - 65344 >> 0) << 24 >>> 24))); + nDst = nDst + (1) >> 0; + nSrc = nSrc + (size) >> 0; + /* continue; */ $s = 1; continue; + /* } */ $s = 1; continue; case 2: + if (atEOF && $interfaceIsEqual(err, $ifaceNil) && !((e.$get() === 0))) { + if ((nDst + 3 >> 0) > dst.$length) { + err = transform.ErrShortDst; + } else { + e.$set(0); + (x$25 = nDst + 0 >> 0, ((x$25 < 0 || x$25 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$25] = 27)); + (x$26 = nDst + 1 >> 0, ((x$26 < 0 || x$26 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$26] = 40)); + (x$27 = nDst + 2 >> 0, ((x$27 < 0 || x$27 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$27] = 66)); + nDst = nDst + (3) >> 0; + } + } + _tmp$2 = nDst; + _tmp$3 = nSrc; + _tmp$4 = err; + nDst = _tmp$2; + nSrc = _tmp$3; + err = _tmp$4; + $s = -1; return [nDst, nSrc, err]; + /* */ } return; } + }; + shiftJISDecoder.ptr.prototype.Transform = function(dst, src, atEOF) { + var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, atEOF, c0, c1, dst, err, i, nDst, nSrc, r, size, src, x$5, $s; + /* */ $s = 0; s: while (true) { switch ($s) { case 0: + nDst = 0; + nSrc = 0; + err = $ifaceNil; + _tmp = 0; + _tmp$1 = 0; + r = _tmp; + size = _tmp$1; + /* while (true) { */ case 1: + /* if (!(nSrc < src.$length)) { break; } */ if(!(nSrc < src.$length)) { $s = 2; continue; } + c0 = ((nSrc < 0 || nSrc >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + nSrc]); + /* */ if (c0 < 128) { $s = 4; continue; } + /* */ if (161 <= c0 && c0 < 224) { $s = 5; continue; } + /* */ if ((129 <= c0 && c0 < 160) || (224 <= c0 && c0 < 253)) { $s = 6; continue; } + /* */ if ((c0 === 128)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (c0 < 128) { */ case 4: + _tmp$2 = ((c0 >> 0)); + _tmp$3 = 1; + r = _tmp$2; + size = _tmp$3; + $s = 9; continue; + /* } else if (161 <= c0 && c0 < 224) { */ case 5: + _tmp$4 = ((c0 >> 0)) + 65216 >> 0; + _tmp$5 = 1; + r = _tmp$4; + size = _tmp$5; + $s = 9; continue; + /* } else if ((129 <= c0 && c0 < 160) || (224 <= c0 && c0 < 253)) { */ case 6: + if (c0 <= 159) { + c0 = c0 - (112) << 24 >>> 24; + } else { + c0 = c0 - (176) << 24 >>> 24; + } + c0 = (2 * c0 << 24 >>> 24) - 33 << 24 >>> 24; + /* */ if ((nSrc + 1 >> 0) >= src.$length) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if ((nSrc + 1 >> 0) >= src.$length) { */ case 10: + if (!atEOF) { + err = transform.ErrShortSrc; + /* break loop; */ $s = 2; continue s; + } + _tmp$6 = 65533; + _tmp$7 = 1; + r = _tmp$6; + size = _tmp$7; + /* goto write */ $s = 12; continue; + /* } */ case 11: + c1 = (x$5 = nSrc + 1 >> 0, ((x$5 < 0 || x$5 >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x$5])); + /* */ if (c1 < 64) { $s = 14; continue; } + /* */ if (c1 < 127) { $s = 15; continue; } + /* */ if ((c1 === 127)) { $s = 16; continue; } + /* */ if (c1 < 159) { $s = 17; continue; } + /* */ if (c1 < 253) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (c1 < 64) { */ case 14: + _tmp$8 = 65533; + _tmp$9 = 1; + r = _tmp$8; + size = _tmp$9; + /* goto write */ $s = 12; continue; + $s = 20; continue; + /* } else if (c1 < 127) { */ case 15: + c0 = c0 - (1) << 24 >>> 24; + c1 = c1 - (64) << 24 >>> 24; + $s = 20; continue; + /* } else if ((c1 === 127)) { */ case 16: + _tmp$10 = 65533; + _tmp$11 = 1; + r = _tmp$10; + size = _tmp$11; + /* goto write */ $s = 12; continue; + $s = 20; continue; + /* } else if (c1 < 159) { */ case 17: + c0 = c0 - (1) << 24 >>> 24; + c1 = c1 - (65) << 24 >>> 24; + $s = 20; continue; + /* } else if (c1 < 253) { */ case 18: + c1 = c1 - (159) << 24 >>> 24; + $s = 20; continue; + /* } else { */ case 19: + _tmp$12 = 65533; + _tmp$13 = 2; + r = _tmp$12; + size = _tmp$13; + /* goto write */ $s = 12; continue; + /* } */ case 20: + case 13: + _tmp$14 = 65533; + _tmp$15 = 2; + r = _tmp$14; + size = _tmp$15; + i = ($imul(((c0 >> 0)), 94)) + ((c1 >> 0)) >> 0; + if (i < 11104) { + r = ((((i < 0 || i >= jis0208Decode.length) ? ($throwRuntimeError("index out of range"), undefined) : jis0208Decode[i]) >> 0)); + if (r === 0) { + r = 65533; + } + } + $s = 9; continue; + /* } else if ((c0 === 128)) { */ case 7: + _tmp$16 = 128; + _tmp$17 = 1; + r = _tmp$16; + size = _tmp$17; + $s = 9; continue; + /* } else { */ case 8: + _tmp$18 = 65533; + _tmp$19 = 1; + r = _tmp$18; + size = _tmp$19; + /* } */ case 9: + case 3: + /* write: */ case 12: + if ((nDst + utf8.RuneLen(r) >> 0) > dst.$length) { + err = transform.ErrShortDst; + /* break loop; */ $s = 2; continue s; + } + nDst = nDst + (utf8.EncodeRune($subslice(dst, nDst), r)) >> 0; + nSrc = nSrc + (size) >> 0; + /* } */ $s = 1; continue; case 2: + _tmp$20 = nDst; + _tmp$21 = nSrc; + _tmp$22 = err; + nDst = _tmp$20; + nSrc = _tmp$21; + err = _tmp$22; + $s = -1; return [nDst, nSrc, err]; + /* */ } return; } + }; + shiftJISDecoder.prototype.Transform = function(dst, src, atEOF) { return this.$val.Transform(dst, src, atEOF); }; + shiftJISEncoder.ptr.prototype.Transform = function(dst, src, atEOF) { + var _q, _q$1, _q$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tuple, atEOF, dst, err, j1, j2, nDst, nSrc, r, size, src, x$10, x$11, x$12, x$13, x$14, x$5, x$6, x$7, x$8, x$9, $s; + /* */ $s = 0; s: while (true) { switch ($s) { case 0: + nDst = 0; + nSrc = 0; + err = $ifaceNil; + _tmp = 0; + _tmp$1 = 0; + r = _tmp; + size = _tmp$1; + /* while (true) { */ case 1: + /* if (!(nSrc < src.$length)) { break; } */ if(!(nSrc < src.$length)) { $s = 2; continue; } + r = ((((nSrc < 0 || nSrc >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + nSrc]) >> 0)); + /* */ if (r < 128) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (r < 128) { */ case 3: + size = 1; + $s = 5; continue; + /* } else { */ case 4: + _tuple = utf8.DecodeRune($subslice(src, nSrc)); + r = _tuple[0]; + size = _tuple[1]; + if (size === 1) { + if (!atEOF && !utf8.FullRune($subslice(src, nSrc))) { + err = transform.ErrShortSrc; + /* break loop; */ $s = 2; continue s; + } + } + /* */ if (19968 <= r && r < 40870) { $s = 7; continue; } + /* */ if (8208 <= r && r < 9840) { $s = 8; continue; } + /* */ if (12288 <= r && r < 13262) { $s = 9; continue; } + /* */ if (161 <= r && r < 1120) { $s = 10; continue; } + /* */ if (63785 <= r && r < 64046) { $s = 11; continue; } + /* */ if (65281 <= r && r < 65510) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (19968 <= r && r < 40870) { */ case 7: + r = (((x$5 = r - 19968 >> 0, ((x$5 < 0 || x$5 >= encode0.length) ? ($throwRuntimeError("index out of range"), undefined) : encode0[x$5])) >> 0)); + /* */ if ((r >> 14 >> 0) === 1) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if ((r >> 14 >> 0) === 1) { */ case 14: + /* goto write2 */ $s = 16; continue; + /* } */ case 15: + $s = 13; continue; + /* } else if (8208 <= r && r < 9840) { */ case 8: + r = (((x$6 = r - 8208 >> 0, ((x$6 < 0 || x$6 >= encode1.length) ? ($throwRuntimeError("index out of range"), undefined) : encode1[x$6])) >> 0)); + /* */ if ((r >> 14 >> 0) === 1) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if ((r >> 14 >> 0) === 1) { */ case 17: + /* goto write2 */ $s = 16; continue; + /* } */ case 18: + $s = 13; continue; + /* } else if (12288 <= r && r < 13262) { */ case 9: + r = (((x$7 = r - 12288 >> 0, ((x$7 < 0 || x$7 >= encode2.length) ? ($throwRuntimeError("index out of range"), undefined) : encode2[x$7])) >> 0)); + /* */ if ((r >> 14 >> 0) === 1) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if ((r >> 14 >> 0) === 1) { */ case 19: + /* goto write2 */ $s = 16; continue; + /* } */ case 20: + $s = 13; continue; + /* } else if (161 <= r && r < 1120) { */ case 10: + r = (((x$8 = r - 161 >> 0, ((x$8 < 0 || x$8 >= encode3.length) ? ($throwRuntimeError("index out of range"), undefined) : encode3[x$8])) >> 0)); + /* */ if ((r >> 14 >> 0) === 1) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if ((r >> 14 >> 0) === 1) { */ case 21: + /* goto write2 */ $s = 16; continue; + /* } */ case 22: + $s = 13; continue; + /* } else if (63785 <= r && r < 64046) { */ case 11: + r = (((x$9 = r - 63785 >> 0, ((x$9 < 0 || x$9 >= encode4.length) ? ($throwRuntimeError("index out of range"), undefined) : encode4[x$9])) >> 0)); + /* */ if ((r >> 14 >> 0) === 1) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if ((r >> 14 >> 0) === 1) { */ case 23: + /* goto write2 */ $s = 16; continue; + /* } */ case 24: + $s = 13; continue; + /* } else if (65281 <= r && r < 65510) { */ case 12: + /* */ if (65377 <= r && r < 65440) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (65377 <= r && r < 65440) { */ case 25: + r = r - (65216) >> 0; + /* goto write1 */ $s = 27; continue; + /* } */ case 26: + r = (((x$10 = r - 65281 >> 0, ((x$10 < 0 || x$10 >= encode5.length) ? ($throwRuntimeError("index out of range"), undefined) : encode5[x$10])) >> 0)); + /* */ if ((r >> 14 >> 0) === 1) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if ((r >> 14 >> 0) === 1) { */ case 28: + /* goto write2 */ $s = 16; continue; + /* } */ case 29: + /* } */ case 13: + case 6: + err = new internal.RepertoireError(internal.ErrASCIIReplacement); + /* break; */ $s = 2; continue; + /* } */ case 5: + /* write1: */ case 27: + if (nDst >= dst.$length) { + err = transform.ErrShortDst; + /* break; */ $s = 2; continue; + } + ((nDst < 0 || nDst >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + nDst] = ((r << 24 >>> 24))); + nDst = nDst + (1) >> 0; + nSrc = nSrc + (size) >> 0; + /* continue; */ $s = 1; continue; + /* write2: */ case 16: + j1 = ((((r >> 7 >> 0) << 24 >>> 24)) & 127) >>> 0; + j2 = (((r << 24 >>> 24)) & 127) >>> 0; + if ((nDst + 2 >> 0) > dst.$length) { + err = transform.ErrShortDst; + /* break loop; */ $s = 2; continue s; + } + if (j1 <= 61) { + (x$11 = nDst + 0 >> 0, ((x$11 < 0 || x$11 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$11] = (129 + (_q = j1 / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24))); + } else { + (x$12 = nDst + 0 >> 0, ((x$12 < 0 || x$12 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$12] = (193 + (_q$1 = j1 / 2, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >>> 0 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24))); + } + if (((j1 & 1) >>> 0) === 0) { + (x$13 = nDst + 1 >> 0, ((x$13 < 0 || x$13 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$13] = ((j2 + (_q$2 = j2 / 63, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >>> 0 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24) + 64 << 24 >>> 24))); + } else { + (x$14 = nDst + 1 >> 0, ((x$14 < 0 || x$14 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$14] = (j2 + 159 << 24 >>> 24))); + } + nDst = nDst + (2) >> 0; + nSrc = nSrc + (size) >> 0; + /* continue; */ $s = 1; continue; + /* } */ $s = 1; continue; case 2: + _tmp$2 = nDst; + _tmp$3 = nSrc; + _tmp$4 = err; + nDst = _tmp$2; + nSrc = _tmp$3; + err = _tmp$4; + $s = -1; return [nDst, nSrc, err]; + /* */ } return; } + }; + shiftJISEncoder.prototype.Transform = function(dst, src, atEOF) { return this.$val.Transform(dst, src, atEOF); }; + eucJPDecoder.methods = [{prop: "Transform", name: "Transform", pkg: "", typ: $funcType([sliceType$1, sliceType$1, $Bool], [$Int, $Int, $error], false)}]; + eucJPEncoder.methods = [{prop: "Transform", name: "Transform", pkg: "", typ: $funcType([sliceType$1, sliceType$1, $Bool], [$Int, $Int, $error], false)}]; + ptrType.methods = [{prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}, {prop: "Transform", name: "Transform", pkg: "", typ: $funcType([sliceType$1, sliceType$1, $Bool], [$Int, $Int, $error], false)}]; + ptrType$1.methods = [{prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}, {prop: "Transform", name: "Transform", pkg: "", typ: $funcType([sliceType$1, sliceType$1, $Bool], [$Int, $Int, $error], false)}]; + shiftJISDecoder.methods = [{prop: "Transform", name: "Transform", pkg: "", typ: $funcType([sliceType$1, sliceType$1, $Bool], [$Int, $Int, $error], false)}]; + shiftJISEncoder.methods = [{prop: "Transform", name: "Transform", pkg: "", typ: $funcType([sliceType$1, sliceType$1, $Bool], [$Int, $Int, $error], false)}]; + eucJPDecoder.init("", [{prop: "NopResetter", name: "NopResetter", embedded: true, exported: true, typ: transform.NopResetter, tag: ""}]); + eucJPEncoder.init("", [{prop: "NopResetter", name: "NopResetter", embedded: true, exported: true, typ: transform.NopResetter, tag: ""}]); + shiftJISDecoder.init("", [{prop: "NopResetter", name: "NopResetter", embedded: true, exported: true, typ: transform.NopResetter, tag: ""}]); + shiftJISEncoder.init("", [{prop: "NopResetter", name: "NopResetter", embedded: true, exported: true, typ: transform.NopResetter, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = encoding.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = internal.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = identifier.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = transform.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + eucJP = new internal.Encoding.ptr(new internal.SimpleEncoding.ptr((x = new eucJPDecoder.ptr(new transform.NopResetter.ptr()), new x.constructor.elem(x)), (x$1 = new eucJPEncoder.ptr(new transform.NopResetter.ptr()), new x$1.constructor.elem(x$1))), "EUC-JP", 18); + $pkg.EUCJP = eucJP; + iso2022JP = new internal.Encoding.ptr((x$2 = new internal.FuncEncoding.ptr(iso2022JPNewDecoder, iso2022JPNewEncoder), new x$2.constructor.elem(x$2)), "ISO-2022-JP", 39); + $pkg.ISO2022JP = iso2022JP; + shiftJIS = new internal.Encoding.ptr(new internal.SimpleEncoding.ptr((x$3 = new shiftJISDecoder.ptr(new transform.NopResetter.ptr()), new x$3.constructor.elem(x$3)), (x$4 = new shiftJISEncoder.ptr(new transform.NopResetter.ptr()), new x$4.constructor.elem(x$4))), "Shift JIS", 17); + $pkg.ShiftJIS = shiftJIS; + jis0208Decode = $toNativeArray($kindUint16, [12288, 12289, 12290, 65292, 65294, 12539, 65306, 65307, 65311, 65281, 12443, 12444, 180, 65344, 168, 65342, 65507, 65343, 12541, 12542, 12445, 12446, 12291, 20189, 12293, 12294, 12295, 12540, 8213, 8208, 65295, 65340, 65374, 8741, 65372, 8230, 8229, 8216, 8217, 8220, 8221, 65288, 65289, 12308, 12309, 65339, 65341, 65371, 65373, 12296, 12297, 12298, 12299, 12300, 12301, 12302, 12303, 12304, 12305, 65291, 65293, 177, 215, 247, 65309, 8800, 65308, 65310, 8806, 8807, 8734, 8756, 9794, 9792, 176, 8242, 8243, 8451, 65509, 65284, 65504, 65505, 65285, 65283, 65286, 65290, 65312, 167, 9734, 9733, 9675, 9679, 9678, 9671, 9670, 9633, 9632, 9651, 9650, 9661, 9660, 8251, 12306, 8594, 8592, 8593, 8595, 12307, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8712, 8715, 8838, 8839, 8834, 8835, 8746, 8745, 0, 0, 0, 0, 0, 0, 0, 0, 8743, 8744, 65506, 8658, 8660, 8704, 8707, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8736, 8869, 8978, 8706, 8711, 8801, 8786, 8810, 8811, 8730, 8765, 8733, 8757, 8747, 8748, 0, 0, 0, 0, 0, 0, 0, 8491, 8240, 9839, 9837, 9834, 8224, 8225, 182, 0, 0, 0, 0, 9711, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65296, 65297, 65298, 65299, 65300, 65301, 65302, 65303, 65304, 65305, 0, 0, 0, 0, 0, 0, 0, 65313, 65314, 65315, 65316, 65317, 65318, 65319, 65320, 65321, 65322, 65323, 65324, 65325, 65326, 65327, 65328, 65329, 65330, 65331, 65332, 65333, 65334, 65335, 65336, 65337, 65338, 0, 0, 0, 0, 0, 0, 65345, 65346, 65347, 65348, 65349, 65350, 65351, 65352, 65353, 65354, 65355, 65356, 65357, 65358, 65359, 65360, 65361, 65362, 65363, 65364, 65365, 65366, 65367, 65368, 65369, 65370, 0, 0, 0, 0, 12353, 12354, 12355, 12356, 12357, 12358, 12359, 12360, 12361, 12362, 12363, 12364, 12365, 12366, 12367, 12368, 12369, 12370, 12371, 12372, 12373, 12374, 12375, 12376, 12377, 12378, 12379, 12380, 12381, 12382, 12383, 12384, 12385, 12386, 12387, 12388, 12389, 12390, 12391, 12392, 12393, 12394, 12395, 12396, 12397, 12398, 12399, 12400, 12401, 12402, 12403, 12404, 12405, 12406, 12407, 12408, 12409, 12410, 12411, 12412, 12413, 12414, 12415, 12416, 12417, 12418, 12419, 12420, 12421, 12422, 12423, 12424, 12425, 12426, 12427, 12428, 12429, 12430, 12431, 12432, 12433, 12434, 12435, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12449, 12450, 12451, 12452, 12453, 12454, 12455, 12456, 12457, 12458, 12459, 12460, 12461, 12462, 12463, 12464, 12465, 12466, 12467, 12468, 12469, 12470, 12471, 12472, 12473, 12474, 12475, 12476, 12477, 12478, 12479, 12480, 12481, 12482, 12483, 12484, 12485, 12486, 12487, 12488, 12489, 12490, 12491, 12492, 12493, 12494, 12495, 12496, 12497, 12498, 12499, 12500, 12501, 12502, 12503, 12504, 12505, 12506, 12507, 12508, 12509, 12510, 12511, 12512, 12513, 12514, 12515, 12516, 12517, 12518, 12519, 12520, 12521, 12522, 12523, 12524, 12525, 12526, 12527, 12528, 12529, 12530, 12531, 12532, 12533, 12534, 0, 0, 0, 0, 0, 0, 0, 0, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937, 0, 0, 0, 0, 0, 0, 0, 0, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 963, 964, 965, 966, 967, 968, 969, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1040, 1041, 1042, 1043, 1044, 1045, 1025, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1072, 1073, 1074, 1075, 1076, 1077, 1105, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9472, 9474, 9484, 9488, 9496, 9492, 9500, 9516, 9508, 9524, 9532, 9473, 9475, 9487, 9491, 9499, 9495, 9507, 9523, 9515, 9531, 9547, 9504, 9519, 9512, 9527, 9535, 9501, 9520, 9509, 9528, 9538, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9312, 9313, 9314, 9315, 9316, 9317, 9318, 9319, 9320, 9321, 9322, 9323, 9324, 9325, 9326, 9327, 9328, 9329, 9330, 9331, 8544, 8545, 8546, 8547, 8548, 8549, 8550, 8551, 8552, 8553, 0, 13129, 13076, 13090, 13133, 13080, 13095, 13059, 13110, 13137, 13143, 13069, 13094, 13091, 13099, 13130, 13115, 13212, 13213, 13214, 13198, 13199, 13252, 13217, 0, 0, 0, 0, 0, 0, 0, 0, 13179, 12317, 12319, 8470, 13261, 8481, 12964, 12965, 12966, 12967, 12968, 12849, 12850, 12857, 13182, 13181, 13180, 8786, 8801, 8747, 8750, 8721, 8730, 8869, 8736, 8735, 8895, 8757, 8745, 8746, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20124, 21782, 23043, 38463, 21696, 24859, 25384, 23030, 36898, 33909, 33564, 31312, 24746, 25569, 28197, 26093, 33894, 33446, 39925, 26771, 22311, 26017, 25201, 23451, 22992, 34427, 39156, 32098, 32190, 39822, 25110, 31903, 34999, 23433, 24245, 25353, 26263, 26696, 38343, 38797, 26447, 20197, 20234, 20301, 20381, 20553, 22258, 22839, 22996, 23041, 23561, 24799, 24847, 24944, 26131, 26885, 28858, 30031, 30064, 31227, 32173, 32239, 32963, 33806, 34915, 35586, 36949, 36986, 21307, 20117, 20133, 22495, 32946, 37057, 30959, 19968, 22769, 28322, 36920, 31282, 33576, 33419, 39983, 20801, 21360, 21693, 21729, 22240, 23035, 24341, 39154, 28139, 32996, 34093, 38498, 38512, 38560, 38907, 21515, 21491, 23431, 28879, 32701, 36802, 38632, 21359, 40284, 31418, 19985, 30867, 33276, 28198, 22040, 21764, 27421, 34074, 39995, 23013, 21417, 28006, 29916, 38287, 22082, 20113, 36939, 38642, 33615, 39180, 21473, 21942, 23344, 24433, 26144, 26355, 26628, 27704, 27891, 27945, 29787, 30408, 31310, 38964, 33521, 34907, 35424, 37613, 28082, 30123, 30410, 39365, 24742, 35585, 36234, 38322, 27022, 21421, 20870, 22290, 22576, 22852, 23476, 24310, 24616, 25513, 25588, 27839, 28436, 28814, 28948, 29017, 29141, 29503, 32257, 33398, 33489, 34199, 36960, 37467, 40219, 22633, 26044, 27738, 29989, 20985, 22830, 22885, 24448, 24540, 25276, 26106, 27178, 27431, 27572, 29579, 32705, 35158, 40236, 40206, 40644, 23713, 27798, 33659, 20740, 23627, 25014, 33222, 26742, 29281, 20057, 20474, 21368, 24681, 28201, 31311, 38899, 19979, 21270, 20206, 20309, 20285, 20385, 20339, 21152, 21487, 22025, 22799, 23233, 23478, 23521, 31185, 26247, 26524, 26550, 27468, 27827, 28779, 29634, 31117, 31166, 31292, 31623, 33457, 33499, 33540, 33655, 33775, 33747, 34662, 35506, 22057, 36008, 36838, 36942, 38686, 34442, 20420, 23784, 25105, 29273, 30011, 33253, 33469, 34558, 36032, 38597, 39187, 39381, 20171, 20250, 35299, 22238, 22602, 22730, 24315, 24555, 24618, 24724, 24674, 25040, 25106, 25296, 25913, 39745, 26214, 26800, 28023, 28784, 30028, 30342, 32117, 33445, 34809, 38283, 38542, 35997, 20977, 21182, 22806, 21683, 23475, 23830, 24936, 27010, 28079, 30861, 33995, 34903, 35442, 37799, 39608, 28012, 39336, 34521, 22435, 26623, 34510, 37390, 21123, 22151, 21508, 24275, 25313, 25785, 26684, 26680, 27579, 29554, 30906, 31339, 35226, 35282, 36203, 36611, 37101, 38307, 38548, 38761, 23398, 23731, 27005, 38989, 38990, 25499, 31520, 27179, 27263, 26806, 39949, 28511, 21106, 21917, 24688, 25324, 27963, 28167, 28369, 33883, 35088, 36676, 19988, 39993, 21494, 26907, 27194, 38788, 26666, 20828, 31427, 33970, 37340, 37772, 22107, 40232, 26658, 33541, 33841, 31909, 21000, 33477, 29926, 20094, 20355, 20896, 23506, 21002, 21208, 21223, 24059, 21914, 22570, 23014, 23436, 23448, 23515, 24178, 24185, 24739, 24863, 24931, 25022, 25563, 25954, 26577, 26707, 26874, 27454, 27475, 27735, 28450, 28567, 28485, 29872, 29976, 30435, 30475, 31487, 31649, 31777, 32233, 32566, 32752, 32925, 33382, 33694, 35251, 35532, 36011, 36996, 37969, 38291, 38289, 38306, 38501, 38867, 39208, 33304, 20024, 21547, 23736, 24012, 29609, 30284, 30524, 23721, 32747, 36107, 38593, 38929, 38996, 39000, 20225, 20238, 21361, 21916, 22120, 22522, 22855, 23305, 23492, 23696, 24076, 24190, 24524, 25582, 26426, 26071, 26082, 26399, 26827, 26820, 27231, 24112, 27589, 27671, 27773, 30079, 31048, 23395, 31232, 32000, 24509, 35215, 35352, 36020, 36215, 36556, 36637, 39138, 39438, 39740, 20096, 20605, 20736, 22931, 23452, 25135, 25216, 25836, 27450, 29344, 30097, 31047, 32681, 34811, 35516, 35696, 25516, 33738, 38816, 21513, 21507, 21931, 26708, 27224, 35440, 30759, 26485, 40653, 21364, 23458, 33050, 34384, 36870, 19992, 20037, 20167, 20241, 21450, 21560, 23470, 24339, 24613, 25937, 26429, 27714, 27762, 27875, 28792, 29699, 31350, 31406, 31496, 32026, 31998, 32102, 26087, 29275, 21435, 23621, 24040, 25298, 25312, 25369, 28192, 34394, 35377, 36317, 37624, 28417, 31142, 39770, 20136, 20139, 20140, 20379, 20384, 20689, 20807, 31478, 20849, 20982, 21332, 21281, 21375, 21483, 21932, 22659, 23777, 24375, 24394, 24623, 24656, 24685, 25375, 25945, 27211, 27841, 29378, 29421, 30703, 33016, 33029, 33288, 34126, 37111, 37857, 38911, 39255, 39514, 20208, 20957, 23597, 26241, 26989, 23616, 26354, 26997, 29577, 26704, 31873, 20677, 21220, 22343, 24062, 37670, 26020, 27427, 27453, 29748, 31105, 31165, 31563, 32202, 33465, 33740, 34943, 35167, 35641, 36817, 37329, 21535, 37504, 20061, 20534, 21477, 21306, 29399, 29590, 30697, 33510, 36527, 39366, 39368, 39378, 20855, 24858, 34398, 21936, 31354, 20598, 23507, 36935, 38533, 20018, 27355, 37351, 23633, 23624, 25496, 31391, 27795, 38772, 36705, 31402, 29066, 38536, 31874, 26647, 32368, 26705, 37740, 21234, 21531, 34219, 35347, 32676, 36557, 37089, 21350, 34952, 31041, 20418, 20670, 21009, 20804, 21843, 22317, 29674, 22411, 22865, 24418, 24452, 24693, 24950, 24935, 25001, 25522, 25658, 25964, 26223, 26690, 28179, 30054, 31293, 31995, 32076, 32153, 32331, 32619, 33550, 33610, 34509, 35336, 35427, 35686, 36605, 38938, 40335, 33464, 36814, 39912, 21127, 25119, 25731, 28608, 38553, 26689, 20625, 27424, 27770, 28500, 31348, 32080, 34880, 35363, 26376, 20214, 20537, 20518, 20581, 20860, 21048, 21091, 21927, 22287, 22533, 23244, 24314, 25010, 25080, 25331, 25458, 26908, 27177, 29309, 29356, 29486, 30740, 30831, 32121, 30476, 32937, 35211, 35609, 36066, 36562, 36963, 37749, 38522, 38997, 39443, 40568, 20803, 21407, 21427, 24187, 24358, 28187, 28304, 29572, 29694, 32067, 33335, 35328, 35578, 38480, 20046, 20491, 21476, 21628, 22266, 22993, 23396, 24049, 24235, 24359, 25144, 25925, 26543, 28246, 29392, 31946, 34996, 32929, 32993, 33776, 34382, 35463, 36328, 37431, 38599, 39015, 40723, 20116, 20114, 20237, 21320, 21577, 21566, 23087, 24460, 24481, 24735, 26791, 27278, 29786, 30849, 35486, 35492, 35703, 37264, 20062, 39881, 20132, 20348, 20399, 20505, 20502, 20809, 20844, 21151, 21177, 21246, 21402, 21475, 21521, 21518, 21897, 22353, 22434, 22909, 23380, 23389, 23439, 24037, 24039, 24055, 24184, 24195, 24218, 24247, 24344, 24658, 24908, 25239, 25304, 25511, 25915, 26114, 26179, 26356, 26477, 26657, 26775, 27083, 27743, 27946, 28009, 28207, 28317, 30002, 30343, 30828, 31295, 31968, 32005, 32024, 32094, 32177, 32789, 32771, 32943, 32945, 33108, 33167, 33322, 33618, 34892, 34913, 35611, 36002, 36092, 37066, 37237, 37489, 30783, 37628, 38308, 38477, 38917, 39321, 39640, 40251, 21083, 21163, 21495, 21512, 22741, 25335, 28640, 35946, 36703, 40633, 20811, 21051, 21578, 22269, 31296, 37239, 40288, 40658, 29508, 28425, 33136, 29969, 24573, 24794, 39592, 29403, 36796, 27492, 38915, 20170, 22256, 22372, 22718, 23130, 24680, 25031, 26127, 26118, 26681, 26801, 28151, 30165, 32058, 33390, 39746, 20123, 20304, 21449, 21766, 23919, 24038, 24046, 26619, 27801, 29811, 30722, 35408, 37782, 35039, 22352, 24231, 25387, 20661, 20652, 20877, 26368, 21705, 22622, 22971, 23472, 24425, 25165, 25505, 26685, 27507, 28168, 28797, 37319, 29312, 30741, 30758, 31085, 25998, 32048, 33756, 35009, 36617, 38555, 21092, 22312, 26448, 32618, 36001, 20916, 22338, 38442, 22586, 27018, 32948, 21682, 23822, 22524, 30869, 40442, 20316, 21066, 21643, 25662, 26152, 26388, 26613, 31364, 31574, 32034, 37679, 26716, 39853, 31545, 21273, 20874, 21047, 23519, 25334, 25774, 25830, 26413, 27578, 34217, 38609, 30352, 39894, 25420, 37638, 39851, 30399, 26194, 19977, 20632, 21442, 23665, 24808, 25746, 25955, 26719, 29158, 29642, 29987, 31639, 32386, 34453, 35715, 36059, 37240, 39184, 26028, 26283, 27531, 20181, 20180, 20282, 20351, 21050, 21496, 21490, 21987, 22235, 22763, 22987, 22985, 23039, 23376, 23629, 24066, 24107, 24535, 24605, 25351, 25903, 23388, 26031, 26045, 26088, 26525, 27490, 27515, 27663, 29509, 31049, 31169, 31992, 32025, 32043, 32930, 33026, 33267, 35222, 35422, 35433, 35430, 35468, 35566, 36039, 36060, 38604, 39164, 27503, 20107, 20284, 20365, 20816, 23383, 23546, 24904, 25345, 26178, 27425, 28363, 27835, 29246, 29885, 30164, 30913, 31034, 32780, 32819, 33258, 33940, 36766, 27728, 40575, 24335, 35672, 40235, 31482, 36600, 23437, 38635, 19971, 21489, 22519, 22833, 23241, 23460, 24713, 28287, 28422, 30142, 36074, 23455, 34048, 31712, 20594, 26612, 33437, 23649, 34122, 32286, 33294, 20889, 23556, 25448, 36198, 26012, 29038, 31038, 32023, 32773, 35613, 36554, 36974, 34503, 37034, 20511, 21242, 23610, 26451, 28796, 29237, 37196, 37320, 37675, 33509, 23490, 24369, 24825, 20027, 21462, 23432, 25163, 26417, 27530, 29417, 29664, 31278, 33131, 36259, 37202, 39318, 20754, 21463, 21610, 23551, 25480, 27193, 32172, 38656, 22234, 21454, 21608, 23447, 23601, 24030, 20462, 24833, 25342, 27954, 31168, 31179, 32066, 32333, 32722, 33261, 33311, 33936, 34886, 35186, 35728, 36468, 36655, 36913, 37195, 37228, 38598, 37276, 20160, 20303, 20805, 21313, 24467, 25102, 26580, 27713, 28171, 29539, 32294, 37325, 37507, 21460, 22809, 23487, 28113, 31069, 32302, 31899, 22654, 29087, 20986, 34899, 36848, 20426, 23803, 26149, 30636, 31459, 33308, 39423, 20934, 24490, 26092, 26991, 27529, 28147, 28310, 28516, 30462, 32020, 24033, 36981, 37255, 38918, 20966, 21021, 25152, 26257, 26329, 28186, 24246, 32210, 32626, 26360, 34223, 34295, 35576, 21161, 21465, 22899, 24207, 24464, 24661, 37604, 38500, 20663, 20767, 21213, 21280, 21319, 21484, 21736, 21830, 21809, 22039, 22888, 22974, 23100, 23477, 23558, 23567, 23569, 23578, 24196, 24202, 24288, 24432, 25215, 25220, 25307, 25484, 25463, 26119, 26124, 26157, 26230, 26494, 26786, 27167, 27189, 27836, 28040, 28169, 28248, 28988, 28966, 29031, 30151, 30465, 30813, 30977, 31077, 31216, 31456, 31505, 31911, 32057, 32918, 33750, 33931, 34121, 34909, 35059, 35359, 35388, 35412, 35443, 35937, 36062, 37284, 37478, 37758, 37912, 38556, 38808, 19978, 19976, 19998, 20055, 20887, 21104, 22478, 22580, 22732, 23330, 24120, 24773, 25854, 26465, 26454, 27972, 29366, 30067, 31331, 33976, 35698, 37304, 37664, 22065, 22516, 39166, 25325, 26893, 27542, 29165, 32340, 32887, 33394, 35302, 39135, 34645, 36785, 23611, 20280, 20449, 20405, 21767, 23072, 23517, 23529, 24515, 24910, 25391, 26032, 26187, 26862, 27035, 28024, 28145, 30003, 30137, 30495, 31070, 31206, 32051, 33251, 33455, 34218, 35242, 35386, 36523, 36763, 36914, 37341, 38663, 20154, 20161, 20995, 22645, 22764, 23563, 29978, 23613, 33102, 35338, 36805, 38499, 38765, 31525, 35535, 38920, 37218, 22259, 21416, 36887, 21561, 22402, 24101, 25512, 27700, 28810, 30561, 31883, 32736, 34928, 36930, 37204, 37648, 37656, 38543, 29790, 39620, 23815, 23913, 25968, 26530, 36264, 38619, 25454, 26441, 26905, 33733, 38935, 38592, 35070, 28548, 25722, 23544, 19990, 28716, 30045, 26159, 20932, 21046, 21218, 22995, 24449, 24615, 25104, 25919, 25972, 26143, 26228, 26866, 26646, 27491, 28165, 29298, 29983, 30427, 31934, 32854, 22768, 35069, 35199, 35488, 35475, 35531, 36893, 37266, 38738, 38745, 25993, 31246, 33030, 38587, 24109, 24796, 25114, 26021, 26132, 26512, 30707, 31309, 31821, 32318, 33034, 36012, 36196, 36321, 36447, 30889, 20999, 25305, 25509, 25666, 25240, 35373, 31363, 31680, 35500, 38634, 32118, 33292, 34633, 20185, 20808, 21315, 21344, 23459, 23554, 23574, 24029, 25126, 25159, 25776, 26643, 26676, 27849, 27973, 27927, 26579, 28508, 29006, 29053, 26059, 31359, 31661, 32218, 32330, 32680, 33146, 33307, 33337, 34214, 35438, 36046, 36341, 36984, 36983, 37549, 37521, 38275, 39854, 21069, 21892, 28472, 28982, 20840, 31109, 32341, 33203, 31950, 22092, 22609, 23720, 25514, 26366, 26365, 26970, 29401, 30095, 30094, 30990, 31062, 31199, 31895, 32032, 32068, 34311, 35380, 38459, 36961, 40736, 20711, 21109, 21452, 21474, 20489, 21930, 22766, 22863, 29245, 23435, 23652, 21277, 24803, 24819, 25436, 25475, 25407, 25531, 25805, 26089, 26361, 24035, 27085, 27133, 28437, 29157, 20105, 30185, 30456, 31379, 31967, 32207, 32156, 32865, 33609, 33624, 33900, 33980, 34299, 35013, 36208, 36865, 36973, 37783, 38684, 39442, 20687, 22679, 24974, 33235, 34101, 36104, 36896, 20419, 20596, 21063, 21363, 24687, 25417, 26463, 28204, 36275, 36895, 20439, 23646, 36042, 26063, 32154, 21330, 34966, 20854, 25539, 23384, 23403, 23562, 25613, 26449, 36956, 20182, 22810, 22826, 27760, 35409, 21822, 22549, 22949, 24816, 25171, 26561, 33333, 26965, 38464, 39364, 39464, 20307, 22534, 23550, 32784, 23729, 24111, 24453, 24608, 24907, 25140, 26367, 27888, 28382, 32974, 33151, 33492, 34955, 36024, 36864, 36910, 38538, 40667, 39899, 20195, 21488, 22823, 31532, 37261, 38988, 40441, 28381, 28711, 21331, 21828, 23429, 25176, 25246, 25299, 27810, 28655, 29730, 35351, 37944, 28609, 35582, 33592, 20967, 34552, 21482, 21481, 20294, 36948, 36784, 22890, 33073, 24061, 31466, 36799, 26842, 35895, 29432, 40008, 27197, 35504, 20025, 21336, 22022, 22374, 25285, 25506, 26086, 27470, 28129, 28251, 28845, 30701, 31471, 31658, 32187, 32829, 32966, 34507, 35477, 37723, 22243, 22727, 24382, 26029, 26262, 27264, 27573, 30007, 35527, 20516, 30693, 22320, 24347, 24677, 26234, 27744, 30196, 31258, 32622, 33268, 34584, 36933, 39347, 31689, 30044, 31481, 31569, 33988, 36880, 31209, 31378, 33590, 23265, 30528, 20013, 20210, 23449, 24544, 25277, 26172, 26609, 27880, 34411, 34935, 35387, 37198, 37619, 39376, 27159, 28710, 29482, 33511, 33879, 36015, 19969, 20806, 20939, 21899, 23541, 24086, 24115, 24193, 24340, 24373, 24427, 24500, 25074, 25361, 26274, 26397, 28526, 29266, 30010, 30522, 32884, 33081, 33144, 34678, 35519, 35548, 36229, 36339, 37530, 38263, 38914, 40165, 21189, 25431, 30452, 26389, 27784, 29645, 36035, 37806, 38515, 27941, 22684, 26894, 27084, 36861, 37786, 30171, 36890, 22618, 26626, 25524, 27131, 20291, 28460, 26584, 36795, 34086, 32180, 37716, 26943, 28528, 22378, 22775, 23340, 32044, 29226, 21514, 37347, 40372, 20141, 20302, 20572, 20597, 21059, 35998, 21576, 22564, 23450, 24093, 24213, 24237, 24311, 24351, 24716, 25269, 25402, 25552, 26799, 27712, 30855, 31118, 31243, 32224, 33351, 35330, 35558, 36420, 36883, 37048, 37165, 37336, 40718, 27877, 25688, 25826, 25973, 28404, 30340, 31515, 36969, 37841, 28346, 21746, 24505, 25764, 36685, 36845, 37444, 20856, 22635, 22825, 23637, 24215, 28155, 32399, 29980, 36028, 36578, 39003, 28857, 20253, 27583, 28593, 30000, 38651, 20814, 21520, 22581, 22615, 22956, 23648, 24466, 26007, 26460, 28193, 30331, 33759, 36077, 36884, 37117, 37709, 30757, 30778, 21162, 24230, 22303, 22900, 24594, 20498, 20826, 20908, 20941, 20992, 21776, 22612, 22616, 22871, 23445, 23798, 23947, 24764, 25237, 25645, 26481, 26691, 26812, 26847, 30423, 28120, 28271, 28059, 28783, 29128, 24403, 30168, 31095, 31561, 31572, 31570, 31958, 32113, 21040, 33891, 34153, 34276, 35342, 35588, 35910, 36367, 36867, 36879, 37913, 38518, 38957, 39472, 38360, 20685, 21205, 21516, 22530, 23566, 24999, 25758, 27934, 30643, 31461, 33012, 33796, 36947, 37509, 23776, 40199, 21311, 24471, 24499, 28060, 29305, 30563, 31167, 31716, 27602, 29420, 35501, 26627, 27233, 20984, 31361, 26932, 23626, 40182, 33515, 23493, 37193, 28702, 22136, 23663, 24775, 25958, 27788, 35930, 36929, 38931, 21585, 26311, 37389, 22856, 37027, 20869, 20045, 20970, 34201, 35598, 28760, 25466, 37707, 26978, 39348, 32260, 30071, 21335, 26976, 36575, 38627, 27741, 20108, 23612, 24336, 36841, 21250, 36049, 32905, 34425, 24319, 26085, 20083, 20837, 22914, 23615, 38894, 20219, 22922, 24525, 35469, 28641, 31152, 31074, 23527, 33905, 29483, 29105, 24180, 24565, 25467, 25754, 29123, 31896, 20035, 24316, 20043, 22492, 22178, 24745, 28611, 32013, 33021, 33075, 33215, 36786, 35223, 34468, 24052, 25226, 25773, 35207, 26487, 27874, 27966, 29750, 30772, 23110, 32629, 33453, 39340, 20467, 24259, 25309, 25490, 25943, 26479, 30403, 29260, 32972, 32954, 36649, 37197, 20493, 22521, 23186, 26757, 26995, 29028, 29437, 36023, 22770, 36064, 38506, 36889, 34687, 31204, 30695, 33833, 20271, 21093, 21338, 25293, 26575, 27850, 30333, 31636, 31893, 33334, 34180, 36843, 26333, 28448, 29190, 32283, 33707, 39361, 40614, 20989, 31665, 30834, 31672, 32903, 31560, 27368, 24161, 32908, 30033, 30048, 20843, 37474, 28300, 30330, 37271, 39658, 20240, 32624, 25244, 31567, 38309, 40169, 22138, 22617, 34532, 38588, 20276, 21028, 21322, 21453, 21467, 24070, 25644, 26001, 26495, 27710, 27726, 29256, 29359, 29677, 30036, 32321, 33324, 34281, 36009, 31684, 37318, 29033, 38930, 39151, 25405, 26217, 30058, 30436, 30928, 34115, 34542, 21290, 21329, 21542, 22915, 24199, 24444, 24754, 25161, 25209, 25259, 26000, 27604, 27852, 30130, 30382, 30865, 31192, 32203, 32631, 32933, 34987, 35513, 36027, 36991, 38750, 39131, 27147, 31800, 20633, 23614, 24494, 26503, 27608, 29749, 30473, 32654, 40763, 26570, 31255, 21305, 30091, 39661, 24422, 33181, 33777, 32920, 24380, 24517, 30050, 31558, 36924, 26727, 23019, 23195, 32016, 30334, 35628, 20469, 24426, 27161, 27703, 28418, 29922, 31080, 34920, 35413, 35961, 24287, 25551, 30149, 31186, 33495, 37672, 37618, 33948, 34541, 39981, 21697, 24428, 25996, 27996, 28693, 36007, 36051, 38971, 25935, 29942, 19981, 20184, 22496, 22827, 23142, 23500, 20904, 24067, 24220, 24598, 25206, 25975, 26023, 26222, 28014, 29238, 31526, 33104, 33178, 33433, 35676, 36000, 36070, 36212, 38428, 38468, 20398, 25771, 27494, 33310, 33889, 34154, 37096, 23553, 26963, 39080, 33914, 34135, 20239, 21103, 24489, 24133, 26381, 31119, 33145, 35079, 35206, 28149, 24343, 25173, 27832, 20175, 29289, 39826, 20998, 21563, 22132, 22707, 24996, 25198, 28954, 22894, 31881, 31966, 32027, 38640, 25991, 32862, 19993, 20341, 20853, 22592, 24163, 24179, 24330, 26564, 20006, 34109, 38281, 38491, 31859, 38913, 20731, 22721, 30294, 30887, 21029, 30629, 34065, 31622, 20559, 22793, 29255, 31687, 32232, 36794, 36820, 36941, 20415, 21193, 23081, 24321, 38829, 20445, 33303, 37610, 22275, 25429, 27497, 29995, 35036, 36628, 31298, 21215, 22675, 24917, 25098, 26286, 27597, 31807, 33769, 20515, 20472, 21253, 21574, 22577, 22857, 23453, 23792, 23791, 23849, 24214, 25265, 25447, 25918, 26041, 26379, 27861, 27873, 28921, 30770, 32299, 32990, 33459, 33804, 34028, 34562, 35090, 35370, 35914, 37030, 37586, 39165, 40179, 40300, 20047, 20129, 20621, 21078, 22346, 22952, 24125, 24536, 24537, 25151, 26292, 26395, 26576, 26834, 20882, 32033, 32938, 33192, 35584, 35980, 36031, 37502, 38450, 21536, 38956, 21271, 20693, 21340, 22696, 25778, 26420, 29287, 30566, 31302, 37350, 21187, 27809, 27526, 22528, 24140, 22868, 26412, 32763, 20961, 30406, 25705, 30952, 39764, 40635, 22475, 22969, 26151, 26522, 27598, 21737, 27097, 24149, 33180, 26517, 39850, 26622, 40018, 26717, 20134, 20451, 21448, 25273, 26411, 27819, 36804, 20397, 32365, 40639, 19975, 24930, 28288, 28459, 34067, 21619, 26410, 39749, 24051, 31637, 23724, 23494, 34588, 28234, 34001, 31252, 33032, 22937, 31885, 27665, 30496, 21209, 22818, 28961, 29279, 30683, 38695, 40289, 26891, 23167, 23064, 20901, 21517, 21629, 26126, 30431, 36855, 37528, 40180, 23018, 29277, 28357, 20813, 26825, 32191, 32236, 38754, 40634, 25720, 27169, 33538, 22916, 23391, 27611, 29467, 30450, 32178, 32791, 33945, 20786, 26408, 40665, 30446, 26466, 21247, 39173, 23588, 25147, 31870, 36016, 21839, 24758, 32011, 38272, 21249, 20063, 20918, 22812, 29242, 32822, 37326, 24357, 30690, 21380, 24441, 32004, 34220, 35379, 36493, 38742, 26611, 34222, 37971, 24841, 24840, 27833, 30290, 35565, 36664, 21807, 20305, 20778, 21191, 21451, 23461, 24189, 24736, 24962, 25558, 26377, 26586, 28263, 28044, 29494, 29495, 30001, 31056, 35029, 35480, 36938, 37009, 37109, 38596, 34701, 22805, 20104, 20313, 19982, 35465, 36671, 38928, 20653, 24188, 22934, 23481, 24248, 25562, 25594, 25793, 26332, 26954, 27096, 27915, 28342, 29076, 29992, 31407, 32650, 32768, 33865, 33993, 35201, 35617, 36362, 36965, 38525, 39178, 24958, 25233, 27442, 27779, 28020, 32716, 32764, 28096, 32645, 34746, 35064, 26469, 33713, 38972, 38647, 27931, 32097, 33853, 37226, 20081, 21365, 23888, 27396, 28651, 34253, 34349, 35239, 21033, 21519, 23653, 26446, 26792, 29702, 29827, 30178, 35023, 35041, 37324, 38626, 38520, 24459, 29575, 31435, 33870, 25504, 30053, 21129, 27969, 28316, 29705, 30041, 30827, 31890, 38534, 31452, 40845, 20406, 24942, 26053, 34396, 20102, 20142, 20698, 20001, 20940, 23534, 26009, 26753, 28092, 29471, 30274, 30637, 31260, 31975, 33391, 35538, 36988, 37327, 38517, 38936, 21147, 32209, 20523, 21400, 26519, 28107, 29136, 29747, 33256, 36650, 38563, 40023, 40607, 29792, 22593, 28057, 32047, 39006, 20196, 20278, 20363, 20919, 21169, 23994, 24604, 29618, 31036, 33491, 37428, 38583, 38646, 38666, 40599, 40802, 26278, 27508, 21015, 21155, 28872, 35010, 24265, 24651, 24976, 28451, 29001, 31806, 32244, 32879, 34030, 36899, 37676, 21570, 39791, 27347, 28809, 36034, 36335, 38706, 21172, 23105, 24266, 24324, 26391, 27004, 27028, 28010, 28431, 29282, 29436, 31725, 32769, 32894, 34635, 37070, 20845, 40595, 31108, 32907, 37682, 35542, 20525, 21644, 35441, 27498, 36036, 33031, 24785, 26528, 40434, 20121, 20120, 39952, 35435, 34241, 34152, 26880, 28286, 30871, 33109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24332, 19984, 19989, 20010, 20017, 20022, 20028, 20031, 20034, 20054, 20056, 20098, 20101, 35947, 20106, 33298, 24333, 20110, 20126, 20127, 20128, 20130, 20144, 20147, 20150, 20174, 20173, 20164, 20166, 20162, 20183, 20190, 20205, 20191, 20215, 20233, 20314, 20272, 20315, 20317, 20311, 20295, 20342, 20360, 20367, 20376, 20347, 20329, 20336, 20369, 20335, 20358, 20374, 20760, 20436, 20447, 20430, 20440, 20443, 20433, 20442, 20432, 20452, 20453, 20506, 20520, 20500, 20522, 20517, 20485, 20252, 20470, 20513, 20521, 20524, 20478, 20463, 20497, 20486, 20547, 20551, 26371, 20565, 20560, 20552, 20570, 20566, 20588, 20600, 20608, 20634, 20613, 20660, 20658, 20681, 20682, 20659, 20674, 20694, 20702, 20709, 20717, 20707, 20718, 20729, 20725, 20745, 20737, 20738, 20758, 20757, 20756, 20762, 20769, 20794, 20791, 20796, 20795, 20799, 20800, 20818, 20812, 20820, 20834, 31480, 20841, 20842, 20846, 20864, 20866, 22232, 20876, 20873, 20879, 20881, 20883, 20885, 20886, 20900, 20902, 20898, 20905, 20906, 20907, 20915, 20913, 20914, 20912, 20917, 20925, 20933, 20937, 20955, 20960, 34389, 20969, 20973, 20976, 20981, 20990, 20996, 21003, 21012, 21006, 21031, 21034, 21038, 21043, 21049, 21071, 21060, 21067, 21068, 21086, 21076, 21098, 21108, 21097, 21107, 21119, 21117, 21133, 21140, 21138, 21105, 21128, 21137, 36776, 36775, 21164, 21165, 21180, 21173, 21185, 21197, 21207, 21214, 21219, 21222, 39149, 21216, 21235, 21237, 21240, 21241, 21254, 21256, 30008, 21261, 21264, 21263, 21269, 21274, 21283, 21295, 21297, 21299, 21304, 21312, 21318, 21317, 19991, 21321, 21325, 20950, 21342, 21353, 21358, 22808, 21371, 21367, 21378, 21398, 21408, 21414, 21413, 21422, 21424, 21430, 21443, 31762, 38617, 21471, 26364, 29166, 21486, 21480, 21485, 21498, 21505, 21565, 21568, 21548, 21549, 21564, 21550, 21558, 21545, 21533, 21582, 21647, 21621, 21646, 21599, 21617, 21623, 21616, 21650, 21627, 21632, 21622, 21636, 21648, 21638, 21703, 21666, 21688, 21669, 21676, 21700, 21704, 21672, 21675, 21698, 21668, 21694, 21692, 21720, 21733, 21734, 21775, 21780, 21757, 21742, 21741, 21754, 21730, 21817, 21824, 21859, 21836, 21806, 21852, 21829, 21846, 21847, 21816, 21811, 21853, 21913, 21888, 21679, 21898, 21919, 21883, 21886, 21912, 21918, 21934, 21884, 21891, 21929, 21895, 21928, 21978, 21957, 21983, 21956, 21980, 21988, 21972, 22036, 22007, 22038, 22014, 22013, 22043, 22009, 22094, 22096, 29151, 22068, 22070, 22066, 22072, 22123, 22116, 22063, 22124, 22122, 22150, 22144, 22154, 22176, 22164, 22159, 22181, 22190, 22198, 22196, 22210, 22204, 22209, 22211, 22208, 22216, 22222, 22225, 22227, 22231, 22254, 22265, 22272, 22271, 22276, 22281, 22280, 22283, 22285, 22291, 22296, 22294, 21959, 22300, 22310, 22327, 22328, 22350, 22331, 22336, 22351, 22377, 22464, 22408, 22369, 22399, 22409, 22419, 22432, 22451, 22436, 22442, 22448, 22467, 22470, 22484, 22482, 22483, 22538, 22486, 22499, 22539, 22553, 22557, 22642, 22561, 22626, 22603, 22640, 27584, 22610, 22589, 22649, 22661, 22713, 22687, 22699, 22714, 22750, 22715, 22712, 22702, 22725, 22739, 22737, 22743, 22745, 22744, 22757, 22748, 22756, 22751, 22767, 22778, 22777, 22779, 22780, 22781, 22786, 22794, 22800, 22811, 26790, 22821, 22828, 22829, 22834, 22840, 22846, 31442, 22869, 22864, 22862, 22874, 22872, 22882, 22880, 22887, 22892, 22889, 22904, 22913, 22941, 20318, 20395, 22947, 22962, 22982, 23016, 23004, 22925, 23001, 23002, 23077, 23071, 23057, 23068, 23049, 23066, 23104, 23148, 23113, 23093, 23094, 23138, 23146, 23194, 23228, 23230, 23243, 23234, 23229, 23267, 23255, 23270, 23273, 23254, 23290, 23291, 23308, 23307, 23318, 23346, 23248, 23338, 23350, 23358, 23363, 23365, 23360, 23377, 23381, 23386, 23387, 23397, 23401, 23408, 23411, 23413, 23416, 25992, 23418, 23424, 23427, 23462, 23480, 23491, 23495, 23497, 23508, 23504, 23524, 23526, 23522, 23518, 23525, 23531, 23536, 23542, 23539, 23557, 23559, 23560, 23565, 23571, 23584, 23586, 23592, 23608, 23609, 23617, 23622, 23630, 23635, 23632, 23631, 23409, 23660, 23662, 20066, 23670, 23673, 23692, 23697, 23700, 22939, 23723, 23739, 23734, 23740, 23735, 23749, 23742, 23751, 23769, 23785, 23805, 23802, 23789, 23948, 23786, 23819, 23829, 23831, 23900, 23839, 23835, 23825, 23828, 23842, 23834, 23833, 23832, 23884, 23890, 23886, 23883, 23916, 23923, 23926, 23943, 23940, 23938, 23970, 23965, 23980, 23982, 23997, 23952, 23991, 23996, 24009, 24013, 24019, 24018, 24022, 24027, 24043, 24050, 24053, 24075, 24090, 24089, 24081, 24091, 24118, 24119, 24132, 24131, 24128, 24142, 24151, 24148, 24159, 24162, 24164, 24135, 24181, 24182, 24186, 40636, 24191, 24224, 24257, 24258, 24264, 24272, 24271, 24278, 24291, 24285, 24282, 24283, 24290, 24289, 24296, 24297, 24300, 24305, 24307, 24304, 24308, 24312, 24318, 24323, 24329, 24413, 24412, 24331, 24337, 24342, 24361, 24365, 24376, 24385, 24392, 24396, 24398, 24367, 24401, 24406, 24407, 24409, 24417, 24429, 24435, 24439, 24451, 24450, 24447, 24458, 24456, 24465, 24455, 24478, 24473, 24472, 24480, 24488, 24493, 24508, 24534, 24571, 24548, 24568, 24561, 24541, 24755, 24575, 24609, 24672, 24601, 24592, 24617, 24590, 24625, 24603, 24597, 24619, 24614, 24591, 24634, 24666, 24641, 24682, 24695, 24671, 24650, 24646, 24653, 24675, 24643, 24676, 24642, 24684, 24683, 24665, 24705, 24717, 24807, 24707, 24730, 24708, 24731, 24726, 24727, 24722, 24743, 24715, 24801, 24760, 24800, 24787, 24756, 24560, 24765, 24774, 24757, 24792, 24909, 24853, 24838, 24822, 24823, 24832, 24820, 24826, 24835, 24865, 24827, 24817, 24845, 24846, 24903, 24894, 24872, 24871, 24906, 24895, 24892, 24876, 24884, 24893, 24898, 24900, 24947, 24951, 24920, 24921, 24922, 24939, 24948, 24943, 24933, 24945, 24927, 24925, 24915, 24949, 24985, 24982, 24967, 25004, 24980, 24986, 24970, 24977, 25003, 25006, 25036, 25034, 25033, 25079, 25032, 25027, 25030, 25018, 25035, 32633, 25037, 25062, 25059, 25078, 25082, 25076, 25087, 25085, 25084, 25086, 25088, 25096, 25097, 25101, 25100, 25108, 25115, 25118, 25121, 25130, 25134, 25136, 25138, 25139, 25153, 25166, 25182, 25187, 25179, 25184, 25192, 25212, 25218, 25225, 25214, 25234, 25235, 25238, 25300, 25219, 25236, 25303, 25297, 25275, 25295, 25343, 25286, 25812, 25288, 25308, 25292, 25290, 25282, 25287, 25243, 25289, 25356, 25326, 25329, 25383, 25346, 25352, 25327, 25333, 25424, 25406, 25421, 25628, 25423, 25494, 25486, 25472, 25515, 25462, 25507, 25487, 25481, 25503, 25525, 25451, 25449, 25534, 25577, 25536, 25542, 25571, 25545, 25554, 25590, 25540, 25622, 25652, 25606, 25619, 25638, 25654, 25885, 25623, 25640, 25615, 25703, 25711, 25718, 25678, 25898, 25749, 25747, 25765, 25769, 25736, 25788, 25818, 25810, 25797, 25799, 25787, 25816, 25794, 25841, 25831, 33289, 25824, 25825, 25260, 25827, 25839, 25900, 25846, 25844, 25842, 25850, 25856, 25853, 25880, 25884, 25861, 25892, 25891, 25899, 25908, 25909, 25911, 25910, 25912, 30027, 25928, 25942, 25941, 25933, 25944, 25950, 25949, 25970, 25976, 25986, 25987, 35722, 26011, 26015, 26027, 26039, 26051, 26054, 26049, 26052, 26060, 26066, 26075, 26073, 26080, 26081, 26097, 26482, 26122, 26115, 26107, 26483, 26165, 26166, 26164, 26140, 26191, 26180, 26185, 26177, 26206, 26205, 26212, 26215, 26216, 26207, 26210, 26224, 26243, 26248, 26254, 26249, 26244, 26264, 26269, 26305, 26297, 26313, 26302, 26300, 26308, 26296, 26326, 26330, 26336, 26175, 26342, 26345, 26352, 26357, 26359, 26383, 26390, 26398, 26406, 26407, 38712, 26414, 26431, 26422, 26433, 26424, 26423, 26438, 26462, 26464, 26457, 26467, 26468, 26505, 26480, 26537, 26492, 26474, 26508, 26507, 26534, 26529, 26501, 26551, 26607, 26548, 26604, 26547, 26601, 26552, 26596, 26590, 26589, 26594, 26606, 26553, 26574, 26566, 26599, 27292, 26654, 26694, 26665, 26688, 26701, 26674, 26702, 26803, 26667, 26713, 26723, 26743, 26751, 26783, 26767, 26797, 26772, 26781, 26779, 26755, 27310, 26809, 26740, 26805, 26784, 26810, 26895, 26765, 26750, 26881, 26826, 26888, 26840, 26914, 26918, 26849, 26892, 26829, 26836, 26855, 26837, 26934, 26898, 26884, 26839, 26851, 26917, 26873, 26848, 26863, 26920, 26922, 26906, 26915, 26913, 26822, 27001, 26999, 26972, 27000, 26987, 26964, 27006, 26990, 26937, 26996, 26941, 26969, 26928, 26977, 26974, 26973, 27009, 26986, 27058, 27054, 27088, 27071, 27073, 27091, 27070, 27086, 23528, 27082, 27101, 27067, 27075, 27047, 27182, 27025, 27040, 27036, 27029, 27060, 27102, 27112, 27138, 27163, 27135, 27402, 27129, 27122, 27111, 27141, 27057, 27166, 27117, 27156, 27115, 27146, 27154, 27329, 27171, 27155, 27204, 27148, 27250, 27190, 27256, 27207, 27234, 27225, 27238, 27208, 27192, 27170, 27280, 27277, 27296, 27268, 27298, 27299, 27287, 34327, 27323, 27331, 27330, 27320, 27315, 27308, 27358, 27345, 27359, 27306, 27354, 27370, 27387, 27397, 34326, 27386, 27410, 27414, 39729, 27423, 27448, 27447, 30428, 27449, 39150, 27463, 27459, 27465, 27472, 27481, 27476, 27483, 27487, 27489, 27512, 27513, 27519, 27520, 27524, 27523, 27533, 27544, 27541, 27550, 27556, 27562, 27563, 27567, 27570, 27569, 27571, 27575, 27580, 27590, 27595, 27603, 27615, 27628, 27627, 27635, 27631, 40638, 27656, 27667, 27668, 27675, 27684, 27683, 27742, 27733, 27746, 27754, 27778, 27789, 27802, 27777, 27803, 27774, 27752, 27763, 27794, 27792, 27844, 27889, 27859, 27837, 27863, 27845, 27869, 27822, 27825, 27838, 27834, 27867, 27887, 27865, 27882, 27935, 34893, 27958, 27947, 27965, 27960, 27929, 27957, 27955, 27922, 27916, 28003, 28051, 28004, 27994, 28025, 27993, 28046, 28053, 28644, 28037, 28153, 28181, 28170, 28085, 28103, 28134, 28088, 28102, 28140, 28126, 28108, 28136, 28114, 28101, 28154, 28121, 28132, 28117, 28138, 28142, 28205, 28270, 28206, 28185, 28274, 28255, 28222, 28195, 28267, 28203, 28278, 28237, 28191, 28227, 28218, 28238, 28196, 28415, 28189, 28216, 28290, 28330, 28312, 28361, 28343, 28371, 28349, 28335, 28356, 28338, 28372, 28373, 28303, 28325, 28354, 28319, 28481, 28433, 28748, 28396, 28408, 28414, 28479, 28402, 28465, 28399, 28466, 28364, 28478, 28435, 28407, 28550, 28538, 28536, 28545, 28544, 28527, 28507, 28659, 28525, 28546, 28540, 28504, 28558, 28561, 28610, 28518, 28595, 28579, 28577, 28580, 28601, 28614, 28586, 28639, 28629, 28652, 28628, 28632, 28657, 28654, 28635, 28681, 28683, 28666, 28689, 28673, 28687, 28670, 28699, 28698, 28532, 28701, 28696, 28703, 28720, 28734, 28722, 28753, 28771, 28825, 28818, 28847, 28913, 28844, 28856, 28851, 28846, 28895, 28875, 28893, 28889, 28937, 28925, 28956, 28953, 29029, 29013, 29064, 29030, 29026, 29004, 29014, 29036, 29071, 29179, 29060, 29077, 29096, 29100, 29143, 29113, 29118, 29138, 29129, 29140, 29134, 29152, 29164, 29159, 29173, 29180, 29177, 29183, 29197, 29200, 29211, 29224, 29229, 29228, 29232, 29234, 29243, 29244, 29247, 29248, 29254, 29259, 29272, 29300, 29310, 29314, 29313, 29319, 29330, 29334, 29346, 29351, 29369, 29362, 29379, 29382, 29380, 29390, 29394, 29410, 29408, 29409, 29433, 29431, 20495, 29463, 29450, 29468, 29462, 29469, 29492, 29487, 29481, 29477, 29502, 29518, 29519, 40664, 29527, 29546, 29544, 29552, 29560, 29557, 29563, 29562, 29640, 29619, 29646, 29627, 29632, 29669, 29678, 29662, 29858, 29701, 29807, 29733, 29688, 29746, 29754, 29781, 29759, 29791, 29785, 29761, 29788, 29801, 29808, 29795, 29802, 29814, 29822, 29835, 29854, 29863, 29898, 29903, 29908, 29681, 29920, 29923, 29927, 29929, 29934, 29938, 29936, 29937, 29944, 29943, 29956, 29955, 29957, 29964, 29966, 29965, 29973, 29971, 29982, 29990, 29996, 30012, 30020, 30029, 30026, 30025, 30043, 30022, 30042, 30057, 30052, 30055, 30059, 30061, 30072, 30070, 30086, 30087, 30068, 30090, 30089, 30082, 30100, 30106, 30109, 30117, 30115, 30146, 30131, 30147, 30133, 30141, 30136, 30140, 30129, 30157, 30154, 30162, 30169, 30179, 30174, 30206, 30207, 30204, 30209, 30192, 30202, 30194, 30195, 30219, 30221, 30217, 30239, 30247, 30240, 30241, 30242, 30244, 30260, 30256, 30267, 30279, 30280, 30278, 30300, 30296, 30305, 30306, 30312, 30313, 30314, 30311, 30316, 30320, 30322, 30326, 30328, 30332, 30336, 30339, 30344, 30347, 30350, 30358, 30355, 30361, 30362, 30384, 30388, 30392, 30393, 30394, 30402, 30413, 30422, 30418, 30430, 30433, 30437, 30439, 30442, 34351, 30459, 30472, 30471, 30468, 30505, 30500, 30494, 30501, 30502, 30491, 30519, 30520, 30535, 30554, 30568, 30571, 30555, 30565, 30591, 30590, 30585, 30606, 30603, 30609, 30624, 30622, 30640, 30646, 30649, 30655, 30652, 30653, 30651, 30663, 30669, 30679, 30682, 30684, 30691, 30702, 30716, 30732, 30738, 31014, 30752, 31018, 30789, 30862, 30836, 30854, 30844, 30874, 30860, 30883, 30901, 30890, 30895, 30929, 30918, 30923, 30932, 30910, 30908, 30917, 30922, 30956, 30951, 30938, 30973, 30964, 30983, 30994, 30993, 31001, 31020, 31019, 31040, 31072, 31063, 31071, 31066, 31061, 31059, 31098, 31103, 31114, 31133, 31143, 40779, 31146, 31150, 31155, 31161, 31162, 31177, 31189, 31207, 31212, 31201, 31203, 31240, 31245, 31256, 31257, 31264, 31263, 31104, 31281, 31291, 31294, 31287, 31299, 31319, 31305, 31329, 31330, 31337, 40861, 31344, 31353, 31357, 31368, 31383, 31381, 31384, 31382, 31401, 31432, 31408, 31414, 31429, 31428, 31423, 36995, 31431, 31434, 31437, 31439, 31445, 31443, 31449, 31450, 31453, 31457, 31458, 31462, 31469, 31472, 31490, 31503, 31498, 31494, 31539, 31512, 31513, 31518, 31541, 31528, 31542, 31568, 31610, 31492, 31565, 31499, 31564, 31557, 31605, 31589, 31604, 31591, 31600, 31601, 31596, 31598, 31645, 31640, 31647, 31629, 31644, 31642, 31627, 31634, 31631, 31581, 31641, 31691, 31681, 31692, 31695, 31668, 31686, 31709, 31721, 31761, 31764, 31718, 31717, 31840, 31744, 31751, 31763, 31731, 31735, 31767, 31757, 31734, 31779, 31783, 31786, 31775, 31799, 31787, 31805, 31820, 31811, 31828, 31823, 31808, 31824, 31832, 31839, 31844, 31830, 31845, 31852, 31861, 31875, 31888, 31908, 31917, 31906, 31915, 31905, 31912, 31923, 31922, 31921, 31918, 31929, 31933, 31936, 31941, 31938, 31960, 31954, 31964, 31970, 39739, 31983, 31986, 31988, 31990, 31994, 32006, 32002, 32028, 32021, 32010, 32069, 32075, 32046, 32050, 32063, 32053, 32070, 32115, 32086, 32078, 32114, 32104, 32110, 32079, 32099, 32147, 32137, 32091, 32143, 32125, 32155, 32186, 32174, 32163, 32181, 32199, 32189, 32171, 32317, 32162, 32175, 32220, 32184, 32159, 32176, 32216, 32221, 32228, 32222, 32251, 32242, 32225, 32261, 32266, 32291, 32289, 32274, 32305, 32287, 32265, 32267, 32290, 32326, 32358, 32315, 32309, 32313, 32323, 32311, 32306, 32314, 32359, 32349, 32342, 32350, 32345, 32346, 32377, 32362, 32361, 32380, 32379, 32387, 32213, 32381, 36782, 32383, 32392, 32393, 32396, 32402, 32400, 32403, 32404, 32406, 32398, 32411, 32412, 32568, 32570, 32581, 32588, 32589, 32590, 32592, 32593, 32597, 32596, 32600, 32607, 32608, 32616, 32617, 32615, 32632, 32642, 32646, 32643, 32648, 32647, 32652, 32660, 32670, 32669, 32666, 32675, 32687, 32690, 32697, 32686, 32694, 32696, 35697, 32709, 32710, 32714, 32725, 32724, 32737, 32742, 32745, 32755, 32761, 39132, 32774, 32772, 32779, 32786, 32792, 32793, 32796, 32801, 32808, 32831, 32827, 32842, 32838, 32850, 32856, 32858, 32863, 32866, 32872, 32883, 32882, 32880, 32886, 32889, 32893, 32895, 32900, 32902, 32901, 32923, 32915, 32922, 32941, 20880, 32940, 32987, 32997, 32985, 32989, 32964, 32986, 32982, 33033, 33007, 33009, 33051, 33065, 33059, 33071, 33099, 38539, 33094, 33086, 33107, 33105, 33020, 33137, 33134, 33125, 33126, 33140, 33155, 33160, 33162, 33152, 33154, 33184, 33173, 33188, 33187, 33119, 33171, 33193, 33200, 33205, 33214, 33208, 33213, 33216, 33218, 33210, 33225, 33229, 33233, 33241, 33240, 33224, 33242, 33247, 33248, 33255, 33274, 33275, 33278, 33281, 33282, 33285, 33287, 33290, 33293, 33296, 33302, 33321, 33323, 33336, 33331, 33344, 33369, 33368, 33373, 33370, 33375, 33380, 33378, 33384, 33386, 33387, 33326, 33393, 33399, 33400, 33406, 33421, 33426, 33451, 33439, 33467, 33452, 33505, 33507, 33503, 33490, 33524, 33523, 33530, 33683, 33539, 33531, 33529, 33502, 33542, 33500, 33545, 33497, 33589, 33588, 33558, 33586, 33585, 33600, 33593, 33616, 33605, 33583, 33579, 33559, 33560, 33669, 33690, 33706, 33695, 33698, 33686, 33571, 33678, 33671, 33674, 33660, 33717, 33651, 33653, 33696, 33673, 33704, 33780, 33811, 33771, 33742, 33789, 33795, 33752, 33803, 33729, 33783, 33799, 33760, 33778, 33805, 33826, 33824, 33725, 33848, 34054, 33787, 33901, 33834, 33852, 34138, 33924, 33911, 33899, 33965, 33902, 33922, 33897, 33862, 33836, 33903, 33913, 33845, 33994, 33890, 33977, 33983, 33951, 34009, 33997, 33979, 34010, 34000, 33985, 33990, 34006, 33953, 34081, 34047, 34036, 34071, 34072, 34092, 34079, 34069, 34068, 34044, 34112, 34147, 34136, 34120, 34113, 34306, 34123, 34133, 34176, 34212, 34184, 34193, 34186, 34216, 34157, 34196, 34203, 34282, 34183, 34204, 34167, 34174, 34192, 34249, 34234, 34255, 34233, 34256, 34261, 34269, 34277, 34268, 34297, 34314, 34323, 34315, 34302, 34298, 34310, 34338, 34330, 34352, 34367, 34381, 20053, 34388, 34399, 34407, 34417, 34451, 34467, 34473, 34474, 34443, 34444, 34486, 34479, 34500, 34502, 34480, 34505, 34851, 34475, 34516, 34526, 34537, 34540, 34527, 34523, 34543, 34578, 34566, 34568, 34560, 34563, 34555, 34577, 34569, 34573, 34553, 34570, 34612, 34623, 34615, 34619, 34597, 34601, 34586, 34656, 34655, 34680, 34636, 34638, 34676, 34647, 34664, 34670, 34649, 34643, 34659, 34666, 34821, 34722, 34719, 34690, 34735, 34763, 34749, 34752, 34768, 38614, 34731, 34756, 34739, 34759, 34758, 34747, 34799, 34802, 34784, 34831, 34829, 34814, 34806, 34807, 34830, 34770, 34833, 34838, 34837, 34850, 34849, 34865, 34870, 34873, 34855, 34875, 34884, 34882, 34898, 34905, 34910, 34914, 34923, 34945, 34942, 34974, 34933, 34941, 34997, 34930, 34946, 34967, 34962, 34990, 34969, 34978, 34957, 34980, 34992, 35007, 34993, 35011, 35012, 35028, 35032, 35033, 35037, 35065, 35074, 35068, 35060, 35048, 35058, 35076, 35084, 35082, 35091, 35139, 35102, 35109, 35114, 35115, 35137, 35140, 35131, 35126, 35128, 35148, 35101, 35168, 35166, 35174, 35172, 35181, 35178, 35183, 35188, 35191, 35198, 35203, 35208, 35210, 35219, 35224, 35233, 35241, 35238, 35244, 35247, 35250, 35258, 35261, 35263, 35264, 35290, 35292, 35293, 35303, 35316, 35320, 35331, 35350, 35344, 35340, 35355, 35357, 35365, 35382, 35393, 35419, 35410, 35398, 35400, 35452, 35437, 35436, 35426, 35461, 35458, 35460, 35496, 35489, 35473, 35493, 35494, 35482, 35491, 35524, 35533, 35522, 35546, 35563, 35571, 35559, 35556, 35569, 35604, 35552, 35554, 35575, 35550, 35547, 35596, 35591, 35610, 35553, 35606, 35600, 35607, 35616, 35635, 38827, 35622, 35627, 35646, 35624, 35649, 35660, 35663, 35662, 35657, 35670, 35675, 35674, 35691, 35679, 35692, 35695, 35700, 35709, 35712, 35724, 35726, 35730, 35731, 35734, 35737, 35738, 35898, 35905, 35903, 35912, 35916, 35918, 35920, 35925, 35938, 35948, 35960, 35962, 35970, 35977, 35973, 35978, 35981, 35982, 35988, 35964, 35992, 25117, 36013, 36010, 36029, 36018, 36019, 36014, 36022, 36040, 36033, 36068, 36067, 36058, 36093, 36090, 36091, 36100, 36101, 36106, 36103, 36111, 36109, 36112, 40782, 36115, 36045, 36116, 36118, 36199, 36205, 36209, 36211, 36225, 36249, 36290, 36286, 36282, 36303, 36314, 36310, 36300, 36315, 36299, 36330, 36331, 36319, 36323, 36348, 36360, 36361, 36351, 36381, 36382, 36368, 36383, 36418, 36405, 36400, 36404, 36426, 36423, 36425, 36428, 36432, 36424, 36441, 36452, 36448, 36394, 36451, 36437, 36470, 36466, 36476, 36481, 36487, 36485, 36484, 36491, 36490, 36499, 36497, 36500, 36505, 36522, 36513, 36524, 36528, 36550, 36529, 36542, 36549, 36552, 36555, 36571, 36579, 36604, 36603, 36587, 36606, 36618, 36613, 36629, 36626, 36633, 36627, 36636, 36639, 36635, 36620, 36646, 36659, 36667, 36665, 36677, 36674, 36670, 36684, 36681, 36678, 36686, 36695, 36700, 36706, 36707, 36708, 36764, 36767, 36771, 36781, 36783, 36791, 36826, 36837, 36834, 36842, 36847, 36999, 36852, 36869, 36857, 36858, 36881, 36885, 36897, 36877, 36894, 36886, 36875, 36903, 36918, 36917, 36921, 36856, 36943, 36944, 36945, 36946, 36878, 36937, 36926, 36950, 36952, 36958, 36968, 36975, 36982, 38568, 36978, 36994, 36989, 36993, 36992, 37002, 37001, 37007, 37032, 37039, 37041, 37045, 37090, 37092, 25160, 37083, 37122, 37138, 37145, 37170, 37168, 37194, 37206, 37208, 37219, 37221, 37225, 37235, 37234, 37259, 37257, 37250, 37282, 37291, 37295, 37290, 37301, 37300, 37306, 37312, 37313, 37321, 37323, 37328, 37334, 37343, 37345, 37339, 37372, 37365, 37366, 37406, 37375, 37396, 37420, 37397, 37393, 37470, 37463, 37445, 37449, 37476, 37448, 37525, 37439, 37451, 37456, 37532, 37526, 37523, 37531, 37466, 37583, 37561, 37559, 37609, 37647, 37626, 37700, 37678, 37657, 37666, 37658, 37667, 37690, 37685, 37691, 37724, 37728, 37756, 37742, 37718, 37808, 37804, 37805, 37780, 37817, 37846, 37847, 37864, 37861, 37848, 37827, 37853, 37840, 37832, 37860, 37914, 37908, 37907, 37891, 37895, 37904, 37942, 37931, 37941, 37921, 37946, 37953, 37970, 37956, 37979, 37984, 37986, 37982, 37994, 37417, 38000, 38005, 38007, 38013, 37978, 38012, 38014, 38017, 38015, 38274, 38279, 38282, 38292, 38294, 38296, 38297, 38304, 38312, 38311, 38317, 38332, 38331, 38329, 38334, 38346, 28662, 38339, 38349, 38348, 38357, 38356, 38358, 38364, 38369, 38373, 38370, 38433, 38440, 38446, 38447, 38466, 38476, 38479, 38475, 38519, 38492, 38494, 38493, 38495, 38502, 38514, 38508, 38541, 38552, 38549, 38551, 38570, 38567, 38577, 38578, 38576, 38580, 38582, 38584, 38585, 38606, 38603, 38601, 38605, 35149, 38620, 38669, 38613, 38649, 38660, 38662, 38664, 38675, 38670, 38673, 38671, 38678, 38681, 38692, 38698, 38704, 38713, 38717, 38718, 38724, 38726, 38728, 38722, 38729, 38748, 38752, 38756, 38758, 38760, 21202, 38763, 38769, 38777, 38789, 38780, 38785, 38778, 38790, 38795, 38799, 38800, 38812, 38824, 38822, 38819, 38835, 38836, 38851, 38854, 38856, 38859, 38876, 38893, 40783, 38898, 31455, 38902, 38901, 38927, 38924, 38968, 38948, 38945, 38967, 38973, 38982, 38991, 38987, 39019, 39023, 39024, 39025, 39028, 39027, 39082, 39087, 39089, 39094, 39108, 39107, 39110, 39145, 39147, 39171, 39177, 39186, 39188, 39192, 39201, 39197, 39198, 39204, 39200, 39212, 39214, 39229, 39230, 39234, 39241, 39237, 39248, 39243, 39249, 39250, 39244, 39253, 39319, 39320, 39333, 39341, 39342, 39356, 39391, 39387, 39389, 39384, 39377, 39405, 39406, 39409, 39410, 39419, 39416, 39425, 39439, 39429, 39394, 39449, 39467, 39479, 39493, 39490, 39488, 39491, 39486, 39509, 39501, 39515, 39511, 39519, 39522, 39525, 39524, 39529, 39531, 39530, 39597, 39600, 39612, 39616, 39631, 39633, 39635, 39636, 39646, 39647, 39650, 39651, 39654, 39663, 39659, 39662, 39668, 39665, 39671, 39675, 39686, 39704, 39706, 39711, 39714, 39715, 39717, 39719, 39720, 39721, 39722, 39726, 39727, 39730, 39748, 39747, 39759, 39757, 39758, 39761, 39768, 39796, 39827, 39811, 39825, 39830, 39831, 39839, 39840, 39848, 39860, 39872, 39882, 39865, 39878, 39887, 39889, 39890, 39907, 39906, 39908, 39892, 39905, 39994, 39922, 39921, 39920, 39957, 39956, 39945, 39955, 39948, 39942, 39944, 39954, 39946, 39940, 39982, 39963, 39973, 39972, 39969, 39984, 40007, 39986, 40006, 39998, 40026, 40032, 40039, 40054, 40056, 40167, 40172, 40176, 40201, 40200, 40171, 40195, 40198, 40234, 40230, 40367, 40227, 40223, 40260, 40213, 40210, 40257, 40255, 40254, 40262, 40264, 40285, 40286, 40292, 40273, 40272, 40281, 40306, 40329, 40327, 40363, 40303, 40314, 40346, 40356, 40361, 40370, 40388, 40385, 40379, 40376, 40378, 40390, 40399, 40386, 40409, 40403, 40440, 40422, 40429, 40431, 40445, 40474, 40475, 40478, 40565, 40569, 40573, 40577, 40584, 40587, 40588, 40594, 40597, 40593, 40605, 40613, 40617, 40632, 40618, 40621, 38753, 40652, 40654, 40655, 40656, 40660, 40668, 40670, 40669, 40672, 40677, 40680, 40687, 40692, 40694, 40695, 40697, 40699, 40700, 40701, 40711, 40712, 30391, 40725, 40737, 40748, 40766, 40778, 40786, 40788, 40803, 40799, 40800, 40801, 40806, 40807, 40812, 40810, 40823, 40818, 40822, 40853, 40860, 40864, 22575, 27079, 36953, 29796, 20956, 29081, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32394, 35100, 37704, 37512, 34012, 20425, 28859, 26161, 26824, 37625, 26363, 24389, 20008, 20193, 20220, 20224, 20227, 20281, 20310, 20370, 20362, 20378, 20372, 20429, 20544, 20514, 20479, 20510, 20550, 20592, 20546, 20628, 20724, 20696, 20810, 20836, 20893, 20926, 20972, 21013, 21148, 21158, 21184, 21211, 21248, 21255, 21284, 21362, 21395, 21426, 21469, 64014, 21660, 21642, 21673, 21759, 21894, 22361, 22373, 22444, 22472, 22471, 64015, 64016, 22686, 22706, 22795, 22867, 22875, 22877, 22883, 22948, 22970, 23382, 23488, 29999, 23512, 23532, 23582, 23718, 23738, 23797, 23847, 23891, 64017, 23874, 23917, 23992, 23993, 24016, 24353, 24372, 24423, 24503, 24542, 24669, 24709, 24714, 24798, 24789, 24864, 24818, 24849, 24887, 24880, 24984, 25107, 25254, 25589, 25696, 25757, 25806, 25934, 26112, 26133, 26171, 26121, 26158, 26142, 26148, 26213, 26199, 26201, 64018, 26227, 26265, 26272, 26290, 26303, 26362, 26382, 63785, 26470, 26555, 26706, 26560, 26625, 26692, 26831, 64019, 26984, 64020, 27032, 27106, 27184, 27243, 27206, 27251, 27262, 27362, 27364, 27606, 27711, 27740, 27782, 27759, 27866, 27908, 28039, 28015, 28054, 28076, 28111, 28152, 28146, 28156, 28217, 28252, 28199, 28220, 28351, 28552, 28597, 28661, 28677, 28679, 28712, 28805, 28843, 28943, 28932, 29020, 28998, 28999, 64021, 29121, 29182, 29361, 29374, 29476, 64022, 29559, 29629, 29641, 29654, 29667, 29650, 29703, 29685, 29734, 29738, 29737, 29742, 29794, 29833, 29855, 29953, 30063, 30338, 30364, 30366, 30363, 30374, 64023, 30534, 21167, 30753, 30798, 30820, 30842, 31024, 64024, 64025, 64026, 31124, 64027, 31131, 31441, 31463, 64028, 31467, 31646, 64029, 32072, 32092, 32183, 32160, 32214, 32338, 32583, 32673, 64030, 33537, 33634, 33663, 33735, 33782, 33864, 33972, 34131, 34137, 34155, 64031, 34224, 64032, 64033, 34823, 35061, 35346, 35383, 35449, 35495, 35518, 35551, 64034, 35574, 35667, 35711, 36080, 36084, 36114, 36214, 64035, 36559, 64036, 64037, 36967, 37086, 64038, 37141, 37159, 37338, 37335, 37342, 37357, 37358, 37348, 37349, 37382, 37392, 37386, 37434, 37440, 37436, 37454, 37465, 37457, 37433, 37479, 37543, 37495, 37496, 37607, 37591, 37593, 37584, 64039, 37589, 37600, 37587, 37669, 37665, 37627, 64040, 37662, 37631, 37661, 37634, 37744, 37719, 37796, 37830, 37854, 37880, 37937, 37957, 37960, 38290, 63964, 64041, 38557, 38575, 38707, 38715, 38723, 38733, 38735, 38737, 38741, 38999, 39013, 64042, 64043, 39207, 64044, 39326, 39502, 39641, 39644, 39797, 39794, 39823, 39857, 39867, 39936, 40304, 40299, 64045, 40473, 40657, 0, 0, 8560, 8561, 8562, 8563, 8564, 8565, 8566, 8567, 8568, 8569, 65506, 65508, 65287, 65282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8560, 8561, 8562, 8563, 8564, 8565, 8566, 8567, 8568, 8569, 8544, 8545, 8546, 8547, 8548, 8549, 8550, 8551, 8552, 8553, 65506, 65508, 65287, 65282, 12849, 8470, 8481, 8757, 32394, 35100, 37704, 37512, 34012, 20425, 28859, 26161, 26824, 37625, 26363, 24389, 20008, 20193, 20220, 20224, 20227, 20281, 20310, 20370, 20362, 20378, 20372, 20429, 20544, 20514, 20479, 20510, 20550, 20592, 20546, 20628, 20724, 20696, 20810, 20836, 20893, 20926, 20972, 21013, 21148, 21158, 21184, 21211, 21248, 21255, 21284, 21362, 21395, 21426, 21469, 64014, 21660, 21642, 21673, 21759, 21894, 22361, 22373, 22444, 22472, 22471, 64015, 64016, 22686, 22706, 22795, 22867, 22875, 22877, 22883, 22948, 22970, 23382, 23488, 29999, 23512, 23532, 23582, 23718, 23738, 23797, 23847, 23891, 64017, 23874, 23917, 23992, 23993, 24016, 24353, 24372, 24423, 24503, 24542, 24669, 24709, 24714, 24798, 24789, 24864, 24818, 24849, 24887, 24880, 24984, 25107, 25254, 25589, 25696, 25757, 25806, 25934, 26112, 26133, 26171, 26121, 26158, 26142, 26148, 26213, 26199, 26201, 64018, 26227, 26265, 26272, 26290, 26303, 26362, 26382, 63785, 26470, 26555, 26706, 26560, 26625, 26692, 26831, 64019, 26984, 64020, 27032, 27106, 27184, 27243, 27206, 27251, 27262, 27362, 27364, 27606, 27711, 27740, 27782, 27759, 27866, 27908, 28039, 28015, 28054, 28076, 28111, 28152, 28146, 28156, 28217, 28252, 28199, 28220, 28351, 28552, 28597, 28661, 28677, 28679, 28712, 28805, 28843, 28943, 28932, 29020, 28998, 28999, 64021, 29121, 29182, 29361, 29374, 29476, 64022, 29559, 29629, 29641, 29654, 29667, 29650, 29703, 29685, 29734, 29738, 29737, 29742, 29794, 29833, 29855, 29953, 30063, 30338, 30364, 30366, 30363, 30374, 64023, 30534, 21167, 30753, 30798, 30820, 30842, 31024, 64024, 64025, 64026, 31124, 64027, 31131, 31441, 31463, 64028, 31467, 31646, 64029, 32072, 32092, 32183, 32160, 32214, 32338, 32583, 32673, 64030, 33537, 33634, 33663, 33735, 33782, 33864, 33972, 34131, 34137, 34155, 64031, 34224, 64032, 64033, 34823, 35061, 35346, 35383, 35449, 35495, 35518, 35551, 64034, 35574, 35667, 35711, 36080, 36084, 36114, 36214, 64035, 36559, 64036, 64037, 36967, 37086, 64038, 37141, 37159, 37338, 37335, 37342, 37357, 37358, 37348, 37349, 37382, 37392, 37386, 37434, 37440, 37436, 37454, 37465, 37457, 37433, 37479, 37543, 37495, 37496, 37607, 37591, 37593, 37584, 64039, 37589, 37600, 37587, 37669, 37665, 37627, 64040, 37662, 37631, 37661, 37634, 37744, 37719, 37796, 37830, 37854, 37880, 37937, 37957, 37960, 38290, 63964, 64041, 38557, 38575, 38707, 38715, 38723, 38733, 38735, 38737, 38741, 38999, 39013, 64042, 64043, 39207, 64044, 39326, 39502, 39641, 39644, 39797, 39794, 39823, 39857, 39867, 39936, 40304, 40299, 64045, 40473, 40657]); + jis0212Decode = $toNativeArray($kindUint16, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 728, 711, 184, 729, 733, 175, 731, 730, 65374, 900, 901, 0, 0, 0, 0, 0, 0, 0, 0, 161, 166, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 186, 170, 169, 174, 8482, 164, 8470, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 902, 904, 905, 906, 938, 0, 908, 0, 910, 939, 0, 911, 0, 0, 0, 0, 940, 941, 942, 943, 970, 912, 972, 962, 973, 971, 944, 974, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1038, 1039, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1118, 1119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, 272, 0, 294, 0, 306, 0, 321, 319, 0, 330, 216, 338, 0, 358, 222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 273, 240, 295, 305, 307, 312, 322, 320, 329, 331, 248, 339, 223, 359, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 193, 192, 196, 194, 258, 461, 256, 260, 197, 195, 262, 264, 268, 199, 266, 270, 201, 200, 203, 202, 282, 278, 274, 280, 0, 284, 286, 290, 288, 292, 205, 204, 207, 206, 463, 304, 298, 302, 296, 308, 310, 313, 317, 315, 323, 327, 325, 209, 211, 210, 214, 212, 465, 336, 332, 213, 340, 344, 342, 346, 348, 352, 350, 356, 354, 218, 217, 220, 219, 364, 467, 368, 362, 370, 366, 360, 471, 475, 473, 469, 372, 221, 376, 374, 377, 381, 379, 0, 0, 0, 0, 0, 0, 0, 225, 224, 228, 226, 259, 462, 257, 261, 229, 227, 263, 265, 269, 231, 267, 271, 233, 232, 235, 234, 283, 279, 275, 281, 501, 285, 287, 0, 289, 293, 237, 236, 239, 238, 464, 0, 299, 303, 297, 309, 311, 314, 318, 316, 324, 328, 326, 241, 243, 242, 246, 244, 466, 337, 333, 245, 341, 345, 343, 347, 349, 353, 351, 357, 355, 250, 249, 252, 251, 365, 468, 369, 363, 371, 367, 361, 472, 476, 474, 470, 373, 253, 255, 375, 378, 382, 380, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19970, 19972, 19973, 19980, 19986, 19999, 20003, 20004, 20008, 20011, 20014, 20015, 20016, 20021, 20032, 20033, 20036, 20039, 20049, 20058, 20060, 20067, 20072, 20073, 20084, 20085, 20089, 20095, 20109, 20118, 20119, 20125, 20143, 20153, 20163, 20176, 20186, 20187, 20192, 20193, 20194, 20200, 20207, 20209, 20211, 20213, 20221, 20222, 20223, 20224, 20226, 20227, 20232, 20235, 20236, 20242, 20245, 20246, 20247, 20249, 20270, 20273, 20320, 20275, 20277, 20279, 20281, 20283, 20286, 20288, 20290, 20296, 20297, 20299, 20300, 20306, 20308, 20310, 20312, 20319, 20323, 20330, 20332, 20334, 20337, 20343, 20344, 20345, 20346, 20349, 20350, 20353, 20354, 20356, 20357, 20361, 20362, 20364, 20366, 20368, 20370, 20371, 20372, 20375, 20377, 20378, 20382, 20383, 20402, 20407, 20409, 20411, 20412, 20413, 20414, 20416, 20417, 20421, 20422, 20424, 20425, 20427, 20428, 20429, 20431, 20434, 20444, 20448, 20450, 20464, 20466, 20476, 20477, 20479, 20480, 20481, 20484, 20487, 20490, 20492, 20494, 20496, 20499, 20503, 20504, 20507, 20508, 20509, 20510, 20514, 20519, 20526, 20528, 20530, 20531, 20533, 20544, 20545, 20546, 20549, 20550, 20554, 20556, 20558, 20561, 20562, 20563, 20567, 20569, 20575, 20576, 20578, 20579, 20582, 20583, 20586, 20589, 20592, 20593, 20539, 20609, 20611, 20612, 20614, 20618, 20622, 20623, 20624, 20626, 20627, 20628, 20630, 20635, 20636, 20638, 20639, 20640, 20641, 20642, 20650, 20655, 20656, 20665, 20666, 20669, 20672, 20675, 20676, 20679, 20684, 20686, 20688, 20691, 20692, 20696, 20700, 20701, 20703, 20706, 20708, 20710, 20712, 20713, 20719, 20721, 20726, 20730, 20734, 20739, 20742, 20743, 20744, 20747, 20748, 20749, 20750, 20722, 20752, 20759, 20761, 20763, 20764, 20765, 20766, 20771, 20775, 20776, 20780, 20781, 20783, 20785, 20787, 20788, 20789, 20792, 20793, 20802, 20810, 20815, 20819, 20821, 20823, 20824, 20831, 20836, 20838, 20862, 20867, 20868, 20875, 20878, 20888, 20893, 20897, 20899, 20909, 20920, 20922, 20924, 20926, 20927, 20930, 20936, 20943, 20945, 20946, 20947, 20949, 20952, 20958, 20962, 20965, 20974, 20978, 20979, 20980, 20983, 20993, 20994, 20997, 21010, 21011, 21013, 21014, 21016, 21026, 21032, 21041, 21042, 21045, 21052, 21061, 21065, 21077, 21079, 21080, 21082, 21084, 21087, 21088, 21089, 21094, 21102, 21111, 21112, 21113, 21120, 21122, 21125, 21130, 21132, 21139, 21141, 21142, 21143, 21144, 21146, 21148, 21156, 21157, 21158, 21159, 21167, 21168, 21174, 21175, 21176, 21178, 21179, 21181, 21184, 21188, 21190, 21192, 21196, 21199, 21201, 21204, 21206, 21211, 21212, 21217, 21221, 21224, 21225, 21226, 21228, 21232, 21233, 21236, 21238, 21239, 21248, 21251, 21258, 21259, 21260, 21265, 21267, 21272, 21275, 21276, 21278, 21279, 21285, 21287, 21288, 21289, 21291, 21292, 21293, 21296, 21298, 21301, 21308, 21309, 21310, 21314, 21324, 21323, 21337, 21339, 21345, 21347, 21349, 21356, 21357, 21362, 21369, 21374, 21379, 21383, 21384, 21390, 21395, 21396, 21401, 21405, 21409, 21412, 21418, 21419, 21423, 21426, 21428, 21429, 21431, 21432, 21434, 21437, 21440, 21445, 21455, 21458, 21459, 21461, 21466, 21469, 21470, 21472, 21478, 21479, 21493, 21506, 21523, 21530, 21537, 21543, 21544, 21546, 21551, 21553, 21556, 21557, 21571, 21572, 21575, 21581, 21583, 21598, 21602, 21604, 21606, 21607, 21609, 21611, 21613, 21614, 21620, 21631, 21633, 21635, 21637, 21640, 21641, 21645, 21649, 21653, 21654, 21660, 21663, 21665, 21670, 21671, 21673, 21674, 21677, 21678, 21681, 21687, 21689, 21690, 21691, 21695, 21702, 21706, 21709, 21710, 21728, 21738, 21740, 21743, 21750, 21756, 21758, 21759, 21760, 21761, 21765, 21768, 21769, 21772, 21773, 21774, 21781, 21802, 21803, 21810, 21813, 21814, 21819, 21820, 21821, 21825, 21831, 21833, 21834, 21837, 21840, 21841, 21848, 21850, 21851, 21854, 21856, 21857, 21860, 21862, 21887, 21889, 21890, 21894, 21896, 21902, 21903, 21905, 21906, 21907, 21908, 21911, 21923, 21924, 21933, 21938, 21951, 21953, 21955, 21958, 21961, 21963, 21964, 21966, 21969, 21970, 21971, 21975, 21976, 21979, 21982, 21986, 21993, 22006, 22015, 22021, 22024, 22026, 22029, 22030, 22031, 22032, 22033, 22034, 22041, 22060, 22064, 22067, 22069, 22071, 22073, 22075, 22076, 22077, 22079, 22080, 22081, 22083, 22084, 22086, 22089, 22091, 22093, 22095, 22100, 22110, 22112, 22113, 22114, 22115, 22118, 22121, 22125, 22127, 22129, 22130, 22133, 22148, 22149, 22152, 22155, 22156, 22165, 22169, 22170, 22173, 22174, 22175, 22182, 22183, 22184, 22185, 22187, 22188, 22189, 22193, 22195, 22199, 22206, 22213, 22217, 22218, 22219, 22223, 22224, 22220, 22221, 22233, 22236, 22237, 22239, 22241, 22244, 22245, 22246, 22247, 22248, 22257, 22251, 22253, 22262, 22263, 22273, 22274, 22279, 22282, 22284, 22289, 22293, 22298, 22299, 22301, 22304, 22306, 22307, 22308, 22309, 22313, 22314, 22316, 22318, 22319, 22323, 22324, 22333, 22334, 22335, 22341, 22342, 22348, 22349, 22354, 22370, 22373, 22375, 22376, 22379, 22381, 22382, 22383, 22384, 22385, 22387, 22388, 22389, 22391, 22393, 22394, 22395, 22396, 22398, 22401, 22403, 22412, 22420, 22423, 22425, 22426, 22428, 22429, 22430, 22431, 22433, 22421, 22439, 22440, 22441, 22444, 22456, 22461, 22471, 22472, 22476, 22479, 22485, 22493, 22494, 22500, 22502, 22503, 22505, 22509, 22512, 22517, 22518, 22520, 22525, 22526, 22527, 22531, 22532, 22536, 22537, 22497, 22540, 22541, 22555, 22558, 22559, 22560, 22566, 22567, 22573, 22578, 22585, 22591, 22601, 22604, 22605, 22607, 22608, 22613, 22623, 22625, 22628, 22631, 22632, 22648, 22652, 22655, 22656, 22657, 22663, 22664, 22665, 22666, 22668, 22669, 22671, 22672, 22676, 22678, 22685, 22688, 22689, 22690, 22694, 22697, 22705, 22706, 22724, 22716, 22722, 22728, 22733, 22734, 22736, 22738, 22740, 22742, 22746, 22749, 22753, 22754, 22761, 22771, 22789, 22790, 22795, 22796, 22802, 22803, 22804, 34369, 22813, 22817, 22819, 22820, 22824, 22831, 22832, 22835, 22837, 22838, 22847, 22851, 22854, 22866, 22867, 22873, 22875, 22877, 22878, 22879, 22881, 22883, 22891, 22893, 22895, 22898, 22901, 22902, 22905, 22907, 22908, 22923, 22924, 22926, 22930, 22933, 22935, 22943, 22948, 22951, 22957, 22958, 22959, 22960, 22963, 22967, 22970, 22972, 22977, 22979, 22980, 22984, 22986, 22989, 22994, 23005, 23006, 23007, 23011, 23012, 23015, 23022, 23023, 23025, 23026, 23028, 23031, 23040, 23044, 23052, 23053, 23054, 23058, 23059, 23070, 23075, 23076, 23079, 23080, 23082, 23085, 23088, 23108, 23109, 23111, 23112, 23116, 23120, 23125, 23134, 23139, 23141, 23143, 23149, 23159, 23162, 23163, 23166, 23179, 23184, 23187, 23190, 23193, 23196, 23198, 23199, 23200, 23202, 23207, 23212, 23217, 23218, 23219, 23221, 23224, 23226, 23227, 23231, 23236, 23238, 23240, 23247, 23258, 23260, 23264, 23269, 23274, 23278, 23285, 23286, 23293, 23296, 23297, 23304, 23319, 23348, 23321, 23323, 23325, 23329, 23333, 23341, 23352, 23361, 23371, 23372, 23378, 23382, 23390, 23400, 23406, 23407, 23420, 23421, 23422, 23423, 23425, 23428, 23430, 23434, 23438, 23440, 23441, 23443, 23444, 23446, 23464, 23465, 23468, 23469, 23471, 23473, 23474, 23479, 23482, 23484, 23488, 23489, 23501, 23503, 23510, 23511, 23512, 23513, 23514, 23520, 23535, 23537, 23540, 23549, 23564, 23575, 23582, 23583, 23587, 23590, 23593, 23595, 23596, 23598, 23600, 23602, 23605, 23606, 23641, 23642, 23644, 23650, 23651, 23655, 23656, 23657, 23661, 23664, 23668, 23669, 23674, 23675, 23676, 23677, 23687, 23688, 23690, 23695, 23698, 23709, 23711, 23712, 23714, 23715, 23718, 23722, 23730, 23732, 23733, 23738, 23753, 23755, 23762, 23773, 23767, 23790, 23793, 23794, 23796, 23809, 23814, 23821, 23826, 23851, 23843, 23844, 23846, 23847, 23857, 23860, 23865, 23869, 23871, 23874, 23875, 23878, 23880, 23893, 23889, 23897, 23882, 23903, 23904, 23905, 23906, 23908, 23914, 23917, 23920, 23929, 23930, 23934, 23935, 23937, 23939, 23944, 23946, 23954, 23955, 23956, 23957, 23961, 23963, 23967, 23968, 23975, 23979, 23984, 23988, 23992, 23993, 24003, 24007, 24011, 24016, 24014, 24024, 24025, 24032, 24036, 24041, 24056, 24057, 24064, 24071, 24077, 24082, 24084, 24085, 24088, 24095, 24096, 24110, 24104, 24114, 24117, 24126, 24139, 24144, 24137, 24145, 24150, 24152, 24155, 24156, 24158, 24168, 24170, 24171, 24172, 24173, 24174, 24176, 24192, 24203, 24206, 24226, 24228, 24229, 24232, 24234, 24236, 24241, 24243, 24253, 24254, 24255, 24262, 24268, 24267, 24270, 24273, 24274, 24276, 24277, 24284, 24286, 24293, 24299, 24322, 24326, 24327, 24328, 24334, 24345, 24348, 24349, 24353, 24354, 24355, 24356, 24360, 24363, 24364, 24366, 24368, 24372, 24374, 24379, 24381, 24383, 24384, 24388, 24389, 24391, 24397, 24400, 24404, 24408, 24411, 24416, 24419, 24420, 24423, 24431, 24434, 24436, 24437, 24440, 24442, 24445, 24446, 24457, 24461, 24463, 24470, 24476, 24477, 24482, 24487, 24491, 24484, 24492, 24495, 24496, 24497, 24504, 24516, 24519, 24520, 24521, 24523, 24528, 24529, 24530, 24531, 24532, 24542, 24545, 24546, 24552, 24553, 24554, 24556, 24557, 24558, 24559, 24562, 24563, 24566, 24570, 24572, 24583, 24586, 24589, 24595, 24596, 24599, 24600, 24602, 24607, 24612, 24621, 24627, 24629, 24640, 24647, 24648, 24649, 24652, 24657, 24660, 24662, 24663, 24669, 24673, 24679, 24689, 24702, 24703, 24706, 24710, 24712, 24714, 24718, 24721, 24723, 24725, 24728, 24733, 24734, 24738, 24740, 24741, 24744, 24752, 24753, 24759, 24763, 24766, 24770, 24772, 24776, 24777, 24778, 24779, 24782, 24783, 24788, 24789, 24793, 24795, 24797, 24798, 24802, 24805, 24818, 24821, 24824, 24828, 24829, 24834, 24839, 24842, 24844, 24848, 24849, 24850, 24851, 24852, 24854, 24855, 24857, 24860, 24862, 24866, 24874, 24875, 24880, 24881, 24885, 24886, 24887, 24889, 24897, 24901, 24902, 24905, 24926, 24928, 24940, 24946, 24952, 24955, 24956, 24959, 24960, 24961, 24963, 24964, 24971, 24973, 24978, 24979, 24983, 24984, 24988, 24989, 24991, 24992, 24997, 25000, 25002, 25005, 25016, 25017, 25020, 25024, 25025, 25026, 25038, 25039, 25045, 25052, 25053, 25054, 25055, 25057, 25058, 25063, 25065, 25061, 25068, 25069, 25071, 25089, 25091, 25092, 25095, 25107, 25109, 25116, 25120, 25122, 25123, 25127, 25129, 25131, 25145, 25149, 25154, 25155, 25156, 25158, 25164, 25168, 25169, 25170, 25172, 25174, 25178, 25180, 25188, 25197, 25199, 25203, 25210, 25213, 25229, 25230, 25231, 25232, 25254, 25256, 25267, 25270, 25271, 25274, 25278, 25279, 25284, 25294, 25301, 25302, 25306, 25322, 25330, 25332, 25340, 25341, 25347, 25348, 25354, 25355, 25357, 25360, 25363, 25366, 25368, 25385, 25386, 25389, 25397, 25398, 25401, 25404, 25409, 25410, 25411, 25412, 25414, 25418, 25419, 25422, 25426, 25427, 25428, 25432, 25435, 25445, 25446, 25452, 25453, 25457, 25460, 25461, 25464, 25468, 25469, 25471, 25474, 25476, 25479, 25482, 25488, 25492, 25493, 25497, 25498, 25502, 25508, 25510, 25517, 25518, 25519, 25533, 25537, 25541, 25544, 25550, 25553, 25555, 25556, 25557, 25564, 25568, 25573, 25578, 25580, 25586, 25587, 25589, 25592, 25593, 25609, 25610, 25616, 25618, 25620, 25624, 25630, 25632, 25634, 25636, 25637, 25641, 25642, 25647, 25648, 25653, 25661, 25663, 25675, 25679, 25681, 25682, 25683, 25684, 25690, 25691, 25692, 25693, 25695, 25696, 25697, 25699, 25709, 25715, 25716, 25723, 25725, 25733, 25735, 25743, 25744, 25745, 25752, 25753, 25755, 25757, 25759, 25761, 25763, 25766, 25768, 25772, 25779, 25789, 25790, 25791, 25796, 25801, 25802, 25803, 25804, 25806, 25808, 25809, 25813, 25815, 25828, 25829, 25833, 25834, 25837, 25840, 25845, 25847, 25851, 25855, 25857, 25860, 25864, 25865, 25866, 25871, 25875, 25876, 25878, 25881, 25883, 25886, 25887, 25890, 25894, 25897, 25902, 25905, 25914, 25916, 25917, 25923, 25927, 25929, 25936, 25938, 25940, 25951, 25952, 25959, 25963, 25978, 25981, 25985, 25989, 25994, 26002, 26005, 26008, 26013, 26016, 26019, 26022, 26030, 26034, 26035, 26036, 26047, 26050, 26056, 26057, 26062, 26064, 26068, 26070, 26072, 26079, 26096, 26098, 26100, 26101, 26105, 26110, 26111, 26112, 26116, 26120, 26121, 26125, 26129, 26130, 26133, 26134, 26141, 26142, 26145, 26146, 26147, 26148, 26150, 26153, 26154, 26155, 26156, 26158, 26160, 26161, 26163, 26169, 26167, 26176, 26181, 26182, 26186, 26188, 26193, 26190, 26199, 26200, 26201, 26203, 26204, 26208, 26209, 26363, 26218, 26219, 26220, 26238, 26227, 26229, 26239, 26231, 26232, 26233, 26235, 26240, 26236, 26251, 26252, 26253, 26256, 26258, 26265, 26266, 26267, 26268, 26271, 26272, 26276, 26285, 26289, 26290, 26293, 26299, 26303, 26304, 26306, 26307, 26312, 26316, 26318, 26319, 26324, 26331, 26335, 26344, 26347, 26348, 26350, 26362, 26373, 26375, 26382, 26387, 26393, 26396, 26400, 26402, 26419, 26430, 26437, 26439, 26440, 26444, 26452, 26453, 26461, 26470, 26476, 26478, 26484, 26486, 26491, 26497, 26500, 26510, 26511, 26513, 26515, 26518, 26520, 26521, 26523, 26544, 26545, 26546, 26549, 26555, 26556, 26557, 26617, 26560, 26562, 26563, 26565, 26568, 26569, 26578, 26583, 26585, 26588, 26593, 26598, 26608, 26610, 26614, 26615, 26706, 26644, 26649, 26653, 26655, 26664, 26663, 26668, 26669, 26671, 26672, 26673, 26675, 26683, 26687, 26692, 26693, 26698, 26700, 26709, 26711, 26712, 26715, 26731, 26734, 26735, 26736, 26737, 26738, 26741, 26745, 26746, 26747, 26748, 26754, 26756, 26758, 26760, 26774, 26776, 26778, 26780, 26785, 26787, 26789, 26793, 26794, 26798, 26802, 26811, 26821, 26824, 26828, 26831, 26832, 26833, 26835, 26838, 26841, 26844, 26845, 26853, 26856, 26858, 26859, 26860, 26861, 26864, 26865, 26869, 26870, 26875, 26876, 26877, 26886, 26889, 26890, 26896, 26897, 26899, 26902, 26903, 26929, 26931, 26933, 26936, 26939, 26946, 26949, 26953, 26958, 26967, 26971, 26979, 26980, 26981, 26982, 26984, 26985, 26988, 26992, 26993, 26994, 27002, 27003, 27007, 27008, 27021, 27026, 27030, 27032, 27041, 27045, 27046, 27048, 27051, 27053, 27055, 27063, 27064, 27066, 27068, 27077, 27080, 27089, 27094, 27095, 27106, 27109, 27118, 27119, 27121, 27123, 27125, 27134, 27136, 27137, 27139, 27151, 27153, 27157, 27162, 27165, 27168, 27172, 27176, 27184, 27186, 27188, 27191, 27195, 27198, 27199, 27205, 27206, 27209, 27210, 27214, 27216, 27217, 27218, 27221, 27222, 27227, 27236, 27239, 27242, 27249, 27251, 27262, 27265, 27267, 27270, 27271, 27273, 27275, 27281, 27291, 27293, 27294, 27295, 27301, 27307, 27311, 27312, 27313, 27316, 27325, 27326, 27327, 27334, 27337, 27336, 27340, 27344, 27348, 27349, 27350, 27356, 27357, 27364, 27367, 27372, 27376, 27377, 27378, 27388, 27389, 27394, 27395, 27398, 27399, 27401, 27407, 27408, 27409, 27415, 27419, 27422, 27428, 27432, 27435, 27436, 27439, 27445, 27446, 27451, 27455, 27462, 27466, 27469, 27474, 27478, 27480, 27485, 27488, 27495, 27499, 27502, 27504, 27509, 27517, 27518, 27522, 27525, 27543, 27547, 27551, 27552, 27554, 27555, 27560, 27561, 27564, 27565, 27566, 27568, 27576, 27577, 27581, 27582, 27587, 27588, 27593, 27596, 27606, 27610, 27617, 27619, 27622, 27623, 27630, 27633, 27639, 27641, 27647, 27650, 27652, 27653, 27657, 27661, 27662, 27664, 27666, 27673, 27679, 27686, 27687, 27688, 27692, 27694, 27699, 27701, 27702, 27706, 27707, 27711, 27722, 27723, 27725, 27727, 27730, 27732, 27737, 27739, 27740, 27755, 27757, 27759, 27764, 27766, 27768, 27769, 27771, 27781, 27782, 27783, 27785, 27796, 27797, 27799, 27800, 27804, 27807, 27824, 27826, 27828, 27842, 27846, 27853, 27855, 27856, 27857, 27858, 27860, 27862, 27866, 27868, 27872, 27879, 27881, 27883, 27884, 27886, 27890, 27892, 27908, 27911, 27914, 27918, 27919, 27921, 27923, 27930, 27942, 27943, 27944, 27751, 27950, 27951, 27953, 27961, 27964, 27967, 27991, 27998, 27999, 28001, 28005, 28007, 28015, 28016, 28028, 28034, 28039, 28049, 28050, 28052, 28054, 28055, 28056, 28074, 28076, 28084, 28087, 28089, 28093, 28095, 28100, 28104, 28106, 28110, 28111, 28118, 28123, 28125, 28127, 28128, 28130, 28133, 28137, 28143, 28144, 28148, 28150, 28156, 28160, 28164, 28190, 28194, 28199, 28210, 28214, 28217, 28219, 28220, 28228, 28229, 28232, 28233, 28235, 28239, 28241, 28242, 28243, 28244, 28247, 28252, 28253, 28254, 28258, 28259, 28264, 28275, 28283, 28285, 28301, 28307, 28313, 28320, 28327, 28333, 28334, 28337, 28339, 28347, 28351, 28352, 28353, 28355, 28359, 28360, 28362, 28365, 28366, 28367, 28395, 28397, 28398, 28409, 28411, 28413, 28420, 28424, 28426, 28428, 28429, 28438, 28440, 28442, 28443, 28454, 28457, 28458, 28463, 28464, 28467, 28470, 28475, 28476, 28461, 28495, 28497, 28498, 28499, 28503, 28505, 28506, 28509, 28510, 28513, 28514, 28520, 28524, 28541, 28542, 28547, 28551, 28552, 28555, 28556, 28557, 28560, 28562, 28563, 28564, 28566, 28570, 28575, 28576, 28581, 28582, 28583, 28584, 28590, 28591, 28592, 28597, 28598, 28604, 28613, 28615, 28616, 28618, 28634, 28638, 28648, 28649, 28656, 28661, 28665, 28668, 28669, 28672, 28677, 28678, 28679, 28685, 28695, 28704, 28707, 28719, 28724, 28727, 28729, 28732, 28739, 28740, 28744, 28745, 28746, 28747, 28756, 28757, 28765, 28766, 28750, 28772, 28773, 28780, 28782, 28789, 28790, 28798, 28801, 28805, 28806, 28820, 28821, 28822, 28823, 28824, 28827, 28836, 28843, 28848, 28849, 28852, 28855, 28874, 28881, 28883, 28884, 28885, 28886, 28888, 28892, 28900, 28922, 28931, 28932, 28933, 28934, 28935, 28939, 28940, 28943, 28958, 28960, 28971, 28973, 28975, 28976, 28977, 28984, 28993, 28997, 28998, 28999, 29002, 29003, 29008, 29010, 29015, 29018, 29020, 29022, 29024, 29032, 29049, 29056, 29061, 29063, 29068, 29074, 29082, 29083, 29088, 29090, 29103, 29104, 29106, 29107, 29114, 29119, 29120, 29121, 29124, 29131, 29132, 29139, 29142, 29145, 29146, 29148, 29176, 29182, 29184, 29191, 29192, 29193, 29203, 29207, 29210, 29213, 29215, 29220, 29227, 29231, 29236, 29240, 29241, 29249, 29250, 29251, 29253, 29262, 29263, 29264, 29267, 29269, 29270, 29274, 29276, 29278, 29280, 29283, 29288, 29291, 29294, 29295, 29297, 29303, 29304, 29307, 29308, 29311, 29316, 29321, 29325, 29326, 29331, 29339, 29352, 29357, 29358, 29361, 29364, 29374, 29377, 29383, 29385, 29388, 29397, 29398, 29400, 29407, 29413, 29427, 29428, 29434, 29435, 29438, 29442, 29444, 29445, 29447, 29451, 29453, 29458, 29459, 29464, 29465, 29470, 29474, 29476, 29479, 29480, 29484, 29489, 29490, 29493, 29498, 29499, 29501, 29507, 29517, 29520, 29522, 29526, 29528, 29533, 29534, 29535, 29536, 29542, 29543, 29545, 29547, 29548, 29550, 29551, 29553, 29559, 29561, 29564, 29568, 29569, 29571, 29573, 29574, 29582, 29584, 29587, 29589, 29591, 29592, 29596, 29598, 29599, 29600, 29602, 29605, 29606, 29610, 29611, 29613, 29621, 29623, 29625, 29628, 29629, 29631, 29637, 29638, 29641, 29643, 29644, 29647, 29650, 29651, 29654, 29657, 29661, 29665, 29667, 29670, 29671, 29673, 29684, 29685, 29687, 29689, 29690, 29691, 29693, 29695, 29696, 29697, 29700, 29703, 29706, 29713, 29722, 29723, 29732, 29734, 29736, 29737, 29738, 29739, 29740, 29741, 29742, 29743, 29744, 29745, 29753, 29760, 29763, 29764, 29766, 29767, 29771, 29773, 29777, 29778, 29783, 29789, 29794, 29798, 29799, 29800, 29803, 29805, 29806, 29809, 29810, 29824, 29825, 29829, 29830, 29831, 29833, 29839, 29840, 29841, 29842, 29848, 29849, 29850, 29852, 29855, 29856, 29857, 29859, 29862, 29864, 29865, 29866, 29867, 29870, 29871, 29873, 29874, 29877, 29881, 29883, 29887, 29896, 29897, 29900, 29904, 29907, 29912, 29914, 29915, 29918, 29919, 29924, 29928, 29930, 29931, 29935, 29940, 29946, 29947, 29948, 29951, 29958, 29970, 29974, 29975, 29984, 29985, 29988, 29991, 29993, 29994, 29999, 30006, 30009, 30013, 30014, 30015, 30016, 30019, 30023, 30024, 30030, 30032, 30034, 30039, 30046, 30047, 30049, 30063, 30065, 30073, 30074, 30075, 30076, 30077, 30078, 30081, 30085, 30096, 30098, 30099, 30101, 30105, 30108, 30114, 30116, 30132, 30138, 30143, 30144, 30145, 30148, 30150, 30156, 30158, 30159, 30167, 30172, 30175, 30176, 30177, 30180, 30183, 30188, 30190, 30191, 30193, 30201, 30208, 30210, 30211, 30212, 30215, 30216, 30218, 30220, 30223, 30226, 30227, 30229, 30230, 30233, 30235, 30236, 30237, 30238, 30243, 30245, 30246, 30249, 30253, 30258, 30259, 30261, 30264, 30265, 30266, 30268, 30282, 30272, 30273, 30275, 30276, 30277, 30281, 30283, 30293, 30297, 30303, 30308, 30309, 30317, 30318, 30319, 30321, 30324, 30337, 30341, 30348, 30349, 30357, 30363, 30364, 30365, 30367, 30368, 30370, 30371, 30372, 30373, 30374, 30375, 30376, 30378, 30381, 30397, 30401, 30405, 30409, 30411, 30412, 30414, 30420, 30425, 30432, 30438, 30440, 30444, 30448, 30449, 30454, 30457, 30460, 30464, 30470, 30474, 30478, 30482, 30484, 30485, 30487, 30489, 30490, 30492, 30498, 30504, 30509, 30510, 30511, 30516, 30517, 30518, 30521, 30525, 30526, 30530, 30533, 30534, 30538, 30541, 30542, 30543, 30546, 30550, 30551, 30556, 30558, 30559, 30560, 30562, 30564, 30567, 30570, 30572, 30576, 30578, 30579, 30580, 30586, 30589, 30592, 30596, 30604, 30605, 30612, 30613, 30614, 30618, 30623, 30626, 30631, 30634, 30638, 30639, 30641, 30645, 30654, 30659, 30665, 30673, 30674, 30677, 30681, 30686, 30687, 30688, 30692, 30694, 30698, 30700, 30704, 30705, 30708, 30712, 30715, 30725, 30726, 30729, 30733, 30734, 30737, 30749, 30753, 30754, 30755, 30765, 30766, 30768, 30773, 30775, 30787, 30788, 30791, 30792, 30796, 30798, 30802, 30812, 30814, 30816, 30817, 30819, 30820, 30824, 30826, 30830, 30842, 30846, 30858, 30863, 30868, 30872, 30881, 30877, 30878, 30879, 30884, 30888, 30892, 30893, 30896, 30897, 30898, 30899, 30907, 30909, 30911, 30919, 30920, 30921, 30924, 30926, 30930, 30931, 30933, 30934, 30948, 30939, 30943, 30944, 30945, 30950, 30954, 30962, 30963, 30976, 30966, 30967, 30970, 30971, 30975, 30982, 30988, 30992, 31002, 31004, 31006, 31007, 31008, 31013, 31015, 31017, 31021, 31025, 31028, 31029, 31035, 31037, 31039, 31044, 31045, 31046, 31050, 31051, 31055, 31057, 31060, 31064, 31067, 31068, 31079, 31081, 31083, 31090, 31097, 31099, 31100, 31102, 31115, 31116, 31121, 31123, 31124, 31125, 31126, 31128, 31131, 31132, 31137, 31144, 31145, 31147, 31151, 31153, 31156, 31160, 31163, 31170, 31172, 31175, 31176, 31178, 31183, 31188, 31190, 31194, 31197, 31198, 31200, 31202, 31205, 31210, 31211, 31213, 31217, 31224, 31228, 31234, 31235, 31239, 31241, 31242, 31244, 31249, 31253, 31259, 31262, 31265, 31271, 31275, 31277, 31279, 31280, 31284, 31285, 31288, 31289, 31290, 31300, 31301, 31303, 31304, 31308, 31317, 31318, 31321, 31324, 31325, 31327, 31328, 31333, 31335, 31338, 31341, 31349, 31352, 31358, 31360, 31362, 31365, 31366, 31370, 31371, 31376, 31377, 31380, 31390, 31392, 31395, 31404, 31411, 31413, 31417, 31419, 31420, 31430, 31433, 31436, 31438, 31441, 31451, 31464, 31465, 31467, 31468, 31473, 31476, 31483, 31485, 31486, 31495, 31508, 31519, 31523, 31527, 31529, 31530, 31531, 31533, 31534, 31535, 31536, 31537, 31540, 31549, 31551, 31552, 31553, 31559, 31566, 31573, 31584, 31588, 31590, 31593, 31594, 31597, 31599, 31602, 31603, 31607, 31620, 31625, 31630, 31632, 31633, 31638, 31643, 31646, 31648, 31653, 31660, 31663, 31664, 31666, 31669, 31670, 31674, 31675, 31676, 31677, 31682, 31685, 31688, 31690, 31700, 31702, 31703, 31705, 31706, 31707, 31720, 31722, 31730, 31732, 31733, 31736, 31737, 31738, 31740, 31742, 31745, 31746, 31747, 31748, 31750, 31753, 31755, 31756, 31758, 31759, 31769, 31771, 31776, 31781, 31782, 31784, 31788, 31793, 31795, 31796, 31798, 31801, 31802, 31814, 31818, 31829, 31825, 31826, 31827, 31833, 31834, 31835, 31836, 31837, 31838, 31841, 31843, 31847, 31849, 31853, 31854, 31856, 31858, 31865, 31868, 31869, 31878, 31879, 31887, 31892, 31902, 31904, 31910, 31920, 31926, 31927, 31930, 31931, 31932, 31935, 31940, 31943, 31944, 31945, 31949, 31951, 31955, 31956, 31957, 31959, 31961, 31962, 31965, 31974, 31977, 31979, 31989, 32003, 32007, 32008, 32009, 32015, 32017, 32018, 32019, 32022, 32029, 32030, 32035, 32038, 32042, 32045, 32049, 32060, 32061, 32062, 32064, 32065, 32071, 32072, 32077, 32081, 32083, 32087, 32089, 32090, 32092, 32093, 32101, 32103, 32106, 32112, 32120, 32122, 32123, 32127, 32129, 32130, 32131, 32133, 32134, 32136, 32139, 32140, 32141, 32145, 32150, 32151, 32157, 32158, 32166, 32167, 32170, 32179, 32182, 32183, 32185, 32194, 32195, 32196, 32197, 32198, 32204, 32205, 32206, 32215, 32217, 32256, 32226, 32229, 32230, 32234, 32235, 32237, 32241, 32245, 32246, 32249, 32250, 32264, 32272, 32273, 32277, 32279, 32284, 32285, 32288, 32295, 32296, 32300, 32301, 32303, 32307, 32310, 32319, 32324, 32325, 32327, 32334, 32336, 32338, 32344, 32351, 32353, 32354, 32357, 32363, 32366, 32367, 32371, 32376, 32382, 32385, 32390, 32391, 32394, 32397, 32401, 32405, 32408, 32410, 32413, 32414, 32572, 32571, 32573, 32574, 32575, 32579, 32580, 32583, 32591, 32594, 32595, 32603, 32604, 32605, 32609, 32611, 32612, 32613, 32614, 32621, 32625, 32637, 32638, 32639, 32640, 32651, 32653, 32655, 32656, 32657, 32662, 32663, 32668, 32673, 32674, 32678, 32682, 32685, 32692, 32700, 32703, 32704, 32707, 32712, 32718, 32719, 32731, 32735, 32739, 32741, 32744, 32748, 32750, 32751, 32754, 32762, 32765, 32766, 32767, 32775, 32776, 32778, 32781, 32782, 32783, 32785, 32787, 32788, 32790, 32797, 32798, 32799, 32800, 32804, 32806, 32812, 32814, 32816, 32820, 32821, 32823, 32825, 32826, 32828, 32830, 32832, 32836, 32864, 32868, 32870, 32877, 32881, 32885, 32897, 32904, 32910, 32924, 32926, 32934, 32935, 32939, 32952, 32953, 32968, 32973, 32975, 32978, 32980, 32981, 32983, 32984, 32992, 33005, 33006, 33008, 33010, 33011, 33014, 33017, 33018, 33022, 33027, 33035, 33046, 33047, 33048, 33052, 33054, 33056, 33060, 33063, 33068, 33072, 33077, 33082, 33084, 33093, 33095, 33098, 33100, 33106, 33111, 33120, 33121, 33127, 33128, 33129, 33133, 33135, 33143, 33153, 33168, 33156, 33157, 33158, 33163, 33166, 33174, 33176, 33179, 33182, 33186, 33198, 33202, 33204, 33211, 33227, 33219, 33221, 33226, 33230, 33231, 33237, 33239, 33243, 33245, 33246, 33249, 33252, 33259, 33260, 33264, 33265, 33266, 33269, 33270, 33272, 33273, 33277, 33279, 33280, 33283, 33295, 33299, 33300, 33305, 33306, 33309, 33313, 33314, 33320, 33330, 33332, 33338, 33347, 33348, 33349, 33350, 33355, 33358, 33359, 33361, 33366, 33372, 33376, 33379, 33383, 33389, 33396, 33403, 33405, 33407, 33408, 33409, 33411, 33412, 33415, 33417, 33418, 33422, 33425, 33428, 33430, 33432, 33434, 33435, 33440, 33441, 33443, 33444, 33447, 33448, 33449, 33450, 33454, 33456, 33458, 33460, 33463, 33466, 33468, 33470, 33471, 33478, 33488, 33493, 33498, 33504, 33506, 33508, 33512, 33514, 33517, 33519, 33526, 33527, 33533, 33534, 33536, 33537, 33543, 33544, 33546, 33547, 33620, 33563, 33565, 33566, 33567, 33569, 33570, 33580, 33581, 33582, 33584, 33587, 33591, 33594, 33596, 33597, 33602, 33603, 33604, 33607, 33613, 33614, 33617, 33621, 33622, 33623, 33648, 33656, 33661, 33663, 33664, 33666, 33668, 33670, 33677, 33682, 33684, 33685, 33688, 33689, 33691, 33692, 33693, 33702, 33703, 33705, 33708, 33726, 33727, 33728, 33735, 33737, 33743, 33744, 33745, 33748, 33757, 33619, 33768, 33770, 33782, 33784, 33785, 33788, 33793, 33798, 33802, 33807, 33809, 33813, 33817, 33709, 33839, 33849, 33861, 33863, 33864, 33866, 33869, 33871, 33873, 33874, 33878, 33880, 33881, 33882, 33884, 33888, 33892, 33893, 33895, 33898, 33904, 33907, 33908, 33910, 33912, 33916, 33917, 33921, 33925, 33938, 33939, 33941, 33950, 33958, 33960, 33961, 33962, 33967, 33969, 33972, 33978, 33981, 33982, 33984, 33986, 33991, 33992, 33996, 33999, 34003, 34012, 34023, 34026, 34031, 34032, 34033, 34034, 34039, 34098, 34042, 34043, 34045, 34050, 34051, 34055, 34060, 34062, 34064, 34076, 34078, 34082, 34083, 34084, 34085, 34087, 34090, 34091, 34095, 34099, 34100, 34102, 34111, 34118, 34127, 34128, 34129, 34130, 34131, 34134, 34137, 34140, 34141, 34142, 34143, 34144, 34145, 34146, 34148, 34155, 34159, 34169, 34170, 34171, 34173, 34175, 34177, 34181, 34182, 34185, 34187, 34188, 34191, 34195, 34200, 34205, 34207, 34208, 34210, 34213, 34215, 34228, 34230, 34231, 34232, 34236, 34237, 34238, 34239, 34242, 34247, 34250, 34251, 34254, 34221, 34264, 34266, 34271, 34272, 34278, 34280, 34285, 34291, 34294, 34300, 34303, 34304, 34308, 34309, 34317, 34318, 34320, 34321, 34322, 34328, 34329, 34331, 34334, 34337, 34343, 34345, 34358, 34360, 34362, 34364, 34365, 34368, 34370, 34374, 34386, 34387, 34390, 34391, 34392, 34393, 34397, 34400, 34401, 34402, 34403, 34404, 34409, 34412, 34415, 34421, 34422, 34423, 34426, 34445, 34449, 34454, 34456, 34458, 34460, 34465, 34470, 34471, 34472, 34477, 34481, 34483, 34484, 34485, 34487, 34488, 34489, 34495, 34496, 34497, 34499, 34501, 34513, 34514, 34517, 34519, 34522, 34524, 34528, 34531, 34533, 34535, 34440, 34554, 34556, 34557, 34564, 34565, 34567, 34571, 34574, 34575, 34576, 34579, 34580, 34585, 34590, 34591, 34593, 34595, 34600, 34606, 34607, 34609, 34610, 34617, 34618, 34620, 34621, 34622, 34624, 34627, 34629, 34637, 34648, 34653, 34657, 34660, 34661, 34671, 34673, 34674, 34683, 34691, 34692, 34693, 34694, 34695, 34696, 34697, 34699, 34700, 34704, 34707, 34709, 34711, 34712, 34713, 34718, 34720, 34723, 34727, 34732, 34733, 34734, 34737, 34741, 34750, 34751, 34753, 34760, 34761, 34762, 34766, 34773, 34774, 34777, 34778, 34780, 34783, 34786, 34787, 34788, 34794, 34795, 34797, 34801, 34803, 34808, 34810, 34815, 34817, 34819, 34822, 34825, 34826, 34827, 34832, 34841, 34834, 34835, 34836, 34840, 34842, 34843, 34844, 34846, 34847, 34856, 34861, 34862, 34864, 34866, 34869, 34874, 34876, 34881, 34883, 34885, 34888, 34889, 34890, 34891, 34894, 34897, 34901, 34902, 34904, 34906, 34908, 34911, 34912, 34916, 34921, 34929, 34937, 34939, 34944, 34968, 34970, 34971, 34972, 34975, 34976, 34984, 34986, 35002, 35005, 35006, 35008, 35018, 35019, 35020, 35021, 35022, 35025, 35026, 35027, 35035, 35038, 35047, 35055, 35056, 35057, 35061, 35063, 35073, 35078, 35085, 35086, 35087, 35093, 35094, 35096, 35097, 35098, 35100, 35104, 35110, 35111, 35112, 35120, 35121, 35122, 35125, 35129, 35130, 35134, 35136, 35138, 35141, 35142, 35145, 35151, 35154, 35159, 35162, 35163, 35164, 35169, 35170, 35171, 35179, 35182, 35184, 35187, 35189, 35194, 35195, 35196, 35197, 35209, 35213, 35216, 35220, 35221, 35227, 35228, 35231, 35232, 35237, 35248, 35252, 35253, 35254, 35255, 35260, 35284, 35285, 35286, 35287, 35288, 35301, 35305, 35307, 35309, 35313, 35315, 35318, 35321, 35325, 35327, 35332, 35333, 35335, 35343, 35345, 35346, 35348, 35349, 35358, 35360, 35362, 35364, 35366, 35371, 35372, 35375, 35381, 35383, 35389, 35390, 35392, 35395, 35397, 35399, 35401, 35405, 35406, 35411, 35414, 35415, 35416, 35420, 35421, 35425, 35429, 35431, 35445, 35446, 35447, 35449, 35450, 35451, 35454, 35455, 35456, 35459, 35462, 35467, 35471, 35472, 35474, 35478, 35479, 35481, 35487, 35495, 35497, 35502, 35503, 35507, 35510, 35511, 35515, 35518, 35523, 35526, 35528, 35529, 35530, 35537, 35539, 35540, 35541, 35543, 35549, 35551, 35564, 35568, 35572, 35573, 35574, 35580, 35583, 35589, 35590, 35595, 35601, 35612, 35614, 35615, 35594, 35629, 35632, 35639, 35644, 35650, 35651, 35652, 35653, 35654, 35656, 35666, 35667, 35668, 35673, 35661, 35678, 35683, 35693, 35702, 35704, 35705, 35708, 35710, 35713, 35716, 35717, 35723, 35725, 35727, 35732, 35733, 35740, 35742, 35743, 35896, 35897, 35901, 35902, 35909, 35911, 35913, 35915, 35919, 35921, 35923, 35924, 35927, 35928, 35931, 35933, 35929, 35939, 35940, 35942, 35944, 35945, 35949, 35955, 35957, 35958, 35963, 35966, 35974, 35975, 35979, 35984, 35986, 35987, 35993, 35995, 35996, 36004, 36025, 36026, 36037, 36038, 36041, 36043, 36047, 36054, 36053, 36057, 36061, 36065, 36072, 36076, 36079, 36080, 36082, 36085, 36087, 36088, 36094, 36095, 36097, 36099, 36105, 36114, 36119, 36123, 36197, 36201, 36204, 36206, 36223, 36226, 36228, 36232, 36237, 36240, 36241, 36245, 36254, 36255, 36256, 36262, 36267, 36268, 36271, 36274, 36277, 36279, 36281, 36283, 36288, 36293, 36294, 36295, 36296, 36298, 36302, 36305, 36308, 36309, 36311, 36313, 36324, 36325, 36327, 36332, 36336, 36284, 36337, 36338, 36340, 36349, 36353, 36356, 36357, 36358, 36363, 36369, 36372, 36374, 36384, 36385, 36386, 36387, 36390, 36391, 36401, 36403, 36406, 36407, 36408, 36409, 36413, 36416, 36417, 36427, 36429, 36430, 36431, 36436, 36443, 36444, 36445, 36446, 36449, 36450, 36457, 36460, 36461, 36463, 36464, 36465, 36473, 36474, 36475, 36482, 36483, 36489, 36496, 36498, 36501, 36506, 36507, 36509, 36510, 36514, 36519, 36521, 36525, 36526, 36531, 36533, 36538, 36539, 36544, 36545, 36547, 36548, 36551, 36559, 36561, 36564, 36572, 36584, 36590, 36592, 36593, 36599, 36601, 36602, 36589, 36608, 36610, 36615, 36616, 36623, 36624, 36630, 36631, 36632, 36638, 36640, 36641, 36643, 36645, 36647, 36648, 36652, 36653, 36654, 36660, 36661, 36662, 36663, 36666, 36672, 36673, 36675, 36679, 36687, 36689, 36690, 36691, 36692, 36693, 36696, 36701, 36702, 36709, 36765, 36768, 36769, 36772, 36773, 36774, 36789, 36790, 36792, 36798, 36800, 36801, 36806, 36810, 36811, 36813, 36816, 36818, 36819, 36821, 36832, 36835, 36836, 36840, 36846, 36849, 36853, 36854, 36859, 36862, 36866, 36868, 36872, 36876, 36888, 36891, 36904, 36905, 36911, 36906, 36908, 36909, 36915, 36916, 36919, 36927, 36931, 36932, 36940, 36955, 36957, 36962, 36966, 36967, 36972, 36976, 36980, 36985, 36997, 37000, 37003, 37004, 37006, 37008, 37013, 37015, 37016, 37017, 37019, 37024, 37025, 37026, 37029, 37040, 37042, 37043, 37044, 37046, 37053, 37068, 37054, 37059, 37060, 37061, 37063, 37064, 37077, 37079, 37080, 37081, 37084, 37085, 37087, 37093, 37074, 37110, 37099, 37103, 37104, 37108, 37118, 37119, 37120, 37124, 37125, 37126, 37128, 37133, 37136, 37140, 37142, 37143, 37144, 37146, 37148, 37150, 37152, 37157, 37154, 37155, 37159, 37161, 37166, 37167, 37169, 37172, 37174, 37175, 37177, 37178, 37180, 37181, 37187, 37191, 37192, 37199, 37203, 37207, 37209, 37210, 37211, 37217, 37220, 37223, 37229, 37236, 37241, 37242, 37243, 37249, 37251, 37253, 37254, 37258, 37262, 37265, 37267, 37268, 37269, 37272, 37278, 37281, 37286, 37288, 37292, 37293, 37294, 37296, 37297, 37298, 37299, 37302, 37307, 37308, 37309, 37311, 37314, 37315, 37317, 37331, 37332, 37335, 37337, 37338, 37342, 37348, 37349, 37353, 37354, 37356, 37357, 37358, 37359, 37360, 37361, 37367, 37369, 37371, 37373, 37376, 37377, 37380, 37381, 37382, 37383, 37385, 37386, 37388, 37392, 37394, 37395, 37398, 37400, 37404, 37405, 37411, 37412, 37413, 37414, 37416, 37422, 37423, 37424, 37427, 37429, 37430, 37432, 37433, 37434, 37436, 37438, 37440, 37442, 37443, 37446, 37447, 37450, 37453, 37454, 37455, 37457, 37464, 37465, 37468, 37469, 37472, 37473, 37477, 37479, 37480, 37481, 37486, 37487, 37488, 37493, 37494, 37495, 37496, 37497, 37499, 37500, 37501, 37503, 37512, 37513, 37514, 37517, 37518, 37522, 37527, 37529, 37535, 37536, 37540, 37541, 37543, 37544, 37547, 37551, 37554, 37558, 37560, 37562, 37563, 37564, 37565, 37567, 37568, 37569, 37570, 37571, 37573, 37574, 37575, 37576, 37579, 37580, 37581, 37582, 37584, 37587, 37589, 37591, 37592, 37593, 37596, 37597, 37599, 37600, 37601, 37603, 37605, 37607, 37608, 37612, 37614, 37616, 37625, 37627, 37631, 37632, 37634, 37640, 37645, 37649, 37652, 37653, 37660, 37661, 37662, 37663, 37665, 37668, 37669, 37671, 37673, 37674, 37683, 37684, 37686, 37687, 37703, 37704, 37705, 37712, 37713, 37714, 37717, 37719, 37720, 37722, 37726, 37732, 37733, 37735, 37737, 37738, 37741, 37743, 37744, 37745, 37747, 37748, 37750, 37754, 37757, 37759, 37760, 37761, 37762, 37768, 37770, 37771, 37773, 37775, 37778, 37781, 37784, 37787, 37790, 37793, 37795, 37796, 37798, 37800, 37803, 37812, 37813, 37814, 37818, 37801, 37825, 37828, 37829, 37830, 37831, 37833, 37834, 37835, 37836, 37837, 37843, 37849, 37852, 37854, 37855, 37858, 37862, 37863, 37881, 37879, 37880, 37882, 37883, 37885, 37889, 37890, 37892, 37896, 37897, 37901, 37902, 37903, 37909, 37910, 37911, 37919, 37934, 37935, 37937, 37938, 37939, 37940, 37947, 37951, 37949, 37955, 37957, 37960, 37962, 37964, 37973, 37977, 37980, 37983, 37985, 37987, 37992, 37995, 37997, 37998, 37999, 38001, 38002, 38020, 38019, 38264, 38265, 38270, 38276, 38280, 38284, 38285, 38286, 38301, 38302, 38303, 38305, 38310, 38313, 38315, 38316, 38324, 38326, 38330, 38333, 38335, 38342, 38344, 38345, 38347, 38352, 38353, 38354, 38355, 38361, 38362, 38365, 38366, 38367, 38368, 38372, 38374, 38429, 38430, 38434, 38436, 38437, 38438, 38444, 38449, 38451, 38455, 38456, 38457, 38458, 38460, 38461, 38465, 38482, 38484, 38486, 38487, 38488, 38497, 38510, 38516, 38523, 38524, 38526, 38527, 38529, 38530, 38531, 38532, 38537, 38545, 38550, 38554, 38557, 38559, 38564, 38565, 38566, 38569, 38574, 38575, 38579, 38586, 38602, 38610, 23986, 38616, 38618, 38621, 38622, 38623, 38633, 38639, 38641, 38650, 38658, 38659, 38661, 38665, 38682, 38683, 38685, 38689, 38690, 38691, 38696, 38705, 38707, 38721, 38723, 38730, 38734, 38735, 38741, 38743, 38744, 38746, 38747, 38755, 38759, 38762, 38766, 38771, 38774, 38775, 38776, 38779, 38781, 38783, 38784, 38793, 38805, 38806, 38807, 38809, 38810, 38814, 38815, 38818, 38828, 38830, 38833, 38834, 38837, 38838, 38840, 38841, 38842, 38844, 38846, 38847, 38849, 38852, 38853, 38855, 38857, 38858, 38860, 38861, 38862, 38864, 38865, 38868, 38871, 38872, 38873, 38877, 38878, 38880, 38875, 38881, 38884, 38895, 38897, 38900, 38903, 38904, 38906, 38919, 38922, 38937, 38925, 38926, 38932, 38934, 38940, 38942, 38944, 38947, 38950, 38955, 38958, 38959, 38960, 38962, 38963, 38965, 38949, 38974, 38980, 38983, 38986, 38993, 38994, 38995, 38998, 38999, 39001, 39002, 39010, 39011, 39013, 39014, 39018, 39020, 39083, 39085, 39086, 39088, 39092, 39095, 39096, 39098, 39099, 39103, 39106, 39109, 39112, 39116, 39137, 39139, 39141, 39142, 39143, 39146, 39155, 39158, 39170, 39175, 39176, 39185, 39189, 39190, 39191, 39194, 39195, 39196, 39199, 39202, 39206, 39207, 39211, 39217, 39218, 39219, 39220, 39221, 39225, 39226, 39227, 39228, 39232, 39233, 39238, 39239, 39240, 39245, 39246, 39252, 39256, 39257, 39259, 39260, 39262, 39263, 39264, 39323, 39325, 39327, 39334, 39344, 39345, 39346, 39349, 39353, 39354, 39357, 39359, 39363, 39369, 39379, 39380, 39385, 39386, 39388, 39390, 39399, 39402, 39403, 39404, 39408, 39412, 39413, 39417, 39421, 39422, 39426, 39427, 39428, 39435, 39436, 39440, 39441, 39446, 39454, 39456, 39458, 39459, 39460, 39463, 39469, 39470, 39475, 39477, 39478, 39480, 39495, 39489, 39492, 39498, 39499, 39500, 39502, 39505, 39508, 39510, 39517, 39594, 39596, 39598, 39599, 39602, 39604, 39605, 39606, 39609, 39611, 39614, 39615, 39617, 39619, 39622, 39624, 39630, 39632, 39634, 39637, 39638, 39639, 39643, 39644, 39648, 39652, 39653, 39655, 39657, 39660, 39666, 39667, 39669, 39673, 39674, 39677, 39679, 39680, 39681, 39682, 39683, 39684, 39685, 39688, 39689, 39691, 39692, 39693, 39694, 39696, 39698, 39702, 39705, 39707, 39708, 39712, 39718, 39723, 39725, 39731, 39732, 39733, 39735, 39737, 39738, 39741, 39752, 39755, 39756, 39765, 39766, 39767, 39771, 39774, 39777, 39779, 39781, 39782, 39784, 39786, 39787, 39788, 39789, 39790, 39795, 39797, 39799, 39800, 39801, 39807, 39808, 39812, 39813, 39814, 39815, 39817, 39818, 39819, 39821, 39823, 39824, 39828, 39834, 39837, 39838, 39846, 39847, 39849, 39852, 39856, 39857, 39858, 39863, 39864, 39867, 39868, 39870, 39871, 39873, 39879, 39880, 39886, 39888, 39895, 39896, 39901, 39903, 39909, 39911, 39914, 39915, 39919, 39923, 39927, 39928, 39929, 39930, 39933, 39935, 39936, 39938, 39947, 39951, 39953, 39958, 39960, 39961, 39962, 39964, 39966, 39970, 39971, 39974, 39975, 39976, 39977, 39978, 39985, 39989, 39990, 39991, 39997, 40001, 40003, 40004, 40005, 40009, 40010, 40014, 40015, 40016, 40019, 40020, 40022, 40024, 40027, 40029, 40030, 40031, 40035, 40041, 40042, 40028, 40043, 40040, 40046, 40048, 40050, 40053, 40055, 40059, 40166, 40178, 40183, 40185, 40203, 40194, 40209, 40215, 40216, 40220, 40221, 40222, 40239, 40240, 40242, 40243, 40244, 40250, 40252, 40261, 40253, 40258, 40259, 40263, 40266, 40275, 40276, 40287, 40291, 40290, 40293, 40297, 40298, 40299, 40304, 40310, 40311, 40315, 40316, 40318, 40323, 40324, 40326, 40330, 40333, 40334, 40338, 40339, 40341, 40342, 40343, 40344, 40353, 40362, 40364, 40366, 40369, 40373, 40377, 40380, 40383, 40387, 40391, 40393, 40394, 40404, 40405, 40406, 40407, 40410, 40414, 40415, 40416, 40421, 40423, 40425, 40427, 40430, 40432, 40435, 40436, 40446, 40458, 40450, 40455, 40462, 40464, 40465, 40466, 40469, 40470, 40473, 40476, 40477, 40570, 40571, 40572, 40576, 40578, 40579, 40580, 40581, 40583, 40590, 40591, 40598, 40600, 40603, 40606, 40612, 40616, 40620, 40622, 40623, 40624, 40627, 40628, 40629, 40646, 40648, 40651, 40661, 40671, 40676, 40679, 40684, 40685, 40686, 40688, 40689, 40690, 40693, 40696, 40703, 40706, 40707, 40713, 40719, 40720, 40721, 40722, 40724, 40726, 40727, 40729, 40730, 40731, 40735, 40738, 40742, 40746, 40747, 40751, 40753, 40754, 40756, 40759, 40761, 40762, 40764, 40765, 40767, 40769, 40771, 40772, 40773, 40774, 40775, 40787, 40789, 40790, 40791, 40792, 40794, 40797, 40798, 40808, 40809, 40813, 40814, 40815, 40816, 40817, 40819, 40821, 40826, 40829, 40847, 40848, 40849, 40850, 40852, 40854, 40855, 40862, 40865, 40866, 40867, 40869]); + encode0 = $toNativeArray($kindUint16, [18379, 20825, 34688, 19862, 34689, 34690, 0, 21851, 20165, 19727, 20164, 18587, 34691, 21555, 22046, 0, 22401, 18446, 34692, 0, 18765, 22402, 20355, 22689, 18997, 21657, 0, 0, 0, 0, 20166, 34693, 0, 22173, 0, 34694, 34695, 0, 21665, 0, 27660, 0, 22403, 34697, 0, 20805, 34698, 34699, 34700, 22404, 19161, 0, 0, 34701, 22405, 0, 18876, 20751, 0, 19910, 22406, 0, 0, 22407, 34702, 34703, 22408, 21268, 34704, 18998, 0, 34705, 0, 0, 0, 21270, 0, 21186, 19362, 21778, 0, 34706, 0, 0, 0, 25640, 22409, 20167, 22410, 18580, 34707, 0, 34708, 19140, 19407, 21960, 0, 0, 23173, 34709, 0, 0, 0, 0, 34710, 34711, 0, 0, 0, 0, 0, 0, 0, 22095, 0, 21212, 34712, 34713, 0, 0, 0, 34714, 0, 0, 0, 0, 18820, 34715, 18964, 0, 22411, 0, 0, 22412, 22170, 0, 22044, 20551, 22414, 19797, 21202, 34716, 22417, 0, 0, 18461, 19390, 0, 19389, 18373, 34717, 34718, 22314, 22313, 0, 19602, 18304, 34719, 22418, 22419, 22420, 21779, 22421, 0, 19409, 18374, 21841, 0, 19035, 0, 0, 19036, 19037, 20929, 22171, 34720, 22422, 0, 0, 22423, 0, 0, 22424, 0, 0, 34721, 20268, 0, 0, 0, 0, 0, 19993, 20269, 22429, 34722, 22427, 0, 22428, 18999, 0, 0, 19586, 18639, 0, 22426, 22425, 21640, 34723, 0, 0, 0, 19749, 19748, 20637, 22430, 21556, 20422, 34724, 34725, 0, 16407, 22431, 22433, 34726, 27661, 34728, 20676, 22208, 18345, 0, 0, 34729, 0, 0, 0, 0, 22432, 18589, 34730, 19107, 34731, 20806, 34732, 0, 34733, 19278, 22434, 0, 0, 0, 21251, 27662, 34734, 34735, 34736, 27663, 18890, 34738, 27664, 0, 0, 0, 0, 34740, 22435, 18346, 34741, 34742, 19391, 18891, 21593, 21393, 19000, 34743, 0, 0, 34744, 34745, 34746, 0, 34747, 18640, 0, 22470, 21024, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34748, 21323, 22437, 34749, 0, 34751, 21403, 34752, 22209, 34753, 20236, 27665, 19750, 34755, 19798, 18591, 34756, 0, 34757, 0, 34758, 20912, 0, 0, 20737, 22441, 34759, 34760, 0, 34761, 34762, 18347, 20930, 19994, 19603, 22019, 34763, 20653, 34764, 18590, 27666, 22440, 34766, 22045, 22436, 22438, 19661, 22439, 23043, 34767, 34750, 0, 0, 34768, 0, 0, 0, 0, 0, 22447, 34769, 0, 34770, 0, 34771, 22450, 22448, 34772, 0, 18593, 0, 21658, 22442, 34773, 34774, 34775, 34776, 22446, 19410, 34777, 34778, 19751, 0, 34779, 34780, 18821, 34781, 34816, 22451, 0, 22443, 34817, 27668, 22210, 34819, 19799, 34820, 22444, 34821, 22449, 27667, 34823, 27670, 0, 22452, 34825, 22445, 34826, 27669, 19072, 0, 18348, 34828, 34829, 19073, 18592, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23044, 0, 21848, 21581, 19411, 0, 0, 34830, 0, 0, 20238, 22166, 34831, 0, 34832, 0, 34833, 34834, 34835, 34836, 21687, 34837, 34838, 19223, 20612, 18627, 34839, 34840, 0, 34841, 27653, 20018, 34843, 34844, 27671, 22456, 34846, 22461, 22459, 34847, 0, 22454, 0, 0, 20622, 22457, 0, 22460, 22458, 34848, 21692, 0, 22455, 34849, 20237, 34850, 21842, 22462, 22463, 0, 0, 0, 0, 0, 0, 0, 0, 19971, 22476, 34851, 0, 34852, 21295, 0, 21525, 22471, 0, 21711, 0, 18581, 0, 34853, 34854, 22475, 27674, 34856, 34857, 0, 0, 34858, 22469, 22478, 34859, 0, 20529, 34860, 19363, 34861, 21307, 34862, 24486, 34863, 22477, 21052, 34864, 22466, 0, 19413, 34865, 34866, 19412, 22464, 34867, 34868, 34869, 27675, 19897, 0, 22472, 27673, 21710, 20780, 22468, 19280, 34872, 22465, 22473, 22467, 22192, 22474, 22304, 34873, 0, 34874, 0, 34875, 34876, 0, 34877, 19141, 0, 0, 19279, 0, 34901, 0, 0, 0, 0, 27672, 34879, 27678, 22479, 0, 34881, 27676, 22480, 22484, 18349, 34883, 0, 34884, 0, 34885, 21679, 22483, 34886, 34887, 34888, 0, 22482, 22486, 34889, 0, 34890, 22485, 0, 20931, 0, 0, 34891, 34892, 0, 34893, 34894, 0, 19281, 34895, 34896, 0, 0, 34897, 0, 22487, 34898, 0, 0, 27677, 34900, 19876, 0, 20613, 20932, 19157, 0, 22488, 0, 0, 0, 0, 18965, 0, 0, 22489, 34902, 0, 34903, 34904, 22491, 34905, 0, 0, 0, 34906, 0, 0, 21780, 34907, 34908, 34909, 19269, 34944, 34945, 27679, 0, 34947, 0, 19728, 21462, 22490, 34948, 34949, 0, 34950, 34951, 34952, 34953, 34954, 0, 0, 0, 0, 0, 0, 0, 34955, 0, 19620, 22050, 0, 34956, 34957, 0, 22493, 22530, 22492, 19619, 0, 20060, 0, 34958, 34959, 0, 0, 34960, 19224, 0, 34961, 0, 22531, 34962, 34963, 19118, 0, 34964, 0, 22528, 22529, 0, 34965, 21134, 34966, 20571, 34967, 19074, 0, 34968, 34969, 21804, 22532, 0, 27681, 0, 22172, 0, 34971, 34972, 22533, 34973, 0, 0, 34974, 22536, 34975, 22534, 34976, 20525, 34977, 34978, 0, 0, 0, 22535, 22537, 34979, 0, 34980, 34992, 0, 27680, 22539, 34981, 0, 0, 22538, 34982, 21671, 0, 0, 34983, 0, 18966, 22541, 22542, 34984, 18574, 0, 34985, 34986, 34987, 22540, 0, 34988, 34989, 34990, 34991, 0, 34993, 0, 19923, 0, 22545, 22544, 22543, 34994, 22453, 34995, 22546, 34996, 34997, 34998, 34999, 20061, 0, 22547, 0, 35000, 0, 0, 0, 35001, 35002, 0, 22020, 0, 35003, 35004, 0, 35005, 0, 35006, 21944, 35007, 35008, 35009, 0, 22549, 35010, 35011, 22548, 22551, 22550, 0, 0, 22552, 22553, 18387, 35012, 19348, 19226, 19995, 20826, 19075, 20423, 19414, 27682, 19533, 22555, 21927, 21029, 35014, 19800, 0, 22554, 35015, 22556, 35016, 0, 35017, 35018, 0, 21053, 0, 18772, 0, 0, 35019, 0, 0, 22557, 0, 27683, 21213, 35021, 0, 20499, 22559, 22560, 21387, 19415, 22298, 22561, 0, 0, 19077, 0, 0, 0, 21659, 20629, 19152, 21012, 0, 0, 0, 19282, 0, 35022, 0, 22562, 0, 22563, 35023, 35024, 21185, 18494, 0, 0, 22566, 19676, 35025, 22565, 19621, 35026, 22567, 25293, 22568, 21792, 22569, 0, 22570, 22571, 20168, 35027, 19883, 0, 0, 0, 27684, 0, 0, 18822, 35029, 22574, 35030, 22572, 21916, 22573, 0, 21561, 22575, 22576, 22577, 21054, 35031, 0, 0, 22581, 22579, 22580, 22578, 19650, 22582, 21961, 22211, 35032, 0, 35033, 0, 35034, 22583, 27685, 35036, 0, 0, 35037, 0, 20359, 22584, 20025, 0, 35072, 22585, 0, 20827, 22174, 21055, 0, 35073, 0, 35074, 35075, 35076, 0, 35077, 22692, 0, 35078, 0, 0, 22586, 27012, 19108, 35079, 0, 22587, 21821, 35080, 0, 0, 35081, 20039, 20699, 0, 22589, 21187, 0, 27686, 22590, 35082, 0, 22591, 18701, 35083, 35084, 35085, 22592, 19078, 35086, 21163, 18521, 20015, 0, 0, 21376, 22593, 0, 21056, 35087, 35088, 20270, 22594, 35089, 21643, 20409, 18817, 0, 18824, 22595, 0, 0, 22597, 0, 0, 19225, 35090, 35091, 22596, 27687, 35093, 22226, 35094, 0, 0, 0, 0, 20040, 0, 0, 0, 0, 35095, 0, 21404, 21675, 0, 22598, 35096, 22103, 22599, 0, 0, 0, 22600, 0, 21085, 35097, 35098, 22601, 0, 35099, 20360, 19677, 19283, 22602, 19752, 19534, 35100, 0, 0, 0, 0, 0, 0, 20933, 22604, 35101, 0, 20614, 0, 35102, 19662, 22605, 22606, 20495, 0, 22603, 0, 0, 0, 0, 22608, 35103, 21781, 35104, 35105, 0, 35106, 19523, 35107, 0, 22607, 35108, 35109, 35110, 0, 19284, 19645, 21324, 35111, 0, 0, 22611, 22609, 0, 0, 0, 35112, 21594, 20169, 22618, 18755, 22612, 22610, 20526, 0, 35113, 35114, 35115, 0, 0, 0, 22614, 0, 22613, 35116, 0, 35117, 18723, 0, 35118, 0, 19263, 22619, 22156, 35119, 0, 35120, 22615, 0, 0, 0, 22620, 22617, 35121, 22616, 35122, 35123, 35124, 35125, 0, 35126, 22190, 27688, 0, 0, 19416, 18594, 0, 0, 22227, 35128, 35129, 27689, 35131, 0, 20052, 21047, 19524, 22657, 22658, 0, 27931, 35133, 22212, 0, 0, 22282, 22660, 35134, 35135, 35136, 19417, 35137, 35138, 22659, 35139, 18702, 0, 27690, 22661, 0, 21813, 35141, 20891, 35142, 22021, 35143, 21688, 0, 0, 35144, 22662, 0, 35145, 0, 35146, 26548, 0, 35147, 21135, 35148, 22663, 18825, 21906, 0, 27691, 35150, 20096, 22664, 21702, 22668, 35151, 20361, 22665, 19119, 35152, 22666, 18826, 35153, 35154, 35155, 0, 35156, 0, 0, 0, 35157, 35158, 19213, 22669, 35159, 22670, 35160, 35161, 22671, 22672, 19898, 0, 0, 0, 19418, 21949, 27692, 21959, 21206, 35163, 0, 21712, 22673, 27693, 22674, 0, 35164, 35165, 35200, 22676, 0, 22678, 22677, 35201, 0, 35202, 0, 22679, 18588, 21803, 35203, 19675, 22680, 35204, 35205, 20536, 35206, 35207, 20097, 19080, 0, 22681, 27694, 35208, 0, 35209, 35210, 35211, 21434, 35212, 35213, 35214, 0, 22682, 35215, 22683, 35216, 22684, 0, 35217, 0, 0, 22685, 21507, 19143, 18372, 35218, 35219, 35220, 21150, 22686, 19996, 35221, 20424, 0, 22688, 22687, 20098, 19392, 22690, 21405, 35223, 35222, 22691, 0, 0, 0, 21435, 20627, 20685, 19079, 0, 0, 21197, 20752, 35224, 21325, 35225, 21805, 0, 22693, 0, 20425, 35226, 0, 35227, 0, 35228, 19220, 0, 0, 22694, 0, 0, 35229, 35230, 22695, 18443, 18388, 18892, 27695, 20615, 18992, 22096, 0, 22698, 18582, 35232, 0, 22697, 0, 0, 35233, 19081, 0, 0, 22699, 35234, 21968, 0, 0, 35235, 35236, 0, 0, 0, 0, 0, 35237, 0, 0, 0, 0, 27696, 35239, 0, 22700, 0, 22193, 35240, 19419, 0, 0, 35241, 0, 19349, 22701, 35242, 0, 0, 35243, 22703, 22702, 0, 20286, 18456, 35244, 35245, 0, 18493, 22704, 35246, 22705, 0, 27697, 19350, 35248, 35249, 22706, 35250, 35251, 0, 35252, 19021, 0, 35253, 0, 0, 35254, 0, 19729, 22707, 0, 35255, 0, 0, 21843, 19604, 19001, 22022, 20527, 21406, 19932, 35256, 0, 0, 35257, 35258, 20006, 35259, 19911, 19924, 0, 20053, 35260, 21407, 0, 27698, 35262, 22710, 35263, 18466, 20528, 19420, 19364, 19142, 35264, 35265, 22714, 20736, 20701, 19082, 20099, 22715, 22713, 18595, 20677, 19863, 19754, 18437, 0, 35266, 18767, 19525, 19753, 0, 22716, 0, 0, 0, 0, 0, 0, 22717, 35267, 18984, 18725, 0, 0, 0, 19526, 18983, 20926, 18436, 21136, 21917, 19456, 22104, 21030, 19421, 0, 35268, 0, 0, 0, 0, 0, 0, 35269, 19214, 0, 22726, 0, 19138, 21801, 35270, 0, 0, 0, 0, 21436, 35271, 35272, 22725, 35273, 18877, 22720, 22721, 22723, 35274, 0, 35275, 0, 0, 35276, 35277, 22724, 0, 19002, 20288, 0, 21644, 22722, 22718, 19394, 0, 22719, 0, 22275, 35278, 35279, 0, 21713, 35280, 20935, 19393, 19535, 0, 0, 35281, 22727, 35282, 0, 21180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35283, 22731, 0, 0, 35284, 0, 35285, 0, 35286, 35287, 19933, 35288, 19925, 35289, 0, 35290, 35291, 0, 22734, 22732, 0, 21890, 35292, 22729, 22738, 22733, 0, 0, 0, 22736, 19365, 21918, 0, 35293, 22737, 35328, 0, 35329, 22739, 35330, 22741, 0, 35331, 35332, 27701, 19663, 22305, 35333, 22730, 22728, 22740, 35334, 22735, 0, 0, 35335, 35336, 0, 0, 0, 0, 0, 27700, 0, 0, 35338, 0, 35339, 22743, 0, 22786, 22745, 35340, 35341, 22749, 27702, 35343, 22784, 22746, 35344, 35345, 22813, 0, 35346, 19656, 18704, 0, 0, 0, 35347, 22744, 35348, 35349, 35350, 22788, 18389, 22787, 35351, 18308, 21545, 22785, 0, 22747, 0, 35352, 22742, 22748, 19623, 35353, 0, 0, 35354, 35355, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22789, 0, 0, 0, 0, 0, 0, 0, 35356, 18390, 22798, 0, 0, 22790, 22791, 0, 20100, 21832, 35357, 0, 35358, 22796, 22795, 35359, 0, 0, 21006, 0, 0, 0, 35360, 0, 0, 0, 22797, 0, 35361, 22794, 35362, 27703, 35364, 35365, 0, 0, 18451, 35366, 19605, 20239, 35367, 35368, 0, 0, 35369, 35370, 35371, 22792, 21057, 0, 0, 0, 22793, 35372, 18305, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35373, 35374, 0, 0, 22803, 22018, 0, 20102, 35375, 22809, 0, 35376, 35377, 0, 22808, 22799, 0, 35378, 35379, 35380, 20642, 0, 22800, 35381, 0, 0, 20686, 22805, 20101, 35382, 0, 35383, 35384, 0, 22802, 35385, 0, 21955, 35386, 35387, 0, 19227, 0, 0, 22806, 22807, 35388, 0, 35389, 35390, 22804, 22810, 35391, 0, 35392, 35393, 0, 22801, 35394, 0, 35395, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22816, 22821, 0, 22817, 35396, 22812, 35397, 35398, 22822, 20496, 0, 27704, 22824, 35400, 19457, 22814, 20828, 0, 0, 35401, 35402, 0, 35403, 35404, 35405, 35406, 0, 0, 35407, 22818, 22811, 18828, 0, 18893, 18756, 22819, 22815, 0, 0, 0, 35408, 35409, 0, 0, 19285, 22825, 22823, 20530, 18985, 19083, 35410, 22820, 0, 19155, 0, 35411, 0, 0, 0, 18467, 0, 0, 0, 0, 0, 0, 0, 0, 35412, 0, 35413, 0, 35414, 22829, 22827, 35415, 22918, 0, 35416, 0, 35417, 35418, 0, 35419, 0, 0, 35420, 35421, 35456, 22832, 0, 0, 35457, 35458, 0, 22826, 35459, 22830, 0, 35460, 22828, 0, 0, 35461, 19755, 22831, 0, 0, 0, 0, 35462, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35463, 22834, 0, 22839, 0, 0, 0, 22837, 22836, 35464, 0, 0, 0, 0, 0, 35465, 20753, 0, 35466, 18596, 35467, 0, 0, 35468, 35469, 35470, 35471, 35472, 35473, 0, 22833, 0, 22835, 20103, 18450, 35474, 0, 22838, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18621, 0, 0, 35475, 0, 0, 22849, 35476, 20187, 22845, 35477, 22843, 35478, 22844, 35479, 22846, 35480, 0, 35481, 35482, 35483, 0, 35484, 35485, 35486, 18460, 35487, 35488, 0, 35489, 0, 0, 35490, 0, 35491, 20504, 35492, 22840, 35493, 22841, 0, 0, 0, 35494, 0, 0, 0, 0, 0, 0, 18777, 0, 0, 35495, 0, 35496, 35497, 35498, 35499, 22848, 0, 35500, 0, 18894, 35501, 22851, 22847, 22850, 35502, 0, 35503, 0, 35504, 35505, 0, 21645, 35506, 0, 0, 21172, 0, 21399, 0, 0, 0, 0, 0, 22853, 0, 0, 0, 35507, 35508, 22852, 18724, 35509, 0, 22854, 35510, 35511, 0, 0, 22857, 0, 0, 0, 0, 22856, 35512, 0, 0, 0, 35513, 35514, 0, 0, 35515, 35516, 35517, 22855, 0, 21272, 0, 0, 22858, 35518, 35519, 35520, 35521, 0, 35522, 35523, 35524, 22859, 0, 0, 35525, 0, 35526, 22861, 0, 22860, 35527, 0, 0, 0, 0, 22863, 0, 35528, 0, 22866, 22864, 22862, 22865, 0, 35529, 0, 0, 22867, 35530, 35531, 35532, 35535, 35536, 22868, 35533, 35534, 22869, 0, 22870, 0, 0, 0, 22871, 22564, 35537, 19931, 19756, 35538, 35539, 18642, 35540, 18391, 35541, 0, 20771, 35542, 35543, 35544, 35545, 35546, 0, 0, 35548, 0, 35549, 22872, 0, 19587, 35547, 18350, 20285, 0, 0, 35584, 35585, 0, 22873, 19366, 0, 0, 19536, 0, 22875, 22874, 35586, 35587, 21695, 22876, 0, 0, 35588, 22912, 22877, 35589, 22913, 35590, 22914, 0, 19286, 0, 35591, 18495, 22915, 0, 35592, 22917, 0, 22916, 0, 35593, 35594, 22919, 35595, 0, 21049, 35596, 0, 35597, 35598, 35599, 35600, 22920, 18324, 19646, 35601, 35602, 0, 35603, 19228, 35604, 35605, 20782, 0, 0, 35606, 35607, 0, 0, 22921, 22922, 0, 0, 22924, 0, 35608, 35609, 35610, 22925, 0, 19651, 0, 0, 35611, 35612, 19120, 0, 0, 21782, 0, 35613, 35614, 22923, 22926, 19616, 19458, 35615, 0, 0, 0, 0, 0, 0, 27705, 0, 0, 0, 0, 0, 0, 0, 22930, 35616, 0, 19588, 27706, 20754, 35618, 35619, 22927, 20921, 35620, 0, 35621, 35622, 35623, 35624, 35625, 0, 35626, 35627, 35628, 0, 35629, 0, 35630, 35631, 35632, 35633, 0, 35634, 22931, 0, 35635, 20289, 35636, 0, 0, 0, 0, 22929, 22932, 0, 19230, 35637, 0, 0, 0, 0, 0, 0, 22933, 35638, 35647, 0, 35639, 0, 35640, 35641, 0, 35642, 35643, 35644, 35645, 22934, 35646, 19459, 18719, 22936, 0, 0, 35648, 35649, 35650, 22937, 0, 27707, 0, 0, 0, 22938, 0, 0, 22935, 0, 0, 0, 0, 35652, 0, 0, 0, 0, 35653, 0, 0, 22928, 0, 0, 22939, 0, 0, 22940, 27709, 27708, 0, 0, 21827, 35656, 0, 20170, 35657, 0, 0, 22942, 22943, 22941, 35658, 22945, 0, 0, 0, 0, 0, 21271, 35659, 35660, 18375, 21557, 35677, 0, 22946, 35661, 0, 35662, 35663, 0, 35664, 0, 0, 0, 35665, 0, 0, 35666, 0, 0, 0, 20188, 35667, 35668, 19864, 35669, 21308, 18895, 0, 19658, 35670, 35671, 35672, 21816, 0, 21137, 35673, 35674, 19287, 20654, 0, 35675, 35676, 22944, 22947, 35712, 35713, 0, 0, 0, 0, 0, 0, 0, 20643, 0, 0, 0, 22948, 0, 35714, 0, 22949, 35715, 35716, 35717, 22951, 0, 0, 20936, 0, 35718, 35719, 0, 0, 18829, 0, 0, 35720, 0, 27008, 18496, 21714, 35721, 0, 20171, 21031, 0, 0, 0, 35722, 19653, 0, 0, 22957, 0, 35723, 21660, 22204, 0, 0, 0, 0, 0, 0, 0, 35724, 18643, 22953, 35725, 35726, 0, 35727, 35728, 20505, 22956, 0, 21058, 35729, 0, 21032, 21059, 21400, 20908, 0, 0, 0, 19624, 35730, 0, 35731, 22952, 0, 35732, 0, 0, 35733, 35734, 18517, 0, 21013, 0, 0, 0, 0, 22954, 0, 22950, 0, 0, 20271, 0, 0, 35735, 22958, 0, 0, 35736, 0, 20013, 35737, 35738, 35739, 0, 19084, 0, 22959, 0, 35740, 35741, 35742, 35743, 0, 35744, 35745, 0, 35746, 35747, 0, 0, 21703, 35748, 0, 35749, 20572, 0, 0, 0, 0, 20901, 35750, 27712, 22961, 35751, 35752, 35753, 0, 0, 0, 35754, 0, 21806, 35755, 0, 22962, 0, 0, 22967, 0, 0, 35756, 27713, 21646, 0, 0, 0, 0, 22966, 22960, 22963, 22965, 35759, 0, 19589, 0, 0, 21672, 35760, 0, 35758, 22968, 0, 20772, 35761, 0, 18644, 0, 20172, 35762, 35763, 0, 35764, 22970, 35765, 22969, 35766, 19527, 35767, 22971, 22973, 22972, 35768, 0, 22975, 35769, 22964, 22977, 0, 35770, 35771, 0, 22976, 22974, 0, 0, 0, 35772, 0, 19757, 20272, 0, 20531, 22978, 20379, 18380, 21315, 35773, 0, 0, 0, 20922, 0, 22980, 22979, 22981, 22982, 22983, 0, 0, 0, 0, 22984, 0, 0, 35774, 35775, 0, 0, 21680, 22985, 27714, 35777, 0, 0, 18597, 22986, 0, 35778, 35779, 35780, 22043, 18703, 0, 22696, 20007, 20638, 22987, 21962, 35782, 0, 0, 0, 35783, 21907, 35784, 35785, 22989, 0, 20678, 35786, 21014, 20639, 21558, 22990, 22991, 18522, 35787, 35788, 19865, 22992, 35789, 0, 35790, 35791, 18351, 22993, 0, 0, 0, 0, 0, 22994, 35792, 0, 0, 0, 35793, 18497, 0, 35794, 18896, 21183, 21715, 0, 0, 0, 0, 22998, 20532, 22997, 19231, 35795, 27715, 21818, 22996, 0, 21060, 23000, 35797, 22999, 27716, 0, 27717, 35800, 35801, 23002, 35802, 23001, 27718, 0, 18523, 0, 23003, 20104, 23005, 20740, 35804, 23004, 35805, 21650, 35840, 0, 0, 35841, 20054, 21050, 35842, 35843, 0, 23040, 35844, 0, 35845, 35846, 19460, 0, 0, 0, 23041, 21248, 21437, 21936, 0, 0, 0, 0, 0, 21252, 35847, 35848, 23050, 35849, 0, 0, 0, 35850, 18967, 0, 35851, 22052, 35852, 0, 21902, 0, 23179, 0, 23042, 0, 35853, 0, 0, 0, 23045, 27719, 20644, 0, 35855, 21783, 0, 0, 0, 21033, 35856, 35857, 35858, 35859, 0, 23046, 35860, 0, 0, 0, 35861, 0, 21828, 27720, 19625, 35863, 0, 20105, 0, 0, 35864, 0, 35865, 35866, 0, 23047, 0, 35867, 19759, 35868, 19758, 0, 35869, 0, 0, 18328, 19367, 35870, 20362, 18352, 0, 0, 0, 0, 23051, 23052, 0, 23049, 35871, 35872, 35873, 0, 0, 0, 35874, 35875, 18455, 18830, 35876, 23048, 0, 21924, 21520, 0, 0, 35877, 35878, 0, 35879, 35880, 0, 35881, 0, 18311, 35882, 0, 0, 0, 18392, 0, 0, 0, 19760, 35883, 18353, 0, 18306, 35884, 0, 0, 0, 0, 23057, 0, 0, 35885, 35886, 35887, 0, 0, 23055, 35888, 35889, 0, 0, 0, 0, 21915, 0, 23058, 0, 23056, 0, 35890, 23054, 20240, 0, 0, 35891, 35892, 23053, 0, 35893, 35894, 21689, 35895, 0, 0, 35896, 0, 19395, 35897, 0, 0, 0, 0, 23062, 23063, 0, 0, 0, 0, 0, 20106, 0, 0, 0, 23059, 22283, 0, 0, 35898, 35899, 21291, 35900, 35901, 23061, 0, 0, 35902, 0, 0, 0, 35903, 0, 0, 0, 0, 35904, 0, 0, 0, 0, 19590, 0, 0, 0, 35905, 0, 0, 0, 23064, 35906, 0, 35907, 21559, 35908, 0, 0, 23065, 0, 23060, 35909, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35910, 0, 0, 35911, 35912, 0, 0, 35913, 21914, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35914, 0, 0, 0, 0, 35915, 0, 21309, 35916, 0, 0, 35917, 0, 0, 35918, 23066, 21521, 35919, 0, 35920, 35921, 35922, 0, 35923, 0, 0, 0, 0, 35924, 0, 0, 0, 0, 35925, 0, 0, 0, 0, 35926, 35927, 35928, 0, 35929, 0, 0, 35930, 0, 35931, 35932, 23067, 23071, 23068, 35933, 0, 18598, 23070, 0, 35968, 0, 35969, 0, 35970, 19866, 0, 23069, 19288, 0, 0, 35971, 23083, 0, 0, 0, 0, 0, 23076, 23073, 0, 0, 35972, 0, 35973, 0, 0, 0, 35974, 20803, 0, 23072, 0, 35975, 23074, 0, 0, 23075, 35976, 0, 0, 0, 35977, 0, 0, 0, 0, 0, 0, 35978, 35979, 0, 0, 0, 23077, 23078, 0, 35980, 0, 0, 35981, 35982, 0, 0, 0, 0, 0, 0, 35983, 18897, 0, 23080, 23079, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23081, 35984, 0, 35986, 0, 35987, 0, 35988, 0, 0, 0, 35989, 20173, 0, 0, 35990, 0, 0, 0, 0, 23084, 0, 20923, 35991, 0, 0, 18468, 0, 23082, 0, 35985, 0, 23085, 0, 35992, 0, 0, 0, 0, 0, 23086, 0, 23089, 35993, 0, 23087, 0, 23088, 0, 0, 0, 0, 0, 35994, 35995, 0, 0, 0, 19761, 23090, 35996, 0, 19461, 23091, 27721, 19801, 20631, 0, 23092, 23093, 19769, 19462, 35998, 21937, 0, 0, 0, 18951, 19368, 23094, 18743, 0, 35999, 23095, 0, 20632, 0, 0, 36000, 36001, 23096, 23170, 0, 23097, 0, 23098, 0, 0, 23099, 0, 23101, 0, 36002, 36003, 36004, 36005, 23102, 36006, 0, 23103, 36007, 20687, 36008, 18438, 19912, 18337, 36009, 20534, 18831, 19860, 36010, 19463, 36011, 36012, 0, 36013, 36014, 21061, 36015, 19968, 18832, 20807, 20937, 18327, 18968, 21716, 0, 19873, 0, 0, 18993, 20426, 19867, 22023, 23104, 0, 36016, 36017, 0, 0, 36018, 36019, 19003, 36020, 19626, 36021, 36022, 18705, 18498, 20107, 18599, 36023, 23105, 22053, 36024, 0, 36025, 0, 0, 20008, 27722, 36027, 19907, 23106, 18898, 21169, 21896, 23107, 0, 23108, 0, 0, 21560, 36028, 0, 36029, 23110, 0, 18823, 19158, 23109, 0, 36030, 36031, 27724, 36033, 36034, 18833, 0, 20241, 23114, 19712, 36035, 18600, 23113, 0, 23111, 23115, 23112, 21258, 23980, 20242, 0, 23116, 27725, 0, 22175, 36036, 23117, 36037, 0, 23119, 36038, 20829, 23118, 0, 20354, 0, 19802, 0, 0, 36039, 20655, 19926, 0, 21588, 20427, 0, 19884, 23120, 20108, 23121, 23122, 18354, 20633, 20273, 36040, 23123, 21138, 20109, 0, 20110, 0, 23124, 0, 0, 20428, 36041, 0, 0, 20111, 0, 0, 0, 27726, 36043, 23125, 0, 23126, 36044, 21951, 0, 36045, 0, 23127, 36046, 0, 36047, 36048, 19109, 36049, 0, 36050, 19969, 36051, 0, 0, 36052, 36053, 0, 23128, 23129, 19899, 20235, 21203, 20275, 21463, 21249, 19112, 23130, 0, 0, 0, 19022, 23131, 0, 19165, 0, 21166, 18575, 0, 19762, 23132, 23169, 23168, 19164, 0, 23133, 0, 21015, 0, 0, 0, 36054, 36055, 0, 36056, 0, 20623, 0, 21034, 19879, 36057, 36058, 20535, 22105, 0, 36059, 36060, 36061, 0, 0, 23171, 36096, 23172, 21173, 36097, 19730, 0, 0, 36098, 36099, 23174, 0, 0, 23175, 36100, 36101, 36102, 36103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36104, 36105, 0, 36106, 0, 23176, 0, 0, 36107, 18899, 23177, 36108, 0, 23178, 0, 0, 0, 0, 0, 0, 0, 0, 36109, 0, 36110, 36111, 18571, 36112, 36113, 0, 0, 27727, 0, 20506, 18883, 36115, 23180, 21895, 0, 0, 0, 0, 20657, 36116, 18744, 36117, 36118, 23182, 23184, 18878, 0, 27728, 23181, 23183, 0, 23186, 0, 0, 0, 0, 0, 0, 23185, 0, 23187, 0, 36120, 0, 36121, 0, 0, 0, 0, 0, 0, 36122, 0, 0, 0, 0, 36124, 0, 23188, 0, 0, 0, 36123, 0, 0, 21148, 19085, 0, 0, 0, 0, 0, 0, 18628, 23189, 23194, 0, 0, 23192, 36125, 21718, 21717, 36126, 36127, 0, 36128, 27729, 21062, 0, 0, 0, 23191, 20019, 0, 23190, 0, 0, 0, 36129, 0, 0, 0, 0, 36130, 20305, 0, 0, 0, 23195, 0, 36131, 19657, 0, 0, 23201, 36132, 0, 23202, 23196, 18706, 23197, 23206, 23205, 23204, 23200, 0, 0, 0, 23199, 0, 0, 23203, 36134, 36135, 0, 36136, 27730, 0, 21719, 0, 36133, 0, 0, 0, 0, 0, 36138, 0, 0, 36139, 0, 0, 0, 0, 36140, 0, 0, 0, 36141, 0, 36142, 0, 0, 27733, 36144, 0, 0, 36145, 0, 36146, 0, 36150, 23210, 23207, 0, 23209, 0, 22097, 36148, 23208, 27731, 0, 36147, 0, 0, 0, 36149, 0, 0, 23198, 0, 0, 36151, 36152, 36153, 36154, 0, 36155, 0, 0, 0, 0, 20306, 36156, 0, 23211, 27734, 0, 19606, 36158, 0, 0, 23212, 0, 0, 23213, 0, 0, 36159, 36160, 0, 0, 0, 36161, 36162, 0, 36163, 23216, 36164, 23215, 0, 0, 23214, 36165, 0, 36166, 21063, 23193, 0, 0, 0, 23222, 0, 36167, 36168, 36169, 36170, 0, 0, 0, 36171, 0, 36172, 0, 23218, 0, 36173, 36174, 0, 23217, 0, 0, 0, 0, 36175, 0, 0, 0, 36176, 23219, 0, 23220, 0, 36177, 0, 41683, 0, 36178, 0, 0, 23223, 27735, 27736, 22213, 0, 23224, 23221, 0, 0, 0, 0, 0, 36181, 0, 0, 0, 36182, 0, 23225, 0, 36183, 18879, 23226, 36185, 0, 27737, 0, 23228, 23227, 0, 0, 23229, 0, 36186, 36187, 0, 23230, 0, 20429, 19970, 0, 36188, 20035, 0, 20546, 36189, 19464, 19607, 19465, 19023, 36224, 0, 23231, 0, 0, 19608, 0, 0, 19369, 23232, 21893, 21282, 23233, 0, 19466, 36225, 36226, 0, 18827, 0, 20742, 19121, 0, 36227, 0, 19763, 21562, 0, 0, 21408, 36228, 0, 0, 0, 23234, 18900, 36229, 0, 0, 0, 23237, 36230, 0, 36231, 36232, 20864, 0, 36233, 23236, 23235, 23238, 0, 20938, 0, 36234, 36235, 0, 0, 0, 0, 20290, 0, 0, 36237, 0, 0, 19764, 0, 20393, 36236, 20658, 18945, 0, 36238, 20865, 0, 36239, 23239, 23240, 20174, 0, 0, 0, 0, 21784, 36240, 0, 23243, 0, 0, 23242, 23241, 21596, 0, 23250, 0, 36243, 0, 36241, 21817, 0, 23244, 0, 36242, 36244, 0, 0, 23246, 21834, 36245, 23245, 36246, 0, 0, 36247, 36248, 0, 36249, 23247, 0, 21383, 23248, 21661, 23249, 0, 0, 0, 36250, 0, 36251, 36252, 36253, 36254, 36255, 0, 36256, 0, 18834, 21662, 21262, 23251, 23252, 0, 19467, 18835, 23253, 19351, 22051, 22024, 18901, 23255, 36257, 20866, 0, 19468, 20112, 0, 0, 21438, 0, 0, 20113, 36258, 0, 0, 36259, 20055, 0, 0, 0, 0, 0, 20939, 21720, 21016, 0, 0, 19469, 0, 21563, 0, 0, 0, 23256, 0, 36260, 0, 36261, 36262, 21048, 19617, 36263, 0, 36264, 19370, 36265, 20940, 0, 0, 0, 36266, 0, 36267, 0, 18338, 20045, 19470, 22054, 0, 0, 0, 0, 36268, 36269, 36270, 0, 23257, 23258, 21296, 0, 0, 36271, 0, 23259, 22230, 22284, 36273, 36272, 0, 36274, 23261, 23260, 36275, 36276, 18726, 36277, 36278, 23296, 0, 0, 0, 23299, 23300, 36279, 23298, 36280, 21535, 20114, 23302, 23301, 23297, 0, 36281, 0, 0, 23303, 23304, 0, 36282, 23305, 0, 0, 0, 23308, 23306, 0, 23307, 23309, 0, 18499, 20941, 23310, 0, 19289, 18645, 21269, 0, 23311, 21210, 0, 21690, 36283, 23312, 22285, 0, 36284, 36285, 36286, 23313, 21663, 23316, 22400, 22416, 36287, 19855, 21204, 23317, 0, 19004, 20867, 18393, 23318, 21637, 19471, 36288, 0, 20783, 36289, 36290, 0, 20942, 0, 27738, 36292, 36293, 36294, 21966, 19352, 19371, 36295, 23319, 0, 36296, 36297, 23320, 36298, 23326, 36299, 19908, 0, 0, 27739, 20868, 36301, 19086, 23321, 0, 0, 36302, 21514, 36303, 20773, 36304, 36305, 23322, 0, 0, 36306, 27659, 0, 36308, 23323, 0, 19087, 0, 23324, 36309, 23325, 0, 36310, 23327, 0, 21077, 36311, 0, 23328, 23329, 36312, 23330, 0, 36313, 23315, 23314, 0, 0, 36314, 23331, 19232, 36315, 36316, 0, 21510, 27740, 0, 19627, 21526, 20869, 21546, 23332, 0, 36352, 20115, 18469, 36353, 23333, 36354, 36355, 0, 23334, 36356, 21969, 36357, 0, 21439, 36358, 36359, 23337, 18524, 20363, 23336, 23335, 19233, 20659, 0, 23341, 23339, 36360, 23338, 22150, 19396, 36361, 0, 36362, 20056, 23340, 21035, 19997, 0, 0, 36363, 21151, 23344, 23343, 0, 0, 36364, 36365, 23342, 0, 23345, 19397, 36366, 0, 36369, 0, 0, 36367, 23346, 21595, 20026, 36368, 36370, 23347, 21464, 36371, 36372, 36373, 0, 21152, 20870, 0, 0, 27741, 36374, 21007, 0, 0, 23348, 18954, 0, 0, 0, 0, 0, 20243, 36375, 21515, 0, 36376, 36377, 36378, 0, 36379, 18902, 21253, 0, 0, 36380, 36381, 36382, 36383, 36384, 0, 23349, 19765, 21785, 21786, 0, 0, 18525, 23354, 27776, 0, 20808, 36386, 36387, 0, 23351, 0, 0, 0, 36388, 36389, 36390, 18646, 36391, 36392, 36393, 36394, 23436, 23353, 36395, 36396, 0, 21263, 36397, 0, 23352, 0, 36398, 23350, 36399, 19545, 0, 23356, 0, 0, 0, 0, 0, 0, 0, 36400, 0, 0, 36401, 0, 0, 36402, 23362, 23368, 23360, 0, 21051, 36403, 36404, 23365, 21564, 36405, 36406, 23359, 36407, 23364, 22214, 19766, 0, 36408, 20660, 23357, 0, 0, 36409, 19005, 23367, 20364, 18500, 23361, 18647, 23366, 0, 36410, 0, 19088, 0, 23363, 0, 36411, 0, 36412, 0, 0, 0, 0, 23369, 0, 0, 0, 0, 0, 36413, 23371, 23381, 23379, 0, 0, 23376, 36414, 36415, 36416, 23375, 22231, 36417, 23377, 0, 0, 19089, 36418, 19472, 0, 36419, 20057, 36420, 36421, 0, 23384, 23370, 0, 0, 27777, 0, 23374, 23358, 36423, 18649, 23378, 23380, 20784, 0, 36424, 19591, 18583, 23372, 23383, 23382, 19090, 0, 20616, 18757, 36425, 0, 0, 0, 19234, 0, 23373, 0, 0, 0, 0, 0, 0, 36426, 36427, 0, 23385, 36428, 23388, 23424, 27778, 36429, 0, 36430, 19868, 27779, 23430, 20943, 23386, 36432, 0, 0, 36433, 23428, 36434, 18648, 36435, 23426, 23427, 36436, 0, 23389, 23425, 0, 36437, 36438, 19398, 22025, 0, 36439, 18836, 36440, 36441, 18488, 23429, 36442, 21273, 18316, 0, 0, 0, 0, 0, 36443, 36444, 21440, 23355, 23435, 23439, 21956, 36445, 23432, 0, 0, 36480, 21064, 23437, 36481, 0, 0, 0, 36482, 0, 36483, 20175, 23438, 21174, 36484, 36485, 36486, 36487, 0, 0, 36488, 36489, 0, 22310, 0, 23434, 36490, 27781, 0, 0, 23440, 36492, 19546, 36493, 20394, 36494, 27780, 18355, 23433, 23431, 36496, 20537, 0, 36497, 0, 23387, 19731, 0, 0, 0, 0, 0, 0, 0, 20645, 23452, 27783, 20538, 23447, 36499, 23444, 23445, 36500, 19909, 23448, 23451, 36501, 36502, 0, 0, 23446, 19972, 36503, 23449, 0, 0, 23443, 36504, 21979, 21978, 36505, 0, 36506, 23453, 23454, 18356, 36507, 27784, 36509, 36510, 36511, 23442, 36512, 36513, 0, 36514, 19153, 18309, 36515, 0, 36516, 18837, 27782, 23450, 36517, 0, 0, 0, 0, 23458, 23457, 0, 36518, 36519, 23462, 0, 0, 0, 27786, 36521, 0, 0, 23463, 36522, 36523, 27785, 0, 36525, 0, 0, 23461, 23464, 23456, 23460, 0, 36526, 23465, 0, 23466, 36527, 36528, 23455, 19803, 36529, 23459, 20661, 19473, 23441, 20244, 0, 0, 0, 0, 23479, 0, 21704, 0, 0, 23469, 23470, 23471, 0, 0, 23478, 36530, 23477, 36531, 0, 21852, 18838, 0, 23475, 0, 19236, 18707, 0, 0, 23472, 36532, 0, 22167, 23474, 18357, 23476, 36533, 23467, 23473, 23480, 19235, 23468, 36534, 0, 0, 36535, 36536, 0, 22076, 36537, 36538, 36539, 22026, 36540, 36541, 0, 0, 23483, 0, 0, 23487, 36542, 0, 36543, 20573, 0, 22232, 23488, 36544, 36545, 23485, 0, 23482, 36546, 27787, 23481, 23486, 0, 36548, 36549, 0, 36550, 36551, 0, 0, 0, 21647, 36552, 0, 21139, 36553, 19237, 36554, 23489, 23484, 36555, 23490, 0, 0, 0, 19290, 0, 0, 0, 18576, 0, 36556, 36557, 23498, 0, 36558, 0, 18839, 0, 36559, 36560, 36561, 23496, 0, 0, 23497, 19592, 23495, 23493, 23492, 23499, 23491, 23501, 36562, 36563, 18650, 0, 0, 0, 0, 36564, 0, 0, 0, 0, 0, 0, 36565, 36566, 36567, 36568, 0, 36569, 36570, 23503, 0, 36573, 23502, 36571, 0, 36572, 0, 0, 36608, 36609, 0, 36610, 0, 0, 20871, 0, 23506, 0, 23504, 23494, 19291, 0, 23505, 0, 23509, 23508, 23510, 23507, 23511, 36611, 0, 36612, 36613, 0, 0, 36614, 23512, 23513, 21705, 0, 23515, 23514, 19998, 0, 20365, 18629, 18651, 27788, 23516, 36616, 18334, 0, 0, 0, 20395, 23517, 36617, 26018, 23552, 19264, 36618, 23553, 36619, 36620, 0, 0, 20430, 36621, 0, 36622, 23554, 36623, 0, 0, 23555, 18969, 23556, 0, 23557, 23558, 20662, 0, 0, 0, 19372, 36624, 0, 21952, 0, 36625, 0, 21787, 20041, 23559, 36626, 36627, 36628, 0, 36629, 20431, 26268, 21441, 0, 19913, 36630, 19628, 23560, 0, 36631, 36632, 36633, 20646, 36634, 21638, 36635, 0, 20688, 0, 36636, 23563, 36637, 0, 23561, 0, 23564, 0, 0, 23562, 36638, 0, 0, 0, 23565, 0, 0, 0, 0, 36639, 21648, 36640, 0, 18326, 0, 36641, 0, 0, 21565, 0, 0, 21442, 36642, 0, 23566, 36643, 23569, 20116, 18970, 0, 23567, 23574, 20117, 0, 0, 0, 0, 23568, 21283, 0, 0, 36644, 36645, 36646, 36647, 22077, 23570, 23571, 23575, 21065, 23572, 19474, 20413, 0, 0, 23589, 21395, 0, 20689, 0, 0, 0, 0, 0, 0, 0, 27789, 0, 36649, 0, 0, 21443, 23692, 0, 0, 0, 0, 21721, 0, 36650, 0, 20944, 36651, 36652, 0, 21844, 36653, 23578, 18560, 20809, 36654, 36655, 0, 0, 23587, 0, 36656, 20755, 23581, 23588, 23583, 23590, 23586, 0, 23585, 21326, 36657, 23579, 18652, 23577, 19024, 20690, 23573, 36658, 36659, 23576, 19475, 20410, 36660, 20118, 23584, 21297, 0, 0, 19025, 18727, 0, 0, 0, 0, 0, 0, 0, 0, 36661, 0, 18758, 20224, 23592, 23597, 0, 23593, 36662, 19292, 36663, 23598, 19713, 19528, 0, 0, 0, 0, 36664, 36665, 19973, 23580, 0, 19804, 23595, 36666, 36667, 0, 0, 19767, 23596, 18339, 36668, 36669, 23591, 36670, 0, 0, 36671, 20872, 0, 36672, 0, 0, 36673, 0, 36674, 19026, 0, 0, 0, 0, 0, 19091, 0, 0, 0, 0, 0, 0, 0, 23594, 18310, 36675, 36676, 19618, 0, 36677, 0, 20245, 0, 0, 0, 0, 0, 36678, 36679, 0, 0, 36680, 20945, 0, 36681, 21427, 23600, 20541, 0, 36682, 36683, 36684, 36685, 0, 36686, 0, 0, 20617, 36687, 36688, 19722, 23601, 36689, 23603, 23599, 0, 36690, 36691, 36692, 21696, 0, 20892, 36693, 0, 0, 36694, 20539, 0, 0, 0, 0, 0, 0, 0, 0, 36695, 36696, 21722, 19885, 23615, 0, 23614, 36697, 36698, 20311, 0, 0, 36699, 19293, 0, 36700, 36701, 23608, 20120, 36736, 0, 21191, 21264, 36737, 36738, 0, 36739, 23606, 0, 36740, 20540, 36741, 0, 0, 36742, 19927, 23611, 36743, 0, 20119, 0, 23605, 23610, 36744, 0, 21298, 0, 36745, 36746, 23604, 0, 19200, 36747, 36748, 18748, 0, 0, 36749, 23612, 22154, 19629, 20756, 23609, 36750, 20411, 36751, 19476, 20291, 18501, 20507, 23607, 18980, 36752, 36753, 36754, 0, 0, 19238, 0, 20910, 23613, 0, 0, 0, 0, 0, 20542, 0, 36755, 23616, 0, 23618, 36756, 0, 20630, 23624, 36757, 23619, 0, 36758, 23621, 0, 0, 0, 0, 36759, 21536, 20946, 36760, 23622, 36761, 36762, 36763, 22027, 0, 0, 0, 22055, 18840, 36764, 0, 0, 0, 36765, 18317, 0, 23620, 0, 36766, 0, 0, 0, 23617, 36767, 0, 36768, 0, 18903, 0, 0, 0, 36769, 36770, 18502, 27790, 23623, 0, 36772, 36773, 22056, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23627, 0, 0, 36774, 36775, 0, 0, 20634, 0, 23634, 36776, 0, 36777, 23628, 36778, 0, 23625, 23632, 36779, 0, 0, 0, 23602, 0, 36780, 0, 36781, 0, 36782, 0, 36783, 36784, 23629, 0, 23633, 36785, 36786, 0, 21409, 21066, 0, 36787, 36788, 0, 0, 0, 23626, 36789, 23630, 0, 0, 0, 19239, 0, 0, 36790, 19664, 36791, 0, 0, 20412, 0, 0, 0, 0, 0, 0, 0, 0, 36792, 0, 0, 23638, 36793, 0, 36794, 36795, 36796, 36797, 0, 0, 0, 20997, 0, 36798, 36799, 36800, 36801, 0, 36802, 27791, 36804, 0, 36805, 0, 0, 0, 23635, 0, 21823, 0, 0, 0, 36806, 0, 23636, 0, 0, 0, 36807, 36808, 0, 23637, 0, 21933, 0, 20353, 36809, 0, 36810, 0, 0, 0, 0, 0, 19265, 0, 36811, 0, 36812, 23644, 0, 0, 0, 0, 0, 0, 36813, 36814, 36815, 19732, 23641, 0, 23640, 0, 0, 36816, 36817, 21265, 36818, 0, 27792, 21140, 36820, 0, 36821, 0, 36822, 21008, 23642, 36823, 0, 36824, 23643, 0, 21582, 36825, 21284, 19714, 0, 20432, 0, 21807, 36826, 0, 0, 0, 0, 0, 18728, 0, 23684, 23645, 36827, 36828, 36829, 0, 22057, 23686, 0, 36864, 23682, 0, 23683, 0, 36865, 36866, 36867, 36868, 20543, 27793, 0, 36870, 36871, 23681, 0, 23582, 36872, 0, 36873, 23685, 0, 23680, 0, 0, 0, 0, 0, 23690, 23691, 20998, 23693, 36874, 36875, 19715, 23688, 0, 36876, 36877, 0, 18971, 36878, 0, 23694, 36879, 23687, 23698, 0, 23697, 36880, 23696, 36881, 0, 0, 23699, 36882, 0, 23701, 20176, 36883, 23700, 36884, 0, 0, 36885, 23704, 0, 0, 36886, 36887, 36888, 0, 0, 0, 0, 36889, 0, 0, 0, 36890, 36891, 0, 36892, 0, 23702, 36893, 0, 36894, 23703, 23631, 36895, 36896, 0, 0, 36897, 23706, 23705, 0, 36898, 0, 0, 36899, 23639, 23707, 23695, 0, 36900, 19768, 0, 36901, 0, 0, 23708, 23709, 23711, 23710, 23712, 18653, 36902, 19477, 36903, 36904, 21723, 20366, 0, 0, 0, 36905, 0, 19373, 0, 36906, 23714, 36907, 0, 0, 0, 23717, 27794, 21553, 36908, 19006, 36909, 0, 36910, 23716, 23715, 21299, 23718, 19092, 0, 0, 0, 23720, 23719, 36911, 36912, 0, 18841, 19733, 0, 0, 21175, 36913, 0, 0, 0, 36914, 19240, 0, 0, 0, 20307, 0, 23721, 0, 20367, 20999, 0, 21566, 23722, 0, 36915, 0, 0, 36916, 0, 0, 0, 36917, 23723, 23724, 0, 36918, 0, 21655, 23100, 20389, 36919, 0, 21547, 0, 19639, 0, 21444, 21410, 36920, 0, 0, 36921, 0, 21036, 36922, 22176, 0, 23726, 19887, 36923, 0, 23727, 36924, 18325, 0, 36925, 19123, 20396, 36926, 21567, 0, 0, 0, 23728, 19745, 20774, 36927, 19770, 20246, 0, 36928, 36929, 36930, 0, 0, 23729, 0, 21724, 0, 0, 18518, 19771, 0, 36931, 0, 23732, 36932, 23730, 23733, 22168, 23731, 0, 36933, 36934, 0, 20442, 23734, 0, 36935, 20625, 36936, 0, 23735, 0, 36937, 0, 36938, 18905, 36939, 23737, 0, 23736, 0, 0, 0, 36940, 23738, 23739, 18906, 0, 0, 21211, 20757, 19019, 19772, 20544, 0, 0, 20027, 18319, 0, 0, 36941, 23740, 36942, 0, 36943, 36944, 0, 0, 0, 36945, 18561, 23744, 0, 0, 36946, 36947, 27795, 0, 19478, 23743, 36949, 0, 19594, 20121, 36950, 27798, 23742, 0, 20122, 36952, 21919, 19593, 0, 36953, 36954, 18358, 20397, 27796, 36956, 0, 0, 0, 0, 0, 23749, 36957, 27800, 20368, 18470, 36993, 36994, 36995, 27801, 20020, 36997, 21829, 19665, 36998, 36999, 37000, 37001, 20123, 27799, 20358, 37003, 27655, 0, 37005, 23748, 23746, 23747, 37007, 0, 37006, 0, 27797, 20810, 0, 0, 23813, 37008, 23753, 19805, 19479, 23751, 37009, 37010, 0, 0, 23752, 37011, 20247, 37012, 0, 37014, 23750, 0, 37013, 19726, 0, 0, 0, 0, 27803, 37016, 27804, 0, 37018, 37019, 23755, 23754, 23759, 37020, 37021, 23760, 0, 23756, 27802, 18689, 23757, 23758, 21428, 37023, 37024, 37025, 0, 21568, 19241, 23761, 0, 0, 27806, 20369, 37028, 20124, 37030, 37031, 37032, 20785, 37033, 37035, 0, 37026, 37029, 37034, 19110, 0, 23762, 23766, 0, 0, 18602, 23763, 23765, 0, 37036, 37037, 37038, 23764, 0, 37039, 20042, 37040, 0, 0, 0, 20775, 18340, 23767, 27807, 37042, 37043, 37044, 23768, 0, 37045, 27808, 0, 20873, 0, 37047, 0, 22224, 0, 0, 0, 0, 19746, 0, 37048, 21706, 0, 0, 37049, 27809, 0, 21788, 37051, 0, 0, 23809, 23770, 0, 37052, 23773, 0, 23772, 27810, 37054, 23769, 37055, 37056, 23808, 0, 0, 21181, 37057, 23771, 0, 0, 37058, 0, 37059, 37060, 0, 0, 0, 0, 37061, 0, 23810, 0, 0, 20043, 23811, 37062, 22058, 21335, 0, 37063, 23812, 0, 0, 0, 0, 0, 23814, 0, 37064, 23815, 0, 37065, 37066, 0, 37067, 0, 23816, 0, 19113, 18471, 19480, 23817, 0, 23818, 20048, 20545, 27811, 27658, 22711, 20509, 20508, 20663, 19622, 0, 0, 22481, 0, 37069, 0, 37070, 19277, 22028, 0, 21725, 0, 21597, 27812, 23819, 0, 0, 0, 37072, 19666, 20894, 23820, 22286, 0, 37073, 0, 21789, 37074, 20874, 23821, 18907, 37075, 0, 37076, 0, 0, 0, 23822, 23823, 21945, 0, 21891, 21845, 21819, 19716, 23825, 0, 0, 19914, 0, 37077, 21808, 0, 23827, 23830, 23829, 0, 18904, 0, 0, 19007, 37078, 23826, 0, 23828, 0, 0, 0, 37079, 23831, 37080, 37081, 20312, 0, 0, 37082, 0, 22106, 18344, 19647, 20635, 0, 19900, 37083, 37084, 20178, 0, 0, 23834, 0, 0, 21037, 37085, 23832, 20618, 23833, 20177, 21948, 23835, 23836, 22087, 27814, 0, 0, 0, 23841, 0, 37121, 19481, 37122, 21300, 23838, 21067, 23741, 23745, 37123, 18990, 37124, 21286, 0, 0, 0, 37125, 23840, 0, 20125, 21411, 0, 37126, 0, 0, 37127, 23846, 0, 21465, 0, 23837, 0, 23843, 23842, 0, 37128, 37129, 20398, 37130, 0, 37131, 0, 21836, 37132, 22194, 37133, 37134, 21830, 37135, 18603, 19773, 0, 0, 22311, 23845, 20308, 0, 0, 0, 23844, 0, 0, 23839, 0, 0, 0, 0, 0, 19374, 37136, 37137, 37138, 23851, 23849, 37139, 18604, 23847, 23853, 23859, 0, 27815, 37141, 37142, 0, 0, 27817, 20647, 37145, 37146, 21664, 37147, 23861, 0, 37148, 37149, 21505, 0, 0, 0, 23860, 21327, 21790, 18842, 37150, 20438, 19999, 0, 0, 37151, 20914, 37152, 22029, 0, 37153, 23856, 23855, 0, 0, 37154, 23857, 0, 23854, 0, 37155, 23862, 0, 23852, 0, 0, 23850, 0, 23858, 23848, 37156, 20811, 37157, 21975, 19877, 19667, 37158, 37159, 0, 37143, 0, 19609, 0, 0, 21838, 18720, 0, 27818, 20909, 21161, 18472, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20433, 37161, 0, 20371, 19209, 0, 37162, 0, 0, 0, 37163, 23864, 37164, 0, 19482, 18779, 0, 0, 0, 0, 37166, 37165, 23866, 18771, 23872, 37167, 37168, 0, 37169, 37170, 37171, 23869, 37172, 20434, 0, 0, 0, 18730, 19595, 0, 37173, 18729, 19630, 0, 37174, 23867, 19268, 19242, 21068, 27819, 37176, 23865, 0, 18341, 0, 37177, 0, 37178, 23868, 23870, 0, 19116, 19211, 27816, 18843, 18986, 37179, 0, 37180, 37181, 23873, 0, 37182, 19672, 21840, 0, 19734, 0, 0, 0, 23874, 0, 0, 0, 21519, 0, 0, 0, 37183, 0, 0, 37184, 37185, 37186, 37187, 37188, 0, 23886, 37189, 18578, 23875, 0, 37190, 37191, 37192, 37193, 0, 23892, 23876, 0, 22177, 37194, 23883, 37195, 21310, 37196, 0, 37197, 0, 0, 0, 0, 23891, 0, 23878, 0, 0, 0, 18323, 23880, 0, 37198, 19483, 37199, 0, 37200, 23882, 37201, 23881, 0, 23877, 23888, 37202, 20126, 37203, 0, 37204, 22988, 19399, 22107, 37205, 37206, 0, 0, 23879, 37207, 20947, 18690, 19596, 37208, 23871, 0, 23887, 18752, 0, 0, 23885, 23889, 37209, 21069, 0, 0, 0, 0, 0, 0, 0, 18909, 37210, 23953, 0, 27656, 21928, 23894, 18908, 37212, 23901, 0, 27820, 37248, 37249, 21791, 37250, 23936, 23938, 37251, 23942, 23896, 37252, 20745, 0, 37253, 37254, 0, 21070, 23946, 23899, 0, 23943, 0, 37255, 0, 23937, 37256, 0, 37257, 37258, 37259, 37260, 20248, 23947, 37261, 37262, 20370, 0, 0, 37263, 37264, 0, 0, 23945, 18844, 37265, 37266, 37267, 0, 0, 22319, 23893, 0, 0, 23941, 18359, 37268, 0, 23895, 37269, 37270, 21913, 23900, 20225, 20902, 23890, 37271, 37272, 23940, 37273, 0, 0, 37274, 37275, 0, 20313, 23950, 18768, 19328, 0, 0, 0, 0, 23952, 23897, 23951, 0, 23944, 23898, 0, 23948, 0, 23949, 0, 0, 0, 0, 0, 23966, 37276, 0, 37277, 21165, 37278, 23939, 0, 37279, 23962, 0, 37280, 0, 23964, 0, 20919, 0, 0, 37281, 0, 0, 37282, 0, 0, 0, 37283, 22059, 0, 0, 0, 37284, 0, 0, 0, 0, 21589, 23959, 20649, 0, 37285, 0, 23965, 20510, 37286, 23956, 23969, 23968, 0, 21198, 23967, 21193, 37287, 37288, 37289, 37290, 0, 27822, 37292, 23971, 23958, 37293, 19111, 23961, 20028, 37294, 37295, 37296, 21311, 23963, 19114, 0, 23955, 23957, 23954, 37297, 37298, 22287, 18745, 23960, 37299, 37300, 23970, 18708, 0, 0, 0, 0, 0, 0, 0, 19654, 0, 0, 37301, 18492, 0, 0, 23987, 37302, 0, 22288, 23990, 37303, 0, 27824, 0, 0, 20249, 23989, 0, 0, 0, 23988, 37305, 0, 0, 0, 37306, 37307, 23985, 37308, 0, 0, 37309, 0, 37310, 23973, 37311, 0, 24002, 23972, 0, 23991, 0, 0, 37312, 37313, 0, 37314, 23983, 37315, 0, 23978, 23975, 0, 23976, 0, 23984, 0, 37316, 0, 27009, 37317, 0, 23981, 19484, 20903, 20547, 23979, 0, 23974, 37318, 0, 23977, 0, 0, 37319, 37320, 22060, 21833, 0, 0, 0, 23982, 23992, 0, 0, 0, 27825, 0, 0, 37322, 0, 24000, 23993, 0, 0, 24006, 0, 24004, 37323, 37324, 0, 37325, 23999, 37326, 0, 37327, 0, 0, 0, 23998, 0, 20911, 0, 20548, 37328, 23996, 37329, 37330, 23994, 37331, 0, 24001, 0, 0, 0, 0, 24007, 21460, 24013, 0, 0, 37332, 0, 37333, 24008, 24011, 24005, 37334, 0, 20819, 0, 21527, 37335, 23995, 0, 37336, 24003, 20127, 37337, 21934, 24023, 24010, 37338, 0, 0, 0, 37339, 19329, 18562, 18750, 0, 0, 23986, 0, 27826, 0, 37341, 0, 37376, 20128, 24015, 37377, 24022, 19928, 18769, 37378, 0, 20749, 37379, 37380, 0, 0, 0, 0, 24012, 37381, 27828, 24017, 24021, 37383, 37384, 19093, 0, 0, 37385, 0, 37386, 37387, 37388, 0, 0, 37389, 37390, 0, 18987, 24019, 0, 37391, 0, 0, 0, 18944, 0, 21162, 24018, 0, 37392, 0, 24020, 37393, 0, 0, 37394, 27827, 0, 0, 0, 0, 0, 37395, 24014, 27829, 0, 0, 0, 0, 24016, 0, 0, 0, 0, 0, 27830, 18751, 20776, 37398, 0, 37399, 24027, 0, 37400, 37401, 0, 37402, 0, 37403, 0, 24025, 19400, 0, 24024, 37404, 0, 0, 0, 0, 0, 24064, 0, 0, 0, 37405, 23863, 37406, 37407, 37408, 24026, 0, 24028, 24029, 0, 37409, 0, 0, 0, 0, 24075, 37410, 24071, 0, 23884, 37411, 37412, 37413, 0, 24070, 37414, 0, 0, 0, 24069, 0, 0, 24066, 0, 37415, 37416, 37417, 0, 24009, 24068, 24067, 0, 0, 37418, 0, 37420, 37419, 0, 0, 37421, 0, 0, 0, 37422, 24073, 0, 22277, 37423, 37424, 37425, 0, 0, 0, 24076, 19162, 37426, 37427, 24072, 24074, 0, 0, 27831, 0, 27832, 0, 0, 37429, 21382, 0, 24077, 0, 37430, 0, 0, 0, 37431, 37432, 37433, 0, 0, 0, 0, 0, 0, 0, 24081, 24078, 37434, 37435, 0, 0, 0, 0, 37436, 37437, 22098, 24079, 37438, 37439, 0, 37440, 23997, 0, 0, 0, 0, 37441, 37442, 37443, 24082, 0, 0, 0, 24083, 37444, 0, 0, 0, 37445, 0, 18452, 37446, 24085, 19270, 19840, 0, 19124, 37447, 0, 0, 18563, 37448, 0, 0, 37449, 37450, 0, 0, 37451, 0, 0, 22078, 0, 0, 37452, 37453, 24087, 24086, 24089, 18972, 37454, 0, 19125, 18845, 37455, 0, 0, 0, 24092, 0, 0, 37456, 24091, 0, 24093, 37457, 0, 18605, 37458, 20758, 0, 24094, 0, 37459, 18846, 24096, 0, 37460, 0, 37461, 24095, 0, 24097, 0, 37462, 0, 24098, 37463, 24099, 19774, 20372, 19584, 0, 21583, 37464, 0, 21697, 22307, 37465, 0, 0, 37466, 19796, 37467, 0, 0, 19631, 22225, 37468, 0, 0, 24100, 24101, 0, 19775, 0, 37469, 37504, 24102, 24103, 0, 37505, 24105, 24104, 37506, 21815, 0, 0, 20029, 19915, 19747, 0, 24106, 0, 0, 0, 0, 0, 0, 0, 24108, 20226, 37507, 24107, 0, 0, 37508, 0, 0, 24109, 37509, 37510, 0, 37511, 37512, 24110, 0, 0, 0, 37513, 37514, 24111, 24112, 37515, 37516, 37517, 24113, 37518, 24115, 24114, 24116, 18564, 20777, 0, 24117, 37519, 37520, 19717, 18731, 24118, 37521, 37522, 21025, 22955, 0, 0, 37523, 37524, 18946, 24119, 0, 0, 37525, 0, 24120, 37526, 21707, 21831, 0, 0, 0, 21158, 24121, 21445, 0, 27833, 0, 21466, 0, 37528, 21938, 0, 0, 0, 24122, 0, 37529, 0, 37530, 0, 0, 37531, 37532, 0, 0, 0, 24124, 24123, 0, 37533, 24126, 0, 37534, 0, 24125, 0, 0, 0, 37535, 0, 37536, 0, 0, 0, 0, 0, 37537, 0, 0, 37538, 0, 37539, 37540, 0, 0, 24128, 37541, 0, 0, 0, 37542, 37543, 19776, 37544, 21904, 37545, 24129, 24130, 0, 0, 18947, 0, 37546, 0, 24131, 0, 0, 0, 37547, 0, 0, 0, 24133, 24132, 0, 37548, 37549, 37550, 0, 0, 0, 37551, 0, 37552, 0, 0, 0, 0, 37553, 20292, 37554, 37555, 21528, 18473, 0, 37556, 37557, 0, 0, 21412, 27834, 20948, 20000, 19008, 0, 0, 0, 0, 0, 0, 0, 37559, 37560, 0, 37561, 21413, 37562, 19853, 0, 37563, 0, 37564, 24135, 0, 18847, 0, 37565, 18519, 37566, 27835, 21201, 24134, 19485, 20786, 0, 24136, 0, 0, 0, 0, 37653, 24144, 0, 24137, 37568, 0, 37569, 0, 27837, 20640, 0, 19009, 24145, 37571, 0, 37572, 0, 37573, 37574, 19271, 37575, 0, 18948, 24143, 0, 0, 24141, 24138, 22079, 0, 37576, 27836, 37578, 20895, 37579, 0, 0, 21176, 24139, 0, 0, 24147, 0, 24146, 19202, 37580, 37581, 18572, 37582, 37583, 19610, 24140, 24142, 37584, 0, 0, 37585, 0, 21814, 20691, 0, 0, 0, 0, 0, 0, 0, 0, 21846, 0, 0, 24155, 0, 37586, 24156, 37587, 18606, 37588, 0, 0, 0, 21639, 21980, 24192, 19842, 20129, 24151, 24157, 18503, 0, 19094, 37589, 0, 24148, 24153, 37590, 0, 0, 20435, 21328, 0, 21446, 37591, 0, 37592, 37593, 37594, 37595, 24150, 37596, 21760, 37597, 24152, 0, 24195, 27838, 24193, 37633, 24154, 0, 0, 37634, 21761, 21287, 19010, 0, 20996, 0, 37635, 20812, 37636, 24196, 37637, 37638, 0, 37639, 24194, 20664, 24149, 37640, 18474, 37641, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27839, 0, 0, 37643, 0, 0, 37644, 22061, 24207, 0, 37645, 37646, 0, 37647, 24206, 37648, 0, 0, 0, 20437, 0, 24203, 37649, 22091, 0, 0, 21141, 24197, 0, 0, 0, 0, 0, 20900, 37650, 37651, 37652, 18475, 19486, 24200, 0, 0, 37654, 37655, 0, 37656, 19974, 24205, 0, 24204, 24199, 0, 24202, 37657, 0, 18759, 37658, 24201, 21288, 37659, 0, 22157, 0, 0, 20179, 20436, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37660, 0, 24213, 24211, 0, 21548, 0, 37661, 37662, 0, 37663, 0, 24208, 24210, 37664, 18457, 37665, 0, 19487, 22289, 0, 18716, 0, 21569, 27841, 37667, 0, 0, 0, 22080, 0, 0, 18691, 20250, 24212, 0, 0, 37668, 0, 0, 0, 0, 0, 37669, 0, 0, 24217, 0, 27840, 20130, 0, 0, 0, 22031, 0, 24214, 0, 0, 37671, 37672, 24209, 37673, 24215, 27842, 37675, 37676, 22205, 0, 21074, 21153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37677, 0, 27843, 0, 0, 18709, 0, 0, 18484, 0, 37679, 24221, 0, 37680, 24224, 37681, 0, 0, 22178, 37682, 0, 37683, 22083, 0, 0, 0, 37684, 24231, 24225, 24222, 37685, 0, 37686, 22195, 24228, 0, 37687, 27844, 0, 20009, 24230, 0, 0, 24235, 37689, 0, 21072, 24233, 0, 37690, 0, 37691, 24227, 37692, 37693, 20759, 37694, 0, 24234, 37695, 24223, 0, 24229, 37696, 24236, 18395, 24226, 0, 24237, 37697, 37698, 20251, 27846, 20030, 37699, 21636, 37700, 19597, 27845, 24218, 24232, 21017, 27847, 0, 0, 0, 37702, 0, 0, 0, 37703, 20373, 0, 18760, 19632, 20131, 24220, 20001, 0, 0, 0, 0, 0, 0, 0, 19243, 0, 24219, 0, 0, 0, 24241, 20044, 19353, 0, 24256, 37704, 24250, 19027, 21038, 37705, 24245, 24254, 18318, 18449, 27850, 0, 18584, 0, 24247, 20619, 24238, 24240, 19488, 0, 0, 37707, 0, 0, 0, 37708, 0, 24257, 27848, 24252, 37710, 27851, 0, 24244, 0, 0, 0, 0, 24251, 37712, 37713, 0, 0, 37714, 37715, 21898, 37716, 0, 24249, 24253, 37717, 0, 37718, 37719, 37720, 37721, 0, 19375, 37722, 20132, 0, 0, 20760, 27849, 37724, 37725, 24243, 0, 0, 37760, 37761, 0, 0, 0, 22030, 37762, 0, 0, 24246, 0, 0, 24239, 21073, 0, 0, 24242, 37763, 0, 0, 24248, 0, 0, 0, 0, 37764, 0, 37765, 22320, 19869, 21853, 0, 24258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21389, 37766, 0, 24270, 19354, 0, 0, 37767, 0, 0, 20031, 0, 24260, 37768, 0, 0, 22158, 19489, 0, 24273, 37769, 0, 18381, 0, 0, 24271, 0, 37770, 0, 0, 24259, 0, 0, 37771, 37772, 24265, 0, 37773, 24267, 37774, 0, 0, 22062, 24262, 0, 0, 21005, 37775, 0, 24264, 0, 27852, 37777, 37778, 24272, 37779, 24266, 21926, 0, 37780, 37781, 24261, 37782, 19841, 24285, 37783, 37784, 37785, 0, 18761, 0, 24263, 24268, 24269, 0, 0, 0, 0, 0, 0, 0, 20683, 20665, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37786, 24277, 37787, 37788, 24283, 0, 0, 24281, 0, 21000, 0, 0, 24322, 24278, 37789, 0, 37790, 0, 37791, 24279, 24255, 0, 19032, 21529, 0, 37792, 0, 19870, 0, 37793, 19542, 37794, 0, 37795, 37796, 0, 22290, 0, 24275, 0, 24321, 18504, 20549, 37797, 0, 37798, 0, 37799, 37800, 0, 0, 0, 0, 21336, 0, 18848, 22233, 0, 0, 37801, 0, 0, 37802, 37803, 21888, 20913, 37810, 0, 37804, 37805, 24282, 24284, 37806, 0, 0, 37807, 0, 20497, 0, 0, 37808, 37809, 0, 24320, 24280, 0, 24274, 0, 0, 0, 18850, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37811, 0, 37812, 37813, 37814, 19272, 0, 0, 37815, 24334, 37816, 37817, 24329, 20439, 37818, 37819, 18754, 0, 37820, 37821, 0, 20032, 0, 24338, 0, 37822, 0, 0, 0, 37823, 24331, 20875, 24328, 20920, 0, 0, 0, 24363, 0, 0, 0, 24325, 0, 24324, 0, 24333, 37824, 37825, 0, 24327, 24326, 24332, 37826, 20352, 0, 24323, 37827, 27853, 0, 0, 37829, 37830, 37831, 24335, 0, 37832, 24336, 37833, 37834, 37835, 0, 37836, 18849, 0, 0, 37837, 0, 0, 0, 0, 37838, 37839, 24341, 0, 24340, 24342, 37840, 37841, 37842, 37843, 0, 24345, 0, 0, 0, 37844, 37845, 37846, 21026, 0, 24339, 0, 27854, 37848, 0, 0, 24343, 0, 0, 37849, 0, 0, 0, 19266, 20696, 24337, 21274, 0, 37850, 24344, 37851, 37852, 0, 37853, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24349, 24347, 0, 0, 24350, 0, 37888, 24353, 0, 0, 37889, 24346, 19529, 21255, 0, 0, 24216, 0, 0, 0, 37890, 37891, 0, 22099, 24348, 0, 24352, 20692, 37892, 24351, 0, 24330, 0, 27855, 26440, 0, 0, 37894, 24356, 0, 37895, 37896, 24360, 0, 37897, 24358, 0, 0, 0, 27856, 37899, 27857, 0, 24354, 0, 24355, 0, 37901, 0, 24359, 0, 24357, 0, 0, 0, 21549, 0, 37902, 24365, 0, 24362, 24361, 0, 24364, 21171, 24366, 37903, 0, 0, 37904, 0, 0, 20820, 20684, 27858, 0, 0, 0, 20356, 0, 0, 37905, 24367, 0, 24369, 0, 37906, 0, 0, 37907, 0, 37908, 0, 0, 37909, 0, 24368, 0, 0, 0, 0, 37910, 37911, 0, 0, 0, 37912, 37913, 37914, 37915, 24276, 0, 37920, 0, 0, 24370, 0, 0, 37916, 37917, 0, 0, 21190, 0, 0, 0, 0, 37918, 37919, 0, 0, 0, 0, 24371, 37921, 37922, 0, 0, 0, 0, 0, 18607, 37923, 0, 37924, 21075, 18692, 0, 0, 0, 0, 37925, 37926, 0, 19011, 0, 0, 0, 19901, 19633, 37927, 0, 0, 37928, 0, 0, 0, 27859, 37930, 0, 0, 22278, 20293, 0, 0, 0, 18505, 0, 0, 0, 24373, 0, 37931, 37932, 37933, 37934, 37935, 24372, 0, 37936, 0, 0, 0, 0, 0, 0, 0, 0, 37937, 0, 0, 0, 0, 0, 0, 27860, 24376, 20761, 24379, 24374, 37939, 37940, 0, 24378, 37941, 0, 0, 37942, 24377, 21023, 18360, 27654, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22228, 0, 37943, 24381, 0, 0, 0, 18439, 0, 37944, 0, 37945, 37946, 37947, 37948, 0, 37949, 24383, 0, 0, 37950, 24382, 0, 24380, 0, 0, 0, 0, 37951, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24375, 0, 0, 0, 0, 0, 0, 0, 21762, 37952, 0, 0, 24385, 0, 0, 0, 0, 0, 37953, 27862, 37955, 37956, 37957, 0, 24384, 0, 37958, 37959, 0, 0, 27861, 0, 0, 0, 0, 18506, 0, 0, 0, 0, 24387, 21649, 0, 24386, 0, 37961, 0, 37962, 21908, 0, 0, 0, 0, 20134, 0, 0, 0, 0, 37963, 0, 37964, 0, 37965, 37966, 37967, 0, 0, 0, 0, 20498, 0, 37968, 0, 0, 0, 20133, 0, 0, 0, 0, 37969, 0, 0, 0, 37970, 27864, 27865, 0, 22234, 37973, 37974, 24393, 0, 20440, 0, 37975, 0, 37976, 0, 0, 24389, 24394, 37977, 0, 18507, 37978, 0, 27863, 0, 37980, 0, 37981, 0, 24392, 0, 21312, 24388, 24391, 20135, 38016, 21424, 0, 0, 24395, 0, 19888, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38017, 0, 0, 0, 20441, 0, 0, 38018, 0, 0, 0, 24398, 38019, 0, 38020, 24390, 0, 19206, 0, 38021, 0, 0, 24396, 0, 0, 38022, 0, 22063, 24399, 0, 0, 0, 27013, 38023, 38024, 0, 0, 0, 20014, 38025, 0, 38026, 0, 0, 0, 0, 0, 24400, 0, 0, 0, 24401, 0, 0, 38027, 38028, 21261, 38029, 38030, 0, 0, 0, 0, 0, 24403, 38031, 0, 0, 0, 24404, 38032, 38033, 27867, 0, 21266, 38035, 0, 0, 0, 21076, 24406, 0, 38036, 38037, 0, 24408, 0, 22196, 0, 24405, 38038, 24407, 18508, 38039, 24402, 0, 38040, 38041, 0, 38042, 0, 0, 22842, 24409, 0, 0, 0, 0, 20550, 19735, 24411, 0, 0, 0, 0, 24410, 20227, 22712, 0, 0, 0, 0, 0, 0, 24412, 0, 0, 38043, 24448, 0, 24397, 24413, 0, 27868, 24449, 38045, 0, 0, 0, 0, 0, 21337, 38046, 38047, 38048, 0, 0, 0, 24450, 0, 0, 24451, 0, 0, 38049, 0, 0, 0, 38050, 0, 0, 38051, 24452, 0, 38052, 0, 38053, 0, 0, 0, 0, 38054, 0, 0, 0, 24453, 0, 20925, 38055, 24455, 24454, 0, 38056, 24456, 0, 24457, 0, 38057, 19902, 21570, 0, 38058, 38059, 21963, 24458, 24459, 20533, 19843, 24460, 24461, 38060, 38061, 38062, 0, 38063, 24462, 21681, 21414, 0, 0, 24463, 21302, 0, 38064, 38065, 38066, 0, 20876, 38067, 0, 38068, 38069, 0, 24464, 18630, 38070, 19020, 38071, 21925, 38072, 21909, 38073, 18579, 22291, 38074, 0, 0, 0, 21809, 38075, 21641, 0, 38076, 0, 0, 38077, 38078, 0, 38079, 20374, 0, 24465, 0, 0, 38080, 38081, 21154, 0, 38082, 38083, 19330, 24466, 38084, 19635, 24468, 24467, 0, 38085, 0, 0, 24469, 0, 38086, 0, 0, 0, 38087, 38088, 0, 0, 0, 24470, 38089, 0, 0, 24471, 0, 0, 0, 0, 38090, 0, 0, 0, 0, 18973, 0, 24472, 0, 0, 0, 0, 24473, 38091, 0, 0, 0, 19331, 38092, 38093, 21415, 0, 27869, 24475, 0, 38095, 0, 20180, 0, 0, 24474, 0, 0, 0, 0, 27904, 0, 0, 38097, 19095, 24476, 24478, 0, 24477, 38098, 0, 38099, 0, 0, 38100, 0, 24479, 0, 19376, 0, 24480, 0, 0, 38101, 38102, 19144, 38103, 20511, 0, 19548, 0, 0, 0, 38104, 24482, 24483, 24481, 0, 0, 38105, 0, 0, 0, 19916, 0, 0, 21159, 19096, 0, 0, 0, 0, 0, 38106, 38107, 0, 0, 24485, 20747, 24484, 38108, 38109, 22292, 21313, 38144, 0, 0, 0, 38145, 0, 38146, 38147, 0, 38148, 0, 0, 24488, 38149, 0, 38150, 0, 0, 0, 0, 38151, 38152, 0, 0, 24490, 24487, 38153, 38154, 0, 21939, 24489, 24491, 38155, 22179, 0, 0, 38156, 0, 27905, 24495, 0, 38158, 38159, 24494, 20821, 21260, 38160, 0, 19332, 24493, 0, 38161, 38162, 0, 24492, 38163, 22032, 22033, 0, 0, 38164, 38165, 0, 38166, 24496, 18509, 0, 0, 0, 38167, 19541, 19777, 0, 0, 0, 0, 0, 0, 0, 38168, 24497, 24498, 38169, 0, 38170, 0, 0, 0, 38171, 24500, 38172, 0, 0, 0, 0, 38173, 38174, 38175, 38176, 0, 0, 20002, 0, 0, 38177, 38178, 24502, 38179, 24501, 38180, 38181, 0, 38182, 38183, 24503, 38184, 18732, 0, 0, 24505, 0, 27907, 24504, 38186, 24507, 24506, 38187, 0, 0, 0, 38188, 38189, 0, 38190, 19355, 38191, 38192, 22151, 0, 19115, 0, 18565, 0, 0, 38193, 0, 38194, 0, 0, 38195, 0, 38196, 19145, 38197, 38198, 0, 0, 0, 38199, 0, 38200, 38201, 38202, 0, 38203, 0, 0, 38204, 38205, 0, 0, 18880, 38206, 38207, 0, 38208, 0, 0, 0, 0, 22215, 24509, 0, 38209, 0, 38210, 0, 38211, 0, 24511, 38212, 27908, 0, 38214, 24512, 0, 18608, 0, 0, 38215, 38216, 0, 24508, 27909, 19736, 38218, 38219, 20896, 24510, 38220, 0, 0, 27912, 38222, 0, 0, 27910, 0, 0, 38224, 0, 0, 0, 38225, 24515, 0, 19917, 38226, 0, 27911, 0, 24513, 38228, 38229, 0, 38230, 19229, 0, 0, 21416, 24514, 0, 0, 24541, 0, 0, 38231, 27914, 0, 38233, 24520, 38234, 38235, 38236, 0, 38237, 19356, 38272, 38273, 38274, 0, 19012, 38275, 24517, 22108, 27913, 0, 22159, 38277, 0, 0, 0, 0, 0, 0, 38278, 0, 0, 0, 0, 0, 0, 0, 0, 38279, 38280, 0, 0, 0, 0, 0, 0, 20693, 0, 38281, 24519, 27915, 0, 38283, 27917, 27916, 38286, 38287, 38288, 27918, 38290, 38291, 38292, 24521, 22197, 19126, 21467, 21289, 0, 0, 38293, 24522, 0, 0, 0, 0, 24524, 38294, 24527, 0, 38295, 38296, 0, 38297, 38298, 0, 0, 0, 38299, 0, 38300, 0, 0, 0, 38301, 38302, 0, 0, 24523, 0, 38303, 0, 24526, 19401, 18476, 24528, 38304, 20303, 24525, 22203, 0, 27919, 24531, 27011, 0, 38306, 38307, 38308, 24529, 24532, 38309, 0, 38310, 38311, 24518, 24530, 38312, 38313, 19611, 0, 0, 24533, 0, 0, 0, 0, 0, 0, 0, 24534, 0, 38314, 38315, 0, 22109, 0, 38316, 38317, 38318, 0, 27920, 0, 24535, 0, 0, 0, 38320, 38321, 38322, 38323, 0, 0, 0, 0, 0, 38324, 38325, 38326, 0, 38327, 0, 24536, 27921, 38329, 38330, 24516, 38331, 0, 0, 38332, 24537, 38333, 38334, 38335, 38336, 0, 0, 38337, 38338, 18851, 38339, 38340, 0, 0, 38341, 0, 0, 0, 38342, 0, 38343, 0, 19844, 0, 38344, 0, 0, 0, 0, 0, 0, 0, 0, 38345, 38346, 24538, 0, 38347, 0, 0, 24539, 38348, 0, 0, 38349, 24540, 0, 0, 0, 38350, 0, 38351, 38352, 18458, 0, 38353, 38354, 24576, 0, 21530, 24577, 38355, 0, 18819, 24578, 38356, 24579, 38357, 38358, 0, 0, 24580, 38359, 24582, 24583, 24581, 0, 38360, 0, 21554, 24585, 24584, 0, 38361, 38362, 38363, 0, 0, 38364, 0, 27922, 0, 24587, 24586, 24588, 38365, 0, 0, 0, 0, 0, 24589, 24591, 24590, 0, 0, 19544, 38400, 24593, 0, 24592, 38401, 38402, 18852, 0, 20274, 0, 21019, 0, 24594, 20375, 38403, 38404, 0, 19737, 38405, 18520, 24595, 38406, 22064, 38407, 38408, 21698, 24596, 0, 0, 27723, 21027, 22034, 19490, 20252, 0, 0, 38410, 20778, 22675, 38411, 20877, 18631, 24597, 38412, 38413, 38414, 38415, 0, 0, 38416, 24598, 0, 24603, 38417, 38418, 24601, 24600, 23713, 18693, 24599, 38419, 18361, 38420, 21385, 38421, 0, 21417, 0, 0, 38422, 0, 22160, 24604, 24602, 20795, 20357, 38423, 38424, 21386, 38425, 21516, 0, 24606, 22155, 19244, 24607, 0, 24605, 21429, 24608, 0, 24609, 0, 27923, 18362, 38427, 0, 20181, 24614, 0, 24611, 21196, 24610, 38428, 38429, 38430, 38431, 38432, 38433, 18949, 0, 38434, 24617, 0, 0, 38435, 24612, 24613, 0, 24616, 24615, 21508, 0, 0, 20513, 20512, 38436, 18974, 38437, 38438, 24618, 38439, 0, 0, 0, 38440, 24619, 0, 38441, 24620, 0, 0, 0, 0, 38442, 24622, 38443, 24621, 0, 0, 0, 0, 0, 18485, 0, 0, 0, 0, 0, 24630, 21447, 24624, 38444, 24626, 0, 0, 24628, 20253, 38445, 0, 24629, 24627, 19871, 38446, 38447, 38448, 24623, 24625, 38449, 21537, 38450, 20136, 0, 0, 24632, 0, 38451, 24631, 38452, 38453, 0, 0, 24633, 0, 19845, 19598, 0, 38454, 21078, 24634, 0, 20906, 38455, 0, 24636, 38456, 38457, 38458, 22144, 24635, 38459, 0, 0, 38460, 0, 20552, 0, 0, 38461, 0, 38462, 38463, 24641, 38464, 24643, 24644, 20787, 0, 0, 0, 0, 38465, 24642, 0, 24639, 0, 24637, 24638, 38466, 24640, 38467, 38468, 38469, 0, 0, 38470, 38471, 24647, 38472, 24645, 38473, 24646, 0, 38474, 0, 0, 38475, 38476, 0, 38477, 38478, 0, 0, 38479, 0, 38480, 38481, 38482, 38483, 24648, 24650, 24651, 24652, 38484, 24653, 38485, 38486, 24649, 0, 38487, 0, 0, 0, 38488, 0, 0, 24655, 0, 38489, 38490, 24654, 38491, 0, 0, 38492, 38493, 38528, 24656, 38529, 0, 0, 0, 38531, 38532, 22180, 38533, 38534, 38535, 24659, 24657, 24658, 38536, 38530, 38537, 18881, 0, 0, 0, 0, 0, 21981, 0, 0, 38538, 21673, 0, 24661, 38539, 0, 0, 24660, 0, 0, 38540, 0, 24662, 24663, 0, 38541, 38542, 0, 24667, 24664, 24665, 24666, 0, 24668, 38543, 38544, 38545, 24669, 38546, 24704, 0, 38547, 0, 24705, 0, 24706, 0, 21390, 21039, 24707, 21329, 21523, 0, 24708, 38548, 27924, 24709, 21001, 38549, 18694, 19491, 24710, 0, 0, 24711, 38550, 38551, 24712, 0, 19720, 0, 0, 24714, 0, 38552, 24713, 0, 0, 24715, 24716, 27927, 27925, 38555, 27926, 38556, 38557, 0, 38558, 38559, 38560, 38561, 27928, 38563, 38564, 0, 38565, 0, 0, 38566, 21448, 0, 24717, 0, 0, 0, 24718, 0, 0, 26952, 24719, 24720, 24721, 0, 0, 38567, 0, 19725, 0, 38568, 24722, 21301, 0, 38569, 21822, 0, 18477, 38570, 18486, 38571, 38572, 24723, 38573, 0, 0, 0, 24725, 0, 38574, 0, 24724, 21071, 0, 38575, 0, 20376, 24088, 0, 24726, 21920, 38576, 24727, 0, 18853, 21430, 24728, 38577, 24729, 38578, 0, 24730, 0, 38579, 0, 21947, 0, 38580, 38581, 21940, 0, 20893, 0, 38582, 0, 20553, 38583, 0, 24732, 38584, 0, 20033, 0, 38585, 20137, 0, 0, 24735, 0, 38586, 24734, 24733, 21468, 38587, 18854, 19336, 0, 38588, 0, 0, 0, 38589, 0, 38590, 38591, 0, 38592, 0, 38593, 38594, 24741, 38595, 0, 24738, 20254, 21905, 0, 38596, 0, 24737, 24739, 24740, 0, 38597, 24736, 0, 0, 0, 38598, 38599, 38600, 0, 0, 0, 0, 38601, 38602, 38603, 24742, 24743, 38604, 20878, 0, 18882, 38605, 38606, 0, 20804, 0, 38607, 0, 0, 38608, 27930, 24744, 0, 0, 38610, 0, 0, 38611, 38612, 38613, 0, 0, 38614, 0, 0, 0, 38615, 38616, 0, 0, 24745, 24748, 38617, 0, 38618, 38619, 38620, 20294, 38621, 21155, 38656, 24749, 21810, 38657, 24746, 0, 38658, 24747, 38659, 0, 0, 0, 38660, 0, 38661, 38662, 38663, 0, 0, 0, 0, 24752, 38664, 0, 0, 38665, 24751, 24750, 38666, 0, 0, 0, 38667, 0, 0, 0, 0, 0, 0, 24754, 38668, 38669, 24753, 0, 0, 24755, 0, 0, 38670, 38671, 38672, 0, 0, 0, 38673, 0, 0, 0, 24757, 38674, 24756, 0, 38675, 0, 0, 21676, 0, 38676, 0, 0, 38677, 0, 20021, 22181, 38678, 38679, 24758, 38680, 0, 21142, 0, 38681, 24759, 0, 0, 24760, 0, 24764, 24762, 24763, 38682, 24761, 0, 0, 0, 38683, 0, 0, 0, 24765, 0, 38684, 0, 0, 0, 24766, 0, 0, 0, 38685, 38686, 0, 0, 38687, 0, 24767, 0, 38688, 24768, 21910, 24769, 0, 38689, 38690, 38691, 0, 21967, 24770, 38692, 20781, 38693, 21321, 0, 19146, 38694, 0, 38695, 20762, 24771, 19097, 38696, 38697, 0, 20399, 38698, 0, 0, 0, 38699, 0, 0, 38700, 24772, 0, 0, 0, 0, 0, 19612, 0, 0, 38701, 38702, 0, 0, 38703, 0, 0, 24773, 38704, 38705, 0, 0, 38706, 24774, 0, 19333, 19636, 0, 0, 0, 0, 0, 0, 0, 38707, 0, 0, 24776, 27932, 38709, 38710, 0, 21045, 19637, 18989, 0, 0, 0, 0, 0, 38711, 38712, 0, 38713, 0, 21763, 0, 21290, 38714, 0, 38715, 0, 0, 21046, 0, 0, 0, 0, 19515, 0, 0, 0, 38716, 38717, 24778, 0, 38718, 38719, 0, 0, 0, 38720, 0, 27933, 0, 0, 0, 38722, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38723, 20138, 38724, 0, 38725, 38726, 0, 38727, 27934, 0, 0, 0, 38729, 0, 38730, 22161, 19492, 0, 38731, 19334, 0, 0, 21378, 0, 24780, 0, 0, 0, 0, 0, 27935, 0, 24782, 0, 38733, 0, 0, 19402, 0, 0, 0, 0, 24781, 20949, 0, 0, 38734, 0, 24784, 18710, 24779, 38735, 0, 21449, 0, 18447, 38736, 19659, 0, 22321, 38737, 0, 24783, 0, 0, 38739, 38740, 38741, 0, 38738, 0, 24785, 38742, 0, 0, 21674, 38743, 20408, 24787, 0, 38744, 38745, 0, 24788, 38746, 38747, 38748, 38749, 0, 24786, 0, 0, 0, 0, 18733, 38784, 24794, 38785, 24793, 38786, 0, 19846, 0, 0, 0, 24795, 24790, 38787, 38788, 38789, 24796, 24791, 38790, 0, 38791, 0, 21431, 24789, 38792, 38793, 24792, 38794, 38795, 0, 0, 0, 24833, 38797, 0, 0, 0, 38798, 38799, 38800, 0, 0, 38796, 0, 38801, 24832, 21824, 0, 38802, 0, 24797, 0, 0, 18378, 0, 0, 38803, 38804, 24835, 0, 38806, 38807, 0, 0, 38808, 38809, 0, 24834, 0, 38810, 38805, 20139, 0, 0, 0, 0, 38811, 24836, 0, 0, 0, 0, 38812, 0, 20514, 0, 38813, 24838, 24837, 0, 0, 0, 0, 0, 0, 24839, 38814, 0, 38815, 0, 38816, 38817, 38818, 0, 0, 0, 0, 38819, 24775, 38820, 0, 38821, 24777, 24841, 24840, 38822, 0, 0, 27936, 38823, 0, 0, 38824, 38825, 0, 0, 0, 0, 19847, 38826, 22216, 38827, 19889, 38828, 24842, 19222, 0, 0, 38829, 38830, 38831, 18975, 18950, 19778, 38832, 38833, 0, 0, 0, 38834, 22035, 38835, 0, 24848, 38836, 24847, 20515, 24844, 38837, 0, 24846, 38838, 38839, 20010, 20255, 24845, 24843, 0, 21257, 0, 0, 20140, 0, 38840, 21531, 38841, 0, 38842, 0, 19638, 0, 0, 0, 0, 38843, 0, 0, 0, 0, 21079, 0, 38844, 24849, 38845, 38846, 0, 38847, 24850, 24872, 19127, 0, 0, 22300, 20500, 0, 0, 0, 0, 24851, 38848, 38849, 18609, 20950, 21632, 0, 38850, 0, 38851, 27940, 38853, 38854, 0, 38855, 0, 0, 27942, 38857, 24852, 0, 0, 0, 38858, 0, 0, 0, 0, 19033, 24853, 38859, 38860, 24855, 38861, 0, 0, 24856, 38862, 21256, 38863, 0, 24857, 38864, 0, 0, 0, 38865, 24858, 24859, 38866, 0, 19128, 18610, 21156, 19975, 19779, 38867, 0, 38868, 0, 0, 38869, 38870, 24860, 38871, 19976, 0, 0, 0, 38872, 0, 18601, 21538, 0, 38873, 24861, 38874, 0, 21450, 0, 38875, 0, 0, 38876, 38877, 20516, 38912, 24864, 38913, 24865, 21320, 38914, 20256, 24862, 0, 20800, 38915, 38916, 24863, 38917, 0, 0, 20141, 38918, 0, 0, 0, 0, 0, 0, 38919, 0, 0, 18363, 38920, 0, 0, 0, 18952, 0, 38921, 38922, 0, 0, 0, 38923, 24866, 38924, 38925, 20951, 38926, 24867, 20390, 0, 0, 38927, 0, 0, 21900, 38928, 0, 21506, 24868, 24869, 20788, 38929, 22182, 0, 38930, 24871, 24870, 38931, 0, 0, 0, 0, 0, 38932, 0, 0, 0, 38933, 0, 38934, 19918, 38935, 38936, 24873, 18383, 0, 38937, 38938, 0, 24876, 38939, 38940, 38941, 24874, 18611, 19245, 24875, 19493, 19537, 0, 21701, 24877, 38942, 38943, 21811, 38944, 38945, 24879, 0, 0, 38946, 20400, 18478, 18585, 18315, 0, 0, 0, 0, 38947, 38948, 24878, 0, 38949, 0, 0, 38950, 38951, 0, 38952, 38953, 24880, 24881, 20182, 0, 38954, 0, 38955, 0, 24882, 38956, 18734, 0, 38957, 0, 0, 24884, 0, 0, 0, 19273, 38958, 19013, 0, 38959, 24885, 19156, 0, 0, 24886, 38960, 20443, 38961, 21164, 38962, 20415, 19668, 38963, 38964, 0, 24887, 0, 38965, 38966, 0, 0, 0, 0, 38967, 38968, 20801, 20554, 38969, 24889, 24891, 24888, 24890, 0, 0, 0, 0, 0, 38970, 19201, 38971, 0, 0, 38972, 0, 0, 0, 0, 0, 24892, 19205, 0, 38973, 0, 19014, 22065, 24894, 0, 0, 38974, 0, 38975, 24895, 0, 0, 38976, 18445, 38977, 38978, 0, 0, 24898, 0, 0, 0, 18773, 24897, 24896, 38979, 24900, 24893, 38980, 24901, 22152, 38981, 24902, 38982, 24903, 0, 27943, 22995, 24905, 0, 24904, 0, 0, 0, 24906, 24907, 38984, 22164, 24908, 0, 26574, 20142, 24909, 24910, 20022, 0, 21143, 24911, 27944, 38985, 38986, 20743, 27946, 38988, 24912, 0, 20763, 24913, 38989, 0, 0, 38990, 0, 19076, 0, 22558, 20796, 19858, 38991, 0, 38992, 38993, 18855, 0, 0, 24914, 0, 24961, 0, 24917, 38994, 19015, 0, 24916, 24963, 0, 0, 0, 24915, 0, 20143, 0, 0, 38995, 0, 0, 0, 24919, 24920, 0, 21002, 0, 0, 24921, 38996, 18749, 0, 0, 38997, 0, 20281, 21571, 38998, 24923, 38999, 39000, 39001, 20679, 39002, 39003, 39004, 39005, 39040, 0, 24918, 39041, 24922, 24924, 0, 0, 19674, 0, 0, 0, 39042, 0, 39043, 39044, 39045, 0, 0, 0, 24965, 21517, 39046, 21381, 21080, 0, 19129, 24964, 24962, 39047, 21396, 24925, 20797, 21082, 0, 21081, 39048, 19669, 0, 0, 0, 0, 0, 0, 24983, 0, 0, 39049, 0, 0, 0, 39050, 24967, 39051, 24969, 0, 39052, 39053, 0, 24972, 39054, 24973, 39055, 24970, 24971, 39056, 39057, 24968, 24966, 0, 39058, 0, 0, 24960, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39059, 0, 21678, 18612, 0, 39060, 0, 24980, 0, 24977, 39061, 24982, 39062, 39063, 24981, 0, 21330, 21894, 39064, 19738, 24975, 24984, 24979, 39065, 24978, 24974, 27947, 24976, 39067, 18856, 0, 0, 0, 39068, 0, 0, 0, 0, 20764, 0, 39069, 20444, 0, 39070, 39071, 21377, 39072, 0, 24989, 39073, 39074, 0, 21379, 0, 39075, 39076, 39077, 39078, 0, 0, 20416, 24986, 39079, 0, 21422, 39080, 24990, 21682, 39081, 20794, 39082, 24985, 24987, 0, 0, 24988, 0, 0, 0, 0, 39083, 0, 39084, 39085, 0, 39086, 39087, 39088, 0, 24991, 0, 0, 19875, 0, 0, 0, 21157, 24996, 24995, 0, 39089, 24992, 39090, 0, 0, 22293, 0, 0, 0, 0, 39091, 25001, 39092, 39093, 25005, 25002, 39094, 39095, 39096, 0, 39097, 0, 39098, 0, 24998, 39099, 39100, 39101, 39102, 0, 39103, 24999, 0, 39104, 0, 39105, 39106, 25004, 39107, 39108, 0, 24993, 22708, 25000, 24994, 0, 0, 25003, 0, 39109, 0, 39110, 0, 0, 0, 25009, 39111, 18857, 0, 25006, 0, 39112, 39113, 25007, 39114, 0, 25008, 25011, 39115, 0, 0, 0, 0, 39116, 0, 39117, 39118, 0, 39119, 25010, 21461, 39120, 39121, 0, 0, 25012, 22235, 21708, 25017, 0, 0, 25014, 0, 0, 39122, 0, 0, 0, 39123, 0, 25013, 20401, 0, 25016, 25018, 39125, 39126, 39127, 25015, 39124, 25022, 0, 25019, 39128, 39129, 39130, 39131, 39132, 39133, 25020, 24997, 39168, 0, 39169, 25021, 25023, 0, 39170, 0, 39171, 0, 0, 25024, 39172, 39173, 0, 39174, 0, 39175, 21669, 0, 25025, 0, 0, 0, 39176, 0, 0, 39177, 39178, 21953, 0, 0, 19117, 19208, 25026, 0, 0, 39179, 39180, 0, 21651, 0, 20295, 0, 21903, 0, 39181, 25027, 0, 22162, 0, 39182, 21331, 0, 20517, 21267, 0, 0, 20012, 0, 0, 39183, 18335, 39184, 25032, 25030, 0, 25028, 18816, 39185, 20144, 25033, 0, 0, 25031, 0, 25029, 25037, 0, 39186, 25036, 25035, 25034, 0, 0, 39187, 39188, 0, 25038, 39189, 39190, 39191, 25039, 20377, 39192, 25040, 0, 25042, 0, 39193, 25041, 0, 39194, 39195, 39196, 19377, 0, 0, 39197, 20503, 39198, 0, 0, 25044, 39199, 39200, 39201, 21083, 39202, 25043, 39203, 39204, 0, 25045, 39205, 21652, 20555, 19494, 0, 25046, 0, 0, 0, 39206, 22183, 0, 39207, 0, 39208, 0, 0, 0, 25048, 0, 0, 25049, 0, 25050, 39209, 25051, 0, 19780, 0, 25052, 19246, 0, 0, 19017, 0, 18953, 0, 25088, 39210, 21970, 19495, 25053, 39211, 39212, 39213, 25091, 21957, 0, 21275, 0, 39214, 21522, 39215, 39216, 39217, 20034, 25090, 39218, 19890, 19496, 19781, 19016, 21653, 25089, 39219, 39220, 0, 20518, 21793, 19670, 39221, 0, 0, 39222, 0, 0, 0, 39223, 19782, 20924, 39224, 25094, 22206, 19640, 39225, 25095, 20257, 0, 25097, 0, 0, 0, 20145, 19599, 0, 39226, 39227, 39228, 25096, 39229, 39230, 19977, 19357, 20519, 25092, 25098, 39231, 27949, 0, 0, 25093, 19247, 39233, 25101, 25105, 19274, 39234, 0, 39235, 0, 0, 25100, 39236, 0, 39237, 39238, 25109, 27950, 39240, 19497, 0, 0, 22092, 18331, 25106, 0, 39241, 19018, 39242, 25103, 0, 39243, 0, 0, 0, 25104, 0, 39244, 21084, 25102, 25099, 0, 18695, 20419, 0, 39245, 19335, 39246, 39247, 0, 25111, 0, 39248, 0, 39249, 39250, 39251, 0, 39252, 39253, 0, 39254, 25108, 0, 39255, 39256, 39257, 0, 25110, 0, 39258, 0, 25107, 0, 0, 39259, 39260, 0, 19248, 20626, 25112, 20557, 39261, 39296, 25125, 27952, 0, 25121, 25115, 0, 0, 39297, 39298, 0, 0, 39299, 25119, 19929, 18364, 25114, 25122, 25126, 19498, 21941, 39300, 20917, 25116, 39301, 27951, 25124, 39303, 25113, 20765, 0, 25118, 18332, 21929, 0, 0, 39304, 39305, 39306, 39307, 39308, 25117, 0, 0, 19130, 21451, 39309, 39310, 39311, 20556, 0, 22191, 20046, 0, 0, 25165, 27953, 39312, 25127, 39313, 20445, 0, 25123, 25128, 25130, 0, 20952, 25133, 39315, 0, 25129, 39316, 39317, 0, 21683, 18858, 39318, 39319, 21930, 39320, 0, 18365, 0, 39321, 25132, 0, 22236, 39322, 39323, 0, 0, 39324, 39325, 25131, 0, 0, 0, 0, 39314, 18510, 0, 0, 21195, 25134, 0, 0, 39326, 25141, 25135, 25142, 0, 0, 0, 0, 39327, 39328, 25138, 0, 0, 39329, 0, 39330, 0, 0, 0, 21338, 39331, 39332, 19881, 25140, 39333, 25137, 25143, 25136, 0, 0, 20003, 39334, 39335, 0, 0, 21764, 39336, 39337, 20011, 39338, 0, 25139, 25151, 39339, 0, 25147, 39340, 25150, 0, 25148, 25152, 25146, 0, 25120, 20402, 39341, 0, 21418, 0, 25149, 39342, 39343, 25144, 39344, 0, 0, 20480, 19249, 0, 19978, 39345, 0, 39346, 0, 27954, 0, 20228, 20501, 25155, 0, 39348, 25157, 25158, 0, 0, 25154, 25156, 39349, 0, 39350, 39351, 0, 0, 39352, 25145, 25153, 0, 25161, 25160, 39353, 0, 21849, 39354, 39355, 19210, 0, 0, 39356, 0, 0, 0, 0, 39357, 25159, 0, 25163, 25162, 25166, 39358, 25168, 0, 39359, 19739, 25164, 0, 0, 39360, 39361, 25169, 25170, 27648, 0, 25171, 39363, 25177, 21018, 25173, 39364, 25172, 25174, 25175, 39365, 25176, 0, 39366, 0, 39367, 25178, 25179, 39368, 39369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18859, 0, 25180, 0, 25181, 39371, 39370, 39372, 39373, 39374, 0, 0, 0, 39375, 39376, 25216, 0, 27955, 0, 0, 0, 0, 25217, 25218, 25219, 39378, 25220, 25221, 39379, 39380, 25223, 25222, 0, 0, 25224, 0, 0, 39381, 39382, 39383, 0, 25225, 25226, 39384, 0, 39385, 39386, 39387, 39388, 25229, 25227, 25228, 19648, 19250, 0, 39389, 20789, 0, 21394, 39424, 20047, 0, 0, 21292, 0, 21452, 25230, 23500, 0, 0, 0, 39425, 39426, 39427, 39428, 0, 25231, 25233, 0, 22084, 25232, 25235, 25234, 0, 22066, 39429, 25236, 39430, 21469, 39431, 39432, 39433, 0, 0, 25237, 0, 39434, 39435, 0, 0, 25240, 0, 39436, 25239, 25238, 0, 0, 27956, 39438, 25241, 19217, 0, 39439, 0, 20481, 18976, 39440, 0, 0, 39441, 25245, 25242, 0, 0, 25243, 0, 39442, 0, 25246, 0, 25247, 25244, 0, 0, 39443, 18440, 0, 39444, 39445, 18566, 0, 39446, 0, 25249, 25250, 0, 39447, 0, 25251, 0, 22081, 0, 39448, 39449, 0, 0, 19979, 0, 25253, 25252, 0, 0, 0, 0, 0, 39450, 0, 0, 0, 39451, 20296, 25254, 0, 39452, 0, 39453, 25255, 0, 39454, 25256, 0, 18884, 39455, 0, 39456, 39457, 18860, 0, 39458, 25257, 0, 0, 0, 0, 0, 25258, 39459, 21820, 22082, 39460, 39461, 39462, 22067, 22294, 0, 19500, 25261, 19891, 25260, 39463, 39464, 0, 39465, 25262, 19848, 39466, 39467, 39468, 20656, 39469, 25263, 39470, 39471, 19499, 39472, 21942, 25264, 25265, 0, 0, 25266, 39473, 39474, 39475, 39476, 25267, 0, 0, 39477, 0, 39478, 0, 25268, 0, 0, 0, 39479, 0, 39480, 0, 39481, 0, 0, 19849, 39482, 39483, 21964, 39484, 0, 39485, 39486, 25270, 39487, 20766, 39488, 25269, 39489, 0, 0, 0, 39490, 0, 25272, 0, 0, 0, 25271, 0, 0, 0, 0, 0, 0, 0, 25273, 0, 0, 0, 20378, 0, 25274, 0, 25275, 0, 0, 0, 21656, 25276, 39491, 20558, 25277, 0, 39492, 0, 39493, 0, 25278, 0, 0, 0, 0, 39494, 0, 22237, 25281, 39495, 25280, 25279, 20879, 39496, 25282, 20229, 0, 25283, 0, 0, 0, 25284, 22295, 25285, 0, 39497, 0, 0, 25286, 25288, 25287, 21380, 39498, 21208, 0, 22301, 21384, 0, 39499, 0, 0, 0, 0, 25290, 0, 0, 20146, 0, 21513, 0, 25291, 25289, 39500, 18861, 39501, 0, 0, 19379, 19783, 0, 0, 21453, 39502, 39503, 0, 19337, 21794, 39504, 25294, 25292, 0, 19501, 0, 19502, 18376, 0, 19655, 0, 0, 0, 39505, 39506, 21304, 0, 0, 0, 0, 0, 0, 0, 0, 18366, 25299, 0, 20767, 0, 39507, 0, 0, 0, 21303, 39508, 20666, 39509, 0, 0, 39510, 0, 39511, 39512, 25301, 39513, 39514, 25297, 25300, 25295, 0, 25298, 21765, 0, 39515, 19380, 0, 0, 18396, 25296, 0, 0, 0, 0, 0, 0, 0, 39516, 39517, 25303, 39552, 25304, 39553, 39554, 21144, 0, 39555, 0, 19098, 39556, 39557, 0, 25349, 21276, 39558, 0, 0, 0, 19784, 39559, 0, 19099, 20391, 22309, 21901, 25302, 20403, 39560, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39561, 39562, 39563, 0, 18994, 25305, 39564, 0, 39565, 0, 39566, 0, 0, 25307, 39567, 0, 0, 39568, 0, 25306, 0, 0, 39569, 0, 0, 25308, 39570, 20741, 0, 21277, 0, 39571, 0, 0, 0, 20880, 39572, 0, 39573, 0, 25346, 0, 0, 0, 0, 0, 0, 39574, 25345, 39575, 0, 0, 39576, 25309, 39577, 0, 20276, 0, 21572, 25348, 39578, 25347, 19503, 22322, 0, 39579, 0, 0, 0, 0, 0, 0, 0, 25364, 39580, 39581, 0, 0, 0, 25352, 25353, 39582, 39583, 39584, 0, 19919, 0, 39585, 25351, 39586, 19543, 25350, 0, 0, 25354, 0, 0, 39587, 20881, 21633, 20482, 0, 0, 0, 0, 20667, 25358, 39588, 25359, 25355, 39590, 39591, 39592, 0, 25356, 0, 25357, 39593, 0, 0, 39594, 19504, 39589, 0, 0, 25365, 0, 25361, 39595, 0, 39596, 0, 21573, 39597, 21835, 21511, 39598, 0, 25360, 0, 39599, 25363, 25362, 0, 0, 0, 21795, 25366, 0, 0, 0, 0, 39600, 0, 25367, 0, 39601, 20502, 39602, 25368, 0, 0, 25370, 0, 25374, 39603, 0, 25371, 25369, 21278, 25372, 0, 25373, 39605, 0, 39606, 18577, 0, 25380, 25375, 39607, 39604, 0, 25376, 39608, 39609, 0, 25377, 0, 20608, 0, 39610, 0, 39611, 25379, 25378, 25381, 39612, 0, 39613, 39614, 25382, 25383, 39615, 0, 20258, 39616, 18632, 0, 25384, 22198, 0, 19850, 39617, 39618, 19980, 0, 0, 39619, 39620, 39621, 19785, 20790, 39622, 39623, 0, 39624, 39625, 25385, 25386, 18448, 39626, 25387, 39627, 39628, 25388, 25389, 39629, 0, 25390, 0, 25391, 19100, 23689, 25392, 0, 20420, 25393, 19882, 39630, 25394, 0, 22415, 39631, 39632, 0, 25395, 21693, 18875, 39633, 39634, 20483, 20023, 39635, 21584, 19981, 0, 39636, 39637, 0, 0, 0, 0, 0, 39638, 25396, 19505, 25397, 21419, 0, 25411, 0, 0, 0, 39639, 25399, 39640, 20648, 21332, 19358, 25398, 20484, 39641, 0, 0, 0, 0, 0, 25400, 0, 0, 39642, 39643, 39644, 39645, 20953, 0, 0, 0, 39680, 0, 0, 39681, 39682, 0, 39683, 0, 0, 0, 0, 39684, 0, 25402, 25401, 25404, 0, 39685, 25403, 0, 25405, 39686, 0, 25407, 39687, 25406, 0, 18862, 39688, 25408, 0, 25409, 25410, 0, 39689, 19600, 22184, 0, 25412, 20230, 0, 39690, 0, 18511, 25413, 25414, 0, 0, 39691, 0, 39692, 25415, 39693, 39694, 39695, 0, 39696, 39697, 0, 0, 39698, 0, 39699, 39700, 18385, 0, 25416, 39701, 0, 0, 39702, 25417, 0, 39703, 0, 39704, 0, 39705, 21574, 39706, 39707, 0, 19878, 0, 25419, 39708, 39709, 0, 39710, 39711, 18696, 18321, 39712, 39713, 39714, 39715, 25418, 25421, 21293, 39716, 20259, 39717, 18613, 39718, 21766, 39719, 0, 0, 39720, 19260, 19131, 39721, 25420, 39722, 18633, 39723, 39724, 0, 0, 0, 0, 0, 18818, 39725, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39726, 18512, 25425, 22217, 20668, 39727, 0, 21539, 0, 25437, 39728, 18614, 25435, 0, 25433, 25424, 39729, 25422, 39730, 25423, 39731, 19906, 19147, 20822, 39732, 0, 39733, 21168, 0, 39734, 0, 39735, 0, 18480, 0, 25427, 25426, 0, 39736, 39737, 0, 25432, 25428, 25431, 0, 39738, 39739, 0, 39740, 27958, 21935, 25430, 18615, 18780, 25434, 39742, 39743, 25436, 39744, 39745, 0, 0, 19251, 0, 0, 0, 0, 0, 0, 0, 25474, 25483, 25484, 0, 0, 39747, 18314, 39748, 39749, 39750, 0, 39751, 39752, 25491, 0, 0, 0, 0, 18384, 0, 0, 25482, 39753, 39754, 39755, 25481, 39756, 25476, 25475, 39757, 25473, 25472, 20802, 39758, 20698, 25478, 39759, 0, 39760, 39761, 0, 0, 25477, 0, 39762, 39763, 39764, 25480, 0, 39765, 0, 20559, 19252, 0, 0, 39766, 39767, 18464, 25479, 39768, 19506, 39837, 39746, 39769, 39770, 39771, 20560, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27959, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39772, 0, 0, 25497, 0, 25498, 0, 18616, 39773, 0, 0, 18573, 25495, 39808, 0, 27960, 39810, 0, 39811, 0, 39812, 25485, 39813, 25493, 0, 25500, 25494, 0, 0, 39814, 25492, 0, 0, 0, 39815, 25429, 39816, 39817, 25490, 0, 39818, 39819, 25486, 39820, 39821, 39822, 18863, 25488, 25499, 0, 25489, 0, 0, 0, 39823, 39824, 25501, 39825, 25487, 21339, 39826, 39851, 0, 0, 0, 22088, 0, 0, 0, 25496, 0, 0, 0, 0, 0, 0, 0, 25518, 39827, 39828, 39829, 25510, 0, 0, 0, 20314, 0, 27961, 0, 39831, 18981, 0, 19132, 0, 25505, 39832, 39833, 39834, 0, 18618, 39835, 0, 20147, 0, 25508, 0, 0, 0, 19641, 39836, 0, 21040, 25513, 0, 0, 0, 0, 0, 0, 0, 39838, 21709, 39839, 25504, 0, 0, 0, 18617, 19381, 21512, 25514, 0, 25502, 0, 27962, 25511, 39841, 39842, 0, 25521, 39843, 25506, 0, 0, 0, 39844, 0, 25507, 21145, 0, 39845, 25512, 0, 0, 39846, 25509, 21767, 25515, 18367, 39847, 0, 39848, 0, 25503, 0, 39849, 0, 0, 0, 39850, 0, 0, 0, 0, 0, 0, 25517, 0, 25516, 0, 0, 0, 0, 0, 0, 21322, 25523, 0, 25534, 0, 0, 39852, 0, 18781, 0, 0, 0, 25537, 0, 0, 25519, 39853, 0, 0, 25524, 22093, 0, 0, 0, 0, 0, 0, 0, 39854, 25533, 39855, 27963, 22068, 39857, 0, 0, 39858, 22153, 39859, 0, 39860, 39861, 0, 0, 0, 39862, 20823, 39863, 39864, 39865, 18762, 39866, 0, 0, 0, 39867, 21585, 25539, 21120, 39868, 39869, 18320, 39870, 0, 25532, 39871, 25528, 20561, 25522, 25530, 25535, 39872, 21259, 0, 39873, 39874, 18313, 39875, 25527, 39876, 25536, 21591, 0, 39877, 39878, 0, 0, 0, 39879, 25531, 0, 25526, 39880, 0, 0, 0, 0, 0, 20148, 0, 0, 0, 0, 19982, 0, 39881, 39882, 19851, 39883, 0, 0, 0, 21943, 0, 0, 21542, 0, 39884, 25542, 0, 25551, 0, 0, 0, 0, 39885, 0, 39886, 39887, 39888, 0, 0, 25529, 0, 39889, 0, 39890, 18774, 0, 27964, 0, 0, 0, 20183, 25540, 39892, 25545, 20562, 39893, 39894, 25541, 39895, 25548, 39896, 0, 20798, 0, 25549, 39897, 39898, 22069, 25538, 18711, 39899, 25544, 0, 39900, 25547, 21899, 0, 39901, 0, 0, 25550, 0, 0, 25543, 25546, 0, 27652, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39937, 0, 0, 39938, 0, 21768, 0, 22272, 39939, 39940, 39941, 39942, 0, 25554, 0, 0, 39943, 0, 0, 39945, 39946, 25561, 39947, 0, 25553, 19874, 0, 39948, 39949, 0, 0, 25520, 39950, 0, 0, 0, 0, 39951, 0, 39952, 0, 39953, 21677, 0, 21889, 25560, 25559, 0, 25555, 25556, 0, 18453, 0, 39954, 0, 39955, 25558, 0, 25552, 39956, 39957, 39958, 39959, 20916, 39960, 0, 0, 39961, 39962, 25557, 18397, 0, 39963, 0, 0, 39944, 39964, 39965, 20609, 39966, 0, 0, 0, 0, 0, 0, 21666, 0, 39967, 25562, 25600, 0, 21432, 0, 0, 39968, 0, 25565, 20149, 19880, 25602, 0, 0, 19101, 39969, 39970, 39971, 39972, 27965, 0, 25603, 39974, 21592, 25564, 27966, 25525, 0, 39976, 39977, 39978, 39979, 39980, 39981, 39982, 25563, 39983, 0, 0, 0, 22318, 21121, 21586, 27967, 0, 25610, 0, 39985, 0, 0, 0, 0, 0, 0, 0, 25616, 0, 39986, 39987, 39988, 0, 39989, 25617, 39990, 25604, 39991, 0, 0, 21333, 39992, 39993, 25614, 25606, 39994, 25608, 39995, 39996, 0, 0, 39997, 25618, 25607, 0, 39998, 25611, 0, 0, 18513, 39999, 21188, 0, 25612, 25615, 40000, 0, 40001, 40002, 0, 40003, 0, 25605, 40004, 20485, 40005, 25609, 19718, 20260, 19215, 21971, 40019, 21976, 20049, 27969, 0, 0, 0, 40006, 0, 40007, 40008, 40009, 25622, 25620, 0, 40010, 40011, 40012, 40013, 0, 22317, 40014, 0, 0, 0, 0, 40015, 0, 25619, 40016, 40017, 0, 22100, 40018, 25621, 25623, 0, 0, 0, 0, 25624, 0, 0, 40020, 0, 40021, 0, 25627, 25625, 0, 40022, 40023, 0, 0, 0, 21122, 25626, 40024, 0, 40025, 21420, 25613, 0, 0, 40026, 0, 0, 0, 0, 0, 40027, 0, 0, 40028, 20050, 0, 25628, 25633, 20563, 40029, 0, 25632, 40064, 40065, 0, 25601, 0, 40066, 40067, 25634, 20520, 0, 0, 25629, 25631, 0, 40068, 40069, 0, 40070, 40071, 40072, 25630, 0, 0, 24080, 24065, 40073, 40074, 25636, 40075, 0, 0, 40076, 0, 0, 40077, 25635, 0, 0, 0, 0, 40078, 0, 40079, 0, 0, 0, 22101, 0, 24731, 25637, 0, 0, 0, 0, 0, 40080, 0, 40081, 0, 40082, 0, 40083, 40084, 0, 25638, 40085, 35781, 40086, 0, 0, 0, 40087, 0, 0, 0, 0, 0, 0, 25639, 19382, 0, 18995, 0, 40088, 40089, 25641, 22588, 40090, 40091, 40092, 40093, 19028, 0, 22169, 40094, 19154, 25642, 40095, 40096, 40097, 40098, 40099, 0, 0, 25643, 0, 40100, 0, 20813, 40101, 0, 0, 40102, 0, 25644, 0, 0, 0, 40103, 40104, 40105, 0, 21209, 40106, 18329, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40140, 0, 18626, 25649, 25650, 40107, 0, 0, 0, 40108, 0, 25645, 0, 19740, 40109, 0, 40110, 0, 40111, 0, 40112, 0, 0, 0, 0, 40113, 0, 25646, 21281, 0, 40114, 40115, 40116, 25647, 25648, 25658, 0, 40117, 0, 25652, 25655, 40118, 0, 40119, 40120, 40121, 25651, 40122, 40123, 40124, 0, 0, 0, 0, 0, 40125, 40126, 40127, 0, 40128, 25653, 40129, 25654, 19895, 0, 25656, 0, 20768, 0, 19253, 18721, 0, 0, 40130, 40131, 0, 25659, 40132, 0, 40133, 0, 18718, 40134, 25664, 40135, 0, 25660, 25663, 40136, 0, 0, 40137, 21401, 40138, 0, 40139, 0, 25661, 0, 0, 25662, 21543, 21433, 25665, 0, 0, 0, 0, 0, 0, 0, 0, 20700, 25675, 40141, 25671, 40142, 40143, 18634, 0, 25669, 0, 21769, 25670, 40144, 40145, 25667, 40146, 25668, 25673, 25676, 40147, 0, 25674, 40148, 40149, 40150, 25672, 25666, 40151, 40152, 0, 0, 0, 20791, 40153, 25683, 0, 21897, 0, 40154, 40155, 0, 40156, 0, 40157, 0, 25681, 0, 0, 40192, 25682, 0, 0, 0, 0, 40193, 40194, 0, 40195, 40196, 0, 25677, 0, 0, 25679, 0, 40197, 40198, 25680, 40199, 40200, 40201, 25678, 40202, 0, 0, 40203, 0, 40204, 0, 0, 0, 20421, 0, 22296, 25687, 40205, 25688, 0, 0, 0, 0, 25728, 0, 20233, 0, 25690, 40206, 25693, 0, 0, 0, 40207, 0, 25685, 25684, 40208, 0, 25729, 40209, 40210, 18619, 0, 25691, 0, 25730, 0, 0, 0, 25692, 40211, 0, 40212, 40213, 0, 25689, 0, 20882, 0, 25686, 0, 0, 40214, 0, 0, 0, 21319, 0, 0, 25734, 40215, 40216, 40217, 40218, 40219, 40220, 40221, 0, 40222, 40223, 22042, 0, 0, 40224, 0, 0, 40225, 0, 40226, 0, 40227, 40228, 40229, 0, 0, 0, 0, 40230, 25733, 40231, 0, 25732, 40232, 0, 0, 0, 40233, 0, 0, 0, 25741, 40234, 40235, 40236, 25735, 0, 40237, 0, 25743, 0, 40238, 0, 0, 0, 0, 22085, 25746, 0, 25737, 40239, 40240, 25738, 40241, 0, 0, 25742, 0, 25745, 25744, 40242, 40243, 40244, 25736, 0, 0, 40245, 0, 25739, 0, 25756, 0, 0, 40246, 40247, 0, 0, 40248, 40249, 0, 40250, 0, 0, 40251, 25749, 0, 40252, 40253, 40254, 0, 0, 0, 0, 0, 40255, 40256, 0, 40257, 0, 25747, 0, 40258, 25748, 40259, 0, 0, 25753, 25754, 40260, 18697, 40261, 18977, 0, 0, 25752, 40262, 0, 40263, 0, 40264, 0, 25731, 40265, 27972, 0, 40266, 40267, 40268, 0, 25751, 25755, 25750, 40269, 25757, 40271, 40272, 40273, 25759, 25758, 0, 40274, 40270, 40275, 40276, 40277, 0, 40278, 40279, 0, 25761, 25760, 25657, 0, 0, 0, 25765, 40280, 0, 0, 0, 0, 40281, 40282, 0, 40283, 25762, 40284, 0, 0, 40285, 25763, 0, 0, 25764, 40320, 25766, 40321, 0, 0, 0, 19275, 40322, 25768, 40323, 25767, 40324, 19983, 0, 40325, 40326, 40327, 40328, 19507, 24198, 40329, 0, 0, 40330, 25769, 20016, 0, 40331, 40332, 18712, 40333, 25770, 40334, 18481, 40335, 20150, 25771, 40336, 40337, 19508, 25772, 18368, 40338, 0, 0, 0, 21532, 40339, 0, 25773, 0, 0, 0, 0, 20297, 40340, 25780, 0, 0, 25777, 0, 20814, 0, 40341, 0, 40342, 0, 25778, 25775, 19133, 40343, 25774, 25781, 0, 0, 0, 0, 0, 19221, 0, 0, 20669, 0, 25787, 0, 0, 0, 0, 25783, 0, 0, 0, 20628, 25782, 40344, 25785, 40345, 40346, 40347, 0, 25776, 40348, 40349, 0, 25786, 0, 25788, 0, 0, 0, 40350, 0, 40351, 21454, 0, 0, 25784, 0, 25789, 25791, 0, 0, 19378, 25779, 0, 18336, 0, 0, 40352, 0, 0, 40353, 40354, 25790, 40355, 19642, 22229, 25792, 25793, 20564, 0, 0, 0, 0, 40356, 40357, 40358, 40359, 40360, 22145, 0, 40361, 40362, 40363, 25794, 22036, 0, 0, 25795, 25796, 0, 40364, 21699, 25797, 40365, 19615, 0, 22146, 0, 0, 0, 0, 0, 40366, 25802, 0, 0, 0, 0, 0, 0, 40367, 40368, 40369, 25803, 20151, 25801, 27973, 0, 40371, 22086, 25798, 0, 0, 25800, 20380, 20317, 0, 0, 40372, 25799, 0, 25804, 0, 40373, 21634, 0, 0, 25806, 0, 25805, 40374, 40375, 40376, 18763, 0, 21770, 25807, 0, 40377, 40378, 0, 40379, 40380, 40381, 0, 27649, 25819, 25809, 0, 40383, 0, 0, 0, 0, 25810, 40384, 40385, 40386, 0, 25811, 25812, 0, 0, 0, 0, 40387, 40388, 40389, 0, 0, 40390, 25816, 0, 25817, 40391, 40392, 25815, 0, 0, 40393, 0, 40394, 25813, 40395, 25808, 25814, 40396, 40397, 0, 0, 40398, 0, 0, 25818, 26518, 0, 40399, 0, 0, 40400, 0, 0, 0, 18567, 40401, 0, 0, 40402, 40403, 40404, 0, 25821, 19134, 25820, 40405, 40406, 40407, 25857, 0, 25856, 0, 0, 0, 25859, 40408, 0, 25858, 40409, 25860, 40410, 0, 19984, 40411, 25861, 40412, 0, 25862, 0, 0, 40413, 40448, 40449, 40450, 25863, 20381, 0, 22070, 0, 25864, 0, 0, 21635, 21285, 25865, 40451, 25866, 19338, 0, 40452, 0, 18955, 40453, 0, 0, 25867, 40454, 40455, 19786, 21280, 25868, 0, 18735, 40456, 40457, 0, 0, 40458, 40459, 25869, 0, 0, 0, 40460, 25871, 22102, 0, 25870, 20261, 0, 25872, 0, 0, 25873, 40461, 0, 25874, 18864, 40462, 40463, 40464, 40465, 0, 0, 25875, 0, 40466, 25876, 0, 25877, 25878, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18736, 0, 40467, 40468, 40469, 40470, 40471, 0, 25879, 0, 25880, 25881, 0, 0, 0, 0, 0, 18641, 0, 40472, 20231, 25882, 0, 40473, 0, 40474, 0, 40475, 0, 0, 0, 40476, 0, 40477, 25883, 0, 40478, 0, 25884, 40479, 0, 0, 0, 40480, 0, 40481, 19359, 0, 20954, 25885, 40482, 40483, 0, 40484, 19254, 0, 20277, 0, 25888, 0, 21123, 40485, 25887, 40486, 27974, 19216, 40488, 40489, 25886, 20694, 18956, 0, 0, 25889, 0, 25890, 40490, 20152, 40491, 0, 40492, 19276, 40493, 25891, 40494, 0, 0, 0, 21771, 40495, 40496, 20414, 0, 40497, 0, 19029, 0, 21972, 20521, 40498, 25892, 27975, 0, 0, 20262, 20815, 20153, 40500, 40501, 0, 40502, 25893, 0, 40503, 0, 40504, 25896, 40505, 25897, 40506, 0, 0, 0, 40507, 40508, 0, 19613, 20641, 25895, 40509, 20154, 21533, 40510, 40511, 40512, 0, 0, 25894, 40513, 40514, 19787, 0, 18482, 40515, 25901, 19255, 0, 40516, 19789, 40517, 0, 19788, 0, 22316, 25900, 25899, 20486, 0, 18988, 22306, 18713, 20155, 0, 40518, 40519, 40520, 0, 27976, 40522, 40523, 25898, 0, 40524, 40525, 40526, 0, 25903, 40527, 25904, 25902, 40528, 19383, 0, 22047, 0, 40529, 19790, 21254, 0, 40530, 40531, 25907, 40532, 20383, 0, 20769, 40533, 40534, 22037, 40535, 25910, 0, 0, 0, 19403, 40536, 20382, 25906, 0, 25911, 19404, 25908, 25909, 27977, 25905, 40538, 0, 0, 20417, 21160, 40539, 40540, 20750, 0, 18620, 40541, 0, 0, 40576, 40577, 0, 21455, 0, 40578, 18978, 0, 27978, 20883, 0, 0, 25914, 40580, 25912, 0, 40581, 20779, 40582, 40583, 40584, 20384, 18865, 25913, 0, 20282, 0, 40585, 22185, 40586, 40587, 40588, 22303, 40589, 0, 0, 25915, 25926, 20884, 40590, 25925, 27979, 25922, 25930, 25923, 0, 25919, 0, 20955, 25918, 0, 0, 0, 25916, 40592, 22016, 19791, 0, 40593, 25920, 0, 25917, 40594, 40595, 27981, 25924, 20051, 0, 19360, 0, 40597, 0, 20697, 40598, 21796, 18489, 18369, 0, 21124, 40599, 40600, 25928, 0, 0, 40606, 40601, 25927, 0, 21189, 0, 25932, 40602, 0, 0, 25921, 0, 25931, 25933, 0, 19339, 25929, 19509, 40603, 19892, 40604, 40605, 25934, 22071, 0, 0, 0, 0, 25937, 0, 25940, 0, 0, 25938, 21524, 40607, 0, 0, 40608, 0, 0, 25935, 0, 0, 0, 40609, 0, 19135, 0, 0, 40610, 0, 25939, 0, 0, 25941, 40611, 40612, 40613, 40614, 40615, 0, 40616, 25945, 0, 0, 25942, 40621, 25944, 25943, 0, 0, 40617, 27982, 40619, 0, 25946, 0, 19856, 40620, 25948, 25947, 21575, 0, 40622, 25984, 0, 0, 0, 40623, 0, 0, 19256, 0, 0, 0, 0, 25949, 25985, 40624, 0, 25986, 18979, 25248, 20184, 0, 25987, 0, 40625, 19405, 40626, 40627, 0, 0, 40628, 25988, 40629, 27983, 25989, 40630, 0, 19741, 40631, 40632, 0, 0, 0, 0, 23725, 40633, 25990, 40634, 25991, 40635, 19985, 0, 25992, 25993, 40636, 40637, 25994, 0, 0, 25995, 25996, 0, 40638, 0, 40639, 40640, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20746, 40641, 40642, 25997, 0, 0, 40643, 40644, 25999, 0, 25998, 0, 0, 0, 40645, 21125, 40646, 26000, 40647, 21772, 40648, 26001, 0, 26002, 40649, 26003, 40650, 0, 40651, 40652, 26004, 0, 40653, 40654, 40657, 21177, 40655, 0, 40656, 0, 0, 0, 20156, 26005, 40658, 40659, 0, 40660, 0, 40661, 40662, 19530, 22413, 26006, 40663, 0, 0, 0, 0, 0, 40664, 0, 40665, 40666, 0, 26007, 21534, 26008, 40667, 26016, 0, 40668, 0, 0, 0, 26009, 0, 0, 26011, 40669, 40704, 0, 26010, 26012, 40705, 21797, 26013, 26014, 0, 40706, 0, 40707, 40708, 26015, 0, 0, 0, 26017, 40709, 0, 40710, 40711, 18700, 20934, 0, 21576, 19649, 19510, 0, 40712, 0, 0, 21550, 18622, 21421, 26020, 18866, 20404, 26019, 26024, 20824, 21954, 0, 26022, 26023, 18957, 0, 26025, 21314, 20670, 40713, 40714, 21456, 21020, 26021, 0, 21798, 18635, 26027, 22279, 20897, 22308, 40715, 40716, 19792, 26026, 40717, 20624, 40718, 0, 26043, 20487, 40719, 0, 21207, 0, 21551, 0, 40721, 40720, 0, 0, 40722, 26030, 19742, 19793, 40723, 20157, 0, 21316, 40724, 19340, 26029, 26028, 0, 21577, 0, 40725, 0, 19872, 0, 40726, 21041, 0, 40727, 27984, 0, 40729, 0, 27985, 40730, 0, 40731, 40732, 0, 26032, 26033, 19511, 26031, 40733, 40734, 0, 40735, 0, 40736, 26034, 26035, 0, 26037, 20610, 40737, 26036, 18885, 0, 26039, 0, 26038, 26040, 0, 27986, 26042, 26044, 0, 26045, 40739, 0, 0, 0, 40740, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20405, 40741, 19886, 26046, 0, 40742, 0, 18737, 40743, 26047, 40744, 0, 20565, 26048, 0, 26049, 21578, 0, 27987, 18958, 0, 0, 0, 0, 0, 0, 0, 40745, 0, 26050, 40746, 0, 40747, 20885, 0, 0, 40748, 0, 18490, 0, 0, 40749, 0, 0, 40750, 40751, 0, 0, 0, 40752, 0, 0, 0, 26051, 0, 0, 0, 0, 40753, 40754, 40755, 0, 0, 19920, 0, 0, 40756, 0, 20309, 0, 0, 40757, 40758, 0, 0, 40759, 0, 0, 40760, 20620, 0, 40761, 0, 40762, 0, 40763, 26054, 40764, 40782, 0, 26053, 0, 40765, 0, 26052, 0, 0, 40766, 40767, 40768, 40769, 0, 40770, 26060, 26058, 0, 40771, 26055, 0, 40772, 0, 0, 40773, 40774, 26057, 40775, 0, 40776, 26056, 26059, 0, 19030, 0, 26063, 0, 20406, 0, 26064, 40777, 40778, 0, 40779, 19384, 0, 26061, 26062, 40780, 0, 0, 22280, 40781, 40783, 40784, 20886, 40785, 20488, 0, 0, 0, 0, 0, 0, 26065, 40786, 0, 26068, 0, 40787, 0, 0, 40788, 40789, 40790, 0, 26066, 26067, 22072, 40791, 0, 0, 0, 21126, 26071, 40792, 0, 0, 40793, 0, 40794, 0, 0, 0, 0, 0, 0, 26069, 26070, 26072, 40795, 40796, 40797, 40832, 0, 0, 40833, 40834, 0, 0, 26120, 0, 0, 0, 0, 0, 26075, 40835, 0, 40836, 26076, 26074, 40837, 40838, 40839, 40840, 0, 0, 0, 40841, 0, 0, 40842, 40843, 26073, 0, 20956, 0, 0, 26112, 26116, 26113, 26077, 40844, 26114, 40845, 40846, 40847, 26115, 0, 0, 0, 40848, 26122, 0, 0, 0, 26117, 0, 40849, 40850, 40851, 40852, 20407, 26119, 40853, 40854, 26121, 26118, 0, 0, 0, 0, 40855, 0, 0, 40856, 40857, 0, 40858, 40859, 40860, 26124, 0, 19986, 0, 26123, 0, 0, 40861, 40862, 40863, 26125, 0, 0, 0, 0, 26126, 40864, 40865, 26129, 26128, 0, 26127, 0, 40866, 26131, 26130, 0, 21973, 0, 0, 40867, 26133, 40868, 26132, 26134, 40869, 0, 0, 0, 26135, 40870, 40871, 0, 40872, 40873, 0, 0, 26137, 40874, 0, 0, 0, 0, 40875, 0, 40876, 26136, 20263, 26138, 40877, 40878, 19148, 26139, 26141, 0, 40879, 0, 40880, 0, 0, 0, 0, 40881, 40882, 0, 0, 26142, 0, 40883, 40884, 0, 40885, 40886, 26143, 26140, 40887, 26144, 0, 19893, 26145, 18959, 19218, 0, 27989, 0, 40889, 19341, 0, 40890, 0, 0, 0, 0, 0, 0, 26146, 40891, 0, 0, 21199, 0, 0, 21021, 26147, 0, 0, 0, 0, 40892, 0, 0, 26150, 0, 40899, 40893, 0, 40894, 40895, 0, 0, 0, 0, 0, 40896, 19859, 40897, 40898, 26149, 26148, 19257, 26151, 0, 40900, 0, 40901, 18738, 0, 26153, 0, 40902, 40903, 19643, 26152, 0, 26161, 0, 0, 40904, 40905, 0, 26155, 26157, 21700, 26154, 40906, 40907, 40908, 26156, 0, 26160, 26158, 18960, 40909, 26159, 40910, 40911, 0, 40912, 0, 40913, 26162, 40914, 40915, 21305, 22199, 0, 40916, 40917, 40918, 19987, 0, 0, 0, 26163, 40919, 40920, 40921, 40922, 22017, 26165, 40923, 26164, 0, 0, 26168, 22048, 40924, 40925, 26167, 40960, 18764, 26166, 26171, 40961, 0, 26170, 0, 0, 26169, 21009, 26172, 40962, 0, 40963, 40964, 40965, 40966, 40967, 0, 26173, 40968, 0, 0, 0, 26174, 40969, 40970, 19531, 0, 19204, 26175, 26176, 26177, 40971, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20264, 26178, 40972, 19852, 26179, 40973, 40974, 0, 26180, 40975, 40976, 40977, 22656, 22621, 0, 0, 0, 0, 26181, 25167, 26182, 20739, 20234, 21279, 0, 0, 40978, 40979, 26183, 40980, 0, 21684, 20915, 19549, 0, 40981, 20744, 40982, 40983, 18441, 0, 21847, 20278, 40984, 0, 0, 0, 40985, 40986, 0, 40987, 19261, 0, 40988, 19136, 40989, 40990, 21685, 40991, 0, 0, 0, 0, 26184, 0, 0, 0, 0, 0, 40992, 0, 26186, 40993, 40994, 26185, 18623, 0, 40995, 21205, 26187, 21334, 0, 21010, 40996, 26188, 20017, 40997, 0, 0, 26190, 40998, 40999, 21921, 26205, 26192, 26193, 41000, 0, 20904, 41001, 0, 20671, 20566, 41002, 21127, 41003, 26191, 18996, 0, 41004, 0, 0, 26200, 41005, 26197, 26244, 21128, 20799, 26194, 0, 20957, 21042, 26195, 26199, 20287, 41006, 21318, 20907, 41007, 0, 20385, 26198, 20621, 20611, 26196, 18312, 22273, 0, 0, 0, 26201, 41008, 41009, 41011, 0, 41012, 41013, 20672, 41010, 0, 19988, 20265, 41014, 41015, 26203, 26202, 41016, 18382, 26204, 0, 0, 21518, 0, 26246, 41017, 0, 21178, 20298, 41018, 41019, 20792, 0, 19159, 0, 26245, 22038, 18462, 41020, 21686, 18624, 26240, 26241, 26242, 26243, 21146, 20738, 18370, 26247, 0, 26248, 27010, 0, 41021, 20636, 41022, 26249, 0, 18514, 20523, 41023, 19342, 0, 22073, 41024, 27992, 26250, 21003, 0, 0, 41026, 20567, 19894, 26251, 41027, 0, 26254, 0, 41028, 20036, 26252, 20490, 20489, 41029, 18371, 0, 22186, 26256, 0, 21457, 26258, 26257, 26255, 24899, 18867, 41030, 0, 26189, 41031, 26260, 26259, 41032, 41033, 0, 41034, 26261, 41035, 22039, 0, 0, 0, 41036, 0, 41037, 41038, 41039, 0, 41040, 0, 0, 0, 0, 41041, 41042, 41043, 21184, 0, 41044, 21773, 0, 26262, 0, 19896, 0, 0, 0, 0, 26263, 41045, 26264, 41046, 41047, 41048, 26265, 41049, 0, 20992, 0, 0, 0, 0, 41050, 41052, 0, 0, 18377, 0, 41053, 41088, 41089, 0, 41090, 41091, 0, 19512, 0, 41051, 0, 22297, 0, 0, 0, 41100, 0, 0, 41092, 0, 41093, 41094, 41095, 0, 26269, 41096, 41097, 27993, 41098, 0, 19219, 26266, 0, 26267, 41099, 0, 0, 21587, 0, 0, 41102, 0, 18739, 0, 41103, 41104, 0, 0, 0, 41105, 22040, 41101, 19102, 0, 0, 0, 0, 0, 21043, 41106, 41107, 41108, 0, 26270, 0, 41109, 41110, 41111, 0, 41112, 0, 0, 0, 0, 41113, 0, 0, 41114, 0, 26271, 0, 41115, 27995, 41116, 41117, 41118, 26272, 41119, 0, 41120, 0, 41121, 0, 41122, 0, 41124, 41125, 0, 41123, 0, 27996, 0, 41127, 0, 0, 0, 20993, 41128, 41129, 26274, 41130, 26273, 0, 41131, 0, 41132, 41133, 0, 41134, 41135, 0, 41136, 41137, 0, 0, 0, 0, 0, 41138, 0, 0, 0, 41139, 41140, 21170, 26275, 19989, 19903, 21306, 20816, 41141, 0, 0, 19921, 41142, 20299, 0, 26276, 41143, 26277, 41144, 41145, 41146, 0, 0, 0, 0, 0, 41147, 20284, 26278, 41148, 26279, 0, 41149, 0, 26280, 22094, 0, 19990, 41150, 0, 0, 0, 0, 26282, 26281, 41151, 19513, 0, 19538, 19743, 41152, 41153, 41154, 0, 0, 0, 0, 0, 41155, 26285, 41156, 0, 41157, 41158, 20037, 0, 26284, 41159, 26283, 0, 20680, 41160, 0, 19406, 41161, 20386, 41162, 41163, 41164, 0, 21391, 41165, 0, 0, 0, 19992, 0, 41166, 0, 0, 41167, 26286, 0, 20158, 0, 41168, 0, 41169, 0, 26289, 26287, 41170, 41171, 41172, 26288, 41173, 41174, 41175, 41176, 26291, 26290, 41177, 0, 20185, 0, 26292, 41178, 41179, 41180, 0, 41181, 26293, 26294, 41216, 41217, 0, 41218, 21423, 19634, 19904, 26295, 0, 26296, 22147, 20004, 21965, 22187, 26297, 19137, 0, 41219, 41220, 0, 26298, 28032, 20994, 41222, 27997, 26301, 18775, 20266, 28033, 26299, 0, 26300, 0, 20927, 28036, 28037, 21812, 19163, 0, 41227, 41228, 0, 41229, 28034, 28035, 41232, 41233, 41234, 0, 0, 0, 26303, 26304, 41235, 0, 41236, 0, 41237, 26302, 41238, 0, 26306, 41239, 41240, 0, 0, 41241, 41242, 28038, 41244, 0, 41245, 28040, 0, 41247, 21182, 18722, 0, 28039, 26310, 41249, 41250, 26307, 26309, 41251, 0, 41252, 0, 0, 0, 41253, 41254, 26305, 0, 0, 0, 0, 41255, 41256, 41257, 41258, 0, 41259, 26414, 0, 0, 26308, 0, 41260, 41261, 41262, 0, 0, 41263, 22218, 41264, 41265, 19385, 41266, 28047, 28041, 0, 28043, 0, 41270, 26318, 28042, 0, 41272, 41273, 21011, 26313, 41274, 41275, 26316, 26314, 41276, 26319, 0, 41277, 28044, 41279, 26320, 28046, 0, 0, 0, 0, 0, 26312, 41281, 28045, 26325, 18515, 41283, 41284, 26311, 0, 41285, 41286, 21388, 0, 26315, 41287, 20159, 28048, 41289, 41290, 0, 0, 0, 0, 41291, 41292, 41293, 19514, 0, 0, 0, 41294, 41295, 28050, 28051, 41298, 0, 41299, 41300, 41301, 21799, 41302, 19139, 0, 0, 20005, 0, 21147, 0, 0, 27651, 41304, 41305, 0, 0, 41306, 41307, 0, 0, 20492, 41308, 26323, 0, 26317, 26322, 41309, 21922, 41344, 20887, 26324, 26321, 0, 0, 41345, 41346, 0, 0, 0, 41347, 41348, 0, 28049, 41350, 0, 0, 41351, 0, 20491, 0, 41352, 0, 0, 41353, 0, 0, 0, 41354, 26328, 41355, 26327, 41356, 41357, 41358, 41359, 0, 41360, 41361, 41362, 41363, 41364, 0, 41365, 41366, 41367, 41368, 0, 0, 41369, 41370, 41371, 41372, 26326, 28055, 0, 21774, 28059, 0, 28057, 0, 28053, 41377, 28054, 0, 0, 41379, 41380, 0, 41381, 28058, 41383, 0, 41384, 20058, 41385, 0, 28052, 41387, 26329, 21694, 0, 41388, 18483, 41389, 0, 41390, 0, 21541, 20817, 0, 0, 0, 0, 19031, 27657, 26331, 28062, 19516, 0, 0, 28065, 41394, 0, 28067, 0, 0, 0, 19723, 0, 41396, 0, 0, 0, 0, 41397, 0, 26330, 20300, 41398, 0, 0, 41399, 41400, 0, 0, 20301, 26368, 26370, 0, 41401, 28066, 28064, 41404, 20186, 28061, 26369, 26371, 41406, 28060, 19122, 41408, 21540, 41409, 41410, 19905, 22274, 0, 26333, 19671, 0, 0, 22302, 41411, 41412, 26373, 41413, 41414, 0, 0, 26372, 26374, 0, 0, 0, 0, 0, 0, 0, 0, 26332, 0, 0, 41415, 27650, 41417, 0, 21192, 0, 21044, 0, 0, 41418, 41419, 41420, 0, 20918, 41421, 26379, 28069, 41423, 0, 41424, 20770, 26375, 0, 41425, 0, 26376, 0, 0, 0, 41426, 41427, 0, 41428, 0, 41429, 41430, 0, 19212, 41431, 26378, 41432, 28068, 41434, 0, 41435, 41436, 19343, 41437, 0, 0, 0, 41472, 0, 26377, 41473, 20160, 41474, 41475, 41476, 41477, 0, 0, 0, 0, 0, 41478, 0, 41479, 41480, 18776, 41481, 0, 41482, 0, 0, 41483, 0, 26383, 41484, 19614, 20568, 41485, 0, 20905, 41486, 0, 0, 41487, 0, 0, 41488, 0, 41489, 28070, 0, 41491, 18714, 41492, 41498, 0, 41493, 26381, 26382, 20898, 0, 26380, 0, 0, 0, 41494, 41495, 41496, 0, 0, 26384, 41497, 0, 0, 0, 0, 0, 0, 41499, 0, 26390, 41500, 41501, 28071, 41503, 26393, 41504, 41505, 41506, 41507, 41508, 0, 0, 26392, 21004, 0, 41509, 0, 0, 26385, 26386, 26389, 41510, 0, 0, 41511, 26391, 28072, 41513, 0, 19103, 41514, 0, 26394, 26388, 41515, 41516, 26387, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41518, 28073, 41517, 41520, 41521, 0, 41522, 0, 0, 0, 41523, 41524, 26398, 41525, 0, 0, 26399, 41526, 41527, 0, 0, 0, 41528, 41529, 41530, 26400, 0, 0, 26397, 26396, 41531, 41532, 41533, 20161, 21129, 26395, 0, 0, 0, 0, 41534, 0, 26404, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26402, 0, 0, 41535, 41536, 0, 28074, 41538, 41539, 41540, 26403, 26401, 0, 20695, 0, 26405, 41541, 0, 41543, 0, 41542, 0, 26406, 0, 41544, 26408, 28075, 0, 0, 28076, 0, 41547, 0, 41548, 0, 0, 0, 0, 18868, 26407, 21977, 0, 41549, 0, 0, 0, 41550, 26419, 26409, 41551, 0, 26412, 41552, 26410, 41553, 26411, 41554, 0, 0, 0, 0, 41555, 0, 26413, 41556, 0, 41557, 41558, 41559, 26415, 41560, 41561, 0, 0, 26416, 0, 26417, 0, 0, 0, 0, 26420, 26418, 26421, 26423, 0, 26422, 0, 41563, 41562, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20888, 41564, 41565, 0, 0, 0, 0, 41600, 0, 21958, 0, 26424, 20493, 41601, 0, 0, 26425, 41602, 21667, 26426, 18698, 41603, 41604, 41605, 18459, 0, 18870, 28077, 18869, 26427, 0, 26428, 0, 26429, 26430, 0, 0, 0, 41606, 41607, 41608, 26431, 41609, 18871, 18740, 19517, 21397, 41610, 26433, 26432, 41611, 0, 41612, 41613, 26434, 0, 0, 0, 0, 18491, 0, 41614, 0, 41615, 0, 0, 26437, 41616, 26436, 26435, 41617, 26438, 41618, 0, 0, 0, 26441, 0, 0, 41619, 18342, 41620, 41621, 26439, 41622, 26443, 26442, 0, 0, 41623, 41624, 41625, 41626, 26445, 26444, 26446, 0, 21133, 41627, 41628, 0, 26447, 41629, 41630, 41631, 41632, 26448, 26450, 0, 41633, 26449, 41634, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21579, 41635, 41636, 0, 0, 26451, 41637, 0, 41638, 41639, 41640, 0, 26452, 0, 19652, 0, 41641, 0, 26453, 26454, 0, 41642, 21800, 41643, 0, 0, 0, 41644, 41645, 41646, 41647, 20522, 41648, 41649, 0, 18307, 20650, 41650, 26455, 0, 21580, 0, 0, 0, 0, 0, 0, 26458, 26456, 19518, 0, 26457, 19361, 0, 41651, 0, 41652, 0, 41653, 41654, 41655, 0, 0, 21668, 26460, 26496, 26461, 26497, 0, 41656, 18432, 20279, 20059, 18872, 26498, 0, 0, 0, 21317, 0, 26500, 0, 41657, 0, 18433, 0, 26499, 20899, 41658, 22188, 21130, 26459, 22149, 0, 19344, 41659, 41660, 22074, 41661, 41662, 0, 41663, 41664, 41665, 41666, 19160, 22163, 0, 19207, 41667, 20673, 25344, 0, 26501, 18699, 20302, 0, 41668, 0, 0, 18741, 26503, 41669, 26504, 26502, 19267, 41670, 19644, 20162, 28080, 0, 41672, 18434, 0, 0, 22200, 41673, 41674, 41675, 26506, 26253, 41676, 26505, 0, 0, 0, 41677, 28081, 26509, 26507, 26508, 41679, 26510, 0, 26511, 22219, 26512, 26513, 41680, 20392, 21402, 0, 0, 0, 20316, 18886, 0, 0, 22041, 18636, 19991, 19386, 0, 26516, 41681, 26515, 19794, 26517, 26514, 0, 0, 19719, 41682, 0, 0, 26521, 25740, 0, 41684, 22709, 41685, 20310, 26519, 41686, 41687, 41688, 0, 0, 22148, 21200, 0, 0, 0, 0, 18442, 41689, 20418, 19861, 0, 0, 0, 41690, 21654, 41691, 18463, 0, 0, 0, 22220, 22090, 0, 26522, 41692, 21028, 0, 0, 0, 0, 19930, 0, 41693, 41728, 26523, 41729, 26524, 20267, 26525, 41730, 22221, 0, 0, 26520, 26527, 26529, 0, 26528, 0, 26526, 0, 0, 26530, 0, 0, 26531, 41731, 41732, 20569, 41733, 18625, 0, 0, 41734, 41735, 41736, 26532, 0, 0, 21911, 41737, 0, 26533, 0, 0, 0, 0, 0, 26534, 41738, 22281, 28082, 0, 0, 0, 0, 23824, 26535, 0, 28083, 0, 26536, 26537, 0, 0, 41740, 26541, 28084, 26538, 0, 26539, 0, 26540, 26542, 41742, 0, 0, 28085, 41743, 28086, 0, 28087, 20387, 0, 0, 28088, 21974, 41746, 41747, 20388, 41748, 41749, 26543, 0, 21458, 0, 26544, 26930, 21931, 41750, 26545, 0, 26546, 41751, 26547, 18742, 41752, 26549, 0, 20280, 41753, 0, 0, 26550, 0, 41754, 19203, 0, 41755, 41756, 41757, 26551, 26555, 41758, 26553, 41759, 0, 41760, 41761, 26554, 0, 0, 18770, 26552, 26556, 0, 0, 41762, 0, 26557, 0, 18343, 0, 26558, 26559, 0, 0, 0, 0, 41763, 41764, 41765, 20163, 41766, 41767, 0, 26560, 0, 41768, 41769, 18982, 0, 41770, 26563, 0, 0, 26562, 0, 26561, 0, 0, 25936, 41771, 21691, 41772, 0, 0, 41773, 41774, 26564, 26565, 41775, 41776, 0, 41777, 41778, 41779, 0, 41780, 0, 41781, 41782, 0, 41783, 0, 26566, 41784, 41785, 26567, 41786, 26568, 41787, 41788, 26569, 41789, 41790, 41791, 0, 41792, 41793, 0, 18873, 41794, 0, 0, 41795, 41796, 41797, 0, 41801, 26570, 41798, 41799, 0, 41800, 41802, 0, 0, 41803, 0, 0, 0, 0, 0, 0, 0, 0, 26571, 21250, 41804, 0, 41805, 26573, 18586, 41806, 26576, 26575, 41807, 41808, 0, 41809, 18435, 0, 0, 0, 19104, 0, 21670, 20889, 19585, 0, 19519, 20038, 41810, 20283, 0, 41811, 0, 26578, 41813, 41814, 26577, 22049, 18887, 21425, 21179, 41815, 0, 41816, 20315, 22189, 41812, 19258, 0, 41817, 0, 41818, 0, 41819, 26581, 0, 41820, 26580, 41863, 41821, 0, 0, 0, 0, 41856, 21802, 21131, 41857, 41858, 41859, 0, 41860, 41861, 18479, 41862, 0, 26582, 26579, 0, 0, 21552, 22089, 26583, 41864, 0, 0, 0, 0, 0, 41865, 0, 26584, 41866, 0, 0, 41867, 26586, 20681, 18746, 18747, 26585, 0, 41868, 41869, 41870, 18888, 19345, 41871, 28089, 18889, 41873, 41874, 21022, 0, 0, 22207, 0, 0, 0, 41875, 41876, 0, 28090, 41878, 19387, 0, 0, 41879, 26587, 41880, 0, 0, 26588, 26589, 26624, 0, 26626, 26625, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21590, 0, 26627, 41881, 0, 41882, 41883, 26628, 41884, 26629, 0, 0, 41885, 0, 26630, 41886, 41887, 0, 41888, 41889, 0, 0, 0, 41890, 0, 0, 41891, 26632, 26631, 41892, 26633, 0, 41893, 0, 0, 0, 41894, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21459, 25259, 0, 0, 20232, 0, 41895, 18961, 41896, 0, 41897, 41898, 41899, 0, 26634, 41900, 26635, 0, 22667, 24090, 21426, 0, 0, 18394, 41901, 18330, 0, 41902, 0, 0, 0, 0, 0, 19795, 21775, 20189, 0, 0, 0, 41903, 26636, 0, 21950, 0, 41904, 41905, 26637, 22075, 0, 18465, 0, 0, 0, 19744, 41906, 26638, 18637, 26639, 41907, 41908, 41909, 26640, 0, 41910, 41911, 41912, 26642, 26643, 41913, 26645, 26641, 41914, 0, 26644, 0, 41915, 28093, 18874, 0, 0, 41917, 26646, 0, 26647, 0, 0, 41918, 41919, 41920, 41921, 41922, 0, 0, 0, 41923, 41924, 41925, 41926, 26648, 26649, 0, 41927, 41928, 26650, 0, 0, 26652, 41929, 41930, 41931, 26651, 0, 26654, 26657, 41932, 41933, 0, 26653, 26655, 26656, 0, 41934, 26658, 0, 19105, 41935, 41936, 0, 41937, 41938, 0, 41939, 41940, 41941, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19922, 26659, 26660, 19520, 0, 41942, 0, 41943, 28095, 41944, 0, 0, 0, 0, 0, 26661, 41945, 0, 18717, 0, 0, 0, 21294, 26662, 26663, 0, 41946, 41947, 41948, 20793, 21194, 41949, 0, 0, 0, 41984, 41985, 0, 26664, 41986, 0, 41987, 0, 21340, 0, 41988, 20651, 18487, 19149, 0, 19150, 41989, 0, 0, 0, 0, 0, 0, 20818, 26669, 19151, 41990, 41991, 18638, 0, 0, 26668, 41992, 41993, 26666, 41994, 26667, 41995, 26665, 0, 0, 26679, 0, 0, 0, 0, 41996, 0, 0, 41997, 41998, 41999, 26670, 26671, 0, 42000, 26672, 26673, 0, 42001, 42002, 0, 0, 26675, 42003, 0, 26674, 0, 42004, 42005, 20024, 0, 26676, 42006, 42007, 42008, 26678, 0, 0, 0, 0, 0, 42009, 42010, 0, 18962, 26677, 42011, 42012, 20570, 19346, 0, 0, 42013, 0, 0, 26680, 0, 0, 0, 0, 42014, 0, 42015, 0, 42016, 42017, 42018, 0, 0, 42019, 20652, 0, 0, 26681, 0, 42020, 42021, 0, 21132, 0, 0, 42022, 0, 42023, 42024, 26682, 42025, 0, 0, 0, 0, 0, 26687, 0, 26685, 42027, 26684, 26686, 42028, 26683, 0, 42026, 0, 0, 42029, 42030, 42031, 26689, 28096, 0, 0, 42033, 0, 0, 42034, 26688, 42035, 26691, 0, 0, 19106, 26690, 0, 42036, 0, 26692, 0, 0, 26693, 0, 26695, 26694, 0, 0, 0, 26696, 26698, 26697, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19547, 0, 42037, 0, 42038, 26699, 42039, 42040, 26700, 0, 42041, 0, 42042, 42043, 42044, 0, 18715, 42045, 0, 42046, 26701, 0, 42047, 42048, 26702, 42049, 0, 42050, 20304, 0, 42051, 0, 42052, 0, 0, 0, 0, 0, 42053, 26703, 42054, 26704, 42055, 26705, 26706, 42056, 42057, 42058, 19521, 28097, 0, 42059, 28098, 0, 26707, 26708, 42061, 0, 26709, 26710, 42062, 42063, 26711, 42064, 0, 42065, 21392, 26713, 42066, 21509, 26714, 26712, 0, 26716, 42067, 42068, 26715, 42069, 0, 26717, 0, 42070, 42071, 26752, 0, 42072, 0, 42073, 42074, 42075, 42076, 42077, 42112, 42113, 26753, 0, 42114, 42115, 0, 42116, 42117, 42118, 42119, 0, 42120, 0, 42121, 0, 0, 0, 42122, 0, 26754, 42123, 26755, 42124, 42125, 0, 0, 26756, 42126, 0, 26757, 26758, 0, 26759, 42127, 26760, 26761, 26762, 26763, 42128, 0, 42129, 26764, 26765, 0, 24084, 26766, 42130, 42131, 42132, 0, 42133, 0, 42134, 42135, 25047, 18963, 42136, 0, 0, 0, 18688, 19601, 26768, 26767, 21892, 0, 0, 42137, 0, 0, 42138, 42139, 26770, 26771, 26769, 0, 26772, 0, 0, 21825, 42140, 42141, 42142, 26773, 0, 19034, 42143, 0, 0, 42144, 0, 0, 42145, 0, 42146, 0, 42147, 42148, 0, 42149, 0, 42150, 42151, 42152, 42153, 42154, 22276, 0, 0, 28100, 42155, 26774, 28099, 0, 42157, 42158, 42159, 0, 0, 0, 0, 0, 42160, 42161, 0, 0, 26776, 42162, 42163, 42164, 42165, 0, 42166, 42167, 42168, 0, 42169, 18333, 28101, 42171, 26777, 21642, 26775, 42172, 0, 26778, 26779, 0, 0, 42173, 0, 0, 42174, 42175, 26780, 26781, 0, 0, 0, 0, 0, 42176, 42177, 26782, 42178, 21837, 19724, 42179, 19673, 20494, 0, 42180, 28102, 42182, 0, 26783, 0, 0, 42183, 42184, 26786, 0, 28103, 42186, 0, 42187, 42188, 26784, 42189, 0, 0, 0, 0, 26787, 42190, 42191, 19408, 26785, 0, 0, 0, 42192, 26788, 42193, 26789, 26790, 0, 26794, 0, 19721, 42194, 42195, 0, 0, 20675, 0, 42196, 0, 42197, 0, 26795, 26792, 26791, 26793, 42198, 0, 42199, 19262, 0, 42200, 42201, 0, 0, 0, 42202, 26799, 26798, 26797, 42203, 0, 18322, 0, 42204, 42205, 42240, 42241, 0, 0, 42242, 0, 42243, 28104, 0, 42245, 0, 26809, 0, 26805, 0, 26806, 26802, 26808, 42246, 26804, 18753, 0, 42247, 22315, 42248, 26807, 26803, 26801, 26800, 42249, 0, 42250, 42251, 42252, 26811, 42253, 0, 42254, 0, 0, 26814, 42255, 42256, 26813, 26812, 42257, 42258, 42259, 42260, 42261, 0, 0, 21544, 26810, 18386, 26815, 42262, 26817, 0, 0, 42263, 42264, 42265, 0, 18766, 26796, 18454, 0, 42266, 26819, 0, 0, 42267, 0, 42268, 42269, 42270, 26818, 26816, 20748, 42271, 42272, 0, 0, 0, 42273, 42274, 42275, 0, 21839, 42276, 42277, 0, 42278, 22201, 42279, 0, 26820, 42280, 42287, 42281, 42282, 42283, 26821, 0, 0, 42284, 0, 0, 0, 26822, 42289, 42285, 42286, 42288, 0, 0, 42290, 0, 42291, 0, 42292, 0, 0, 42293, 26823, 42294, 26824, 0, 0, 42295, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20890, 42296, 26825, 0, 21398, 0, 26830, 26826, 0, 0, 0, 26827, 0, 42297, 21776, 21923, 0, 21167, 42298, 0, 42299, 0, 0, 0, 0, 0, 0, 0, 0, 42301, 26831, 0, 0, 26832, 21149, 26829, 26828, 0, 42300, 0, 0, 18569, 0, 0, 42302, 26840, 0, 0, 26839, 0, 42303, 42304, 0, 0, 18516, 42305, 42306, 42307, 26837, 0, 0, 0, 26836, 0, 0, 26834, 0, 18778, 0, 26833, 19857, 18568, 0, 0, 42308, 42309, 0, 42310, 42311, 42312, 0, 0, 0, 0, 0, 42313, 19522, 42314, 42316, 26843, 26842, 0, 26841, 42317, 42318, 26838, 42315, 26844, 42319, 26845, 0, 42320, 0, 0, 0, 0, 0, 26884, 26883, 0, 42321, 42322, 0, 0, 0, 0, 26885, 0, 0, 18444, 26880, 26881, 42323, 19539, 21912, 42325, 42324, 26882, 42326, 0, 0, 0, 42327, 42328, 28106, 21777, 0, 0, 26890, 28105, 0, 26886, 0, 0, 0, 42331, 42332, 0, 0, 26891, 42333, 42368, 0, 42369, 0, 0, 0, 0, 42370, 42371, 0, 42372, 26888, 0, 26887, 42373, 0, 0, 42374, 42375, 19259, 0, 0, 42376, 42377, 0, 42378, 42379, 42380, 42381, 0, 26892, 0, 0, 0, 0, 0, 0, 42382, 0, 0, 26893, 0, 0, 0, 0, 26894, 42383, 26889, 42384, 0, 42385, 26835, 0, 42386, 26895, 0, 20928, 42387, 0, 0, 26899, 42388, 26900, 26898, 42389, 0, 0, 42390, 0, 26897, 26903, 42391, 26896, 0, 26901, 42392, 0, 42393, 42394, 0, 0, 0, 0, 26902, 0, 0, 0, 26905, 42395, 42396, 42397, 42398, 0, 26904, 42399, 0, 0, 0, 42400, 42401, 42402, 0, 0, 0, 0, 42403, 26907, 42404, 0, 42405, 0, 42406, 0, 26908, 42407, 26909, 42408, 0, 22312, 42409, 42410, 0, 0, 0, 26906, 20682, 19660, 0, 0, 26910, 42411, 0, 0, 0, 42413, 0, 0, 0, 0, 42414, 0, 0, 42412, 0, 0, 0, 42415, 0, 42416, 42417, 42418, 0, 0, 42419, 42420, 0, 0, 28108, 26911, 26912, 42422, 42423, 26913, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26914, 0, 0, 19347, 26915, 42424, 42425, 42426, 26916, 0, 19854, 42427, 26917, 42428, 42429, 42430, 42431, 0, 42432, 26918, 0, 0, 26919, 26920, 0, 42433, 42434, 0, 26923, 26921, 22299, 0, 26922, 42435, 22222, 42436, 0, 0, 42437, 0, 26924, 42438, 22202, 0, 0, 0, 0, 42439, 26925, 21341, 0, 42440, 26926, 26928, 0, 42441, 26929, 42442, 42443, 42444, 0, 0, 42445, 42446, 42447, 0, 0, 26927, 19532, 21932, 21826, 23254, 0, 24127, 21850, 0, 0, 0, 0, 18570, 0, 42448, 0, 42449, 0, 0, 42450, 26931, 18991, 26932, 26933, 26934, 28109, 19540, 0, 26935, 42451, 0, 0, 24499, 21946, 0, 20674, 26936, 26938, 26937, 42452, 26939, 0, 0, 0, 42453, 26940, 0, 42454, 26941, 0, 0, 0, 42455, 42456, 42457, 26942, 42458, 42459, 42460, 0, 26943, 42461, 26944, 26945, 42496, 26946, 0, 26947, 26948, 26949, 0, 42497, 0, 0, 42498, 42499, 0, 0, 0, 26950, 26951, 42500, 0, 0, 0, 0, 20995, 42501, 42502, 42503, 42504, 19388, 42505, 26953, 42506, 42507, 0, 42508, 42509, 42510, 0, 0, 0, 42511, 20524, 26954, 42512, 0, 0, 0, 42513, 0, 0, 0, 42514, 42515, 26955, 0, 0, 42516, 0, 42517, 42518, 0, 42519, 0, 0, 42520, 0, 42521, 42522, 21504, 42523, 42524, 26956, 42525, 0, 42526, 0, 42527, 42528, 42529, 42530, 42531, 0, 0, 26957, 24854, 0, 0, 26041, 26572, 0, 0, 26958, 42532, 26959, 42533, 42534, 42535, 42536, 0, 42537, 0, 0, 42538, 42539, 26961, 26962, 26963, 22223, 26960, 0, 0, 26964, 26965, 42540, 42541, 26967, 0, 26966, 42542, 42543, 42544, 42545, 42546, 26969, 42547, 0, 42548, 26970, 26968, 0, 0, 42549, 0, 0, 42550, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22165, 0, 42551, 42552, 42553, 42554, 0, 42555, 26971, 42556, 42557, 0, 0, 0, 0, 26972, 24883, 42558, 0, 26973, 42559, 42560, 42561, 0, 42562]); + encode1 = $toNativeArray($kindUint16, [16413, 0, 0, 0, 0, 16412, 0, 0, 16421, 16422, 0, 0, 16423, 16424, 0, 0, 16598, 16599, 0, 0, 0, 16420, 16419, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16594, 0, 16459, 16460, 0, 0, 0, 0, 0, 0, 0, 16519, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16461, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17985, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17987, 32974, 0, 0, 0, 0, 0, 0, 0, 0, 16593, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17940, 17941, 17942, 17943, 17944, 17945, 17946, 17947, 17948, 17949, 0, 0, 0, 0, 0, 0, 28112, 28113, 28114, 28115, 28116, 28117, 28118, 28119, 28120, 28121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16522, 16523, 16521, 16524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16556, 0, 16557, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16558, 0, 16574, 16559, 0, 0, 0, 16575, 16537, 0, 0, 16538, 0, 0, 0, 0, 0, 18003, 0, 0, 0, 0, 0, 0, 0, 0, 16580, 0, 0, 16582, 16454, 18007, 16571, 0, 0, 0, 0, 16417, 0, 16553, 16554, 16544, 16543, 16584, 16585, 0, 18002, 0, 0, 0, 0, 0, 16455, 16583, 0, 0, 0, 0, 0, 0, 0, 16581, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16449, 16576, 0, 0, 0, 0, 16452, 16453, 0, 0, 16578, 16579, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16541, 16542, 0, 0, 16539, 16540, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16572, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18008, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16573, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17920, 17921, 17922, 17923, 17924, 17925, 17926, 17927, 17928, 17929, 17930, 17931, 17932, 17933, 17934, 17935, 17936, 17937, 17938, 17939, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17280, 17291, 17281, 17292, 0, 0, 0, 0, 0, 0, 0, 0, 17282, 0, 0, 17293, 17283, 0, 0, 17294, 17285, 0, 0, 17296, 17284, 0, 0, 17295, 17286, 17307, 0, 0, 17302, 0, 0, 17297, 17288, 17309, 0, 0, 17304, 0, 0, 17299, 17287, 0, 0, 17303, 17308, 0, 0, 17298, 17289, 0, 0, 17305, 17310, 0, 0, 17300, 17290, 0, 0, 17306, 0, 0, 17311, 0, 0, 0, 0, 0, 0, 0, 0, 17301, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16514, 16513, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16516, 16515, 0, 0, 0, 0, 0, 0, 0, 0, 16518, 16517, 0, 0, 0, 0, 0, 0, 0, 0, 16512, 16477, 0, 0, 0, 16474, 0, 0, 16476, 16475, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16605, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16473, 16472, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16457, 0, 16456, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16597, 0, 0, 16596, 0, 16595]); + encode2 = $toNativeArray($kindUint16, [16384, 16385, 16386, 16406, 0, 16408, 16409, 16410, 16433, 16434, 16435, 16436, 16437, 16438, 16439, 16440, 16441, 16442, 16520, 16525, 16427, 16428, 0, 0, 0, 0, 0, 0, 0, 17983, 0, 17984, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16768, 16769, 16770, 16771, 16772, 16773, 16774, 16775, 16776, 16777, 16778, 16779, 16780, 16781, 16782, 16783, 16784, 16785, 16786, 16787, 16788, 16789, 16790, 16791, 16792, 16793, 16794, 16795, 16796, 16797, 16798, 16799, 16800, 16801, 16802, 16803, 16804, 16805, 16806, 16807, 16808, 16809, 16810, 16811, 16812, 16813, 16814, 16815, 16816, 16817, 16818, 16819, 16820, 16821, 16822, 16823, 16824, 16825, 16826, 16827, 16828, 16829, 16830, 16831, 16832, 16833, 16834, 16835, 16836, 16837, 16838, 16839, 16840, 16841, 16842, 16843, 16844, 16845, 16846, 16847, 16848, 16849, 16850, 0, 0, 0, 0, 0, 0, 0, 16394, 16395, 16404, 16405, 0, 0, 16896, 16897, 16898, 16899, 16900, 16901, 16902, 16903, 16904, 16905, 16906, 16907, 16908, 16909, 16910, 16911, 16912, 16913, 16914, 16915, 16916, 16917, 16918, 16919, 16920, 16921, 16922, 16923, 16924, 16925, 16926, 16927, 16928, 16929, 16930, 16931, 16932, 16933, 16934, 16935, 16936, 16937, 16938, 16939, 16940, 16941, 16942, 16943, 16944, 16945, 16946, 16947, 16948, 16949, 16950, 16951, 16952, 16953, 16954, 16955, 16956, 16957, 16958, 16959, 16960, 16961, 16962, 16963, 16964, 16965, 16966, 16967, 16968, 16969, 16970, 16971, 16972, 16973, 16974, 16975, 16976, 16977, 16978, 16979, 16980, 16981, 0, 0, 0, 0, 16389, 16411, 16402, 16403, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17993, 17994, 0, 0, 0, 0, 0, 0, 17995, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17988, 17989, 17990, 17991, 17992, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17957, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17961, 0, 0, 0, 0, 0, 0, 17952, 0, 0, 0, 17955, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17953, 17963, 0, 0, 17962, 17956, 0, 0, 0, 17964, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17958, 0, 0, 0, 0, 17966, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17951, 17965, 0, 0, 17954, 0, 0, 0, 17959, 0, 0, 0, 0, 0, 17960, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17982, 17998, 17997, 17996, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17970, 17971, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17967, 17968, 17969, 0, 0, 17973, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17972, 0, 0, 0, 0, 0, 0, 0, 0, 17986]); + encode3 = $toNativeArray($kindUint16, [32929, 0, 0, 32975, 0, 32930, 16471, 16398, 32972, 32971, 0, 0, 0, 32973, 32915, 16458, 16445, 0, 0, 16396, 0, 16600, 0, 32912, 0, 32970, 0, 0, 0, 0, 32931, 33921, 33920, 33923, 33929, 33922, 33928, 33792, 33933, 33937, 33936, 33939, 33938, 33951, 33950, 33953, 33952, 0, 33967, 33969, 33968, 33971, 33975, 33970, 16446, 33803, 33986, 33985, 33988, 33987, 34001, 33807, 33837, 34049, 34048, 34051, 34057, 34050, 34056, 33824, 34061, 34065, 34064, 34067, 34066, 34079, 34078, 34081, 34080, 33826, 34095, 34097, 34096, 34099, 34103, 34098, 16447, 33835, 34114, 34113, 34116, 34115, 34129, 33839, 34130, 33926, 34054, 33924, 34052, 33927, 34055, 33930, 34058, 33931, 34059, 33934, 34062, 33932, 34060, 33935, 34063, 33793, 33825, 33942, 34070, 0, 0, 33941, 34069, 33943, 34071, 33940, 34068, 33945, 34073, 33946, 34074, 33948, 34076, 33947, 0, 33949, 34077, 33795, 33827, 33958, 34086, 33956, 34084, 0, 0, 33957, 34085, 33955, 33828, 33797, 33829, 33959, 34087, 33960, 34088, 33830, 33961, 34089, 33963, 34091, 33962, 34090, 33800, 33832, 33799, 33831, 33964, 34092, 33966, 34094, 33965, 34093, 33833, 33802, 33834, 33974, 34102, 0, 0, 33973, 34101, 33804, 33836, 33976, 34104, 33978, 34106, 33977, 34105, 33979, 34107, 33980, 34108, 33982, 34110, 33981, 34109, 33984, 34112, 33983, 34111, 33806, 33838, 33995, 34123, 33992, 34120, 33989, 34117, 33994, 34122, 33991, 34119, 33993, 34121, 34000, 34128, 34003, 34131, 34002, 34004, 34132, 34006, 34134, 34005, 34133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33925, 34053, 33954, 34082, 33972, 34100, 33990, 34118, 33999, 34127, 33996, 34124, 33998, 34126, 33997, 34125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34072, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32911, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32910, 32913, 32917, 32916, 0, 32914, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32919, 32920, 33472, 0, 33473, 33474, 33475, 0, 33478, 0, 33480, 33483, 33493, 17024, 17025, 17026, 17027, 17028, 17029, 17030, 17031, 17032, 17033, 17034, 17035, 17036, 17037, 17038, 17039, 17040, 0, 17041, 17042, 17043, 17044, 17045, 17046, 17047, 33476, 33481, 33488, 33489, 33490, 33491, 33498, 17056, 17057, 17058, 17059, 17060, 17061, 17062, 17063, 17064, 17065, 17066, 17067, 17068, 17069, 17070, 17071, 17072, 33495, 17073, 17074, 17075, 17076, 17077, 17078, 17079, 33492, 33497, 33494, 33496, 33499, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17158, 33569, 33570, 33571, 33572, 33573, 33574, 33575, 33576, 33577, 33578, 33579, 0, 33580, 33581, 17152, 17153, 17154, 17155, 17156, 17157, 17159, 17160, 17161, 17162, 17163, 17164, 17165, 17166, 17167, 17168, 17169, 17170, 17171, 17172, 17173, 17174, 17175, 17176, 17177, 17178, 17179, 17180, 17181, 17182, 17183, 17184, 17200, 17201, 17202, 17203, 17204, 17205, 17207, 17208, 17209, 17210, 17211, 17212, 17213, 17214, 17215, 17216, 17217, 17218, 17219, 17220, 17221, 17222, 17223, 17224, 17225, 17226, 17227, 17228, 17229, 17230, 17231, 17232, 0, 17206, 33617, 33618, 33619, 33620, 33621, 33622, 33623, 33624, 33625, 33626, 33627, 0, 33628, 33629]); + encode4 = $toNativeArray($kindUint16, [27813, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28078, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27699, 27710, 27711, 27732, 27805, 27821, 27823, 27866, 27906, 27929, 27937, 27938, 27939, 27941, 27945, 27948, 27957, 27968, 27970, 27971, 27980, 27988, 27990, 27991, 27994, 28056, 28063, 28079, 28091, 28092, 28094, 28107]); + encode5 = $toNativeArray($kindUint16, [16393, 28125, 16467, 16463, 16466, 16468, 28124, 16425, 16426, 16469, 16443, 16387, 16444, 16388, 16414, 16655, 16656, 16657, 16658, 16659, 16660, 16661, 16662, 16663, 16664, 16390, 16391, 16450, 16448, 16451, 16392, 16470, 16672, 16673, 16674, 16675, 16676, 16677, 16678, 16679, 16680, 16681, 16682, 16683, 16684, 16685, 16686, 16687, 16688, 16689, 16690, 16691, 16692, 16693, 16694, 16695, 16696, 16697, 16429, 16415, 16430, 16399, 16401, 16397, 16704, 16705, 16706, 16707, 16708, 16709, 16710, 16711, 16712, 16713, 16714, 16715, 16716, 16717, 16718, 16719, 16720, 16721, 16722, 16723, 16724, 16725, 16726, 16727, 16728, 16729, 16431, 16418, 16432, 16416, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16464, 16465, 16555, 16400, 28123, 16462]); + init(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["golang.org/x/text/encoding/korean"] = (function() { + var $pkg = {}, $init, encoding, internal, identifier, transform, utf8, eucKRDecoder, eucKREncoder, sliceType$1, eucKR, eucKR$24ptr, decode, encode0, encode1, encode2, encode3, encode4, encode5, encode6, x, x$1, init; + encoding = $packages["golang.org/x/text/encoding"]; + internal = $packages["golang.org/x/text/encoding/internal"]; + identifier = $packages["golang.org/x/text/encoding/internal/identifier"]; + transform = $packages["golang.org/x/text/transform"]; + utf8 = $packages["unicode/utf8"]; + eucKRDecoder = $pkg.eucKRDecoder = $newType(0, $kindStruct, "korean.eucKRDecoder", true, "golang.org/x/text/encoding/korean", false, function(NopResetter_) { + this.$val = this; + if (arguments.length === 0) { + this.NopResetter = new transform.NopResetter.ptr(); + return; + } + this.NopResetter = NopResetter_; + }); + eucKREncoder = $pkg.eucKREncoder = $newType(0, $kindStruct, "korean.eucKREncoder", true, "golang.org/x/text/encoding/korean", false, function(NopResetter_) { + this.$val = this; + if (arguments.length === 0) { + this.NopResetter = new transform.NopResetter.ptr(); + return; + } + this.NopResetter = NopResetter_; + }); + sliceType$1 = $sliceType($Uint8); + eucKRDecoder.ptr.prototype.Transform = function(dst, src, atEOF) { + var _tmp, _tmp$1, _tmp$10, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, atEOF, c0, c1, dst, err, nDst, nSrc, r, size, src, x$2, $s; + /* */ $s = 0; s: while (true) { switch ($s) { case 0: + nDst = 0; + nSrc = 0; + err = $ifaceNil; + _tmp = 0; + _tmp$1 = 0; + r = _tmp; + size = _tmp$1; + /* while (true) { */ case 1: + /* if (!(nSrc < src.$length)) { break; } */ if(!(nSrc < src.$length)) { $s = 2; continue; } + c0 = ((nSrc < 0 || nSrc >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + nSrc]); + /* */ if (c0 < 128) { $s = 4; continue; } + /* */ if (129 <= c0 && c0 < 255) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (c0 < 128) { */ case 4: + _tmp$2 = ((c0 >> 0)); + _tmp$3 = 1; + r = _tmp$2; + size = _tmp$3; + $s = 7; continue; + /* } else if (129 <= c0 && c0 < 255) { */ case 5: + if ((nSrc + 1 >> 0) >= src.$length) { + if (!atEOF) { + err = transform.ErrShortSrc; + /* break loop; */ $s = 2; continue s; + } + _tmp$4 = 65533; + _tmp$5 = 1; + r = _tmp$4; + size = _tmp$5; + /* break; */ $s = 3; continue; + } + c1 = (x$2 = nSrc + 1 >> 0, ((x$2 < 0 || x$2 >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x$2])); + size = 2; + /* */ if (c0 < 199) { $s = 8; continue; } + /* */ if (161 <= c1 && c1 < 255) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (c0 < 199) { */ case 8: + r = $imul(178, (((c0 - 129 << 24 >>> 24) >> 0))); + /* */ if (65 <= c1 && c1 < 91) { $s = 13; continue; } + /* */ if (97 <= c1 && c1 < 123) { $s = 14; continue; } + /* */ if (129 <= c1 && c1 < 255) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (65 <= c1 && c1 < 91) { */ case 13: + r = r + ((((c1 >> 0)) - 65 >> 0)) >> 0; + $s = 17; continue; + /* } else if (97 <= c1 && c1 < 123) { */ case 14: + r = r + ((((c1 >> 0)) - 71 >> 0)) >> 0; + $s = 17; continue; + /* } else if (129 <= c1 && c1 < 255) { */ case 15: + r = r + ((((c1 >> 0)) - 77 >> 0)) >> 0; + $s = 17; continue; + /* } else { */ case 16: + /* goto decError */ $s = 18; continue; + /* } */ case 17: + case 12: + $s = 11; continue; + /* } else if (161 <= c1 && c1 < 255) { */ case 9: + r = (12460 + ($imul((((c0 - 199 << 24 >>> 24) >> 0)), 94)) >> 0) + (((c1 - 161 << 24 >>> 24) >> 0)) >> 0; + $s = 11; continue; + /* } else { */ case 10: + /* goto decError */ $s = 18; continue; + /* } */ case 11: + if (((r >> 0)) < 17630) { + r = ((((r < 0 || r >= decode.length) ? ($throwRuntimeError("index out of range"), undefined) : decode[r]) >> 0)); + if (!((r === 0))) { + /* break; */ $s = 3; continue; + } + } + /* decError: */ case 18: + r = 65533; + if (c1 < 128) { + size = 1; + } + $s = 7; continue; + /* } else { */ case 6: + _tmp$6 = 65533; + _tmp$7 = 1; + r = _tmp$6; + size = _tmp$7; + /* break; */ $s = 3; continue; + /* } */ case 7: + case 3: + if ((nDst + utf8.RuneLen(r) >> 0) > dst.$length) { + err = transform.ErrShortDst; + /* break; */ $s = 2; continue; + } + nDst = nDst + (utf8.EncodeRune($subslice(dst, nDst), r)) >> 0; + nSrc = nSrc + (size) >> 0; + /* } */ $s = 1; continue; case 2: + _tmp$8 = nDst; + _tmp$9 = nSrc; + _tmp$10 = err; + nDst = _tmp$8; + nSrc = _tmp$9; + err = _tmp$10; + $s = -1; return [nDst, nSrc, err]; + /* */ } return; } + }; + eucKRDecoder.prototype.Transform = function(dst, src, atEOF) { return this.$val.Transform(dst, src, atEOF); }; + eucKREncoder.ptr.prototype.Transform = function(dst, src, atEOF) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tuple, atEOF, dst, err, nDst, nSrc, r, size, src, x$10, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s; + /* */ $s = 0; s: while (true) { switch ($s) { case 0: + nDst = 0; + nSrc = 0; + err = $ifaceNil; + _tmp = 0; + _tmp$1 = 0; + r = _tmp; + size = _tmp$1; + /* while (true) { */ case 1: + /* if (!(nSrc < src.$length)) { break; } */ if(!(nSrc < src.$length)) { $s = 2; continue; } + r = ((((nSrc < 0 || nSrc >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + nSrc]) >> 0)); + /* */ if (r < 128) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (r < 128) { */ case 3: + size = 1; + if (nDst >= dst.$length) { + err = transform.ErrShortDst; + /* break; */ $s = 2; continue; + } + ((nDst < 0 || nDst >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + nDst] = ((r << 24 >>> 24))); + nDst = nDst + (1) >> 0; + nSrc = nSrc + (size) >> 0; + /* continue; */ $s = 1; continue; + $s = 5; continue; + /* } else { */ case 4: + _tuple = utf8.DecodeRune($subslice(src, nSrc)); + r = _tuple[0]; + size = _tuple[1]; + if (size === 1) { + if (!atEOF && !utf8.FullRune($subslice(src, nSrc))) { + err = transform.ErrShortSrc; + /* break; */ $s = 2; continue; + } + } + /* */ if (19968 <= r && r < 40861) { $s = 7; continue; } + /* */ if (44032 <= r && r < 55204) { $s = 8; continue; } + /* */ if (8213 <= r && r < 9838) { $s = 9; continue; } + /* */ if (12288 <= r && r < 13278) { $s = 10; continue; } + /* */ if (161 <= r && r < 1106) { $s = 11; continue; } + /* */ if (63744 <= r && r < 64012) { $s = 12; continue; } + /* */ if (65281 <= r && r < 65511) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (19968 <= r && r < 40861) { */ case 7: + r = (((x$2 = r - 19968 >> 0, ((x$2 < 0 || x$2 >= encode0.length) ? ($throwRuntimeError("index out of range"), undefined) : encode0[x$2])) >> 0)); + /* */ if (!((r === 0))) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (!((r === 0))) { */ case 15: + /* goto write2 */ $s = 17; continue; + /* } */ case 16: + $s = 14; continue; + /* } else if (44032 <= r && r < 55204) { */ case 8: + r = (((x$3 = r - 44032 >> 0, ((x$3 < 0 || x$3 >= encode1.length) ? ($throwRuntimeError("index out of range"), undefined) : encode1[x$3])) >> 0)); + /* */ if (!((r === 0))) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (!((r === 0))) { */ case 18: + /* goto write2 */ $s = 17; continue; + /* } */ case 19: + $s = 14; continue; + /* } else if (8213 <= r && r < 9838) { */ case 9: + r = (((x$4 = r - 8213 >> 0, ((x$4 < 0 || x$4 >= encode2.length) ? ($throwRuntimeError("index out of range"), undefined) : encode2[x$4])) >> 0)); + /* */ if (!((r === 0))) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (!((r === 0))) { */ case 20: + /* goto write2 */ $s = 17; continue; + /* } */ case 21: + $s = 14; continue; + /* } else if (12288 <= r && r < 13278) { */ case 10: + r = (((x$5 = r - 12288 >> 0, ((x$5 < 0 || x$5 >= encode3.length) ? ($throwRuntimeError("index out of range"), undefined) : encode3[x$5])) >> 0)); + /* */ if (!((r === 0))) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (!((r === 0))) { */ case 22: + /* goto write2 */ $s = 17; continue; + /* } */ case 23: + $s = 14; continue; + /* } else if (161 <= r && r < 1106) { */ case 11: + r = (((x$6 = r - 161 >> 0, ((x$6 < 0 || x$6 >= encode4.length) ? ($throwRuntimeError("index out of range"), undefined) : encode4[x$6])) >> 0)); + /* */ if (!((r === 0))) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if (!((r === 0))) { */ case 24: + /* goto write2 */ $s = 17; continue; + /* } */ case 25: + $s = 14; continue; + /* } else if (63744 <= r && r < 64012) { */ case 12: + r = (((x$7 = r - 63744 >> 0, ((x$7 < 0 || x$7 >= encode5.length) ? ($throwRuntimeError("index out of range"), undefined) : encode5[x$7])) >> 0)); + /* */ if (!((r === 0))) { $s = 26; continue; } + /* */ $s = 27; continue; + /* if (!((r === 0))) { */ case 26: + /* goto write2 */ $s = 17; continue; + /* } */ case 27: + $s = 14; continue; + /* } else if (65281 <= r && r < 65511) { */ case 13: + r = (((x$8 = r - 65281 >> 0, ((x$8 < 0 || x$8 >= encode6.length) ? ($throwRuntimeError("index out of range"), undefined) : encode6[x$8])) >> 0)); + /* */ if (!((r === 0))) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if (!((r === 0))) { */ case 28: + /* goto write2 */ $s = 17; continue; + /* } */ case 29: + /* } */ case 14: + case 6: + err = new internal.RepertoireError(internal.ErrASCIIReplacement); + /* break; */ $s = 2; continue; + /* } */ case 5: + /* write2: */ case 17: + if ((nDst + 2 >> 0) > dst.$length) { + err = transform.ErrShortDst; + /* break; */ $s = 2; continue; + } + (x$9 = nDst + 0 >> 0, ((x$9 < 0 || x$9 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$9] = (((r >> 8 >> 0) << 24 >>> 24)))); + (x$10 = nDst + 1 >> 0, ((x$10 < 0 || x$10 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$10] = ((r << 24 >>> 24)))); + nDst = nDst + (2) >> 0; + nSrc = nSrc + (size) >> 0; + /* continue; */ $s = 1; continue; + /* } */ $s = 1; continue; case 2: + _tmp$2 = nDst; + _tmp$3 = nSrc; + _tmp$4 = err; + nDst = _tmp$2; + nSrc = _tmp$3; + err = _tmp$4; + $s = -1; return [nDst, nSrc, err]; + /* */ } return; } + }; + eucKREncoder.prototype.Transform = function(dst, src, atEOF) { return this.$val.Transform(dst, src, atEOF); }; + init = function() { + if (false) { + $panic(new $String("bad numEncodeTables")); + } + }; + eucKRDecoder.methods = [{prop: "Transform", name: "Transform", pkg: "", typ: $funcType([sliceType$1, sliceType$1, $Bool], [$Int, $Int, $error], false)}]; + eucKREncoder.methods = [{prop: "Transform", name: "Transform", pkg: "", typ: $funcType([sliceType$1, sliceType$1, $Bool], [$Int, $Int, $error], false)}]; + eucKRDecoder.init("", [{prop: "NopResetter", name: "NopResetter", embedded: true, exported: true, typ: transform.NopResetter, tag: ""}]); + eucKREncoder.init("", [{prop: "NopResetter", name: "NopResetter", embedded: true, exported: true, typ: transform.NopResetter, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = encoding.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = internal.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = identifier.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = transform.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + eucKR = new internal.Encoding.ptr(new internal.SimpleEncoding.ptr((x = new eucKRDecoder.ptr(new transform.NopResetter.ptr()), new x.constructor.elem(x)), (x$1 = new eucKREncoder.ptr(new transform.NopResetter.ptr()), new x$1.constructor.elem(x$1))), "EUC-KR", 38); + $pkg.EUCKR = eucKR; + decode = $toNativeArray($kindUint16, [44034, 44035, 44037, 44038, 44043, 44044, 44045, 44046, 44047, 44056, 44062, 44063, 44065, 44066, 44067, 44069, 44070, 44071, 44072, 44073, 44074, 44075, 44078, 44082, 44083, 44084, 44085, 44086, 44087, 44090, 44091, 44093, 44094, 44095, 44097, 44098, 44099, 44100, 44101, 44102, 44103, 44104, 44105, 44106, 44108, 44110, 44111, 44112, 44113, 44114, 44115, 44117, 44118, 44119, 44121, 44122, 44123, 44125, 44126, 44127, 44128, 44129, 44130, 44131, 44132, 44133, 44134, 44135, 44136, 44137, 44138, 44139, 44140, 44141, 44142, 44143, 44146, 44147, 44149, 44150, 44153, 44155, 44156, 44157, 44158, 44159, 44162, 44167, 44168, 44173, 44174, 44175, 44177, 44178, 44179, 44181, 44182, 44183, 44184, 44185, 44186, 44187, 44190, 44194, 44195, 44196, 44197, 44198, 44199, 44203, 44205, 44206, 44209, 44210, 44211, 44212, 44213, 44214, 44215, 44218, 44222, 44223, 44224, 44226, 44227, 44229, 44230, 44231, 44233, 44234, 44235, 44237, 44238, 44239, 44240, 44241, 44242, 44243, 44244, 44246, 44248, 44249, 44250, 44251, 44252, 44253, 44254, 44255, 44258, 44259, 44261, 44262, 44265, 44267, 44269, 44270, 44274, 44276, 44279, 44280, 44281, 44282, 44283, 44286, 44287, 44289, 44290, 44291, 44293, 44295, 44296, 44297, 44298, 44299, 44302, 44304, 44306, 44307, 44308, 44309, 44310, 44311, 44313, 44314, 44315, 44317, 44318, 44319, 44321, 44322, 44323, 44324, 44325, 44326, 44327, 44328, 44330, 44331, 44334, 44335, 44336, 44337, 44338, 44339, 44342, 44343, 44345, 44346, 44347, 44349, 44350, 44351, 44352, 44353, 44354, 44355, 44358, 44360, 44362, 44363, 44364, 44365, 44366, 44367, 44369, 44370, 44371, 44373, 44374, 44375, 44377, 44378, 44379, 44380, 44381, 44382, 44383, 44384, 44386, 44388, 44389, 44390, 44391, 44392, 44393, 44394, 44395, 44398, 44399, 44401, 44402, 44407, 44408, 44409, 44410, 44414, 44416, 44419, 44420, 44421, 44422, 44423, 44426, 44427, 44429, 44430, 44431, 44433, 44434, 44435, 44436, 44437, 44438, 44439, 44440, 44441, 44442, 44443, 44446, 44447, 44448, 44449, 44450, 44451, 44453, 44454, 44455, 44456, 44457, 44458, 44459, 44460, 44461, 44462, 44463, 44464, 44465, 44466, 44467, 44468, 44469, 44470, 44472, 44473, 44474, 44475, 44476, 44477, 44478, 44479, 44482, 44483, 44485, 44486, 44487, 44489, 44490, 44491, 44492, 44493, 44494, 44495, 44498, 44500, 44501, 44502, 44503, 44504, 44505, 44506, 44507, 44509, 44510, 44511, 44513, 44514, 44515, 44517, 44518, 44519, 44520, 44521, 44522, 44523, 44524, 44525, 44526, 44527, 44528, 44529, 44530, 44531, 44532, 44533, 44534, 44535, 44538, 44539, 44541, 44542, 44546, 44547, 44548, 44549, 44550, 44551, 44554, 44556, 44558, 44559, 44560, 44561, 44562, 44563, 44565, 44566, 44567, 44568, 44569, 44570, 44571, 44572, 44573, 44574, 44575, 44576, 44577, 44578, 44579, 44580, 44581, 44582, 44583, 44584, 44585, 44586, 44587, 44588, 44589, 44590, 44591, 44594, 44595, 44597, 44598, 44601, 44603, 44604, 44605, 44606, 44607, 44610, 44612, 44615, 44616, 44617, 44619, 44623, 44625, 44626, 44627, 44629, 44631, 44632, 44633, 44634, 44635, 44638, 44642, 44643, 44644, 44646, 44647, 44650, 44651, 44653, 44654, 44655, 44657, 44658, 44659, 44660, 44661, 44662, 44663, 44666, 44670, 44671, 44672, 44673, 44674, 44675, 44678, 44679, 44680, 44681, 44682, 44683, 44685, 44686, 44687, 44688, 44689, 44690, 44691, 44692, 44693, 44694, 44695, 44696, 44697, 44698, 44699, 44700, 44701, 44702, 44703, 44704, 44705, 44706, 44707, 44708, 44709, 44710, 44711, 44712, 44713, 44714, 44715, 44716, 44717, 44718, 44719, 44720, 44721, 44722, 44723, 44724, 44725, 44726, 44727, 44728, 44729, 44730, 44731, 44735, 44737, 44738, 44739, 44741, 44742, 44743, 44744, 44745, 44746, 44747, 44750, 44754, 44755, 44756, 44757, 44758, 44759, 44762, 44763, 44765, 44766, 44767, 44768, 44769, 44770, 44771, 44772, 44773, 44774, 44775, 44777, 44778, 44780, 44782, 44783, 44784, 44785, 44786, 44787, 44789, 44790, 44791, 44793, 44794, 44795, 44797, 44798, 44799, 44800, 44801, 44802, 44803, 44804, 44805, 44806, 44809, 44810, 44811, 44812, 44814, 44815, 44817, 44818, 44819, 44820, 44821, 44822, 44823, 44824, 44825, 44826, 44827, 44828, 44829, 44830, 44831, 44832, 44833, 44834, 44835, 44836, 44837, 44838, 44839, 44840, 44841, 44842, 44843, 44846, 44847, 44849, 44851, 44853, 44854, 44855, 44856, 44857, 44858, 44859, 44862, 44864, 44868, 44869, 44870, 44871, 44874, 44875, 44876, 44877, 44878, 44879, 44881, 44882, 44883, 44884, 44885, 44886, 44887, 44888, 44889, 44890, 44891, 44894, 44895, 44896, 44897, 44898, 44899, 44902, 44903, 44904, 44905, 44906, 44907, 44908, 44909, 44910, 44911, 44912, 44913, 44914, 44915, 44916, 44917, 44918, 44919, 44920, 44922, 44923, 44924, 44925, 44926, 44927, 44929, 44930, 44931, 44933, 44934, 44935, 44937, 44938, 44939, 44940, 44941, 44942, 44943, 44946, 44947, 44948, 44950, 44951, 44952, 44953, 44954, 44955, 44957, 44958, 44959, 44960, 44961, 44962, 44963, 44964, 44965, 44966, 44967, 44968, 44969, 44970, 44971, 44972, 44973, 44974, 44975, 44976, 44977, 44978, 44979, 44980, 44981, 44982, 44983, 44986, 44987, 44989, 44990, 44991, 44993, 44994, 44995, 44996, 44997, 44998, 45002, 45004, 45007, 45008, 45009, 45010, 45011, 45013, 45014, 45015, 45016, 45017, 45018, 45019, 45021, 45022, 45023, 45024, 45025, 45026, 45027, 45028, 45029, 45030, 45031, 45034, 45035, 45036, 45037, 45038, 45039, 45042, 45043, 45045, 45046, 45047, 45049, 45050, 45051, 45052, 45053, 45054, 45055, 45058, 45059, 45061, 45062, 45063, 45064, 45065, 45066, 45067, 45069, 45070, 45071, 45073, 45074, 45075, 45077, 45078, 45079, 45080, 45081, 45082, 45083, 45086, 45087, 45088, 45089, 45090, 45091, 45092, 45093, 45094, 45095, 45097, 45098, 45099, 45100, 45101, 45102, 45103, 45104, 45105, 45106, 45107, 45108, 45109, 45110, 45111, 45112, 45113, 45114, 45115, 45116, 45117, 45118, 45119, 45120, 45121, 45122, 45123, 45126, 45127, 45129, 45131, 45133, 45135, 45136, 45137, 45138, 45142, 45144, 45146, 45147, 45148, 45150, 45151, 45152, 45153, 45154, 45155, 45156, 45157, 45158, 45159, 45160, 45161, 45162, 45163, 45164, 45165, 45166, 45167, 45168, 45169, 45170, 45171, 45172, 45173, 45174, 45175, 45176, 45177, 45178, 45179, 45182, 45183, 45185, 45186, 45187, 45189, 45190, 45191, 45192, 45193, 45194, 45195, 45198, 45200, 45202, 45203, 45204, 45205, 45206, 45207, 45211, 45213, 45214, 45219, 45220, 45221, 45222, 45223, 45226, 45232, 45234, 45238, 45239, 45241, 45242, 45243, 45245, 45246, 45247, 45248, 45249, 45250, 45251, 45254, 45258, 45259, 45260, 45261, 45262, 45263, 45266, 45267, 45269, 45270, 45271, 45273, 45274, 45275, 45276, 45277, 45278, 45279, 45281, 45282, 45283, 45284, 45286, 45287, 45288, 45289, 45290, 45291, 45292, 45293, 45294, 45295, 45296, 45297, 45298, 45299, 45300, 45301, 45302, 45303, 45304, 45305, 45306, 45307, 45308, 45309, 45310, 45311, 45312, 45313, 45314, 45315, 45316, 45317, 45318, 45319, 45322, 45325, 45326, 45327, 45329, 45332, 45333, 45334, 45335, 45338, 45342, 45343, 45344, 45345, 45346, 45350, 45351, 45353, 45354, 45355, 45357, 45358, 45359, 45360, 45361, 45362, 45363, 45366, 45370, 45371, 45372, 45373, 45374, 45375, 45378, 45379, 45381, 45382, 45383, 45385, 45386, 45387, 45388, 45389, 45390, 45391, 45394, 45395, 45398, 45399, 45401, 45402, 45403, 45405, 45406, 45407, 45409, 45410, 45411, 45412, 45413, 45414, 45415, 45416, 45417, 45418, 45419, 45420, 45421, 45422, 45423, 45424, 45425, 45426, 45427, 45428, 45429, 45430, 45431, 45434, 45435, 45437, 45438, 45439, 45441, 45443, 45444, 45445, 45446, 45447, 45450, 45452, 45454, 45455, 45456, 45457, 45461, 45462, 45463, 45465, 45466, 45467, 45469, 45470, 45471, 45472, 45473, 45474, 45475, 45476, 45477, 45478, 45479, 45481, 45482, 45483, 45484, 45485, 45486, 45487, 45488, 45489, 45490, 45491, 45492, 45493, 45494, 45495, 45496, 45497, 45498, 45499, 45500, 45501, 45502, 45503, 45504, 45505, 45506, 45507, 45508, 45509, 45510, 45511, 45512, 45513, 45514, 45515, 45517, 45518, 45519, 45521, 45522, 45523, 45525, 45526, 45527, 45528, 45529, 45530, 45531, 45534, 45536, 45537, 45538, 45539, 45540, 45541, 45542, 45543, 45546, 45547, 45549, 45550, 45551, 45553, 45554, 45555, 45556, 45557, 45558, 45559, 45560, 45562, 45564, 45566, 45567, 45568, 45569, 45570, 45571, 45574, 45575, 45577, 45578, 45581, 45582, 45583, 45584, 45585, 45586, 45587, 45590, 45592, 45594, 45595, 45596, 45597, 45598, 45599, 45601, 45602, 45603, 45604, 45605, 45606, 45607, 45608, 45609, 45610, 45611, 45612, 45613, 45614, 45615, 45616, 45617, 45618, 45619, 45621, 45622, 45623, 45624, 45625, 45626, 45627, 45629, 45630, 45631, 45632, 45633, 45634, 45635, 45636, 45637, 45638, 45639, 45640, 45641, 45642, 45643, 45644, 45645, 45646, 45647, 45648, 45649, 45650, 45651, 45652, 45653, 45654, 45655, 45657, 45658, 45659, 45661, 45662, 45663, 45665, 45666, 45667, 45668, 45669, 45670, 45671, 45674, 45675, 45676, 45677, 45678, 45679, 45680, 45681, 45682, 45683, 45686, 45687, 45688, 45689, 45690, 45691, 45693, 45694, 45695, 45696, 45697, 45698, 45699, 45702, 45703, 45704, 45706, 45707, 45708, 45709, 45710, 45711, 45714, 45715, 45717, 45718, 45719, 45723, 45724, 45725, 45726, 45727, 45730, 45732, 45735, 45736, 45737, 45739, 45741, 45742, 45743, 45745, 45746, 45747, 45749, 45750, 45751, 45752, 45753, 45754, 45755, 45756, 45757, 45758, 45759, 45760, 45761, 45762, 45763, 45764, 45765, 45766, 45767, 45770, 45771, 45773, 45774, 45775, 45777, 45779, 45780, 45781, 45782, 45783, 45786, 45788, 45790, 45791, 45792, 45793, 45795, 45799, 45801, 45802, 45808, 45809, 45810, 45814, 45820, 45821, 45822, 45826, 45827, 45829, 45830, 45831, 45833, 45834, 45835, 45836, 45837, 45838, 45839, 45842, 45846, 45847, 45848, 45849, 45850, 45851, 45853, 45854, 45855, 45856, 45857, 45858, 45859, 45860, 45861, 45862, 45863, 45864, 45865, 45866, 45867, 45868, 45869, 45870, 45871, 45872, 45873, 45874, 45875, 45876, 45877, 45878, 45879, 45880, 45881, 45882, 45883, 45884, 45885, 45886, 45887, 45888, 45889, 45890, 45891, 45892, 45893, 45894, 45895, 45896, 45897, 45898, 45899, 45900, 45901, 45902, 45903, 45904, 45905, 45906, 45907, 45911, 45913, 45914, 45917, 45920, 45921, 45922, 45923, 45926, 45928, 45930, 45932, 45933, 45935, 45938, 45939, 45941, 45942, 45943, 45945, 45946, 45947, 45948, 45949, 45950, 45951, 45954, 45958, 45959, 45960, 45961, 45962, 45963, 45965, 45966, 45967, 45969, 45970, 45971, 45973, 45974, 45975, 45976, 45977, 45978, 45979, 45980, 45981, 45982, 45983, 45986, 45987, 45988, 45989, 45990, 45991, 45993, 45994, 45995, 45997, 45998, 45999, 46000, 46001, 46002, 46003, 46004, 46005, 46006, 46007, 46008, 46009, 46010, 46011, 46012, 46013, 46014, 46015, 46016, 46017, 46018, 46019, 46022, 46023, 46025, 46026, 46029, 46031, 46033, 46034, 46035, 46038, 46040, 46042, 46044, 46046, 46047, 46049, 46050, 46051, 46053, 46054, 46055, 46057, 46058, 46059, 46060, 46061, 46062, 46063, 46064, 46065, 46066, 46067, 46068, 46069, 46070, 46071, 46072, 46073, 46074, 46075, 46077, 46078, 46079, 46080, 46081, 46082, 46083, 46084, 46085, 46086, 46087, 46088, 46089, 46090, 46091, 46092, 46093, 46094, 46095, 46097, 46098, 46099, 46100, 46101, 46102, 46103, 46105, 46106, 46107, 46109, 46110, 46111, 46113, 46114, 46115, 46116, 46117, 46118, 46119, 46122, 46124, 46125, 46126, 46127, 46128, 46129, 46130, 46131, 46133, 46134, 46135, 46136, 46137, 46138, 46139, 46140, 46141, 46142, 46143, 46144, 46145, 46146, 46147, 46148, 46149, 46150, 46151, 46152, 46153, 46154, 46155, 46156, 46157, 46158, 46159, 46162, 46163, 46165, 46166, 46167, 46169, 46170, 46171, 46172, 46173, 46174, 46175, 46178, 46180, 46182, 46183, 46184, 46185, 46186, 46187, 46189, 46190, 46191, 46192, 46193, 46194, 46195, 46196, 46197, 46198, 46199, 46200, 46201, 46202, 46203, 46204, 46205, 46206, 46207, 46209, 46210, 46211, 46212, 46213, 46214, 46215, 46217, 46218, 46219, 46220, 46221, 46222, 46223, 46224, 46225, 46226, 46227, 46228, 46229, 46230, 46231, 46232, 46233, 46234, 46235, 46236, 46238, 46239, 46240, 46241, 46242, 46243, 46245, 46246, 46247, 46249, 46250, 46251, 46253, 46254, 46255, 46256, 46257, 46258, 46259, 46260, 46262, 46264, 46266, 46267, 46268, 46269, 46270, 46271, 46273, 46274, 46275, 46277, 46278, 46279, 46281, 46282, 46283, 46284, 46285, 46286, 46287, 46289, 46290, 46291, 46292, 46294, 46295, 46296, 46297, 46298, 46299, 46302, 46303, 46305, 46306, 46309, 46311, 46312, 46313, 46314, 46315, 46318, 46320, 46322, 46323, 46324, 46325, 46326, 46327, 46329, 46330, 46331, 46332, 46333, 46334, 46335, 46336, 46337, 46338, 46339, 46340, 46341, 46342, 46343, 46344, 46345, 46346, 46347, 46348, 46349, 46350, 46351, 46352, 46353, 46354, 46355, 46358, 46359, 46361, 46362, 46365, 46366, 46367, 46368, 46369, 46370, 46371, 46374, 46379, 46380, 46381, 46382, 46383, 46386, 46387, 46389, 46390, 46391, 46393, 46394, 46395, 46396, 46397, 46398, 46399, 46402, 46406, 46407, 46408, 46409, 46410, 46414, 46415, 46417, 46418, 46419, 46421, 46422, 46423, 46424, 46425, 46426, 46427, 46430, 46434, 46435, 46436, 46437, 46438, 46439, 46440, 46441, 46442, 46443, 46444, 46445, 46446, 46447, 46448, 46449, 46450, 46451, 46452, 46453, 46454, 46455, 46456, 46457, 46458, 46459, 46460, 46461, 46462, 46463, 46464, 46465, 46466, 46467, 46468, 46469, 46470, 46471, 46472, 46473, 46474, 46475, 46476, 46477, 46478, 46479, 46480, 46481, 46482, 46483, 46484, 46485, 46486, 46487, 46488, 46489, 46490, 46491, 46492, 46493, 46494, 46495, 46498, 46499, 46501, 46502, 46503, 46505, 46508, 46509, 46510, 46511, 46514, 46518, 46519, 46520, 46521, 46522, 46526, 46527, 46529, 46530, 46531, 46533, 46534, 46535, 46536, 46537, 46538, 46539, 46542, 46546, 46547, 46548, 46549, 46550, 46551, 46553, 46554, 46555, 46556, 46557, 46558, 46559, 46560, 46561, 46562, 46563, 46564, 46565, 46566, 46567, 46568, 46569, 46570, 46571, 46573, 46574, 46575, 46576, 46577, 46578, 46579, 46580, 46581, 46582, 46583, 46584, 46585, 46586, 46587, 46588, 46589, 46590, 46591, 46592, 46593, 46594, 46595, 46596, 46597, 46598, 46599, 46600, 46601, 46602, 46603, 46604, 46605, 46606, 46607, 46610, 46611, 46613, 46614, 46615, 46617, 46618, 46619, 46620, 46621, 46622, 46623, 46624, 46625, 46626, 46627, 46628, 46630, 46631, 46632, 46633, 46634, 46635, 46637, 46638, 46639, 46640, 46641, 46642, 46643, 46645, 46646, 46647, 46648, 46649, 46650, 46651, 46652, 46653, 46654, 46655, 46656, 46657, 46658, 46659, 46660, 46661, 46662, 46663, 46665, 46666, 46667, 46668, 46669, 46670, 46671, 46672, 46673, 46674, 46675, 46676, 46677, 46678, 46679, 46680, 46681, 46682, 46683, 46684, 46685, 46686, 46687, 46688, 46689, 46690, 46691, 46693, 46694, 46695, 46697, 46698, 46699, 46700, 46701, 46702, 46703, 46704, 46705, 46706, 46707, 46708, 46709, 46710, 46711, 46712, 46713, 46714, 46715, 46716, 46717, 46718, 46719, 46720, 46721, 46722, 46723, 46724, 46725, 46726, 46727, 46728, 46729, 46730, 46731, 46732, 46733, 46734, 46735, 46736, 46737, 46738, 46739, 46740, 46741, 46742, 46743, 46744, 46745, 46746, 46747, 46750, 46751, 46753, 46754, 46755, 46757, 46758, 46759, 46760, 46761, 46762, 46765, 46766, 46767, 46768, 46770, 46771, 46772, 46773, 46774, 46775, 46776, 46777, 46778, 46779, 46780, 46781, 46782, 46783, 46784, 46785, 46786, 46787, 46788, 46789, 46790, 46791, 46792, 46793, 46794, 46795, 46796, 46797, 46798, 46799, 46800, 46801, 46802, 46803, 46805, 46806, 46807, 46808, 46809, 46810, 46811, 46812, 46813, 46814, 46815, 46816, 46817, 46818, 46819, 46820, 46821, 46822, 46823, 46824, 46825, 46826, 46827, 46828, 46829, 46830, 46831, 46833, 46834, 46835, 46837, 46838, 46839, 46841, 46842, 46843, 46844, 46845, 46846, 46847, 46850, 46851, 46852, 46854, 46855, 46856, 46857, 46858, 46859, 46860, 46861, 46862, 46863, 46864, 46865, 46866, 46867, 46868, 46869, 46870, 46871, 46872, 46873, 46874, 46875, 46876, 46877, 46878, 46879, 46880, 46881, 46882, 46883, 46884, 46885, 46886, 46887, 46890, 46891, 46893, 46894, 46897, 46898, 46899, 46900, 46901, 46902, 46903, 46906, 46908, 46909, 46910, 46911, 46912, 46913, 46914, 46915, 46917, 46918, 46919, 46921, 46922, 46923, 46925, 46926, 46927, 46928, 46929, 46930, 46931, 46934, 46935, 46936, 46937, 46938, 46939, 46940, 46941, 46942, 46943, 46945, 46946, 46947, 46949, 46950, 46951, 46953, 46954, 46955, 46956, 46957, 46958, 46959, 46962, 46964, 46966, 46967, 46968, 46969, 46970, 46971, 46974, 46975, 46977, 46978, 46979, 46981, 46982, 46983, 46984, 46985, 46986, 46987, 46990, 46995, 46996, 46997, 47002, 47003, 47005, 47006, 47007, 47009, 47010, 47011, 47012, 47013, 47014, 47015, 47018, 47022, 47023, 47024, 47025, 47026, 47027, 47030, 47031, 47033, 47034, 47035, 47036, 47037, 47038, 47039, 47040, 47041, 47042, 47043, 47044, 47045, 47046, 47048, 47050, 47051, 47052, 47053, 47054, 47055, 47056, 47057, 47058, 47059, 47060, 47061, 47062, 47063, 47064, 47065, 47066, 47067, 47068, 47069, 47070, 47071, 47072, 47073, 47074, 47075, 47076, 47077, 47078, 47079, 47080, 47081, 47082, 47083, 47086, 47087, 47089, 47090, 47091, 47093, 47094, 47095, 47096, 47097, 47098, 47099, 47102, 47106, 47107, 47108, 47109, 47110, 47114, 47115, 47117, 47118, 47119, 47121, 47122, 47123, 47124, 47125, 47126, 47127, 47130, 47132, 47134, 47135, 47136, 47137, 47138, 47139, 47142, 47143, 47145, 47146, 47147, 47149, 47150, 47151, 47152, 47153, 47154, 47155, 47158, 47162, 47163, 47164, 47165, 47166, 47167, 47169, 47170, 47171, 47173, 47174, 47175, 47176, 47177, 47178, 47179, 47180, 47181, 47182, 47183, 47184, 47186, 47188, 47189, 47190, 47191, 47192, 47193, 47194, 47195, 47198, 47199, 47201, 47202, 47203, 47205, 47206, 47207, 47208, 47209, 47210, 47211, 47214, 47216, 47218, 47219, 47220, 47221, 47222, 47223, 47225, 47226, 47227, 47229, 47230, 47231, 47232, 47233, 47234, 47235, 47236, 47237, 47238, 47239, 47240, 47241, 47242, 47243, 47244, 47246, 47247, 47248, 47249, 47250, 47251, 47252, 47253, 47254, 47255, 47256, 47257, 47258, 47259, 47260, 47261, 47262, 47263, 47264, 47265, 47266, 47267, 47268, 47269, 47270, 47271, 47273, 47274, 47275, 47276, 47277, 47278, 47279, 47281, 47282, 47283, 47285, 47286, 47287, 47289, 47290, 47291, 47292, 47293, 47294, 47295, 47298, 47300, 47302, 47303, 47304, 47305, 47306, 47307, 47309, 47310, 47311, 47313, 47314, 47315, 47317, 47318, 47319, 47320, 47321, 47322, 47323, 47324, 47326, 47328, 47330, 47331, 47332, 47333, 47334, 47335, 47338, 47339, 47341, 47342, 47343, 47345, 47346, 47347, 47348, 47349, 47350, 47351, 47354, 47356, 47358, 47359, 47360, 47361, 47362, 47363, 47365, 47366, 47367, 47368, 47369, 47370, 47371, 47372, 47373, 47374, 47375, 47376, 47377, 47378, 47379, 47380, 47381, 47382, 47383, 47385, 47386, 47387, 47388, 47389, 47390, 47391, 47393, 47394, 47395, 47396, 47397, 47398, 47399, 47400, 47401, 47402, 47403, 47404, 47405, 47406, 47407, 47408, 47409, 47410, 47411, 47412, 47413, 47414, 47415, 47416, 47417, 47418, 47419, 47422, 47423, 47425, 47426, 47427, 47429, 47430, 47431, 47432, 47433, 47434, 47435, 47437, 47438, 47440, 47442, 47443, 47444, 47445, 47446, 47447, 47450, 47451, 47453, 47454, 47455, 47457, 47458, 47459, 47460, 47461, 47462, 47463, 47466, 47468, 47470, 47471, 47472, 47473, 47474, 47475, 47478, 47479, 47481, 47482, 47483, 47485, 47486, 47487, 47488, 47489, 47490, 47491, 47494, 47496, 47499, 47500, 47503, 47504, 47505, 47506, 47507, 47508, 47509, 47510, 47511, 47512, 47513, 47514, 47515, 47516, 47517, 47518, 47519, 47520, 47521, 47522, 47523, 47524, 47525, 47526, 47527, 47528, 47529, 47530, 47531, 47534, 47535, 47537, 47538, 47539, 47541, 47542, 47543, 47544, 47545, 47546, 47547, 47550, 47552, 47554, 47555, 47556, 47557, 47558, 47559, 47562, 47563, 47565, 47571, 47572, 47573, 47574, 47575, 47578, 47580, 47583, 47584, 47586, 47590, 47591, 47593, 47594, 47595, 47597, 47598, 47599, 47600, 47601, 47602, 47603, 47606, 47611, 47612, 47613, 47614, 47615, 47618, 47619, 47620, 47621, 47622, 47623, 47625, 47626, 47627, 47628, 47629, 47630, 47631, 47632, 47633, 47634, 47635, 47636, 47638, 47639, 47640, 47641, 47642, 47643, 47644, 47645, 47646, 47647, 47648, 47649, 47650, 47651, 47652, 47653, 47654, 47655, 47656, 47657, 47658, 47659, 47660, 47661, 47662, 47663, 47664, 47665, 47666, 47667, 47668, 47669, 47670, 47671, 47674, 47675, 47677, 47678, 47679, 47681, 47683, 47684, 47685, 47686, 47687, 47690, 47692, 47695, 47696, 47697, 47698, 47702, 47703, 47705, 47706, 47707, 47709, 47710, 47711, 47712, 47713, 47714, 47715, 47718, 47722, 47723, 47724, 47725, 47726, 47727, 47730, 47731, 47733, 47734, 47735, 47737, 47738, 47739, 47740, 47741, 47742, 47743, 47744, 47745, 47746, 47750, 47752, 47753, 47754, 47755, 47757, 47758, 47759, 47760, 47761, 47762, 47763, 47764, 47765, 47766, 47767, 47768, 47769, 47770, 47771, 47772, 47773, 47774, 47775, 47776, 47777, 47778, 47779, 47780, 47781, 47782, 47783, 47786, 47789, 47790, 47791, 47793, 47795, 47796, 47797, 47798, 47799, 47802, 47804, 47806, 47807, 47808, 47809, 47810, 47811, 47813, 47814, 47815, 47817, 47818, 47819, 47820, 47821, 47822, 47823, 47824, 47825, 47826, 47827, 47828, 47829, 47830, 47831, 47834, 47835, 47836, 47837, 47838, 47839, 47840, 47841, 47842, 47843, 47844, 47845, 47846, 47847, 47848, 47849, 47850, 47851, 47852, 47853, 47854, 47855, 47856, 47857, 47858, 47859, 47860, 47861, 47862, 47863, 47864, 47865, 47866, 47867, 47869, 47870, 47871, 47873, 47874, 47875, 47877, 47878, 47879, 47880, 47881, 47882, 47883, 47884, 47886, 47888, 47890, 47891, 47892, 47893, 47894, 47895, 47897, 47898, 47899, 47901, 47902, 47903, 47905, 47906, 47907, 47908, 47909, 47910, 47911, 47912, 47914, 47916, 47917, 47918, 47919, 47920, 47921, 47922, 47923, 47927, 47929, 47930, 47935, 47936, 47937, 47938, 47939, 47942, 47944, 47946, 47947, 47948, 47950, 47953, 47954, 47955, 47957, 47958, 47959, 47961, 47962, 47963, 47964, 47965, 47966, 47967, 47968, 47970, 47972, 47973, 47974, 47975, 47976, 47977, 47978, 47979, 47981, 47982, 47983, 47984, 47985, 47986, 47987, 47988, 47989, 47990, 47991, 47992, 47993, 47994, 47995, 47996, 47997, 47998, 47999, 48000, 48001, 48002, 48003, 48004, 48005, 48006, 48007, 48009, 48010, 48011, 48013, 48014, 48015, 48017, 48018, 48019, 48020, 48021, 48022, 48023, 48024, 48025, 48026, 48027, 48028, 48029, 48030, 48031, 48032, 48033, 48034, 48035, 48037, 48038, 48039, 48041, 48042, 48043, 48045, 48046, 48047, 48048, 48049, 48050, 48051, 48053, 48054, 48056, 48057, 48058, 48059, 48060, 48061, 48062, 48063, 48065, 48066, 48067, 48069, 48070, 48071, 48073, 48074, 48075, 48076, 48077, 48078, 48079, 48081, 48082, 48084, 48085, 48086, 48087, 48088, 48089, 48090, 48091, 48092, 48093, 48094, 48095, 48096, 48097, 48098, 48099, 48100, 48101, 48102, 48103, 48104, 48105, 48106, 48107, 48108, 48109, 48110, 48111, 48112, 48113, 48114, 48115, 48116, 48117, 48118, 48119, 48122, 48123, 48125, 48126, 48129, 48131, 48132, 48133, 48134, 48135, 48138, 48142, 48144, 48146, 48147, 48153, 48154, 48160, 48161, 48162, 48163, 48166, 48168, 48170, 48171, 48172, 48174, 48175, 48178, 48179, 48181, 48182, 48183, 48185, 48186, 48187, 48188, 48189, 48190, 48191, 48194, 48198, 48199, 48200, 48202, 48203, 48206, 48207, 48209, 48210, 48211, 48212, 48213, 48214, 48215, 48216, 48217, 48218, 48219, 48220, 48222, 48223, 48224, 48225, 48226, 48227, 48228, 48229, 48230, 48231, 48232, 48233, 48234, 48235, 48236, 48237, 48238, 48239, 48240, 48241, 48242, 48243, 48244, 48245, 48246, 48247, 48248, 48249, 48250, 48251, 48252, 48253, 48254, 48255, 48256, 48257, 48258, 48259, 48262, 48263, 48265, 48266, 48269, 48271, 48272, 48273, 48274, 48275, 48278, 48280, 48283, 48284, 48285, 48286, 48287, 48290, 48291, 48293, 48294, 48297, 48298, 48299, 48300, 48301, 48302, 48303, 48306, 48310, 48311, 48312, 48313, 48314, 48315, 48318, 48319, 48321, 48322, 48323, 48325, 48326, 48327, 48328, 48329, 48330, 48331, 48332, 48334, 48338, 48339, 48340, 48342, 48343, 48345, 48346, 48347, 48349, 48350, 48351, 48352, 48353, 48354, 48355, 48356, 48357, 48358, 48359, 48360, 48361, 48362, 48363, 48364, 48365, 48366, 48367, 48368, 48369, 48370, 48371, 48375, 48377, 48378, 48379, 48381, 48382, 48383, 48384, 48385, 48386, 48387, 48390, 48392, 48394, 48395, 48396, 48397, 48398, 48399, 48401, 48402, 48403, 48405, 48406, 48407, 48408, 48409, 48410, 48411, 48412, 48413, 48414, 48415, 48416, 48417, 48418, 48419, 48421, 48422, 48423, 48424, 48425, 48426, 48427, 48429, 48430, 48431, 48432, 48433, 48434, 48435, 48436, 48437, 48438, 48439, 48440, 48441, 48442, 48443, 48444, 48445, 48446, 48447, 48449, 48450, 48451, 48452, 48453, 48454, 48455, 48458, 48459, 48461, 48462, 48463, 48465, 48466, 48467, 48468, 48469, 48470, 48471, 48474, 48475, 48476, 48477, 48478, 48479, 48480, 48481, 48482, 48483, 48485, 48486, 48487, 48489, 48490, 48491, 48492, 48493, 48494, 48495, 48496, 48497, 48498, 48499, 48500, 48501, 48502, 48503, 48504, 48505, 48506, 48507, 48508, 48509, 48510, 48511, 48514, 48515, 48517, 48518, 48523, 48524, 48525, 48526, 48527, 48530, 48532, 48534, 48535, 48536, 48539, 48541, 48542, 48543, 48544, 48545, 48546, 48547, 48549, 48550, 48551, 48552, 48553, 48554, 48555, 48556, 48557, 48558, 48559, 48561, 48562, 48563, 48564, 48565, 48566, 48567, 48569, 48570, 48571, 48572, 48573, 48574, 48575, 48576, 48577, 48578, 48579, 48580, 48581, 48582, 48583, 48584, 48585, 48586, 48587, 48588, 48589, 48590, 48591, 48592, 48593, 48594, 48595, 48598, 48599, 48601, 48602, 48603, 48605, 48606, 48607, 48608, 48609, 48610, 48611, 48612, 48613, 48614, 48615, 48616, 48618, 48619, 48620, 48621, 48622, 48623, 48625, 48626, 48627, 48629, 48630, 48631, 48633, 48634, 48635, 48636, 48637, 48638, 48639, 48641, 48642, 48644, 48646, 48647, 48648, 48649, 48650, 48651, 48654, 48655, 48657, 48658, 48659, 48661, 48662, 48663, 48664, 48665, 48666, 48667, 48670, 48672, 48673, 48674, 48675, 48676, 48677, 48678, 48679, 48680, 48681, 48682, 48683, 48684, 48685, 48686, 48687, 48688, 48689, 48690, 48691, 48692, 48693, 48694, 48695, 48696, 48697, 48698, 48699, 48700, 48701, 48702, 48703, 48704, 48705, 48706, 48707, 48710, 48711, 48713, 48714, 48715, 48717, 48719, 48720, 48721, 48722, 48723, 48726, 48728, 48732, 48733, 48734, 48735, 48738, 48739, 48741, 48742, 48743, 48745, 48747, 48748, 48749, 48750, 48751, 48754, 48758, 48759, 48760, 48761, 48762, 48766, 48767, 48769, 48770, 48771, 48773, 48774, 48775, 48776, 48777, 48778, 48779, 48782, 48786, 48787, 48788, 48789, 48790, 48791, 48794, 48795, 48796, 48797, 48798, 48799, 48800, 48801, 48802, 48803, 48804, 48805, 48806, 48807, 48809, 48810, 48811, 48812, 48813, 48814, 48815, 48816, 48817, 48818, 48819, 48820, 48821, 48822, 48823, 48824, 48825, 48826, 48827, 48828, 48829, 48830, 48831, 48832, 48833, 48834, 48835, 48836, 48837, 48838, 48839, 48840, 48841, 48842, 48843, 48844, 48845, 48846, 48847, 48850, 48851, 48853, 48854, 48857, 48858, 48859, 48860, 48861, 48862, 48863, 48865, 48866, 48870, 48871, 48872, 48873, 48874, 48875, 48877, 48878, 48879, 48880, 48881, 48882, 48883, 48884, 48885, 48886, 48887, 48888, 48889, 48890, 48891, 48892, 48893, 48894, 48895, 48896, 48898, 48899, 48900, 48901, 48902, 48903, 48906, 48907, 48908, 48909, 48910, 48911, 48912, 48913, 48914, 48915, 48916, 48917, 48918, 48919, 48922, 48926, 48927, 48928, 48929, 48930, 48931, 48932, 48933, 48934, 48935, 48936, 48937, 48938, 48939, 48940, 48941, 48942, 48943, 48944, 48945, 48946, 48947, 48948, 48949, 48950, 48951, 48952, 48953, 48954, 48955, 48956, 48957, 48958, 48959, 48962, 48963, 48965, 48966, 48967, 48969, 48970, 48971, 48972, 48973, 48974, 48975, 48978, 48979, 48980, 48982, 48983, 48984, 48985, 48986, 48987, 48988, 48989, 48990, 48991, 48992, 48993, 48994, 48995, 48996, 48997, 48998, 48999, 49000, 49001, 49002, 49003, 49004, 49005, 49006, 49007, 49008, 49009, 49010, 49011, 49012, 49013, 49014, 49015, 49016, 49017, 49018, 49019, 49020, 49021, 49022, 49023, 49024, 49025, 49026, 49027, 49028, 49029, 49030, 49031, 49032, 49033, 49034, 49035, 49036, 49037, 49038, 49039, 49040, 49041, 49042, 49043, 49045, 49046, 49047, 49048, 49049, 49050, 49051, 49052, 49053, 49054, 49055, 49056, 49057, 49058, 49059, 49060, 49061, 49062, 49063, 49064, 49065, 49066, 49067, 49068, 49069, 49070, 49071, 49073, 49074, 49075, 49076, 49077, 49078, 49079, 49080, 49081, 49082, 49083, 49084, 49085, 49086, 49087, 49088, 49089, 49090, 49091, 49092, 49094, 49095, 49096, 49097, 49098, 49099, 49102, 49103, 49105, 49106, 49107, 49109, 49110, 49111, 49112, 49113, 49114, 49115, 49117, 49118, 49120, 49122, 49123, 49124, 49125, 49126, 49127, 49128, 49129, 49130, 49131, 49132, 49133, 49134, 49135, 49136, 49137, 49138, 49139, 49140, 49141, 49142, 49143, 49144, 49145, 49146, 49147, 49148, 49149, 49150, 49151, 49152, 49153, 49154, 49155, 49156, 49157, 49158, 49159, 49160, 49161, 49162, 49163, 49164, 49165, 49166, 49167, 49168, 49169, 49170, 49171, 49172, 49173, 49174, 49175, 49176, 49177, 49178, 49179, 49180, 49181, 49182, 49183, 49184, 49185, 49186, 49187, 49188, 49189, 49190, 49191, 49192, 49193, 49194, 49195, 49196, 49197, 49198, 49199, 49200, 49201, 49202, 49203, 49204, 49205, 49206, 49207, 49208, 49209, 49210, 49211, 49213, 49214, 49215, 49216, 49217, 49218, 49219, 49220, 49221, 49222, 49223, 49224, 49225, 49226, 49227, 49228, 49229, 49230, 49231, 49232, 49234, 49235, 49236, 49237, 49238, 49239, 49241, 49242, 49243, 49245, 49246, 49247, 49249, 49250, 49251, 49252, 49253, 49254, 49255, 49258, 49259, 49260, 49261, 49262, 49263, 49264, 49265, 49266, 49267, 49268, 49269, 49270, 49271, 49272, 49273, 49274, 49275, 49276, 49277, 49278, 49279, 49280, 49281, 49282, 49283, 49284, 49285, 49286, 49287, 49288, 49289, 49290, 49291, 49292, 49293, 49294, 49295, 49298, 49299, 49301, 49302, 49303, 49305, 49306, 49307, 49308, 49309, 49310, 49311, 49314, 49316, 49318, 49319, 49320, 49321, 49322, 49323, 49326, 49329, 49330, 49335, 49336, 49337, 49338, 49339, 49342, 49346, 49347, 49348, 49350, 49351, 49354, 49355, 49357, 49358, 49359, 49361, 49362, 49363, 49364, 49365, 49366, 49367, 49370, 49374, 49375, 49376, 49377, 49378, 49379, 49382, 49383, 49385, 49386, 49387, 49389, 49390, 49391, 49392, 49393, 49394, 49395, 49398, 49400, 49402, 49403, 49404, 49405, 49406, 49407, 49409, 49410, 49411, 49413, 49414, 49415, 49417, 49418, 49419, 49420, 49421, 49422, 49423, 49425, 49426, 49427, 49428, 49430, 49431, 49432, 49433, 49434, 49435, 49441, 49442, 49445, 49448, 49449, 49450, 49451, 49454, 49458, 49459, 49460, 49461, 49463, 49466, 49467, 49469, 49470, 49471, 49473, 49474, 49475, 49476, 49477, 49478, 49479, 49482, 49486, 49487, 49488, 49489, 49490, 49491, 49494, 49495, 49497, 49498, 49499, 49501, 49502, 49503, 49504, 49505, 49506, 49507, 49510, 49514, 49515, 49516, 49517, 49518, 49519, 49521, 49522, 49523, 49525, 49526, 49527, 49529, 49530, 49531, 49532, 49533, 49534, 49535, 49536, 49537, 49538, 49539, 49540, 49542, 49543, 49544, 49545, 49546, 49547, 49551, 49553, 49554, 49555, 49557, 49559, 49560, 49561, 49562, 49563, 49566, 49568, 49570, 49571, 49572, 49574, 49575, 49578, 49579, 49581, 49582, 49583, 49585, 49586, 49587, 49588, 49589, 49590, 49591, 49592, 49593, 49594, 49595, 49596, 49598, 49599, 49600, 49601, 49602, 49603, 49605, 49606, 49607, 49609, 49610, 49611, 49613, 49614, 49615, 49616, 49617, 49618, 49619, 49621, 49622, 49625, 49626, 49627, 49628, 49629, 49630, 49631, 49633, 49634, 49635, 49637, 49638, 49639, 49641, 49642, 49643, 49644, 49645, 49646, 49647, 49650, 49652, 49653, 49654, 49655, 49656, 49657, 49658, 49659, 49662, 49663, 49665, 49666, 49667, 49669, 49670, 49671, 49672, 49673, 49674, 49675, 49678, 49680, 49682, 49683, 49684, 49685, 49686, 49687, 49690, 49691, 49693, 49694, 49697, 49698, 49699, 49700, 49701, 49702, 49703, 49706, 49708, 49710, 49712, 49715, 49717, 49718, 49719, 49720, 49721, 49722, 49723, 49724, 49725, 49726, 49727, 49728, 49729, 49730, 49731, 49732, 49733, 49734, 49735, 49737, 49738, 49739, 49740, 49741, 49742, 49743, 49746, 49747, 49749, 49750, 49751, 49753, 49754, 49755, 49756, 49757, 49758, 49759, 49761, 49762, 49763, 49764, 49766, 49767, 49768, 49769, 49770, 49771, 49774, 49775, 49777, 49778, 49779, 49781, 49782, 49783, 49784, 49785, 49786, 49787, 49790, 49792, 49794, 49795, 49796, 49797, 49798, 49799, 49802, 49803, 49804, 49805, 49806, 49807, 49809, 49810, 49811, 49812, 49813, 49814, 49815, 49817, 49818, 49820, 49822, 49823, 49824, 49825, 49826, 49827, 49830, 49831, 49833, 49834, 49835, 49838, 49839, 49840, 49841, 49842, 49843, 49846, 49848, 49850, 49851, 49852, 49853, 49854, 49855, 49856, 49857, 49858, 49859, 49860, 49861, 49862, 49863, 49864, 49865, 49866, 49867, 49868, 49869, 49870, 49871, 49872, 49873, 49874, 49875, 49876, 49877, 49878, 49879, 49880, 49881, 49882, 49883, 49886, 49887, 49889, 49890, 49893, 49894, 49895, 49896, 49897, 49898, 49902, 49904, 49906, 49907, 49908, 49909, 49911, 49914, 49917, 49918, 49919, 49921, 49922, 49923, 49924, 49925, 49926, 49927, 49930, 49931, 49934, 49935, 49936, 49937, 49938, 49942, 49943, 49945, 49946, 49947, 49949, 49950, 49951, 49952, 49953, 49954, 49955, 49958, 49959, 49962, 49963, 49964, 49965, 49966, 49967, 49968, 49969, 49970, 49971, 49972, 49973, 49974, 49975, 49976, 49977, 49978, 49979, 49980, 49981, 49982, 49983, 49984, 49985, 49986, 49987, 49988, 49990, 49991, 49992, 49993, 49994, 49995, 49996, 49997, 49998, 49999, 50000, 50001, 50002, 50003, 50004, 50005, 50006, 50007, 50008, 50009, 50010, 50011, 50012, 50013, 50014, 50015, 50016, 50017, 50018, 50019, 50020, 50021, 50022, 50023, 50026, 50027, 50029, 50030, 50031, 50033, 50035, 50036, 50037, 50038, 50039, 50042, 50043, 50046, 50047, 50048, 50049, 50050, 50051, 50053, 50054, 50055, 50057, 50058, 50059, 50061, 50062, 50063, 50064, 50065, 50066, 50067, 50068, 50069, 50070, 50071, 50072, 50073, 50074, 50075, 50076, 50077, 50078, 50079, 50080, 50081, 50082, 50083, 50084, 50085, 50086, 50087, 50088, 50089, 50090, 50091, 50092, 50093, 50094, 50095, 50096, 50097, 50098, 50099, 50100, 50101, 50102, 50103, 50104, 50105, 50106, 50107, 50108, 50109, 50110, 50111, 50113, 50114, 50115, 50116, 50117, 50118, 50119, 50120, 50121, 50122, 50123, 50124, 50125, 50126, 50127, 50128, 50129, 50130, 50131, 50132, 50133, 50134, 50135, 50138, 50139, 50141, 50142, 50145, 50147, 50148, 50149, 50150, 50151, 50154, 50155, 50156, 50158, 50159, 50160, 50161, 50162, 50163, 50166, 50167, 50169, 50170, 50171, 50172, 50173, 50174, 50175, 50176, 50177, 50178, 50179, 50180, 50181, 50182, 50183, 50185, 50186, 50187, 50188, 50189, 50190, 50191, 50193, 50194, 50195, 50196, 50197, 50198, 50199, 50200, 50201, 50202, 50203, 50204, 50205, 50206, 50207, 50208, 50209, 50210, 50211, 50213, 50214, 50215, 50216, 50217, 50218, 50219, 50221, 50222, 50223, 50225, 50226, 50227, 50229, 50230, 50231, 50232, 50233, 50234, 50235, 50238, 50239, 50240, 50241, 50242, 50243, 50244, 50245, 50246, 50247, 50249, 50250, 50251, 50252, 50253, 50254, 50255, 50256, 50257, 50258, 50259, 50260, 50261, 50262, 50263, 50264, 50265, 50266, 50267, 50268, 50269, 50270, 50271, 50272, 50273, 50274, 50275, 50278, 50279, 50281, 50282, 50283, 50285, 50286, 50287, 50288, 50289, 50290, 50291, 50294, 50295, 50296, 50298, 50299, 50300, 50301, 50302, 50303, 50305, 50306, 50307, 50308, 50309, 50310, 50311, 50312, 50313, 50314, 50315, 50316, 50317, 50318, 50319, 50320, 50321, 50322, 50323, 50325, 50326, 50327, 50328, 50329, 50330, 50331, 50333, 50334, 50335, 50336, 50337, 50338, 50339, 50340, 50341, 50342, 50343, 50344, 50345, 50346, 50347, 50348, 50349, 50350, 50351, 50352, 50353, 50354, 50355, 50356, 50357, 50358, 50359, 50361, 50362, 50363, 50365, 50366, 50367, 50368, 50369, 50370, 50371, 50372, 50373, 50374, 50375, 50376, 50377, 50378, 50379, 50380, 50381, 50382, 50383, 50384, 50385, 50386, 50387, 50388, 50389, 50390, 50391, 50392, 50393, 50394, 50395, 50396, 50397, 50398, 50399, 50400, 50401, 50402, 50403, 50404, 50405, 50406, 50407, 50408, 50410, 50411, 50412, 50413, 50414, 50415, 50418, 50419, 50421, 50422, 50423, 50425, 50427, 50428, 50429, 50430, 50434, 50435, 50436, 50437, 50438, 50439, 50440, 50441, 50442, 50443, 50445, 50446, 50447, 50449, 50450, 50451, 50453, 50454, 50455, 50456, 50457, 50458, 50459, 50461, 50462, 50463, 50464, 50465, 50466, 50467, 50468, 50469, 50470, 50471, 50474, 50475, 50477, 50478, 50479, 50481, 50482, 50483, 50484, 50485, 50486, 50487, 50490, 50492, 50494, 50495, 50496, 50497, 50498, 50499, 50502, 50503, 50507, 50511, 50512, 50513, 50514, 50518, 50522, 50523, 50524, 50527, 50530, 50531, 50533, 50534, 50535, 50537, 50538, 50539, 50540, 50541, 50542, 50543, 50546, 50550, 50551, 50552, 50553, 50554, 50555, 50558, 50559, 50561, 50562, 50563, 50565, 50566, 50568, 50569, 50570, 50571, 50574, 50576, 50578, 50579, 50580, 50582, 50585, 50586, 50587, 50589, 50590, 50591, 50593, 50594, 50595, 50596, 50597, 50598, 50599, 50600, 50602, 50603, 50604, 50605, 50606, 50607, 50608, 50609, 50610, 50611, 50614, 50615, 50618, 50623, 50624, 50625, 50626, 50627, 50635, 50637, 50639, 50642, 50643, 50645, 50646, 50647, 50649, 50650, 50651, 50652, 50653, 50654, 50655, 50658, 50660, 50662, 50663, 50664, 50665, 50666, 50667, 50671, 50673, 50674, 50675, 50677, 50680, 50681, 50682, 50683, 50690, 50691, 50692, 50697, 50698, 50699, 50701, 50702, 50703, 50705, 50706, 50707, 50708, 50709, 50710, 50711, 50714, 50717, 50718, 50719, 50720, 50721, 50722, 50723, 50726, 50727, 50729, 50730, 50731, 50735, 50737, 50738, 50742, 50744, 50746, 50748, 50749, 50750, 50751, 50754, 50755, 50757, 50758, 50759, 50761, 50762, 50763, 50764, 50765, 50766, 50767, 50770, 50774, 50775, 50776, 50777, 50778, 50779, 50782, 50783, 50785, 50786, 50787, 50788, 50789, 50790, 50791, 50792, 50793, 50794, 50795, 50797, 50798, 50800, 50802, 50803, 50804, 50805, 50806, 50807, 50810, 50811, 50813, 50814, 50815, 50817, 50818, 50819, 50820, 50821, 50822, 50823, 50826, 50828, 50830, 50831, 50832, 50833, 50834, 50835, 50838, 50839, 50841, 50842, 50843, 50845, 50846, 50847, 50848, 50849, 50850, 50851, 50854, 50856, 50858, 50859, 50860, 50861, 50862, 50863, 50866, 50867, 50869, 50870, 50871, 50875, 50876, 50877, 50878, 50879, 50882, 50884, 50886, 50887, 50888, 50889, 50890, 50891, 50894, 50895, 50897, 50898, 50899, 50901, 50902, 50903, 50904, 50905, 50906, 50907, 50910, 50911, 50914, 50915, 50916, 50917, 50918, 50919, 50922, 50923, 50925, 50926, 50927, 50929, 50930, 50931, 50932, 50933, 50934, 50935, 50938, 50939, 50940, 50942, 50943, 50944, 50945, 50946, 50947, 50950, 50951, 50953, 50954, 50955, 50957, 50958, 50959, 50960, 50961, 50962, 50963, 50966, 50968, 50970, 50971, 50972, 50973, 50974, 50975, 50978, 50979, 50981, 50982, 50983, 50985, 50986, 50987, 50988, 50989, 50990, 50991, 50994, 50996, 50998, 51000, 51001, 51002, 51003, 51006, 51007, 51009, 51010, 51011, 51013, 51014, 51015, 51016, 51017, 51019, 51022, 51024, 51033, 51034, 51035, 51037, 51038, 51039, 51041, 51042, 51043, 51044, 51045, 51046, 51047, 51049, 51050, 51052, 51053, 51054, 51055, 51056, 51057, 51058, 51059, 51062, 51063, 51065, 51066, 51067, 51071, 51072, 51073, 51074, 51078, 51083, 51084, 51085, 51087, 51090, 51091, 51093, 51097, 51099, 51100, 51101, 51102, 51103, 51106, 51111, 51112, 51113, 51114, 51115, 51118, 51119, 51121, 51122, 51123, 51125, 51126, 51127, 51128, 51129, 51130, 51131, 51134, 51138, 51139, 51140, 51141, 51142, 51143, 51146, 51147, 51149, 51151, 51153, 51154, 51155, 51156, 51157, 51158, 51159, 51161, 51162, 51163, 51164, 51166, 51167, 51168, 51169, 51170, 51171, 51173, 51174, 51175, 51177, 51178, 51179, 51181, 51182, 51183, 51184, 51185, 51186, 51187, 51188, 51189, 51190, 51191, 51192, 51193, 51194, 51195, 51196, 51197, 51198, 51199, 51202, 51203, 51205, 51206, 51207, 51209, 51211, 51212, 51213, 51214, 51215, 51218, 51220, 51223, 51224, 51225, 51226, 51227, 51230, 51231, 51233, 51234, 51235, 51237, 51238, 51239, 51240, 51241, 51242, 51243, 51246, 51248, 51250, 51251, 51252, 51253, 51254, 51255, 51257, 51258, 51259, 51261, 51262, 51263, 51265, 51266, 51267, 51268, 51269, 51270, 51271, 51274, 51275, 51278, 51279, 51280, 51281, 51282, 51283, 51285, 51286, 51287, 51288, 51289, 51290, 51291, 51292, 51293, 51294, 51295, 51296, 51297, 51298, 51299, 51300, 51301, 51302, 51303, 51304, 51305, 51306, 51307, 51308, 51309, 51310, 51311, 51314, 51315, 51317, 51318, 51319, 51321, 51323, 51324, 51325, 51326, 51327, 51330, 51332, 51336, 51337, 51338, 51342, 51343, 51344, 51345, 51346, 51347, 51349, 51350, 51351, 51352, 51353, 51354, 51355, 51356, 51358, 51360, 51362, 51363, 51364, 51365, 51366, 51367, 51369, 51370, 51371, 51372, 51373, 51374, 51375, 51376, 51377, 51378, 51379, 51380, 51381, 51382, 51383, 51384, 51385, 51386, 51387, 51390, 51391, 51392, 51393, 51394, 51395, 51397, 51398, 51399, 51401, 51402, 51403, 51405, 51406, 51407, 51408, 51409, 51410, 51411, 51414, 51416, 51418, 51419, 51420, 51421, 51422, 51423, 51426, 51427, 51429, 51430, 51431, 51432, 51433, 51434, 51435, 51436, 51437, 51438, 51439, 51440, 51441, 51442, 51443, 51444, 51446, 51447, 51448, 51449, 51450, 51451, 51454, 51455, 51457, 51458, 51459, 51463, 51464, 51465, 51466, 51467, 51470, 12288, 12289, 12290, 183, 8229, 8230, 168, 12291, 173, 8213, 8741, 65340, 8764, 8216, 8217, 8220, 8221, 12308, 12309, 12296, 12297, 12298, 12299, 12300, 12301, 12302, 12303, 12304, 12305, 177, 215, 247, 8800, 8804, 8805, 8734, 8756, 176, 8242, 8243, 8451, 8491, 65504, 65505, 65509, 9794, 9792, 8736, 8869, 8978, 8706, 8711, 8801, 8786, 167, 8251, 9734, 9733, 9675, 9679, 9678, 9671, 9670, 9633, 9632, 9651, 9650, 9661, 9660, 8594, 8592, 8593, 8595, 8596, 12307, 8810, 8811, 8730, 8765, 8733, 8757, 8747, 8748, 8712, 8715, 8838, 8839, 8834, 8835, 8746, 8745, 8743, 8744, 65506, 51472, 51474, 51475, 51476, 51477, 51478, 51479, 51481, 51482, 51483, 51484, 51485, 51486, 51487, 51488, 51489, 51490, 51491, 51492, 51493, 51494, 51495, 51496, 51497, 51498, 51499, 51501, 51502, 51503, 51504, 51505, 51506, 51507, 51509, 51510, 51511, 51512, 51513, 51514, 51515, 51516, 51517, 51518, 51519, 51520, 51521, 51522, 51523, 51524, 51525, 51526, 51527, 51528, 51529, 51530, 51531, 51532, 51533, 51534, 51535, 51538, 51539, 51541, 51542, 51543, 51545, 51546, 51547, 51548, 51549, 51550, 51551, 51554, 51556, 51557, 51558, 51559, 51560, 51561, 51562, 51563, 51565, 51566, 51567, 8658, 8660, 8704, 8707, 180, 65374, 711, 728, 733, 730, 729, 184, 731, 161, 191, 720, 8750, 8721, 8719, 164, 8457, 8240, 9665, 9664, 9655, 9654, 9828, 9824, 9825, 9829, 9831, 9827, 8857, 9672, 9635, 9680, 9681, 9618, 9636, 9637, 9640, 9639, 9638, 9641, 9832, 9743, 9742, 9756, 9758, 182, 8224, 8225, 8597, 8599, 8601, 8598, 8600, 9837, 9833, 9834, 9836, 12927, 12828, 8470, 13255, 8482, 13250, 13272, 8481, 8364, 174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51569, 51570, 51571, 51573, 51574, 51575, 51576, 51577, 51578, 51579, 51581, 51582, 51583, 51584, 51585, 51586, 51587, 51588, 51589, 51590, 51591, 51594, 51595, 51597, 51598, 51599, 51601, 51602, 51603, 51604, 51605, 51606, 51607, 51610, 51612, 51614, 51615, 51616, 51617, 51618, 51619, 51620, 51621, 51622, 51623, 51624, 51625, 51626, 51627, 51628, 51629, 51630, 51631, 51632, 51633, 51634, 51635, 51636, 51637, 51638, 51639, 51640, 51641, 51642, 51643, 51644, 51645, 51646, 51647, 51650, 51651, 51653, 51654, 51657, 51659, 51660, 51661, 51662, 51663, 51666, 51668, 51671, 51672, 51675, 65281, 65282, 65283, 65284, 65285, 65286, 65287, 65288, 65289, 65290, 65291, 65292, 65293, 65294, 65295, 65296, 65297, 65298, 65299, 65300, 65301, 65302, 65303, 65304, 65305, 65306, 65307, 65308, 65309, 65310, 65311, 65312, 65313, 65314, 65315, 65316, 65317, 65318, 65319, 65320, 65321, 65322, 65323, 65324, 65325, 65326, 65327, 65328, 65329, 65330, 65331, 65332, 65333, 65334, 65335, 65336, 65337, 65338, 65339, 65510, 65341, 65342, 65343, 65344, 65345, 65346, 65347, 65348, 65349, 65350, 65351, 65352, 65353, 65354, 65355, 65356, 65357, 65358, 65359, 65360, 65361, 65362, 65363, 65364, 65365, 65366, 65367, 65368, 65369, 65370, 65371, 65372, 65373, 65507, 51678, 51679, 51681, 51683, 51685, 51686, 51688, 51689, 51690, 51691, 51694, 51698, 51699, 51700, 51701, 51702, 51703, 51706, 51707, 51709, 51710, 51711, 51713, 51714, 51715, 51716, 51717, 51718, 51719, 51722, 51726, 51727, 51728, 51729, 51730, 51731, 51733, 51734, 51735, 51737, 51738, 51739, 51740, 51741, 51742, 51743, 51744, 51745, 51746, 51747, 51748, 51749, 51750, 51751, 51752, 51754, 51755, 51756, 51757, 51758, 51759, 51760, 51761, 51762, 51763, 51764, 51765, 51766, 51767, 51768, 51769, 51770, 51771, 51772, 51773, 51774, 51775, 51776, 51777, 51778, 51779, 51780, 51781, 51782, 12593, 12594, 12595, 12596, 12597, 12598, 12599, 12600, 12601, 12602, 12603, 12604, 12605, 12606, 12607, 12608, 12609, 12610, 12611, 12612, 12613, 12614, 12615, 12616, 12617, 12618, 12619, 12620, 12621, 12622, 12623, 12624, 12625, 12626, 12627, 12628, 12629, 12630, 12631, 12632, 12633, 12634, 12635, 12636, 12637, 12638, 12639, 12640, 12641, 12642, 12643, 12644, 12645, 12646, 12647, 12648, 12649, 12650, 12651, 12652, 12653, 12654, 12655, 12656, 12657, 12658, 12659, 12660, 12661, 12662, 12663, 12664, 12665, 12666, 12667, 12668, 12669, 12670, 12671, 12672, 12673, 12674, 12675, 12676, 12677, 12678, 12679, 12680, 12681, 12682, 12683, 12684, 12685, 12686, 51783, 51784, 51785, 51786, 51787, 51790, 51791, 51793, 51794, 51795, 51797, 51798, 51799, 51800, 51801, 51802, 51803, 51806, 51810, 51811, 51812, 51813, 51814, 51815, 51817, 51818, 51819, 51820, 51821, 51822, 51823, 51824, 51825, 51826, 51827, 51828, 51829, 51830, 51831, 51832, 51833, 51834, 51835, 51836, 51838, 51839, 51840, 51841, 51842, 51843, 51845, 51846, 51847, 51848, 51849, 51850, 51851, 51852, 51853, 51854, 51855, 51856, 51857, 51858, 51859, 51860, 51861, 51862, 51863, 51865, 51866, 51867, 51868, 51869, 51870, 51871, 51872, 51873, 51874, 51875, 51876, 51877, 51878, 51879, 8560, 8561, 8562, 8563, 8564, 8565, 8566, 8567, 8568, 8569, 0, 0, 0, 0, 0, 8544, 8545, 8546, 8547, 8548, 8549, 8550, 8551, 8552, 8553, 0, 0, 0, 0, 0, 0, 0, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937, 0, 0, 0, 0, 0, 0, 0, 0, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 963, 964, 965, 966, 967, 968, 969, 0, 0, 0, 0, 0, 0, 51880, 51881, 51882, 51883, 51884, 51885, 51886, 51887, 51888, 51889, 51890, 51891, 51892, 51893, 51894, 51895, 51896, 51897, 51898, 51899, 51902, 51903, 51905, 51906, 51907, 51909, 51910, 51911, 51912, 51913, 51914, 51915, 51918, 51920, 51922, 51924, 51925, 51926, 51927, 51930, 51931, 51932, 51933, 51934, 51935, 51937, 51938, 51939, 51940, 51941, 51942, 51943, 51944, 51945, 51946, 51947, 51949, 51950, 51951, 51952, 51953, 51954, 51955, 51957, 51958, 51959, 51960, 51961, 51962, 51963, 51964, 51965, 51966, 51967, 51968, 51969, 51970, 51971, 51972, 51973, 51974, 51975, 51977, 51978, 9472, 9474, 9484, 9488, 9496, 9492, 9500, 9516, 9508, 9524, 9532, 9473, 9475, 9487, 9491, 9499, 9495, 9507, 9523, 9515, 9531, 9547, 9504, 9519, 9512, 9527, 9535, 9501, 9520, 9509, 9528, 9538, 9490, 9489, 9498, 9497, 9494, 9493, 9486, 9485, 9502, 9503, 9505, 9506, 9510, 9511, 9513, 9514, 9517, 9518, 9521, 9522, 9525, 9526, 9529, 9530, 9533, 9534, 9536, 9537, 9539, 9540, 9541, 9542, 9543, 9544, 9545, 9546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51979, 51980, 51981, 51982, 51983, 51985, 51986, 51987, 51989, 51990, 51991, 51993, 51994, 51995, 51996, 51997, 51998, 51999, 52002, 52003, 52004, 52005, 52006, 52007, 52008, 52009, 52010, 52011, 52012, 52013, 52014, 52015, 52016, 52017, 52018, 52019, 52020, 52021, 52022, 52023, 52024, 52025, 52026, 52027, 52028, 52029, 52030, 52031, 52032, 52034, 52035, 52036, 52037, 52038, 52039, 52042, 52043, 52045, 52046, 52047, 52049, 52050, 52051, 52052, 52053, 52054, 52055, 52058, 52059, 52060, 52062, 52063, 52064, 52065, 52066, 52067, 52069, 52070, 52071, 52072, 52073, 52074, 52075, 52076, 13205, 13206, 13207, 8467, 13208, 13252, 13219, 13220, 13221, 13222, 13209, 13210, 13211, 13212, 13213, 13214, 13215, 13216, 13217, 13218, 13258, 13197, 13198, 13199, 13263, 13192, 13193, 13256, 13223, 13224, 13232, 13233, 13234, 13235, 13236, 13237, 13238, 13239, 13240, 13241, 13184, 13185, 13186, 13187, 13188, 13242, 13243, 13244, 13245, 13246, 13247, 13200, 13201, 13202, 13203, 13204, 8486, 13248, 13249, 13194, 13195, 13196, 13270, 13253, 13229, 13230, 13231, 13275, 13225, 13226, 13227, 13228, 13277, 13264, 13267, 13251, 13257, 13276, 13254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52077, 52078, 52079, 52080, 52081, 52082, 52083, 52084, 52085, 52086, 52087, 52090, 52091, 52092, 52093, 52094, 52095, 52096, 52097, 52098, 52099, 52100, 52101, 52102, 52103, 52104, 52105, 52106, 52107, 52108, 52109, 52110, 52111, 52112, 52113, 52114, 52115, 52116, 52117, 52118, 52119, 52120, 52121, 52122, 52123, 52125, 52126, 52127, 52128, 52129, 52130, 52131, 52132, 52133, 52134, 52135, 52136, 52137, 52138, 52139, 52140, 52141, 52142, 52143, 52144, 52145, 52146, 52147, 52148, 52149, 52150, 52151, 52153, 52154, 52155, 52156, 52157, 52158, 52159, 52160, 52161, 52162, 52163, 52164, 198, 208, 170, 294, 0, 306, 0, 319, 321, 216, 338, 186, 222, 358, 330, 0, 12896, 12897, 12898, 12899, 12900, 12901, 12902, 12903, 12904, 12905, 12906, 12907, 12908, 12909, 12910, 12911, 12912, 12913, 12914, 12915, 12916, 12917, 12918, 12919, 12920, 12921, 12922, 12923, 9424, 9425, 9426, 9427, 9428, 9429, 9430, 9431, 9432, 9433, 9434, 9435, 9436, 9437, 9438, 9439, 9440, 9441, 9442, 9443, 9444, 9445, 9446, 9447, 9448, 9449, 9312, 9313, 9314, 9315, 9316, 9317, 9318, 9319, 9320, 9321, 9322, 9323, 9324, 9325, 9326, 189, 8531, 8532, 188, 190, 8539, 8540, 8541, 8542, 52165, 52166, 52167, 52168, 52169, 52170, 52171, 52172, 52173, 52174, 52175, 52176, 52177, 52178, 52179, 52181, 52182, 52183, 52184, 52185, 52186, 52187, 52188, 52189, 52190, 52191, 52192, 52193, 52194, 52195, 52197, 52198, 52200, 52202, 52203, 52204, 52205, 52206, 52207, 52208, 52209, 52210, 52211, 52212, 52213, 52214, 52215, 52216, 52217, 52218, 52219, 52220, 52221, 52222, 52223, 52224, 52225, 52226, 52227, 52228, 52229, 52230, 52231, 52232, 52233, 52234, 52235, 52238, 52239, 52241, 52242, 52243, 52245, 52246, 52247, 52248, 52249, 52250, 52251, 52254, 52255, 52256, 52259, 52260, 230, 273, 240, 295, 305, 307, 312, 320, 322, 248, 339, 223, 254, 359, 331, 329, 12800, 12801, 12802, 12803, 12804, 12805, 12806, 12807, 12808, 12809, 12810, 12811, 12812, 12813, 12814, 12815, 12816, 12817, 12818, 12819, 12820, 12821, 12822, 12823, 12824, 12825, 12826, 12827, 9372, 9373, 9374, 9375, 9376, 9377, 9378, 9379, 9380, 9381, 9382, 9383, 9384, 9385, 9386, 9387, 9388, 9389, 9390, 9391, 9392, 9393, 9394, 9395, 9396, 9397, 9332, 9333, 9334, 9335, 9336, 9337, 9338, 9339, 9340, 9341, 9342, 9343, 9344, 9345, 9346, 185, 178, 179, 8308, 8319, 8321, 8322, 8323, 8324, 52261, 52262, 52266, 52267, 52269, 52271, 52273, 52274, 52275, 52276, 52277, 52278, 52279, 52282, 52287, 52288, 52289, 52290, 52291, 52294, 52295, 52297, 52298, 52299, 52301, 52302, 52303, 52304, 52305, 52306, 52307, 52310, 52314, 52315, 52316, 52317, 52318, 52319, 52321, 52322, 52323, 52325, 52327, 52329, 52330, 52331, 52332, 52333, 52334, 52335, 52337, 52338, 52339, 52340, 52342, 52343, 52344, 52345, 52346, 52347, 52348, 52349, 52350, 52351, 52352, 52353, 52354, 52355, 52356, 52357, 52358, 52359, 52360, 52361, 52362, 52363, 52364, 52365, 52366, 52367, 52368, 52369, 52370, 52371, 12353, 12354, 12355, 12356, 12357, 12358, 12359, 12360, 12361, 12362, 12363, 12364, 12365, 12366, 12367, 12368, 12369, 12370, 12371, 12372, 12373, 12374, 12375, 12376, 12377, 12378, 12379, 12380, 12381, 12382, 12383, 12384, 12385, 12386, 12387, 12388, 12389, 12390, 12391, 12392, 12393, 12394, 12395, 12396, 12397, 12398, 12399, 12400, 12401, 12402, 12403, 12404, 12405, 12406, 12407, 12408, 12409, 12410, 12411, 12412, 12413, 12414, 12415, 12416, 12417, 12418, 12419, 12420, 12421, 12422, 12423, 12424, 12425, 12426, 12427, 12428, 12429, 12430, 12431, 12432, 12433, 12434, 12435, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52372, 52373, 52374, 52375, 52378, 52379, 52381, 52382, 52383, 52385, 52386, 52387, 52388, 52389, 52390, 52391, 52394, 52398, 52399, 52400, 52401, 52402, 52403, 52406, 52407, 52409, 52410, 52411, 52413, 52414, 52415, 52416, 52417, 52418, 52419, 52422, 52424, 52426, 52427, 52428, 52429, 52430, 52431, 52433, 52434, 52435, 52437, 52438, 52439, 52440, 52441, 52442, 52443, 52444, 52445, 52446, 52447, 52448, 52449, 52450, 52451, 52453, 52454, 52455, 52456, 52457, 52458, 52459, 52461, 52462, 52463, 52465, 52466, 52467, 52468, 52469, 52470, 52471, 52472, 52473, 52474, 52475, 52476, 52477, 12449, 12450, 12451, 12452, 12453, 12454, 12455, 12456, 12457, 12458, 12459, 12460, 12461, 12462, 12463, 12464, 12465, 12466, 12467, 12468, 12469, 12470, 12471, 12472, 12473, 12474, 12475, 12476, 12477, 12478, 12479, 12480, 12481, 12482, 12483, 12484, 12485, 12486, 12487, 12488, 12489, 12490, 12491, 12492, 12493, 12494, 12495, 12496, 12497, 12498, 12499, 12500, 12501, 12502, 12503, 12504, 12505, 12506, 12507, 12508, 12509, 12510, 12511, 12512, 12513, 12514, 12515, 12516, 12517, 12518, 12519, 12520, 12521, 12522, 12523, 12524, 12525, 12526, 12527, 12528, 12529, 12530, 12531, 12532, 12533, 12534, 0, 0, 0, 0, 0, 0, 0, 0, 52478, 52479, 52480, 52482, 52483, 52484, 52485, 52486, 52487, 52490, 52491, 52493, 52494, 52495, 52497, 52498, 52499, 52500, 52501, 52502, 52503, 52506, 52508, 52510, 52511, 52512, 52513, 52514, 52515, 52517, 52518, 52519, 52521, 52522, 52523, 52525, 52526, 52527, 52528, 52529, 52530, 52531, 52532, 52533, 52534, 52535, 52536, 52538, 52539, 52540, 52541, 52542, 52543, 52544, 52545, 52546, 52547, 52548, 52549, 52550, 52551, 52552, 52553, 52554, 52555, 52556, 52557, 52558, 52559, 52560, 52561, 52562, 52563, 52564, 52565, 52566, 52567, 52568, 52569, 52570, 52571, 52573, 52574, 52575, 1040, 1041, 1042, 1043, 1044, 1045, 1025, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1072, 1073, 1074, 1075, 1076, 1077, 1105, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52577, 52578, 52579, 52581, 52582, 52583, 52584, 52585, 52586, 52587, 52590, 52592, 52594, 52595, 52596, 52597, 52598, 52599, 52601, 52602, 52603, 52604, 52605, 52606, 52607, 52608, 52609, 52610, 52611, 52612, 52613, 52614, 52615, 52617, 52618, 52619, 52620, 52621, 52622, 52623, 52624, 52625, 52626, 52627, 52630, 52631, 52633, 52634, 52635, 52637, 52638, 52639, 52640, 52641, 52642, 52643, 52646, 52648, 52650, 52651, 52652, 52653, 52654, 52655, 52657, 52658, 52659, 52660, 52661, 52662, 52663, 52664, 52665, 52666, 52667, 52668, 52669, 52670, 52671, 52672, 52673, 52674, 52675, 52677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52678, 52679, 52680, 52681, 52682, 52683, 52685, 52686, 52687, 52689, 52690, 52691, 52692, 52693, 52694, 52695, 52696, 52697, 52698, 52699, 52700, 52701, 52702, 52703, 52704, 52705, 52706, 52707, 52708, 52709, 52710, 52711, 52713, 52714, 52715, 52717, 52718, 52719, 52721, 52722, 52723, 52724, 52725, 52726, 52727, 52730, 52732, 52734, 52735, 52736, 52737, 52738, 52739, 52741, 52742, 52743, 52745, 52746, 52747, 52749, 52750, 52751, 52752, 52753, 52754, 52755, 52757, 52758, 52759, 52760, 52762, 52763, 52764, 52765, 52766, 52767, 52770, 52771, 52773, 52774, 52775, 52777, 52778, 52779, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52780, 52781, 52782, 52783, 52786, 52788, 52790, 52791, 52792, 52793, 52794, 52795, 52796, 52797, 52798, 52799, 52800, 52801, 52802, 52803, 52804, 52805, 52806, 52807, 52808, 52809, 52810, 52811, 52812, 52813, 52814, 52815, 52816, 52817, 52818, 52819, 52820, 52821, 52822, 52823, 52826, 52827, 52829, 52830, 52834, 52835, 52836, 52837, 52838, 52839, 52842, 52844, 52846, 52847, 52848, 52849, 52850, 52851, 52854, 52855, 52857, 52858, 52859, 52861, 52862, 52863, 52864, 52865, 52866, 52867, 52870, 52872, 52874, 52875, 52876, 52877, 52878, 52879, 52882, 52883, 52885, 52886, 52887, 52889, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52890, 52891, 52892, 52893, 52894, 52895, 52898, 52902, 52903, 52904, 52905, 52906, 52907, 52910, 52911, 52912, 52913, 52914, 52915, 52916, 52917, 52918, 52919, 52920, 52921, 52922, 52923, 52924, 52925, 52926, 52927, 52928, 52930, 52931, 52932, 52933, 52934, 52935, 52936, 52937, 52938, 52939, 52940, 52941, 52942, 52943, 52944, 52945, 52946, 52947, 52948, 52949, 52950, 52951, 52952, 52953, 52954, 52955, 52956, 52957, 52958, 52959, 52960, 52961, 52962, 52963, 52966, 52967, 52969, 52970, 52973, 52974, 52975, 52976, 52977, 52978, 52979, 52982, 52986, 52987, 52988, 52989, 52990, 52991, 44032, 44033, 44036, 44039, 44040, 44041, 44042, 44048, 44049, 44050, 44051, 44052, 44053, 44054, 44055, 44057, 44058, 44059, 44060, 44061, 44064, 44068, 44076, 44077, 44079, 44080, 44081, 44088, 44089, 44092, 44096, 44107, 44109, 44116, 44120, 44124, 44144, 44145, 44148, 44151, 44152, 44154, 44160, 44161, 44163, 44164, 44165, 44166, 44169, 44170, 44171, 44172, 44176, 44180, 44188, 44189, 44191, 44192, 44193, 44200, 44201, 44202, 44204, 44207, 44208, 44216, 44217, 44219, 44220, 44221, 44225, 44228, 44232, 44236, 44245, 44247, 44256, 44257, 44260, 44263, 44264, 44266, 44268, 44271, 44272, 44273, 44275, 44277, 44278, 44284, 44285, 44288, 44292, 44294, 52994, 52995, 52997, 52998, 52999, 53001, 53002, 53003, 53004, 53005, 53006, 53007, 53010, 53012, 53014, 53015, 53016, 53017, 53018, 53019, 53021, 53022, 53023, 53025, 53026, 53027, 53029, 53030, 53031, 53032, 53033, 53034, 53035, 53038, 53042, 53043, 53044, 53045, 53046, 53047, 53049, 53050, 53051, 53052, 53053, 53054, 53055, 53056, 53057, 53058, 53059, 53060, 53061, 53062, 53063, 53064, 53065, 53066, 53067, 53068, 53069, 53070, 53071, 53072, 53073, 53074, 53075, 53078, 53079, 53081, 53082, 53083, 53085, 53086, 53087, 53088, 53089, 53090, 53091, 53094, 53096, 53098, 53099, 53100, 44300, 44301, 44303, 44305, 44312, 44316, 44320, 44329, 44332, 44333, 44340, 44341, 44344, 44348, 44356, 44357, 44359, 44361, 44368, 44372, 44376, 44385, 44387, 44396, 44397, 44400, 44403, 44404, 44405, 44406, 44411, 44412, 44413, 44415, 44417, 44418, 44424, 44425, 44428, 44432, 44444, 44445, 44452, 44471, 44480, 44481, 44484, 44488, 44496, 44497, 44499, 44508, 44512, 44516, 44536, 44537, 44540, 44543, 44544, 44545, 44552, 44553, 44555, 44557, 44564, 44592, 44593, 44596, 44599, 44600, 44602, 44608, 44609, 44611, 44613, 44614, 44618, 44620, 44621, 44622, 44624, 44628, 44630, 44636, 44637, 44639, 44640, 44641, 44645, 44648, 44649, 44652, 44656, 44664, 53101, 53102, 53103, 53106, 53107, 53109, 53110, 53111, 53113, 53114, 53115, 53116, 53117, 53118, 53119, 53121, 53122, 53123, 53124, 53126, 53127, 53128, 53129, 53130, 53131, 53133, 53134, 53135, 53136, 53137, 53138, 53139, 53140, 53141, 53142, 53143, 53144, 53145, 53146, 53147, 53148, 53149, 53150, 53151, 53152, 53154, 53155, 53156, 53157, 53158, 53159, 53161, 53162, 53163, 53164, 53165, 53166, 53167, 53169, 53170, 53171, 53172, 53173, 53174, 53175, 53176, 53177, 53178, 53179, 53180, 53181, 53182, 53183, 53184, 53185, 53186, 53187, 53189, 53190, 53191, 53192, 53193, 53194, 53195, 44665, 44667, 44668, 44669, 44676, 44677, 44684, 44732, 44733, 44734, 44736, 44740, 44748, 44749, 44751, 44752, 44753, 44760, 44761, 44764, 44776, 44779, 44781, 44788, 44792, 44796, 44807, 44808, 44813, 44816, 44844, 44845, 44848, 44850, 44852, 44860, 44861, 44863, 44865, 44866, 44867, 44872, 44873, 44880, 44892, 44893, 44900, 44901, 44921, 44928, 44932, 44936, 44944, 44945, 44949, 44956, 44984, 44985, 44988, 44992, 44999, 45000, 45001, 45003, 45005, 45006, 45012, 45020, 45032, 45033, 45040, 45041, 45044, 45048, 45056, 45057, 45060, 45068, 45072, 45076, 45084, 45085, 45096, 45124, 45125, 45128, 45130, 45132, 45134, 45139, 45140, 45141, 45143, 45145, 53196, 53197, 53198, 53199, 53200, 53201, 53202, 53203, 53204, 53205, 53206, 53207, 53208, 53209, 53210, 53211, 53212, 53213, 53214, 53215, 53218, 53219, 53221, 53222, 53223, 53225, 53226, 53227, 53228, 53229, 53230, 53231, 53234, 53236, 53238, 53239, 53240, 53241, 53242, 53243, 53245, 53246, 53247, 53249, 53250, 53251, 53253, 53254, 53255, 53256, 53257, 53258, 53259, 53260, 53261, 53262, 53263, 53264, 53266, 53267, 53268, 53269, 53270, 53271, 53273, 53274, 53275, 53276, 53277, 53278, 53279, 53280, 53281, 53282, 53283, 53284, 53285, 53286, 53287, 53288, 53289, 53290, 53291, 53292, 45149, 45180, 45181, 45184, 45188, 45196, 45197, 45199, 45201, 45208, 45209, 45210, 45212, 45215, 45216, 45217, 45218, 45224, 45225, 45227, 45228, 45229, 45230, 45231, 45233, 45235, 45236, 45237, 45240, 45244, 45252, 45253, 45255, 45256, 45257, 45264, 45265, 45268, 45272, 45280, 45285, 45320, 45321, 45323, 45324, 45328, 45330, 45331, 45336, 45337, 45339, 45340, 45341, 45347, 45348, 45349, 45352, 45356, 45364, 45365, 45367, 45368, 45369, 45376, 45377, 45380, 45384, 45392, 45393, 45396, 45397, 45400, 45404, 45408, 45432, 45433, 45436, 45440, 45442, 45448, 45449, 45451, 45453, 45458, 45459, 45460, 45464, 45468, 45480, 45516, 45520, 45524, 45532, 45533, 53294, 53295, 53296, 53297, 53298, 53299, 53302, 53303, 53305, 53306, 53307, 53309, 53310, 53311, 53312, 53313, 53314, 53315, 53318, 53320, 53322, 53323, 53324, 53325, 53326, 53327, 53329, 53330, 53331, 53333, 53334, 53335, 53337, 53338, 53339, 53340, 53341, 53342, 53343, 53345, 53346, 53347, 53348, 53349, 53350, 53351, 53352, 53353, 53354, 53355, 53358, 53359, 53361, 53362, 53363, 53365, 53366, 53367, 53368, 53369, 53370, 53371, 53374, 53375, 53376, 53378, 53379, 53380, 53381, 53382, 53383, 53384, 53385, 53386, 53387, 53388, 53389, 53390, 53391, 53392, 53393, 53394, 53395, 53396, 45535, 45544, 45545, 45548, 45552, 45561, 45563, 45565, 45572, 45573, 45576, 45579, 45580, 45588, 45589, 45591, 45593, 45600, 45620, 45628, 45656, 45660, 45664, 45672, 45673, 45684, 45685, 45692, 45700, 45701, 45705, 45712, 45713, 45716, 45720, 45721, 45722, 45728, 45729, 45731, 45733, 45734, 45738, 45740, 45744, 45748, 45768, 45769, 45772, 45776, 45778, 45784, 45785, 45787, 45789, 45794, 45796, 45797, 45798, 45800, 45803, 45804, 45805, 45806, 45807, 45811, 45812, 45813, 45815, 45816, 45817, 45818, 45819, 45823, 45824, 45825, 45828, 45832, 45840, 45841, 45843, 45844, 45845, 45852, 45908, 45909, 45910, 45912, 45915, 45916, 45918, 45919, 45924, 45925, 53397, 53398, 53399, 53400, 53401, 53402, 53403, 53404, 53405, 53406, 53407, 53408, 53409, 53410, 53411, 53414, 53415, 53417, 53418, 53419, 53421, 53422, 53423, 53424, 53425, 53426, 53427, 53430, 53432, 53434, 53435, 53436, 53437, 53438, 53439, 53442, 53443, 53445, 53446, 53447, 53450, 53451, 53452, 53453, 53454, 53455, 53458, 53462, 53463, 53464, 53465, 53466, 53467, 53470, 53471, 53473, 53474, 53475, 53477, 53478, 53479, 53480, 53481, 53482, 53483, 53486, 53490, 53491, 53492, 53493, 53494, 53495, 53497, 53498, 53499, 53500, 53501, 53502, 53503, 53504, 53505, 53506, 53507, 53508, 45927, 45929, 45931, 45934, 45936, 45937, 45940, 45944, 45952, 45953, 45955, 45956, 45957, 45964, 45968, 45972, 45984, 45985, 45992, 45996, 46020, 46021, 46024, 46027, 46028, 46030, 46032, 46036, 46037, 46039, 46041, 46043, 46045, 46048, 46052, 46056, 46076, 46096, 46104, 46108, 46112, 46120, 46121, 46123, 46132, 46160, 46161, 46164, 46168, 46176, 46177, 46179, 46181, 46188, 46208, 46216, 46237, 46244, 46248, 46252, 46261, 46263, 46265, 46272, 46276, 46280, 46288, 46293, 46300, 46301, 46304, 46307, 46308, 46310, 46316, 46317, 46319, 46321, 46328, 46356, 46357, 46360, 46363, 46364, 46372, 46373, 46375, 46376, 46377, 46378, 46384, 46385, 46388, 46392, 53509, 53510, 53511, 53512, 53513, 53514, 53515, 53516, 53518, 53519, 53520, 53521, 53522, 53523, 53524, 53525, 53526, 53527, 53528, 53529, 53530, 53531, 53532, 53533, 53534, 53535, 53536, 53537, 53538, 53539, 53540, 53541, 53542, 53543, 53544, 53545, 53546, 53547, 53548, 53549, 53550, 53551, 53554, 53555, 53557, 53558, 53559, 53561, 53563, 53564, 53565, 53566, 53567, 53570, 53574, 53575, 53576, 53577, 53578, 53579, 53582, 53583, 53585, 53586, 53587, 53589, 53590, 53591, 53592, 53593, 53594, 53595, 53598, 53600, 53602, 53603, 53604, 53605, 53606, 53607, 53609, 53610, 53611, 53613, 46400, 46401, 46403, 46404, 46405, 46411, 46412, 46413, 46416, 46420, 46428, 46429, 46431, 46432, 46433, 46496, 46497, 46500, 46504, 46506, 46507, 46512, 46513, 46515, 46516, 46517, 46523, 46524, 46525, 46528, 46532, 46540, 46541, 46543, 46544, 46545, 46552, 46572, 46608, 46609, 46612, 46616, 46629, 46636, 46644, 46664, 46692, 46696, 46748, 46749, 46752, 46756, 46763, 46764, 46769, 46804, 46832, 46836, 46840, 46848, 46849, 46853, 46888, 46889, 46892, 46895, 46896, 46904, 46905, 46907, 46916, 46920, 46924, 46932, 46933, 46944, 46948, 46952, 46960, 46961, 46963, 46965, 46972, 46973, 46976, 46980, 46988, 46989, 46991, 46992, 46993, 46994, 46998, 46999, 53614, 53615, 53616, 53617, 53618, 53619, 53620, 53621, 53622, 53623, 53624, 53625, 53626, 53627, 53629, 53630, 53631, 53632, 53633, 53634, 53635, 53637, 53638, 53639, 53641, 53642, 53643, 53644, 53645, 53646, 53647, 53648, 53649, 53650, 53651, 53652, 53653, 53654, 53655, 53656, 53657, 53658, 53659, 53660, 53661, 53662, 53663, 53666, 53667, 53669, 53670, 53671, 53673, 53674, 53675, 53676, 53677, 53678, 53679, 53682, 53684, 53686, 53687, 53688, 53689, 53691, 53693, 53694, 53695, 53697, 53698, 53699, 53700, 53701, 53702, 53703, 53704, 53705, 53706, 53707, 53708, 53709, 53710, 53711, 47000, 47001, 47004, 47008, 47016, 47017, 47019, 47020, 47021, 47028, 47029, 47032, 47047, 47049, 47084, 47085, 47088, 47092, 47100, 47101, 47103, 47104, 47105, 47111, 47112, 47113, 47116, 47120, 47128, 47129, 47131, 47133, 47140, 47141, 47144, 47148, 47156, 47157, 47159, 47160, 47161, 47168, 47172, 47185, 47187, 47196, 47197, 47200, 47204, 47212, 47213, 47215, 47217, 47224, 47228, 47245, 47272, 47280, 47284, 47288, 47296, 47297, 47299, 47301, 47308, 47312, 47316, 47325, 47327, 47329, 47336, 47337, 47340, 47344, 47352, 47353, 47355, 47357, 47364, 47384, 47392, 47420, 47421, 47424, 47428, 47436, 47439, 47441, 47448, 47449, 47452, 47456, 47464, 47465, 53712, 53713, 53714, 53715, 53716, 53717, 53718, 53719, 53721, 53722, 53723, 53724, 53725, 53726, 53727, 53728, 53729, 53730, 53731, 53732, 53733, 53734, 53735, 53736, 53737, 53738, 53739, 53740, 53741, 53742, 53743, 53744, 53745, 53746, 53747, 53749, 53750, 53751, 53753, 53754, 53755, 53756, 53757, 53758, 53759, 53760, 53761, 53762, 53763, 53764, 53765, 53766, 53768, 53770, 53771, 53772, 53773, 53774, 53775, 53777, 53778, 53779, 53780, 53781, 53782, 53783, 53784, 53785, 53786, 53787, 53788, 53789, 53790, 53791, 53792, 53793, 53794, 53795, 53796, 53797, 53798, 53799, 53800, 53801, 47467, 47469, 47476, 47477, 47480, 47484, 47492, 47493, 47495, 47497, 47498, 47501, 47502, 47532, 47533, 47536, 47540, 47548, 47549, 47551, 47553, 47560, 47561, 47564, 47566, 47567, 47568, 47569, 47570, 47576, 47577, 47579, 47581, 47582, 47585, 47587, 47588, 47589, 47592, 47596, 47604, 47605, 47607, 47608, 47609, 47610, 47616, 47617, 47624, 47637, 47672, 47673, 47676, 47680, 47682, 47688, 47689, 47691, 47693, 47694, 47699, 47700, 47701, 47704, 47708, 47716, 47717, 47719, 47720, 47721, 47728, 47729, 47732, 47736, 47747, 47748, 47749, 47751, 47756, 47784, 47785, 47787, 47788, 47792, 47794, 47800, 47801, 47803, 47805, 47812, 47816, 47832, 47833, 47868, 53802, 53803, 53806, 53807, 53809, 53810, 53811, 53813, 53814, 53815, 53816, 53817, 53818, 53819, 53822, 53824, 53826, 53827, 53828, 53829, 53830, 53831, 53833, 53834, 53835, 53836, 53837, 53838, 53839, 53840, 53841, 53842, 53843, 53844, 53845, 53846, 53847, 53848, 53849, 53850, 53851, 53853, 53854, 53855, 53856, 53857, 53858, 53859, 53861, 53862, 53863, 53864, 53865, 53866, 53867, 53868, 53869, 53870, 53871, 53872, 53873, 53874, 53875, 53876, 53877, 53878, 53879, 53880, 53881, 53882, 53883, 53884, 53885, 53886, 53887, 53890, 53891, 53893, 53894, 53895, 53897, 53898, 53899, 53900, 47872, 47876, 47885, 47887, 47889, 47896, 47900, 47904, 47913, 47915, 47924, 47925, 47926, 47928, 47931, 47932, 47933, 47934, 47940, 47941, 47943, 47945, 47949, 47951, 47952, 47956, 47960, 47969, 47971, 47980, 48008, 48012, 48016, 48036, 48040, 48044, 48052, 48055, 48064, 48068, 48072, 48080, 48083, 48120, 48121, 48124, 48127, 48128, 48130, 48136, 48137, 48139, 48140, 48141, 48143, 48145, 48148, 48149, 48150, 48151, 48152, 48155, 48156, 48157, 48158, 48159, 48164, 48165, 48167, 48169, 48173, 48176, 48177, 48180, 48184, 48192, 48193, 48195, 48196, 48197, 48201, 48204, 48205, 48208, 48221, 48260, 48261, 48264, 48267, 48268, 48270, 48276, 48277, 48279, 53901, 53902, 53903, 53906, 53907, 53908, 53910, 53911, 53912, 53913, 53914, 53915, 53917, 53918, 53919, 53921, 53922, 53923, 53925, 53926, 53927, 53928, 53929, 53930, 53931, 53933, 53934, 53935, 53936, 53938, 53939, 53940, 53941, 53942, 53943, 53946, 53947, 53949, 53950, 53953, 53955, 53956, 53957, 53958, 53959, 53962, 53964, 53965, 53966, 53967, 53968, 53969, 53970, 53971, 53973, 53974, 53975, 53977, 53978, 53979, 53981, 53982, 53983, 53984, 53985, 53986, 53987, 53990, 53991, 53992, 53993, 53994, 53995, 53996, 53997, 53998, 53999, 54002, 54003, 54005, 54006, 54007, 54009, 54010, 48281, 48282, 48288, 48289, 48292, 48295, 48296, 48304, 48305, 48307, 48308, 48309, 48316, 48317, 48320, 48324, 48333, 48335, 48336, 48337, 48341, 48344, 48348, 48372, 48373, 48374, 48376, 48380, 48388, 48389, 48391, 48393, 48400, 48404, 48420, 48428, 48448, 48456, 48457, 48460, 48464, 48472, 48473, 48484, 48488, 48512, 48513, 48516, 48519, 48520, 48521, 48522, 48528, 48529, 48531, 48533, 48537, 48538, 48540, 48548, 48560, 48568, 48596, 48597, 48600, 48604, 48617, 48624, 48628, 48632, 48640, 48643, 48645, 48652, 48653, 48656, 48660, 48668, 48669, 48671, 48708, 48709, 48712, 48716, 48718, 48724, 48725, 48727, 48729, 48730, 48731, 48736, 48737, 48740, 54011, 54012, 54013, 54014, 54015, 54018, 54020, 54022, 54023, 54024, 54025, 54026, 54027, 54031, 54033, 54034, 54035, 54037, 54039, 54040, 54041, 54042, 54043, 54046, 54050, 54051, 54052, 54054, 54055, 54058, 54059, 54061, 54062, 54063, 54065, 54066, 54067, 54068, 54069, 54070, 54071, 54074, 54078, 54079, 54080, 54081, 54082, 54083, 54086, 54087, 54088, 54089, 54090, 54091, 54092, 54093, 54094, 54095, 54096, 54097, 54098, 54099, 54100, 54101, 54102, 54103, 54104, 54105, 54106, 54107, 54108, 54109, 54110, 54111, 54112, 54113, 54114, 54115, 54116, 54117, 54118, 54119, 54120, 54121, 48744, 48746, 48752, 48753, 48755, 48756, 48757, 48763, 48764, 48765, 48768, 48772, 48780, 48781, 48783, 48784, 48785, 48792, 48793, 48808, 48848, 48849, 48852, 48855, 48856, 48864, 48867, 48868, 48869, 48876, 48897, 48904, 48905, 48920, 48921, 48923, 48924, 48925, 48960, 48961, 48964, 48968, 48976, 48977, 48981, 49044, 49072, 49093, 49100, 49101, 49104, 49108, 49116, 49119, 49121, 49212, 49233, 49240, 49244, 49248, 49256, 49257, 49296, 49297, 49300, 49304, 49312, 49313, 49315, 49317, 49324, 49325, 49327, 49328, 49331, 49332, 49333, 49334, 49340, 49341, 49343, 49344, 49345, 49349, 49352, 49353, 49356, 49360, 49368, 49369, 49371, 49372, 49373, 49380, 54122, 54123, 54124, 54125, 54126, 54127, 54128, 54129, 54130, 54131, 54132, 54133, 54134, 54135, 54136, 54137, 54138, 54139, 54142, 54143, 54145, 54146, 54147, 54149, 54150, 54151, 54152, 54153, 54154, 54155, 54158, 54162, 54163, 54164, 54165, 54166, 54167, 54170, 54171, 54173, 54174, 54175, 54177, 54178, 54179, 54180, 54181, 54182, 54183, 54186, 54188, 54190, 54191, 54192, 54193, 54194, 54195, 54197, 54198, 54199, 54201, 54202, 54203, 54205, 54206, 54207, 54208, 54209, 54210, 54211, 54214, 54215, 54218, 54219, 54220, 54221, 54222, 54223, 54225, 54226, 54227, 54228, 54229, 54230, 49381, 49384, 49388, 49396, 49397, 49399, 49401, 49408, 49412, 49416, 49424, 49429, 49436, 49437, 49438, 49439, 49440, 49443, 49444, 49446, 49447, 49452, 49453, 49455, 49456, 49457, 49462, 49464, 49465, 49468, 49472, 49480, 49481, 49483, 49484, 49485, 49492, 49493, 49496, 49500, 49508, 49509, 49511, 49512, 49513, 49520, 49524, 49528, 49541, 49548, 49549, 49550, 49552, 49556, 49558, 49564, 49565, 49567, 49569, 49573, 49576, 49577, 49580, 49584, 49597, 49604, 49608, 49612, 49620, 49623, 49624, 49632, 49636, 49640, 49648, 49649, 49651, 49660, 49661, 49664, 49668, 49676, 49677, 49679, 49681, 49688, 49689, 49692, 49695, 49696, 49704, 49705, 49707, 49709, 54231, 54233, 54234, 54235, 54236, 54237, 54238, 54239, 54240, 54242, 54244, 54245, 54246, 54247, 54248, 54249, 54250, 54251, 54254, 54255, 54257, 54258, 54259, 54261, 54262, 54263, 54264, 54265, 54266, 54267, 54270, 54272, 54274, 54275, 54276, 54277, 54278, 54279, 54281, 54282, 54283, 54284, 54285, 54286, 54287, 54288, 54289, 54290, 54291, 54292, 54293, 54294, 54295, 54296, 54297, 54298, 54299, 54300, 54302, 54303, 54304, 54305, 54306, 54307, 54308, 54309, 54310, 54311, 54312, 54313, 54314, 54315, 54316, 54317, 54318, 54319, 54320, 54321, 54322, 54323, 54324, 54325, 54326, 54327, 49711, 49713, 49714, 49716, 49736, 49744, 49745, 49748, 49752, 49760, 49765, 49772, 49773, 49776, 49780, 49788, 49789, 49791, 49793, 49800, 49801, 49808, 49816, 49819, 49821, 49828, 49829, 49832, 49836, 49837, 49844, 49845, 49847, 49849, 49884, 49885, 49888, 49891, 49892, 49899, 49900, 49901, 49903, 49905, 49910, 49912, 49913, 49915, 49916, 49920, 49928, 49929, 49932, 49933, 49939, 49940, 49941, 49944, 49948, 49956, 49957, 49960, 49961, 49989, 50024, 50025, 50028, 50032, 50034, 50040, 50041, 50044, 50045, 50052, 50056, 50060, 50112, 50136, 50137, 50140, 50143, 50144, 50146, 50152, 50153, 50157, 50164, 50165, 50168, 50184, 50192, 50212, 50220, 50224, 54328, 54329, 54330, 54331, 54332, 54333, 54334, 54335, 54337, 54338, 54339, 54341, 54342, 54343, 54344, 54345, 54346, 54347, 54348, 54349, 54350, 54351, 54352, 54353, 54354, 54355, 54356, 54357, 54358, 54359, 54360, 54361, 54362, 54363, 54365, 54366, 54367, 54369, 54370, 54371, 54373, 54374, 54375, 54376, 54377, 54378, 54379, 54380, 54382, 54384, 54385, 54386, 54387, 54388, 54389, 54390, 54391, 54394, 54395, 54397, 54398, 54401, 54403, 54404, 54405, 54406, 54407, 54410, 54412, 54414, 54415, 54416, 54417, 54418, 54419, 54421, 54422, 54423, 54424, 54425, 54426, 54427, 54428, 54429, 50228, 50236, 50237, 50248, 50276, 50277, 50280, 50284, 50292, 50293, 50297, 50304, 50324, 50332, 50360, 50364, 50409, 50416, 50417, 50420, 50424, 50426, 50431, 50432, 50433, 50444, 50448, 50452, 50460, 50472, 50473, 50476, 50480, 50488, 50489, 50491, 50493, 50500, 50501, 50504, 50505, 50506, 50508, 50509, 50510, 50515, 50516, 50517, 50519, 50520, 50521, 50525, 50526, 50528, 50529, 50532, 50536, 50544, 50545, 50547, 50548, 50549, 50556, 50557, 50560, 50564, 50567, 50572, 50573, 50575, 50577, 50581, 50583, 50584, 50588, 50592, 50601, 50612, 50613, 50616, 50617, 50619, 50620, 50621, 50622, 50628, 50629, 50630, 50631, 50632, 50633, 50634, 50636, 50638, 54430, 54431, 54432, 54433, 54434, 54435, 54436, 54437, 54438, 54439, 54440, 54442, 54443, 54444, 54445, 54446, 54447, 54448, 54449, 54450, 54451, 54452, 54453, 54454, 54455, 54456, 54457, 54458, 54459, 54460, 54461, 54462, 54463, 54464, 54465, 54466, 54467, 54468, 54469, 54470, 54471, 54472, 54473, 54474, 54475, 54477, 54478, 54479, 54481, 54482, 54483, 54485, 54486, 54487, 54488, 54489, 54490, 54491, 54493, 54494, 54496, 54497, 54498, 54499, 54500, 54501, 54502, 54503, 54505, 54506, 54507, 54509, 54510, 54511, 54513, 54514, 54515, 54516, 54517, 54518, 54519, 54521, 54522, 54524, 50640, 50641, 50644, 50648, 50656, 50657, 50659, 50661, 50668, 50669, 50670, 50672, 50676, 50678, 50679, 50684, 50685, 50686, 50687, 50688, 50689, 50693, 50694, 50695, 50696, 50700, 50704, 50712, 50713, 50715, 50716, 50724, 50725, 50728, 50732, 50733, 50734, 50736, 50739, 50740, 50741, 50743, 50745, 50747, 50752, 50753, 50756, 50760, 50768, 50769, 50771, 50772, 50773, 50780, 50781, 50784, 50796, 50799, 50801, 50808, 50809, 50812, 50816, 50824, 50825, 50827, 50829, 50836, 50837, 50840, 50844, 50852, 50853, 50855, 50857, 50864, 50865, 50868, 50872, 50873, 50874, 50880, 50881, 50883, 50885, 50892, 50893, 50896, 50900, 50908, 50909, 50912, 50913, 50920, 54526, 54527, 54528, 54529, 54530, 54531, 54533, 54534, 54535, 54537, 54538, 54539, 54541, 54542, 54543, 54544, 54545, 54546, 54547, 54550, 54552, 54553, 54554, 54555, 54556, 54557, 54558, 54559, 54560, 54561, 54562, 54563, 54564, 54565, 54566, 54567, 54568, 54569, 54570, 54571, 54572, 54573, 54574, 54575, 54576, 54577, 54578, 54579, 54580, 54581, 54582, 54583, 54584, 54585, 54586, 54587, 54590, 54591, 54593, 54594, 54595, 54597, 54598, 54599, 54600, 54601, 54602, 54603, 54606, 54608, 54610, 54611, 54612, 54613, 54614, 54615, 54618, 54619, 54621, 54622, 54623, 54625, 54626, 54627, 50921, 50924, 50928, 50936, 50937, 50941, 50948, 50949, 50952, 50956, 50964, 50965, 50967, 50969, 50976, 50977, 50980, 50984, 50992, 50993, 50995, 50997, 50999, 51004, 51005, 51008, 51012, 51018, 51020, 51021, 51023, 51025, 51026, 51027, 51028, 51029, 51030, 51031, 51032, 51036, 51040, 51048, 51051, 51060, 51061, 51064, 51068, 51069, 51070, 51075, 51076, 51077, 51079, 51080, 51081, 51082, 51086, 51088, 51089, 51092, 51094, 51095, 51096, 51098, 51104, 51105, 51107, 51108, 51109, 51110, 51116, 51117, 51120, 51124, 51132, 51133, 51135, 51136, 51137, 51144, 51145, 51148, 51150, 51152, 51160, 51165, 51172, 51176, 51180, 51200, 51201, 51204, 51208, 51210, 54628, 54630, 54631, 54634, 54636, 54638, 54639, 54640, 54641, 54642, 54643, 54646, 54647, 54649, 54650, 54651, 54653, 54654, 54655, 54656, 54657, 54658, 54659, 54662, 54666, 54667, 54668, 54669, 54670, 54671, 54673, 54674, 54675, 54676, 54677, 54678, 54679, 54680, 54681, 54682, 54683, 54684, 54685, 54686, 54687, 54688, 54689, 54690, 54691, 54692, 54694, 54695, 54696, 54697, 54698, 54699, 54700, 54701, 54702, 54703, 54704, 54705, 54706, 54707, 54708, 54709, 54710, 54711, 54712, 54713, 54714, 54715, 54716, 54717, 54718, 54719, 54720, 54721, 54722, 54723, 54724, 54725, 54726, 54727, 51216, 51217, 51219, 51221, 51222, 51228, 51229, 51232, 51236, 51244, 51245, 51247, 51249, 51256, 51260, 51264, 51272, 51273, 51276, 51277, 51284, 51312, 51313, 51316, 51320, 51322, 51328, 51329, 51331, 51333, 51334, 51335, 51339, 51340, 51341, 51348, 51357, 51359, 51361, 51368, 51388, 51389, 51396, 51400, 51404, 51412, 51413, 51415, 51417, 51424, 51425, 51428, 51445, 51452, 51453, 51456, 51460, 51461, 51462, 51468, 51469, 51471, 51473, 51480, 51500, 51508, 51536, 51537, 51540, 51544, 51552, 51553, 51555, 51564, 51568, 51572, 51580, 51592, 51593, 51596, 51600, 51608, 51609, 51611, 51613, 51648, 51649, 51652, 51655, 51656, 51658, 51664, 51665, 51667, 54730, 54731, 54733, 54734, 54735, 54737, 54739, 54740, 54741, 54742, 54743, 54746, 54748, 54750, 54751, 54752, 54753, 54754, 54755, 54758, 54759, 54761, 54762, 54763, 54765, 54766, 54767, 54768, 54769, 54770, 54771, 54774, 54776, 54778, 54779, 54780, 54781, 54782, 54783, 54786, 54787, 54789, 54790, 54791, 54793, 54794, 54795, 54796, 54797, 54798, 54799, 54802, 54806, 54807, 54808, 54809, 54810, 54811, 54813, 54814, 54815, 54817, 54818, 54819, 54821, 54822, 54823, 54824, 54825, 54826, 54827, 54828, 54830, 54831, 54832, 54833, 54834, 54835, 54836, 54837, 54838, 54839, 54842, 54843, 51669, 51670, 51673, 51674, 51676, 51677, 51680, 51682, 51684, 51687, 51692, 51693, 51695, 51696, 51697, 51704, 51705, 51708, 51712, 51720, 51721, 51723, 51724, 51725, 51732, 51736, 51753, 51788, 51789, 51792, 51796, 51804, 51805, 51807, 51808, 51809, 51816, 51837, 51844, 51864, 51900, 51901, 51904, 51908, 51916, 51917, 51919, 51921, 51923, 51928, 51929, 51936, 51948, 51956, 51976, 51984, 51988, 51992, 52000, 52001, 52033, 52040, 52041, 52044, 52048, 52056, 52057, 52061, 52068, 52088, 52089, 52124, 52152, 52180, 52196, 52199, 52201, 52236, 52237, 52240, 52244, 52252, 52253, 52257, 52258, 52263, 52264, 52265, 52268, 52270, 52272, 52280, 52281, 52283, 54845, 54846, 54847, 54849, 54850, 54851, 54852, 54854, 54855, 54858, 54860, 54862, 54863, 54864, 54866, 54867, 54870, 54871, 54873, 54874, 54875, 54877, 54878, 54879, 54880, 54881, 54882, 54883, 54884, 54885, 54886, 54888, 54890, 54891, 54892, 54893, 54894, 54895, 54898, 54899, 54901, 54902, 54903, 54904, 54905, 54906, 54907, 54908, 54909, 54910, 54911, 54912, 54913, 54914, 54916, 54918, 54919, 54920, 54921, 54922, 54923, 54926, 54927, 54929, 54930, 54931, 54933, 54934, 54935, 54936, 54937, 54938, 54939, 54940, 54942, 54944, 54946, 54947, 54948, 54949, 54950, 54951, 54953, 54954, 52284, 52285, 52286, 52292, 52293, 52296, 52300, 52308, 52309, 52311, 52312, 52313, 52320, 52324, 52326, 52328, 52336, 52341, 52376, 52377, 52380, 52384, 52392, 52393, 52395, 52396, 52397, 52404, 52405, 52408, 52412, 52420, 52421, 52423, 52425, 52432, 52436, 52452, 52460, 52464, 52481, 52488, 52489, 52492, 52496, 52504, 52505, 52507, 52509, 52516, 52520, 52524, 52537, 52572, 52576, 52580, 52588, 52589, 52591, 52593, 52600, 52616, 52628, 52629, 52632, 52636, 52644, 52645, 52647, 52649, 52656, 52676, 52684, 52688, 52712, 52716, 52720, 52728, 52729, 52731, 52733, 52740, 52744, 52748, 52756, 52761, 52768, 52769, 52772, 52776, 52784, 52785, 52787, 52789, 54955, 54957, 54958, 54959, 54961, 54962, 54963, 54964, 54965, 54966, 54967, 54968, 54970, 54972, 54973, 54974, 54975, 54976, 54977, 54978, 54979, 54982, 54983, 54985, 54986, 54987, 54989, 54990, 54991, 54992, 54994, 54995, 54997, 54998, 55000, 55002, 55003, 55004, 55005, 55006, 55007, 55009, 55010, 55011, 55013, 55014, 55015, 55017, 55018, 55019, 55020, 55021, 55022, 55023, 55025, 55026, 55027, 55028, 55030, 55031, 55032, 55033, 55034, 55035, 55038, 55039, 55041, 55042, 55043, 55045, 55046, 55047, 55048, 55049, 55050, 55051, 55052, 55053, 55054, 55055, 55056, 55058, 55059, 55060, 52824, 52825, 52828, 52831, 52832, 52833, 52840, 52841, 52843, 52845, 52852, 52853, 52856, 52860, 52868, 52869, 52871, 52873, 52880, 52881, 52884, 52888, 52896, 52897, 52899, 52900, 52901, 52908, 52909, 52929, 52964, 52965, 52968, 52971, 52972, 52980, 52981, 52983, 52984, 52985, 52992, 52993, 52996, 53000, 53008, 53009, 53011, 53013, 53020, 53024, 53028, 53036, 53037, 53039, 53040, 53041, 53048, 53076, 53077, 53080, 53084, 53092, 53093, 53095, 53097, 53104, 53105, 53108, 53112, 53120, 53125, 53132, 53153, 53160, 53168, 53188, 53216, 53217, 53220, 53224, 53232, 53233, 53235, 53237, 53244, 53248, 53252, 53265, 53272, 53293, 53300, 53301, 53304, 53308, 55061, 55062, 55063, 55066, 55067, 55069, 55070, 55071, 55073, 55074, 55075, 55076, 55077, 55078, 55079, 55082, 55084, 55086, 55087, 55088, 55089, 55090, 55091, 55094, 55095, 55097, 55098, 55099, 55101, 55102, 55103, 55104, 55105, 55106, 55107, 55109, 55110, 55112, 55114, 55115, 55116, 55117, 55118, 55119, 55122, 55123, 55125, 55130, 55131, 55132, 55133, 55134, 55135, 55138, 55140, 55142, 55143, 55144, 55146, 55147, 55149, 55150, 55151, 55153, 55154, 55155, 55157, 55158, 55159, 55160, 55161, 55162, 55163, 55166, 55167, 55168, 55170, 55171, 55172, 55173, 55174, 55175, 55178, 55179, 53316, 53317, 53319, 53321, 53328, 53332, 53336, 53344, 53356, 53357, 53360, 53364, 53372, 53373, 53377, 53412, 53413, 53416, 53420, 53428, 53429, 53431, 53433, 53440, 53441, 53444, 53448, 53449, 53456, 53457, 53459, 53460, 53461, 53468, 53469, 53472, 53476, 53484, 53485, 53487, 53488, 53489, 53496, 53517, 53552, 53553, 53556, 53560, 53562, 53568, 53569, 53571, 53572, 53573, 53580, 53581, 53584, 53588, 53596, 53597, 53599, 53601, 53608, 53612, 53628, 53636, 53640, 53664, 53665, 53668, 53672, 53680, 53681, 53683, 53685, 53690, 53692, 53696, 53720, 53748, 53752, 53767, 53769, 53776, 53804, 53805, 53808, 53812, 53820, 53821, 53823, 53825, 53832, 53852, 55181, 55182, 55183, 55185, 55186, 55187, 55188, 55189, 55190, 55191, 55194, 55196, 55198, 55199, 55200, 55201, 55202, 55203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53860, 53888, 53889, 53892, 53896, 53904, 53905, 53909, 53916, 53920, 53924, 53932, 53937, 53944, 53945, 53948, 53951, 53952, 53954, 53960, 53961, 53963, 53972, 53976, 53980, 53988, 53989, 54000, 54001, 54004, 54008, 54016, 54017, 54019, 54021, 54028, 54029, 54030, 54032, 54036, 54038, 54044, 54045, 54047, 54048, 54049, 54053, 54056, 54057, 54060, 54064, 54072, 54073, 54075, 54076, 54077, 54084, 54085, 54140, 54141, 54144, 54148, 54156, 54157, 54159, 54160, 54161, 54168, 54169, 54172, 54176, 54184, 54185, 54187, 54189, 54196, 54200, 54204, 54212, 54213, 54216, 54217, 54224, 54232, 54241, 54243, 54252, 54253, 54256, 54260, 54268, 54269, 54271, 54273, 54280, 54301, 54336, 54340, 54364, 54368, 54372, 54381, 54383, 54392, 54393, 54396, 54399, 54400, 54402, 54408, 54409, 54411, 54413, 54420, 54441, 54476, 54480, 54484, 54492, 54495, 54504, 54508, 54512, 54520, 54523, 54525, 54532, 54536, 54540, 54548, 54549, 54551, 54588, 54589, 54592, 54596, 54604, 54605, 54607, 54609, 54616, 54617, 54620, 54624, 54629, 54632, 54633, 54635, 54637, 54644, 54645, 54648, 54652, 54660, 54661, 54663, 54664, 54665, 54672, 54693, 54728, 54729, 54732, 54736, 54738, 54744, 54745, 54747, 54749, 54756, 54757, 54760, 54764, 54772, 54773, 54775, 54777, 54784, 54785, 54788, 54792, 54800, 54801, 54803, 54804, 54805, 54812, 54816, 54820, 54829, 54840, 54841, 54844, 54848, 54853, 54856, 54857, 54859, 54861, 54865, 54868, 54869, 54872, 54876, 54887, 54889, 54896, 54897, 54900, 54915, 54917, 54924, 54925, 54928, 54932, 54941, 54943, 54945, 54952, 54956, 54960, 54969, 54971, 54980, 54981, 54984, 54988, 54993, 54996, 54999, 55001, 55008, 55012, 55016, 55024, 55029, 55036, 55037, 55040, 55044, 55057, 55064, 55065, 55068, 55072, 55080, 55081, 55083, 55085, 55092, 55093, 55096, 55100, 55108, 55111, 55113, 55120, 55121, 55124, 55126, 55127, 55128, 55129, 55136, 55137, 55139, 55141, 55145, 55148, 55152, 55156, 55164, 55165, 55169, 55176, 55177, 55180, 55184, 55192, 55193, 55195, 55197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20285, 20339, 20551, 20729, 21152, 21487, 21621, 21733, 22025, 23233, 23478, 26247, 26550, 26551, 26607, 27468, 29634, 30146, 31292, 33499, 33540, 34903, 34952, 35382, 36040, 36303, 36603, 36838, 39381, 21051, 21364, 21508, 24682, 24932, 27580, 29647, 33050, 35258, 35282, 38307, 20355, 21002, 22718, 22904, 23014, 24178, 24185, 25031, 25536, 26438, 26604, 26751, 28567, 30286, 30475, 30965, 31240, 31487, 31777, 32925, 33390, 33393, 35563, 38291, 20075, 21917, 26359, 28212, 30883, 31469, 33883, 35088, 34638, 38824, 21208, 22350, 22570, 23884, 24863, 25022, 25121, 25954, 26577, 27204, 28187, 29976, 30131, 30435, 30640, 32058, 37039, 37969, 37970, 40853, 21283, 23724, 30002, 32987, 37440, 38296, 21083, 22536, 23004, 23713, 23831, 24247, 24378, 24394, 24951, 27743, 30074, 30086, 31968, 32115, 32177, 32652, 33108, 33313, 34193, 35137, 35611, 37628, 38477, 40007, 20171, 20215, 20491, 20977, 22607, 24887, 24894, 24936, 25913, 27114, 28433, 30117, 30342, 30422, 31623, 33445, 33995, 63744, 37799, 38283, 21888, 23458, 22353, 63745, 31923, 32697, 37301, 20520, 21435, 23621, 24040, 25298, 25454, 25818, 25831, 28192, 28844, 31067, 36317, 36382, 63746, 36989, 37445, 37624, 20094, 20214, 20581, 24062, 24314, 24838, 26967, 33137, 34388, 36423, 37749, 39467, 20062, 20625, 26480, 26688, 20745, 21133, 21138, 27298, 30652, 37392, 40660, 21163, 24623, 36850, 20552, 25001, 25581, 25802, 26684, 27268, 28608, 33160, 35233, 38548, 22533, 29309, 29356, 29956, 32121, 32365, 32937, 35211, 35700, 36963, 40273, 25225, 27770, 28500, 32080, 32570, 35363, 20860, 24906, 31645, 35609, 37463, 37772, 20140, 20435, 20510, 20670, 20742, 21185, 21197, 21375, 22384, 22659, 24218, 24465, 24950, 25004, 25806, 25964, 26223, 26299, 26356, 26775, 28039, 28805, 28913, 29855, 29861, 29898, 30169, 30828, 30956, 31455, 31478, 32069, 32147, 32789, 32831, 33051, 33686, 35686, 36629, 36885, 37857, 38915, 38968, 39514, 39912, 20418, 21843, 22586, 22865, 23395, 23622, 24760, 25106, 26690, 26800, 26856, 28330, 30028, 30328, 30926, 31293, 31995, 32363, 32380, 35336, 35489, 35903, 38542, 40388, 21476, 21481, 21578, 21617, 22266, 22993, 23396, 23611, 24235, 25335, 25911, 25925, 25970, 26272, 26543, 27073, 27837, 30204, 30352, 30590, 31295, 32660, 32771, 32929, 33167, 33510, 33533, 33776, 34241, 34865, 34996, 35493, 63747, 36764, 37678, 38599, 39015, 39640, 40723, 21741, 26011, 26354, 26767, 31296, 35895, 40288, 22256, 22372, 23825, 26118, 26801, 26829, 28414, 29736, 34974, 39908, 27752, 63748, 39592, 20379, 20844, 20849, 21151, 23380, 24037, 24656, 24685, 25329, 25511, 25915, 29657, 31354, 34467, 36002, 38799, 20018, 23521, 25096, 26524, 29916, 31185, 33747, 35463, 35506, 36328, 36942, 37707, 38982, 24275, 27112, 34303, 37101, 63749, 20896, 23448, 23532, 24931, 26874, 27454, 28748, 29743, 29912, 31649, 32592, 33733, 35264, 36011, 38364, 39208, 21038, 24669, 25324, 36866, 20362, 20809, 21281, 22745, 24291, 26336, 27960, 28826, 29378, 29654, 31568, 33009, 37979, 21350, 25499, 32619, 20054, 20608, 22602, 22750, 24618, 24871, 25296, 27088, 39745, 23439, 32024, 32945, 36703, 20132, 20689, 21676, 21932, 23308, 23968, 24039, 25898, 25934, 26657, 27211, 29409, 30350, 30703, 32094, 32761, 33184, 34126, 34527, 36611, 36686, 37066, 39171, 39509, 39851, 19992, 20037, 20061, 20167, 20465, 20855, 21246, 21312, 21475, 21477, 21646, 22036, 22389, 22434, 23495, 23943, 24272, 25084, 25304, 25937, 26552, 26601, 27083, 27472, 27590, 27628, 27714, 28317, 28792, 29399, 29590, 29699, 30655, 30697, 31350, 32127, 32777, 33276, 33285, 33290, 33503, 34914, 35635, 36092, 36544, 36881, 37041, 37476, 37558, 39378, 39493, 40169, 40407, 40860, 22283, 23616, 33738, 38816, 38827, 40628, 21531, 31384, 32676, 35033, 36557, 37089, 22528, 23624, 25496, 31391, 23470, 24339, 31353, 31406, 33422, 36524, 20518, 21048, 21240, 21367, 22280, 25331, 25458, 27402, 28099, 30519, 21413, 29527, 34152, 36470, 38357, 26426, 27331, 28528, 35437, 36556, 39243, 63750, 26231, 27512, 36020, 39740, 63751, 21483, 22317, 22862, 25542, 27131, 29674, 30789, 31418, 31429, 31998, 33909, 35215, 36211, 36917, 38312, 21243, 22343, 30023, 31584, 33740, 37406, 63752, 27224, 20811, 21067, 21127, 25119, 26840, 26997, 38553, 20677, 21156, 21220, 25027, 26020, 26681, 27135, 29822, 31563, 33465, 33771, 35250, 35641, 36817, 39241, 63753, 20170, 22935, 25810, 26129, 27278, 29748, 31105, 31165, 33449, 34942, 34943, 35167, 63754, 37670, 20235, 21450, 24613, 25201, 27762, 32026, 32102, 20120, 20834, 30684, 32943, 20225, 20238, 20854, 20864, 21980, 22120, 22331, 22522, 22524, 22804, 22855, 22931, 23492, 23696, 23822, 24049, 24190, 24524, 25216, 26071, 26083, 26398, 26399, 26462, 26827, 26820, 27231, 27450, 27683, 27773, 27778, 28103, 29592, 29734, 29738, 29826, 29859, 30072, 30079, 30849, 30959, 31041, 31047, 31048, 31098, 31637, 32000, 32186, 32648, 32774, 32813, 32908, 35352, 35663, 35912, 36215, 37665, 37668, 39138, 39249, 39438, 39439, 39525, 40594, 32202, 20342, 21513, 25326, 26708, 37329, 21931, 20794, 63755, 63756, 23068, 25062, 63757, 25295, 25343, 63758, 63759, 63760, 63761, 63762, 63763, 37027, 63764, 63765, 63766, 63767, 63768, 35582, 63769, 63770, 63771, 63772, 26262, 63773, 29014, 63774, 63775, 38627, 63776, 25423, 25466, 21335, 63777, 26511, 26976, 28275, 63778, 30007, 63779, 63780, 63781, 32013, 63782, 63783, 34930, 22218, 23064, 63784, 63785, 63786, 63787, 63788, 20035, 63789, 20839, 22856, 26608, 32784, 63790, 22899, 24180, 25754, 31178, 24565, 24684, 25288, 25467, 23527, 23511, 21162, 63791, 22900, 24361, 24594, 63792, 63793, 63794, 29785, 63795, 63796, 63797, 63798, 63799, 63800, 39377, 63801, 63802, 63803, 63804, 63805, 63806, 63807, 63808, 63809, 63810, 63811, 28611, 63812, 63813, 33215, 36786, 24817, 63814, 63815, 33126, 63816, 63817, 23615, 63818, 63819, 63820, 63821, 63822, 63823, 63824, 63825, 23273, 35365, 26491, 32016, 63826, 63827, 63828, 63829, 63830, 63831, 33021, 63832, 63833, 23612, 27877, 21311, 28346, 22810, 33590, 20025, 20150, 20294, 21934, 22296, 22727, 24406, 26039, 26086, 27264, 27573, 28237, 30701, 31471, 31774, 32222, 34507, 34962, 37170, 37723, 25787, 28606, 29562, 30136, 36948, 21846, 22349, 25018, 25812, 26311, 28129, 28251, 28525, 28601, 30192, 32835, 33213, 34113, 35203, 35527, 35674, 37663, 27795, 30035, 31572, 36367, 36957, 21776, 22530, 22616, 24162, 25095, 25758, 26848, 30070, 31958, 34739, 40680, 20195, 22408, 22382, 22823, 23565, 23729, 24118, 24453, 25140, 25825, 29619, 33274, 34955, 36024, 38538, 40667, 23429, 24503, 24755, 20498, 20992, 21040, 22294, 22581, 22615, 23566, 23648, 23798, 23947, 24230, 24466, 24764, 25361, 25481, 25623, 26691, 26873, 27330, 28120, 28193, 28372, 28644, 29182, 30428, 30585, 31153, 31291, 33796, 35241, 36077, 36339, 36424, 36867, 36884, 36947, 37117, 37709, 38518, 38876, 27602, 28678, 29272, 29346, 29544, 30563, 31167, 31716, 32411, 35712, 22697, 24775, 25958, 26109, 26302, 27788, 28958, 29129, 35930, 38931, 20077, 31361, 20189, 20908, 20941, 21205, 21516, 24999, 26481, 26704, 26847, 27934, 28540, 30140, 30643, 31461, 33012, 33891, 37509, 20828, 26007, 26460, 26515, 30168, 31431, 33651, 63834, 35910, 36887, 38957, 23663, 33216, 33434, 36929, 36975, 37389, 24471, 23965, 27225, 29128, 30331, 31561, 34276, 35588, 37159, 39472, 21895, 25078, 63835, 30313, 32645, 34367, 34746, 35064, 37007, 63836, 27931, 28889, 29662, 32097, 33853, 63837, 37226, 39409, 63838, 20098, 21365, 27396, 27410, 28734, 29211, 34349, 40478, 21068, 36771, 23888, 25829, 25900, 27414, 28651, 31811, 32412, 34253, 35172, 35261, 25289, 33240, 34847, 24266, 26391, 28010, 29436, 29701, 29807, 34690, 37086, 20358, 23821, 24480, 33802, 20919, 25504, 30053, 20142, 20486, 20841, 20937, 26753, 27153, 31918, 31921, 31975, 33391, 35538, 36635, 37327, 20406, 20791, 21237, 21570, 24300, 24942, 25150, 26053, 27354, 28670, 31018, 34268, 34851, 38317, 39522, 39530, 40599, 40654, 21147, 26310, 27511, 28701, 31019, 36706, 38722, 24976, 25088, 25891, 28451, 29001, 29833, 32244, 32879, 34030, 36646, 36899, 37706, 20925, 21015, 21155, 27916, 28872, 35010, 24265, 25986, 27566, 28610, 31806, 29557, 20196, 20278, 22265, 63839, 23738, 23994, 24604, 29618, 31533, 32666, 32718, 32838, 36894, 37428, 38646, 38728, 38936, 40801, 20363, 28583, 31150, 37300, 38583, 21214, 63840, 25736, 25796, 27347, 28510, 28696, 29200, 30439, 32769, 34310, 34396, 36335, 36613, 38706, 39791, 40442, 40565, 30860, 31103, 32160, 33737, 37636, 40575, 40595, 35542, 22751, 24324, 26407, 28711, 29903, 31840, 32894, 20769, 28712, 29282, 30922, 36034, 36058, 36084, 38647, 20102, 20698, 23534, 24278, 26009, 29134, 30274, 30637, 32842, 34044, 36988, 39719, 40845, 22744, 23105, 23650, 27155, 28122, 28431, 30267, 32047, 32311, 34078, 35128, 37860, 38475, 21129, 26066, 26611, 27060, 27969, 28316, 28687, 29705, 29792, 30041, 30244, 30827, 35628, 39006, 20845, 25134, 38520, 20374, 20523, 23833, 28138, 32184, 36650, 24459, 24900, 26647, 63841, 38534, 21202, 32907, 20956, 20940, 26974, 31260, 32190, 33777, 38517, 20442, 21033, 21400, 21519, 21774, 23653, 24743, 26446, 26792, 28012, 29313, 29432, 29702, 29827, 63842, 30178, 31852, 32633, 32696, 33673, 35023, 35041, 37324, 37328, 38626, 39881, 21533, 28542, 29136, 29848, 34298, 36522, 38563, 40023, 40607, 26519, 28107, 29747, 33256, 38678, 30764, 31435, 31520, 31890, 25705, 29802, 30194, 30908, 30952, 39340, 39764, 40635, 23518, 24149, 28448, 33180, 33707, 37000, 19975, 21325, 23081, 24018, 24398, 24930, 25405, 26217, 26364, 28415, 28459, 28771, 30622, 33836, 34067, 34875, 36627, 39237, 39995, 21788, 25273, 26411, 27819, 33545, 35178, 38778, 20129, 22916, 24536, 24537, 26395, 32178, 32596, 33426, 33579, 33725, 36638, 37017, 22475, 22969, 23186, 23504, 26151, 26522, 26757, 27599, 29028, 32629, 36023, 36067, 36993, 39749, 33032, 35978, 38476, 39488, 40613, 23391, 27667, 29467, 30450, 30431, 33804, 20906, 35219, 20813, 20885, 21193, 26825, 27796, 30468, 30496, 32191, 32236, 38754, 40629, 28357, 34065, 20901, 21517, 21629, 26126, 26269, 26919, 28319, 30399, 30609, 33559, 33986, 34719, 37225, 37528, 40180, 34946, 20398, 20882, 21215, 22982, 24125, 24917, 25720, 25721, 26286, 26576, 27169, 27597, 27611, 29279, 29281, 29761, 30520, 30683, 32791, 33468, 33541, 35584, 35624, 35980, 26408, 27792, 29287, 30446, 30566, 31302, 40361, 27519, 27794, 22818, 26406, 33945, 21359, 22675, 22937, 24287, 25551, 26164, 26483, 28218, 29483, 31447, 33495, 37672, 21209, 24043, 25006, 25035, 25098, 25287, 25771, 26080, 26969, 27494, 27595, 28961, 29687, 30045, 32326, 33310, 33538, 34154, 35491, 36031, 38695, 40289, 22696, 40664, 20497, 21006, 21563, 21839, 25991, 27766, 32010, 32011, 32862, 34442, 38272, 38639, 21247, 27797, 29289, 21619, 23194, 23614, 23883, 24396, 24494, 26410, 26806, 26979, 28220, 28228, 30473, 31859, 32654, 34183, 35598, 36855, 38753, 40692, 23735, 24758, 24845, 25003, 25935, 26107, 26108, 27665, 27887, 29599, 29641, 32225, 38292, 23494, 34588, 35600, 21085, 21338, 25293, 25615, 25778, 26420, 27192, 27850, 29632, 29854, 31636, 31893, 32283, 33162, 33334, 34180, 36843, 38649, 39361, 20276, 21322, 21453, 21467, 25292, 25644, 25856, 26001, 27075, 27886, 28504, 29677, 30036, 30242, 30436, 30460, 30928, 30971, 31020, 32070, 33324, 34784, 36820, 38930, 39151, 21187, 25300, 25765, 28196, 28497, 30332, 36299, 37297, 37474, 39662, 39747, 20515, 20621, 22346, 22952, 23592, 24135, 24439, 25151, 25918, 26041, 26049, 26121, 26507, 27036, 28354, 30917, 32033, 32938, 33152, 33323, 33459, 33953, 34444, 35370, 35607, 37030, 38450, 40848, 20493, 20467, 63843, 22521, 24472, 25308, 25490, 26479, 28227, 28953, 30403, 32972, 32986, 35060, 35061, 35097, 36064, 36649, 37197, 38506, 20271, 20336, 24091, 26575, 26658, 30333, 30334, 39748, 24161, 27146, 29033, 29140, 30058, 63844, 32321, 34115, 34281, 39132, 20240, 31567, 32624, 38309, 20961, 24070, 26805, 27710, 27726, 27867, 29359, 31684, 33539, 27861, 29754, 20731, 21128, 22721, 25816, 27287, 29863, 30294, 30887, 34327, 38370, 38713, 63845, 21342, 24321, 35722, 36776, 36783, 37002, 21029, 30629, 40009, 40712, 19993, 20482, 20853, 23643, 24183, 26142, 26170, 26564, 26821, 28851, 29953, 30149, 31177, 31453, 36647, 39200, 39432, 20445, 22561, 22577, 23542, 26222, 27493, 27921, 28282, 28541, 29668, 29995, 33769, 35036, 35091, 35676, 36628, 20239, 20693, 21264, 21340, 23443, 24489, 26381, 31119, 33145, 33583, 34068, 35079, 35206, 36665, 36667, 39333, 39954, 26412, 20086, 20472, 22857, 23553, 23791, 23792, 25447, 26834, 28925, 29090, 29739, 32299, 34028, 34562, 36898, 37586, 40179, 19981, 20184, 20463, 20613, 21078, 21103, 21542, 21648, 22496, 22827, 23142, 23386, 23413, 23500, 24220, 63846, 25206, 25975, 26023, 28014, 28325, 29238, 31526, 31807, 32566, 33104, 33105, 33178, 33344, 33433, 33705, 35331, 36000, 36070, 36091, 36212, 36282, 37096, 37340, 38428, 38468, 39385, 40167, 21271, 20998, 21545, 22132, 22707, 22868, 22894, 24575, 24996, 25198, 26128, 27774, 28954, 30406, 31881, 31966, 32027, 33452, 36033, 38640, 63847, 20315, 24343, 24447, 25282, 23849, 26379, 26842, 30844, 32323, 40300, 19989, 20633, 21269, 21290, 21329, 22915, 23138, 24199, 24754, 24970, 25161, 25209, 26000, 26503, 27047, 27604, 27606, 27607, 27608, 27832, 63848, 29749, 30202, 30738, 30865, 31189, 31192, 31875, 32203, 32737, 32933, 33086, 33218, 33778, 34586, 35048, 35513, 35692, 36027, 37145, 38750, 39131, 40763, 22188, 23338, 24428, 25996, 27315, 27567, 27996, 28657, 28693, 29277, 29613, 36007, 36051, 38971, 24977, 27703, 32856, 39425, 20045, 20107, 20123, 20181, 20282, 20284, 20351, 20447, 20735, 21490, 21496, 21766, 21987, 22235, 22763, 22882, 23057, 23531, 23546, 23556, 24051, 24107, 24473, 24605, 25448, 26012, 26031, 26614, 26619, 26797, 27515, 27801, 27863, 28195, 28681, 29509, 30722, 31038, 31040, 31072, 31169, 31721, 32023, 32114, 32902, 33293, 33678, 34001, 34503, 35039, 35408, 35422, 35613, 36060, 36198, 36781, 37034, 39164, 39391, 40605, 21066, 63849, 26388, 63850, 20632, 21034, 23665, 25955, 27733, 29642, 29987, 30109, 31639, 33948, 37240, 38704, 20087, 25746, 27578, 29022, 34217, 19977, 63851, 26441, 26862, 28183, 33439, 34072, 34923, 25591, 28545, 37394, 39087, 19978, 20663, 20687, 20767, 21830, 21930, 22039, 23360, 23577, 23776, 24120, 24202, 24224, 24258, 24819, 26705, 27233, 28248, 29245, 29248, 29376, 30456, 31077, 31665, 32724, 35059, 35316, 35443, 35937, 36062, 38684, 22622, 29885, 36093, 21959, 63852, 31329, 32034, 33394, 29298, 29983, 29989, 63853, 31513, 22661, 22779, 23996, 24207, 24246, 24464, 24661, 25234, 25471, 25933, 26257, 26329, 26360, 26646, 26866, 29312, 29790, 31598, 32110, 32214, 32626, 32997, 33298, 34223, 35199, 35475, 36893, 37604, 40653, 40736, 22805, 22893, 24109, 24796, 26132, 26227, 26512, 27728, 28101, 28511, 30707, 30889, 33990, 37323, 37675, 20185, 20682, 20808, 21892, 23307, 23459, 25159, 25982, 26059, 28210, 29053, 29697, 29764, 29831, 29887, 30316, 31146, 32218, 32341, 32680, 33146, 33203, 33337, 34330, 34796, 35445, 36323, 36984, 37521, 37925, 39245, 39854, 21352, 23633, 26964, 27844, 27945, 28203, 33292, 34203, 35131, 35373, 35498, 38634, 40807, 21089, 26297, 27570, 32406, 34814, 36109, 38275, 38493, 25885, 28041, 29166, 63854, 22478, 22995, 23468, 24615, 24826, 25104, 26143, 26207, 29481, 29689, 30427, 30465, 31596, 32854, 32882, 33125, 35488, 37266, 19990, 21218, 27506, 27927, 31237, 31545, 32048, 63855, 36016, 21484, 22063, 22609, 23477, 23567, 23569, 24034, 25152, 25475, 25620, 26157, 26803, 27836, 28040, 28335, 28703, 28836, 29138, 29990, 30095, 30094, 30233, 31505, 31712, 31787, 32032, 32057, 34092, 34157, 34311, 35380, 36877, 36961, 37045, 37559, 38902, 39479, 20439, 23660, 26463, 28049, 31903, 32396, 35606, 36118, 36895, 23403, 24061, 25613, 33984, 36956, 39137, 29575, 23435, 24730, 26494, 28126, 35359, 35494, 36865, 38924, 21047, 63856, 28753, 30862, 37782, 34928, 37335, 20462, 21463, 22013, 22234, 22402, 22781, 23234, 23432, 23723, 23744, 24101, 24833, 25101, 25163, 25480, 25628, 25910, 25976, 27193, 27530, 27700, 27929, 28465, 29159, 29417, 29560, 29703, 29874, 30246, 30561, 31168, 31319, 31466, 31929, 32143, 32172, 32353, 32670, 33065, 33585, 33936, 34010, 34282, 34966, 35504, 35728, 36664, 36930, 36995, 37228, 37526, 37561, 38539, 38567, 38568, 38614, 38656, 38920, 39318, 39635, 39706, 21460, 22654, 22809, 23408, 23487, 28113, 28506, 29087, 29729, 29881, 32901, 33789, 24033, 24455, 24490, 24642, 26092, 26642, 26991, 27219, 27529, 27957, 28147, 29667, 30462, 30636, 31565, 32020, 33059, 33308, 33600, 34036, 34147, 35426, 35524, 37255, 37662, 38918, 39348, 25100, 34899, 36848, 37477, 23815, 23847, 23913, 29791, 33181, 34664, 28629, 25342, 32722, 35126, 35186, 19998, 20056, 20711, 21213, 21319, 25215, 26119, 32361, 34821, 38494, 20365, 21273, 22070, 22987, 23204, 23608, 23630, 23629, 24066, 24337, 24643, 26045, 26159, 26178, 26558, 26612, 29468, 30690, 31034, 32709, 33940, 33997, 35222, 35430, 35433, 35553, 35925, 35962, 22516, 23508, 24335, 24687, 25325, 26893, 27542, 28252, 29060, 31698, 34645, 35672, 36606, 39135, 39166, 20280, 20353, 20449, 21627, 23072, 23480, 24892, 26032, 26216, 29180, 30003, 31070, 32051, 33102, 33251, 33688, 34218, 34254, 34563, 35338, 36523, 36763, 63857, 36805, 22833, 23460, 23526, 24713, 23529, 23563, 24515, 27777, 63858, 28145, 28683, 29978, 33455, 35574, 20160, 21313, 63859, 38617, 27663, 20126, 20420, 20818, 21854, 23077, 23784, 25105, 29273, 33469, 33706, 34558, 34905, 35357, 38463, 38597, 39187, 40201, 40285, 22538, 23731, 23997, 24132, 24801, 24853, 25569, 27138, 28197, 37122, 37716, 38990, 39952, 40823, 23433, 23736, 25353, 26191, 26696, 30524, 38593, 38797, 38996, 39839, 26017, 35585, 36555, 38332, 21813, 23721, 24022, 24245, 26263, 30284, 33780, 38343, 22739, 25276, 29390, 40232, 20208, 22830, 24591, 26171, 27523, 31207, 40230, 21395, 21696, 22467, 23830, 24859, 26326, 28079, 30861, 33406, 38552, 38724, 21380, 25212, 25494, 28082, 32266, 33099, 38989, 27387, 32588, 40367, 40474, 20063, 20539, 20918, 22812, 24825, 25590, 26928, 29242, 32822, 63860, 37326, 24369, 63861, 63862, 32004, 33509, 33903, 33979, 34277, 36493, 63863, 20335, 63864, 63865, 22756, 23363, 24665, 25562, 25880, 25965, 26264, 63866, 26954, 27171, 27915, 28673, 29036, 30162, 30221, 31155, 31344, 63867, 32650, 63868, 35140, 63869, 35731, 37312, 38525, 63870, 39178, 22276, 24481, 26044, 28417, 30208, 31142, 35486, 39341, 39770, 40812, 20740, 25014, 25233, 27277, 33222, 20547, 22576, 24422, 28937, 35328, 35578, 23420, 34326, 20474, 20796, 22196, 22852, 25513, 28153, 23978, 26989, 20870, 20104, 20313, 63871, 63872, 63873, 22914, 63874, 63875, 27487, 27741, 63876, 29877, 30998, 63877, 33287, 33349, 33593, 36671, 36701, 63878, 39192, 63879, 63880, 63881, 20134, 63882, 22495, 24441, 26131, 63883, 63884, 30123, 32377, 35695, 63885, 36870, 39515, 22181, 22567, 23032, 23071, 23476, 63886, 24310, 63887, 63888, 25424, 25403, 63889, 26941, 27783, 27839, 28046, 28051, 28149, 28436, 63890, 28895, 28982, 29017, 63891, 29123, 29141, 63892, 30799, 30831, 63893, 31605, 32227, 63894, 32303, 63895, 34893, 36575, 63896, 63897, 63898, 37467, 63899, 40182, 63900, 63901, 63902, 24709, 28037, 63903, 29105, 63904, 63905, 38321, 21421, 63906, 63907, 63908, 26579, 63909, 28814, 28976, 29744, 33398, 33490, 63910, 38331, 39653, 40573, 26308, 63911, 29121, 33865, 63912, 63913, 22603, 63914, 63915, 23992, 24433, 63916, 26144, 26254, 27001, 27054, 27704, 27891, 28214, 28481, 28634, 28699, 28719, 29008, 29151, 29552, 63917, 29787, 63918, 29908, 30408, 31310, 32403, 63919, 63920, 33521, 35424, 36814, 63921, 37704, 63922, 38681, 63923, 63924, 20034, 20522, 63925, 21000, 21473, 26355, 27757, 28618, 29450, 30591, 31330, 33454, 34269, 34306, 63926, 35028, 35427, 35709, 35947, 63927, 37555, 63928, 38675, 38928, 20116, 20237, 20425, 20658, 21320, 21566, 21555, 21978, 22626, 22714, 22887, 23067, 23524, 24735, 63929, 25034, 25942, 26111, 26212, 26791, 27738, 28595, 28879, 29100, 29522, 31613, 34568, 35492, 39986, 40711, 23627, 27779, 29508, 29577, 37434, 28331, 29797, 30239, 31337, 32277, 34314, 20800, 22725, 25793, 29934, 29973, 30320, 32705, 37013, 38605, 39252, 28198, 29926, 31401, 31402, 33253, 34521, 34680, 35355, 23113, 23436, 23451, 26785, 26880, 28003, 29609, 29715, 29740, 30871, 32233, 32747, 33048, 33109, 33694, 35916, 38446, 38929, 26352, 24448, 26106, 26505, 27754, 29579, 20525, 23043, 27498, 30702, 22806, 23916, 24013, 29477, 30031, 63930, 63931, 20709, 20985, 22575, 22829, 22934, 23002, 23525, 63932, 63933, 23970, 25303, 25622, 25747, 25854, 63934, 26332, 63935, 27208, 63936, 29183, 29796, 63937, 31368, 31407, 32327, 32350, 32768, 33136, 63938, 34799, 35201, 35616, 36953, 63939, 36992, 39250, 24958, 27442, 28020, 32287, 35109, 36785, 20433, 20653, 20887, 21191, 22471, 22665, 23481, 24248, 24898, 27029, 28044, 28263, 28342, 29076, 29794, 29992, 29996, 32883, 33592, 33993, 36362, 37780, 37854, 63940, 20110, 20305, 20598, 20778, 21448, 21451, 21491, 23431, 23507, 23588, 24858, 24962, 26100, 29275, 29591, 29760, 30402, 31056, 31121, 31161, 32006, 32701, 33419, 34261, 34398, 36802, 36935, 37109, 37354, 38533, 38632, 38633, 21206, 24423, 26093, 26161, 26671, 29020, 31286, 37057, 38922, 20113, 63941, 27218, 27550, 28560, 29065, 32792, 33464, 34131, 36939, 38549, 38642, 38907, 34074, 39729, 20112, 29066, 38596, 20803, 21407, 21729, 22291, 22290, 22435, 23195, 23236, 23491, 24616, 24895, 25588, 27781, 27961, 28274, 28304, 29232, 29503, 29783, 33489, 34945, 36677, 36960, 63942, 38498, 39000, 40219, 26376, 36234, 37470, 20301, 20553, 20702, 21361, 22285, 22996, 23041, 23561, 24944, 26256, 28205, 29234, 29771, 32239, 32963, 33806, 33894, 34111, 34655, 34907, 35096, 35586, 36949, 38859, 39759, 20083, 20369, 20754, 20842, 63943, 21807, 21929, 23418, 23461, 24188, 24189, 24254, 24736, 24799, 24840, 24841, 25540, 25912, 26377, 63944, 26580, 26586, 63945, 26977, 26978, 27833, 27943, 63946, 28216, 63947, 28641, 29494, 29495, 63948, 29788, 30001, 63949, 30290, 63950, 63951, 32173, 33278, 33848, 35029, 35480, 35547, 35565, 36400, 36418, 36938, 36926, 36986, 37193, 37321, 37742, 63952, 63953, 22537, 63954, 27603, 32905, 32946, 63955, 63956, 20801, 22891, 23609, 63957, 63958, 28516, 29607, 32996, 36103, 63959, 37399, 38287, 63960, 63961, 63962, 63963, 32895, 25102, 28700, 32104, 34701, 63964, 22432, 24681, 24903, 27575, 35518, 37504, 38577, 20057, 21535, 28139, 34093, 38512, 38899, 39150, 25558, 27875, 37009, 20957, 25033, 33210, 40441, 20381, 20506, 20736, 23452, 24847, 25087, 25836, 26885, 27589, 30097, 30691, 32681, 33380, 34191, 34811, 34915, 35516, 35696, 37291, 20108, 20197, 20234, 63965, 63966, 22839, 23016, 63967, 24050, 24347, 24411, 24609, 63968, 63969, 63970, 63971, 29246, 29669, 63972, 30064, 30157, 63973, 31227, 63974, 32780, 32819, 32900, 33505, 33617, 63975, 63976, 36029, 36019, 36999, 63977, 63978, 39156, 39180, 63979, 63980, 28727, 30410, 32714, 32716, 32764, 35610, 20154, 20161, 20995, 21360, 63981, 21693, 22240, 23035, 23493, 24341, 24525, 28270, 63982, 63983, 32106, 33589, 63984, 34451, 35469, 63985, 38765, 38775, 63986, 63987, 19968, 20314, 20350, 22777, 26085, 28322, 36920, 37808, 39353, 20219, 22764, 22922, 23001, 24641, 63988, 63989, 31252, 63990, 33615, 36035, 20837, 21316, 63991, 63992, 63993, 20173, 21097, 23381, 33471, 20180, 21050, 21672, 22985, 23039, 23376, 23383, 23388, 24675, 24904, 28363, 28825, 29038, 29574, 29943, 30133, 30913, 32043, 32773, 33258, 33576, 34071, 34249, 35566, 36039, 38604, 20316, 21242, 22204, 26027, 26152, 28796, 28856, 29237, 32189, 33421, 37196, 38592, 40306, 23409, 26855, 27544, 28538, 30430, 23697, 26283, 28507, 31668, 31786, 34870, 38620, 19976, 20183, 21280, 22580, 22715, 22767, 22892, 23559, 24115, 24196, 24373, 25484, 26290, 26454, 27167, 27299, 27404, 28479, 29254, 63994, 29520, 29835, 31456, 31911, 33144, 33247, 33255, 33674, 33900, 34083, 34196, 34255, 35037, 36115, 37292, 38263, 38556, 20877, 21705, 22312, 23472, 25165, 26448, 26685, 26771, 28221, 28371, 28797, 32289, 35009, 36001, 36617, 40779, 40782, 29229, 31631, 35533, 37658, 20295, 20302, 20786, 21632, 22992, 24213, 25269, 26485, 26990, 27159, 27822, 28186, 29401, 29482, 30141, 31672, 32053, 33511, 33785, 33879, 34295, 35419, 36015, 36487, 36889, 37048, 38606, 40799, 21219, 21514, 23265, 23490, 25688, 25973, 28404, 29380, 63995, 30340, 31309, 31515, 31821, 32318, 32735, 33659, 35627, 36042, 36196, 36321, 36447, 36842, 36857, 36969, 37841, 20291, 20346, 20659, 20840, 20856, 21069, 21098, 22625, 22652, 22880, 23560, 23637, 24283, 24731, 25136, 26643, 27583, 27656, 28593, 29006, 29728, 30000, 30008, 30033, 30322, 31564, 31627, 31661, 31686, 32399, 35438, 36670, 36681, 37439, 37523, 37666, 37931, 38651, 39002, 39019, 39198, 20999, 25130, 25240, 27993, 30308, 31434, 31680, 32118, 21344, 23742, 24215, 28472, 28857, 31896, 38673, 39822, 40670, 25509, 25722, 34678, 19969, 20117, 20141, 20572, 20597, 21576, 22979, 23450, 24128, 24237, 24311, 24449, 24773, 25402, 25919, 25972, 26060, 26230, 26232, 26622, 26984, 27273, 27491, 27712, 28096, 28136, 28191, 28254, 28702, 28833, 29582, 29693, 30010, 30555, 30855, 31118, 31243, 31357, 31934, 32142, 33351, 35330, 35562, 35998, 37165, 37194, 37336, 37478, 37580, 37664, 38662, 38742, 38748, 38914, 40718, 21046, 21137, 21884, 22564, 24093, 24351, 24716, 25552, 26799, 28639, 31085, 31532, 33229, 34234, 35069, 35576, 36420, 37261, 38500, 38555, 38717, 38988, 40778, 20430, 20806, 20939, 21161, 22066, 24340, 24427, 25514, 25805, 26089, 26177, 26362, 26361, 26397, 26781, 26839, 27133, 28437, 28526, 29031, 29157, 29226, 29866, 30522, 31062, 31066, 31199, 31264, 31381, 31895, 31967, 32068, 32368, 32903, 34299, 34468, 35412, 35519, 36249, 36481, 36896, 36973, 37347, 38459, 38613, 40165, 26063, 31751, 36275, 37827, 23384, 23562, 21330, 25305, 29469, 20519, 23447, 24478, 24752, 24939, 26837, 28121, 29742, 31278, 32066, 32156, 32305, 33131, 36394, 36405, 37758, 37912, 20304, 22352, 24038, 24231, 25387, 32618, 20027, 20303, 20367, 20570, 23005, 32964, 21610, 21608, 22014, 22863, 23449, 24030, 24282, 26205, 26417, 26609, 26666, 27880, 27954, 28234, 28557, 28855, 29664, 30087, 31820, 32002, 32044, 32162, 33311, 34523, 35387, 35461, 36208, 36490, 36659, 36913, 37198, 37202, 37956, 39376, 31481, 31909, 20426, 20737, 20934, 22472, 23535, 23803, 26201, 27197, 27994, 28310, 28652, 28940, 30063, 31459, 34850, 36897, 36981, 38603, 39423, 33537, 20013, 20210, 34886, 37325, 21373, 27355, 26987, 27713, 33914, 22686, 24974, 26366, 25327, 28893, 29969, 30151, 32338, 33976, 35657, 36104, 20043, 21482, 21675, 22320, 22336, 24535, 25345, 25351, 25711, 25903, 26088, 26234, 26525, 26547, 27490, 27744, 27802, 28460, 30693, 30757, 31049, 31063, 32025, 32930, 33026, 33267, 33437, 33463, 34584, 35468, 63996, 36100, 36286, 36978, 30452, 31257, 31287, 32340, 32887, 21767, 21972, 22645, 25391, 25634, 26185, 26187, 26733, 27035, 27524, 27941, 28337, 29645, 29800, 29857, 30043, 30137, 30433, 30494, 30603, 31206, 32265, 32285, 33275, 34095, 34967, 35386, 36049, 36587, 36784, 36914, 37805, 38499, 38515, 38663, 20356, 21489, 23018, 23241, 24089, 26702, 29894, 30142, 31209, 31378, 33187, 34541, 36074, 36300, 36845, 26015, 26389, 63997, 22519, 28503, 32221, 36655, 37878, 38598, 24501, 25074, 28548, 19988, 20376, 20511, 21449, 21983, 23919, 24046, 27425, 27492, 30923, 31642, 63998, 36425, 36554, 36974, 25417, 25662, 30528, 31364, 37679, 38015, 40810, 25776, 28591, 29158, 29864, 29914, 31428, 31762, 32386, 31922, 32408, 35738, 36106, 38013, 39184, 39244, 21049, 23519, 25830, 26413, 32046, 20717, 21443, 22649, 24920, 24921, 25082, 26028, 31449, 35730, 35734, 20489, 20513, 21109, 21809, 23100, 24288, 24432, 24884, 25950, 26124, 26166, 26274, 27085, 28356, 28466, 29462, 30241, 31379, 33081, 33369, 33750, 33980, 20661, 22512, 23488, 23528, 24425, 25505, 30758, 32181, 33756, 34081, 37319, 37365, 20874, 26613, 31574, 36012, 20932, 22971, 24765, 34389, 20508, 63999, 21076, 23610, 24957, 25114, 25299, 25842, 26021, 28364, 30240, 33034, 36448, 38495, 38587, 20191, 21315, 21912, 22825, 24029, 25797, 27849, 28154, 29588, 31359, 33307, 34214, 36068, 36368, 36983, 37351, 38369, 38433, 38854, 20984, 21746, 21894, 24505, 25764, 28552, 32180, 36639, 36685, 37941, 20681, 23574, 27838, 28155, 29979, 30651, 31805, 31844, 35449, 35522, 22558, 22974, 24086, 25463, 29266, 30090, 30571, 35548, 36028, 36626, 24307, 26228, 28152, 32893, 33729, 35531, 38737, 39894, 64000, 21059, 26367, 28053, 28399, 32224, 35558, 36910, 36958, 39636, 21021, 21119, 21736, 24980, 25220, 25307, 26786, 26898, 26970, 27189, 28818, 28966, 30813, 30977, 30990, 31186, 31245, 32918, 33400, 33493, 33609, 34121, 35970, 36229, 37218, 37259, 37294, 20419, 22225, 29165, 30679, 34560, 35320, 23544, 24534, 26449, 37032, 21474, 22618, 23541, 24740, 24961, 25696, 32317, 32880, 34085, 37507, 25774, 20652, 23828, 26368, 22684, 25277, 25512, 26894, 27000, 27166, 28267, 30394, 31179, 33467, 33833, 35535, 36264, 36861, 37138, 37195, 37276, 37648, 37656, 37786, 38619, 39478, 39949, 19985, 30044, 31069, 31482, 31569, 31689, 32302, 33988, 36441, 36468, 36600, 36880, 26149, 26943, 29763, 20986, 26414, 40668, 20805, 24544, 27798, 34802, 34909, 34935, 24756, 33205, 33795, 36101, 21462, 21561, 22068, 23094, 23601, 28810, 32736, 32858, 33030, 33261, 36259, 37257, 39519, 40434, 20596, 20164, 21408, 24827, 28204, 23652, 20360, 20516, 21988, 23769, 24159, 24677, 26772, 27835, 28100, 29118, 30164, 30196, 30305, 31258, 31305, 32199, 32251, 32622, 33268, 34473, 36636, 38601, 39347, 40786, 21063, 21189, 39149, 35242, 19971, 26578, 28422, 20405, 23522, 26517, 27784, 28024, 29723, 30759, 37341, 37756, 34756, 31204, 31281, 24555, 20182, 21668, 21822, 22702, 22949, 24816, 25171, 25302, 26422, 26965, 33333, 38464, 39345, 39389, 20524, 21331, 21828, 22396, 64001, 25176, 64002, 25826, 26219, 26589, 28609, 28655, 29730, 29752, 35351, 37944, 21585, 22022, 22374, 24392, 24986, 27470, 28760, 28845, 32187, 35477, 22890, 33067, 25506, 30472, 32829, 36010, 22612, 25645, 27067, 23445, 24081, 28271, 64003, 34153, 20812, 21488, 22826, 24608, 24907, 27526, 27760, 27888, 31518, 32974, 33492, 36294, 37040, 39089, 64004, 25799, 28580, 25745, 25860, 20814, 21520, 22303, 35342, 24927, 26742, 64005, 30171, 31570, 32113, 36890, 22534, 27084, 33151, 35114, 36864, 38969, 20600, 22871, 22956, 25237, 36879, 39722, 24925, 29305, 38358, 22369, 23110, 24052, 25226, 25773, 25850, 26487, 27874, 27966, 29228, 29750, 30772, 32631, 33453, 36315, 38935, 21028, 22338, 26495, 29256, 29923, 36009, 36774, 37393, 38442, 20843, 21485, 25420, 20329, 21764, 24726, 25943, 27803, 28031, 29260, 29437, 31255, 35207, 35997, 24429, 28558, 28921, 33192, 24846, 20415, 20559, 25153, 29255, 31687, 32232, 32745, 36941, 38829, 39449, 36022, 22378, 24179, 26544, 33805, 35413, 21536, 23318, 24163, 24290, 24330, 25987, 32954, 34109, 38281, 38491, 20296, 21253, 21261, 21263, 21638, 21754, 22275, 24067, 24598, 25243, 25265, 25429, 64006, 27873, 28006, 30129, 30770, 32990, 33071, 33502, 33889, 33970, 34957, 35090, 36875, 37610, 39165, 39825, 24133, 26292, 26333, 28689, 29190, 64007, 20469, 21117, 24426, 24915, 26451, 27161, 28418, 29922, 31080, 34920, 35961, 39111, 39108, 39491, 21697, 31263, 26963, 35575, 35914, 39080, 39342, 24444, 25259, 30130, 30382, 34987, 36991, 38466, 21305, 24380, 24517, 27852, 29644, 30050, 30091, 31558, 33534, 39325, 20047, 36924, 19979, 20309, 21414, 22799, 24264, 26160, 27827, 29781, 33655, 34662, 36032, 36944, 38686, 39957, 22737, 23416, 34384, 35604, 40372, 23506, 24680, 24717, 26097, 27735, 28450, 28579, 28698, 32597, 32752, 38289, 38290, 38480, 38867, 21106, 36676, 20989, 21547, 21688, 21859, 21898, 27323, 28085, 32216, 33382, 37532, 38519, 40569, 21512, 21704, 30418, 34532, 38308, 38356, 38492, 20130, 20233, 23022, 23270, 24055, 24658, 25239, 26477, 26689, 27782, 28207, 32568, 32923, 33322, 64008, 64009, 38917, 20133, 20565, 21683, 22419, 22874, 23401, 23475, 25032, 26999, 28023, 28707, 34809, 35299, 35442, 35559, 36994, 39405, 39608, 21182, 26680, 20502, 24184, 26447, 33607, 34892, 20139, 21521, 22190, 29670, 37141, 38911, 39177, 39255, 39321, 22099, 22687, 34395, 35377, 25010, 27382, 29563, 36562, 27463, 38570, 39511, 22869, 29184, 36203, 38761, 20436, 23796, 24358, 25080, 26203, 27883, 28843, 29572, 29625, 29694, 30505, 30541, 32067, 32098, 32291, 33335, 34898, 64010, 36066, 37449, 39023, 23377, 31348, 34880, 38913, 23244, 20448, 21332, 22846, 23805, 25406, 28025, 29433, 33029, 33031, 33698, 37583, 38960, 20136, 20804, 21009, 22411, 24418, 27842, 28366, 28677, 28752, 28847, 29074, 29673, 29801, 33610, 34722, 34913, 36872, 37026, 37795, 39336, 20846, 24407, 24800, 24935, 26291, 34137, 36426, 37295, 38795, 20046, 20114, 21628, 22741, 22778, 22909, 23733, 24359, 25142, 25160, 26122, 26215, 27627, 28009, 28111, 28246, 28408, 28564, 28640, 28649, 28765, 29392, 29733, 29786, 29920, 30355, 31068, 31946, 32286, 32993, 33446, 33899, 33983, 34382, 34399, 34676, 35703, 35946, 37804, 38912, 39013, 24785, 25110, 37239, 23130, 26127, 28151, 28222, 29759, 39746, 24573, 24794, 31503, 21700, 24344, 27742, 27859, 27946, 28888, 32005, 34425, 35340, 40251, 21270, 21644, 23301, 27194, 28779, 30069, 31117, 31166, 33457, 33775, 35441, 35649, 36008, 38772, 64011, 25844, 25899, 30906, 30907, 31339, 20024, 21914, 22864, 23462, 24187, 24739, 25563, 27489, 26213, 26707, 28185, 29029, 29872, 32008, 36996, 39529, 39973, 27963, 28369, 29502, 35905, 38346, 20976, 24140, 24488, 24653, 24822, 24880, 24908, 26179, 26180, 27045, 27841, 28255, 28361, 28514, 29004, 29852, 30343, 31681, 31783, 33618, 34647, 36945, 38541, 40643, 21295, 22238, 24315, 24458, 24674, 24724, 25079, 26214, 26371, 27292, 28142, 28590, 28784, 29546, 32362, 33214, 33588, 34516, 35496, 36036, 21123, 29554, 23446, 27243, 37892, 21742, 22150, 23389, 25928, 25989, 26313, 26783, 28045, 28102, 29243, 32948, 37237, 39501, 20399, 20505, 21402, 21518, 21564, 21897, 21957, 24127, 24460, 26429, 29030, 29661, 36869, 21211, 21235, 22628, 22734, 28932, 29071, 29179, 34224, 35347, 26248, 34216, 21927, 26244, 29002, 33841, 21321, 21913, 27585, 24409, 24509, 25582, 26249, 28999, 35569, 36637, 40638, 20241, 25658, 28875, 30054, 34407, 24676, 35662, 40440, 20807, 20982, 21256, 27958, 33016, 40657, 26133, 27427, 28824, 30165, 21507, 23673, 32007, 35350, 27424, 27453, 27462, 21560, 24688, 27965, 32725, 33288, 20694, 20958, 21916, 22123, 22221, 23020, 23305, 24076, 24985, 24984, 25137, 26206, 26342, 29081, 29113, 29114, 29351, 31143, 31232, 32690, 35440]); + encode0 = $toNativeArray($kindUint16, [60649, 61387, 0, 63186, 0, 0, 0, 55474, 60891, 57266, 57278, 63931, 0, 56564, 0, 0, 0, 62948, 0, 0, 62374, 56800, 57766, 0, 52984, 56496, 0, 0, 0, 0, 58282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61929, 0, 0, 0, 0, 52730, 0, 0, 0, 0, 0, 64687, 54177, 0, 61867, 0, 0, 0, 0, 0, 0, 59345, 53932, 0, 52985, 0, 0, 0, 0, 0, 61949, 0, 57023, 64442, 63929, 0, 0, 0, 0, 0, 0, 52946, 0, 58283, 60384, 0, 0, 0, 52986, 52215, 58789, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51937, 0, 54476, 0, 0, 0, 0, 0, 60129, 0, 0, 56547, 57261, 0, 0, 0, 0, 0, 0, 52203, 0, 0, 0, 54703, 0, 0, 0, 55029, 0, 58872, 0, 0, 57024, 60579, 0, 59853, 0, 60071, 59894, 64443, 0, 59369, 61388, 0, 0, 53478, 0, 0, 57025, 0, 0, 58540, 0, 0, 55500, 63985, 0, 52959, 64164, 59058, 0, 64251, 0, 0, 64189, 52424, 61389, 54741, 0, 0, 0, 0, 0, 0, 0, 54178, 0, 0, 0, 60625, 0, 0, 0, 0, 0, 58535, 60626, 0, 0, 63153, 0, 0, 52987, 0, 0, 53457, 52159, 0, 60836, 0, 0, 0, 0, 0, 0, 60840, 57026, 63202, 60892, 56565, 57529, 0, 0, 0, 54478, 0, 62645, 0, 0, 0, 54235, 54965, 60580, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58598, 0, 61930, 0, 0, 0, 52204, 52160, 0, 0, 0, 60658, 0, 0, 0, 0, 0, 53482, 0, 0, 0, 0, 0, 0, 0, 63986, 60581, 53471, 0, 59370, 53483, 56529, 56297, 64972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56279, 0, 0, 0, 0, 56033, 0, 54966, 0, 58335, 0, 57027, 0, 57028, 51873, 0, 0, 0, 0, 0, 61164, 0, 0, 54179, 61111, 63695, 0, 0, 0, 0, 60104, 61112, 61868, 61861, 59854, 0, 0, 0, 63932, 0, 0, 0, 58873, 60650, 56790, 60866, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63653, 0, 0, 0, 0, 0, 58810, 56280, 0, 0, 51874, 0, 0, 53709, 0, 0, 0, 61165, 0, 0, 0, 60651, 57029, 0, 58336, 0, 51913, 62185, 0, 54734, 0, 63158, 0, 52930, 54983, 0, 58292, 0, 61869, 0, 60130, 0, 0, 0, 0, 55234, 0, 62375, 0, 0, 52714, 0, 60398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55730, 64933, 0, 0, 0, 0, 0, 63189, 54754, 0, 0, 0, 0, 0, 0, 0, 0, 63669, 0, 0, 52469, 62901, 58541, 0, 0, 0, 0, 59371, 61909, 0, 0, 0, 61627, 0, 0, 59829, 0, 52425, 64213, 0, 0, 57812, 0, 0, 55254, 0, 0, 56513, 0, 57030, 64239, 58337, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57843, 56566, 0, 52988, 0, 56260, 0, 63729, 0, 0, 56548, 0, 58863, 0, 0, 0, 0, 0, 0, 0, 56497, 0, 0, 0, 54742, 0, 0, 62426, 0, 52161, 0, 56259, 0, 0, 0, 55802, 54254, 0, 0, 0, 64184, 0, 0, 64934, 60399, 0, 62630, 0, 52426, 62376, 0, 62427, 0, 56231, 63159, 0, 53222, 61682, 52186, 0, 59346, 55235, 63216, 59614, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58790, 0, 0, 0, 0, 0, 0, 0, 58855, 0, 0, 0, 51875, 52391, 60105, 0, 0, 0, 0, 0, 63670, 0, 0, 0, 0, 0, 64165, 0, 0, 0, 0, 61870, 0, 61390, 0, 0, 0, 0, 0, 0, 0, 0, 52205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63152, 61391, 59855, 0, 63454, 0, 0, 0, 0, 0, 0, 0, 52947, 0, 0, 0, 0, 56567, 0, 0, 0, 0, 0, 0, 0, 56232, 0, 0, 0, 52216, 0, 0, 0, 0, 0, 0, 57249, 56801, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62922, 59830, 0, 0, 0, 0, 59372, 61166, 0, 62448, 0, 57279, 0, 0, 0, 0, 0, 0, 52427, 0, 0, 0, 0, 0, 0, 53441, 0, 0, 0, 62674, 57530, 0, 0, 0, 0, 57280, 0, 52960, 0, 0, 0, 56530, 65002, 0, 0, 0, 55030, 0, 0, 0, 60106, 0, 0, 0, 0, 0, 0, 59625, 0, 58284, 0, 0, 0, 0, 0, 62416, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51876, 0, 56312, 0, 0, 0, 57031, 60400, 61910, 0, 0, 58850, 0, 52428, 0, 0, 52219, 0, 0, 0, 0, 0, 0, 0, 0, 60131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57281, 0, 55021, 0, 0, 0, 0, 0, 0, 0, 0, 59856, 0, 0, 0, 0, 0, 0, 0, 61113, 0, 0, 0, 0, 54755, 0, 0, 53715, 0, 58864, 0, 0, 0, 59572, 60355, 0, 60074, 64252, 62966, 61628, 64980, 57531, 52931, 0, 53434, 63418, 55539, 63437, 0, 0, 0, 58542, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54495, 0, 0, 0, 0, 0, 53479, 0, 0, 60669, 0, 53934, 61167, 54743, 60132, 63650, 52715, 55231, 64433, 0, 0, 52716, 0, 0, 0, 56498, 53484, 52989, 61168, 0, 0, 0, 52418, 0, 0, 0, 53485, 0, 0, 0, 0, 0, 58871, 0, 0, 0, 62460, 0, 0, 61090, 0, 0, 0, 0, 55731, 0, 0, 55540, 0, 59831, 0, 0, 0, 0, 0, 0, 0, 0, 52910, 0, 0, 0, 0, 55714, 0, 0, 0, 0, 55537, 0, 54479, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58791, 54738, 0, 0, 0, 0, 0, 54953, 0, 0, 0, 0, 0, 0, 62626, 0, 61911, 0, 0, 54744, 0, 61629, 55248, 54480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55247, 60394, 65003, 0, 0, 56301, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64709, 52162, 0, 0, 0, 0, 64981, 0, 62664, 59626, 62963, 0, 0, 63966, 0, 0, 54255, 0, 0, 60627, 0, 0, 56770, 61367, 59348, 0, 51914, 0, 0, 0, 55803, 0, 0, 64253, 0, 0, 0, 0, 0, 54954, 0, 0, 0, 0, 0, 62712, 0, 0, 0, 0, 0, 0, 63479, 56492, 0, 0, 0, 55255, 57250, 0, 0, 0, 52926, 0, 54256, 0, 0, 0, 0, 0, 61604, 57836, 53223, 62411, 60841, 51902, 0, 0, 0, 0, 0, 0, 0, 62703, 0, 0, 0, 63182, 0, 0, 57083, 53435, 54711, 61169, 0, 0, 0, 0, 0, 0, 62632, 0, 56568, 0, 0, 0, 0, 52135, 0, 56014, 0, 0, 0, 57574, 0, 0, 0, 0, 0, 0, 0, 60837, 61170, 0, 0, 0, 0, 56569, 0, 0, 63964, 0, 0, 62428, 0, 0, 0, 0, 0, 0, 0, 63730, 0, 62713, 0, 0, 0, 64753, 0, 0, 0, 53436, 56313, 55217, 0, 0, 0, 52220, 0, 0, 0, 61605, 52221, 0, 0, 0, 0, 0, 0, 0, 0, 54772, 0, 0, 0, 52717, 51877, 0, 0, 54955, 53442, 0, 0, 0, 0, 61630, 53949, 52388, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64182, 0, 0, 52429, 0, 56058, 0, 63183, 0, 59832, 0, 55541, 0, 0, 0, 52430, 0, 0, 0, 0, 55245, 0, 0, 54481, 59885, 0, 51947, 55778, 0, 64946, 0, 58285, 54988, 55732, 0, 0, 57767, 61139, 53443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64947, 0, 54756, 0, 0, 53224, 0, 60867, 53426, 0, 0, 52990, 55976, 0, 0, 0, 0, 0, 63696, 0, 0, 64982, 0, 0, 0, 0, 63697, 0, 63698, 56531, 0, 0, 0, 0, 56802, 64505, 56769, 0, 58293, 0, 0, 0, 0, 0, 0, 60893, 52932, 0, 52129, 0, 0, 0, 0, 0, 0, 56803, 0, 0, 0, 0, 64733, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63919, 0, 0, 0, 0, 0, 54011, 53153, 58536, 0, 62646, 60670, 0, 0, 58286, 59373, 64961, 56034, 0, 0, 55475, 0, 0, 0, 56804, 61679, 63217, 64240, 0, 0, 53749, 0, 0, 56015, 0, 56532, 0, 56486, 0, 61375, 0, 0, 0, 0, 0, 52943, 0, 57561, 0, 0, 0, 0, 0, 0, 55766, 60628, 60107, 0, 0, 51903, 54704, 0, 53225, 0, 0, 0, 0, 0, 61933, 0, 52431, 0, 0, 0, 0, 58616, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58605, 0, 0, 0, 0, 55256, 0, 64935, 0, 0, 0, 0, 60075, 63154, 0, 0, 0, 0, 53232, 63933, 0, 0, 0, 0, 0, 0, 59124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52187, 0, 0, 0, 0, 0, 0, 0, 62417, 0, 0, 0, 0, 59857, 62377, 53472, 59858, 0, 56035, 0, 0, 0, 0, 0, 0, 58066, 0, 63138, 57844, 0, 0, 0, 56036, 0, 0, 0, 0, 0, 59349, 62911, 53154, 52655, 53155, 0, 0, 0, 52656, 61950, 53411, 57775, 63651, 0, 51878, 63419, 62186, 57032, 59859, 0, 0, 0, 0, 57033, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64990, 51904, 0, 0, 0, 63978, 53710, 61140, 0, 54482, 55715, 64936, 55257, 63438, 64190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53206, 0, 55280, 0, 60385, 63685, 0, 0, 0, 0, 0, 56570, 0, 0, 56771, 0, 63967, 0, 0, 0, 0, 0, 0, 0, 59375, 0, 0, 0, 0, 64997, 63139, 0, 55804, 64937, 0, 59374, 0, 0, 0, 54757, 0, 0, 0, 0, 0, 61392, 0, 52657, 0, 0, 0, 0, 0, 0, 63394, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61874, 0, 61873, 0, 0, 0, 0, 0, 0, 52658, 0, 55979, 0, 51879, 0, 0, 0, 0, 0, 58338, 64444, 55716, 0, 0, 61114, 0, 0, 0, 0, 0, 63699, 0, 0, 0, 0, 0, 64506, 0, 53156, 0, 56571, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63203, 0, 0, 0, 60842, 0, 0, 62113, 52961, 0, 0, 0, 0, 0, 0, 64166, 0, 0, 0, 0, 63968, 0, 0, 0, 0, 60630, 0, 0, 58606, 63905, 0, 0, 64495, 0, 0, 0, 63979, 61091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60076, 0, 0, 0, 51880, 0, 0, 62714, 0, 0, 0, 0, 52694, 64758, 0, 0, 0, 62665, 0, 0, 0, 0, 0, 0, 0, 63700, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63654, 0, 57034, 62150, 0, 0, 0, 0, 0, 0, 55258, 0, 54224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55493, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60134, 0, 62429, 0, 0, 0, 58586, 0, 0, 0, 0, 0, 0, 0, 0, 63204, 0, 0, 0, 0, 0, 63218, 0, 57282, 0, 0, 0, 0, 0, 0, 0, 0, 55805, 0, 0, 0, 52470, 0, 0, 54202, 0, 0, 0, 0, 0, 0, 0, 58543, 0, 0, 0, 0, 63969, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61606, 0, 0, 0, 52179, 0, 0, 0, 57532, 0, 62666, 54522, 0, 64938, 63970, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62647, 64962, 64688, 0, 65004, 51938, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64957, 0, 60135, 57283, 53714, 52962, 0, 54180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64939, 0, 57312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62151, 0, 0, 0, 0, 0, 59376, 0, 53486, 0, 0, 62378, 0, 0, 0, 57035, 63160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57845, 61875, 0, 0, 0, 0, 0, 0, 0, 63395, 0, 0, 51881, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53157, 0, 0, 57284, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57776, 0, 0, 61631, 0, 63140, 0, 58294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53487, 0, 0, 65005, 0, 0, 0, 0, 0, 0, 0, 0, 56772, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64759, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59071, 0, 0, 0, 0, 0, 0, 57005, 0, 64191, 0, 0, 0, 0, 0, 58865, 0, 0, 0, 0, 0, 0, 0, 60868, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53925, 0, 0, 65006, 0, 0, 0, 62902, 0, 0, 0, 0, 0, 0, 0, 0, 57846, 57036, 0, 0, 64734, 0, 60631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52701, 0, 0, 0, 0, 0, 0, 0, 0, 54967, 52659, 0, 0, 0, 0, 0, 0, 0, 0, 63701, 58840, 0, 0, 0, 53226, 0, 0, 53200, 0, 60108, 0, 0, 0, 0, 60078, 60077, 0, 0, 54257, 0, 54181, 0, 0, 0, 0, 0, 0, 63439, 0, 0, 0, 0, 0, 0, 0, 0, 61092, 0, 0, 0, 0, 53412, 0, 0, 62114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53488, 0, 0, 0, 0, 62115, 0, 63480, 0, 0, 0, 0, 53427, 0, 0, 56233, 0, 0, 54203, 51948, 0, 61862, 52181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63463, 0, 0, 52702, 0, 63396, 0, 0, 0, 63680, 0, 0, 0, 54237, 0, 52432, 0, 0, 0, 0, 53158, 0, 0, 0, 0, 0, 0, 63219, 0, 0, 0, 0, 0, 57847, 0, 0, 0, 0, 0, 54236, 0, 0, 64254, 0, 0, 0, 0, 0, 0, 0, 64167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60377, 0, 53159, 60079, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58607, 0, 0, 0, 59833, 61912, 0, 0, 55512, 0, 0, 57586, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59060, 56572, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62449, 0, 0, 0, 58320, 0, 0, 62203, 0, 56262, 53489, 0, 53490, 0, 0, 0, 53212, 0, 54225, 0, 0, 52401, 63448, 0, 52136, 60348, 58558, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62684, 0, 0, 56514, 0, 0, 61607, 0, 0, 59072, 0, 0, 51949, 0, 0, 0, 0, 59627, 58856, 56515, 0, 0, 60894, 54258, 0, 0, 0, 0, 52471, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52948, 59307, 0, 0, 0, 52163, 0, 57777, 0, 0, 63410, 0, 0, 54259, 54226, 0, 62912, 0, 0, 0, 57309, 0, 0, 61171, 59377, 0, 64948, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62152, 0, 0, 0, 62418, 0, 0, 61172, 0, 58067, 0, 0, 0, 0, 52433, 0, 57322, 0, 0, 0, 59834, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55767, 0, 0, 0, 0, 0, 0, 0, 0, 62925, 0, 61938, 64199, 0, 0, 0, 0, 0, 0, 0, 0, 55800, 54466, 0, 0, 0, 0, 63205, 0, 0, 0, 0, 56773, 0, 0, 0, 0, 0, 0, 59378, 60895, 0, 0, 51915, 0, 0, 56314, 0, 0, 0, 59573, 0, 54182, 0, 0, 0, 0, 0, 0, 64949, 0, 0, 63945, 0, 58594, 0, 64445, 0, 0, 55204, 52933, 0, 0, 0, 0, 52949, 55014, 0, 0, 0, 0, 58813, 0, 0, 0, 0, 0, 0, 57037, 60659, 0, 0, 60896, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60652, 64446, 57323, 0, 57848, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63934, 0, 0, 0, 0, 53491, 57514, 59618, 0, 0, 58068, 54013, 0, 58792, 0, 0, 0, 0, 0, 55763, 0, 0, 0, 0, 54238, 0, 62648, 63420, 56573, 0, 59628, 58599, 0, 0, 58359, 0, 0, 0, 0, 0, 60584, 0, 0, 0, 0, 0, 0, 64241, 0, 0, 0, 0, 0, 58866, 0, 0, 53492, 53935, 56549, 0, 0, 0, 0, 53413, 61876, 64689, 52472, 0, 0, 56774, 64209, 0, 63455, 0, 0, 64168, 0, 0, 0, 0, 0, 61173, 0, 57038, 0, 0, 0, 0, 59379, 0, 0, 63404, 60356, 60897, 57515, 56775, 0, 0, 0, 0, 53939, 53951, 0, 0, 0, 51916, 0, 0, 0, 0, 64447, 0, 0, 0, 0, 58877, 56805, 55501, 0, 0, 0, 0, 0, 60660, 0, 0, 0, 0, 0, 0, 0, 0, 53493, 0, 0, 59629, 53458, 0, 55768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63206, 0, 0, 56234, 0, 0, 0, 63456, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55513, 0, 62627, 0, 0, 62685, 0, 0, 0, 0, 61393, 0, 0, 55733, 0, 0, 60843, 0, 58295, 0, 0, 0, 0, 61115, 52660, 0, 57587, 60109, 0, 0, 0, 0, 60661, 59630, 0, 52137, 61871, 0, 0, 0, 0, 0, 0, 0, 0, 51917, 0, 60585, 0, 62187, 0, 65007, 0, 63987, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59073, 0, 0, 60632, 0, 0, 0, 60844, 0, 60110, 0, 59615, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57039, 0, 0, 0, 0, 0, 0, 53926, 0, 0, 59380, 53718, 0, 0, 59074, 58339, 0, 0, 0, 0, 58544, 0, 0, 0, 55476, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63141, 0, 0, 0, 0, 0, 62430, 0, 0, 0, 0, 55205, 0, 0, 0, 0, 63464, 0, 0, 59590, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64486, 0, 0, 0, 0, 0, 0, 0, 56806, 0, 0, 0, 56574, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55514, 0, 0, 0, 0, 0, 0, 0, 55980, 60080, 0, 0, 0, 0, 0, 0, 0, 0, 58296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51882, 57849, 0, 60081, 0, 0, 0, 0, 62188, 0, 0, 64238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61141, 0, 0, 0, 0, 63988, 0, 0, 53996, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64507, 0, 0, 0, 65008, 0, 57533, 52963, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63686, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57006, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57285, 0, 0, 58814, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60845, 64234, 0, 0, 52718, 60838, 0, 60846, 61677, 0, 56737, 0, 60847, 64760, 0, 55531, 0, 0, 0, 52473, 52661, 0, 0, 0, 0, 64169, 0, 57821, 0, 0, 0, 0, 58069, 60879, 0, 0, 0, 56738, 0, 0, 63946, 0, 60136, 0, 58861, 0, 0, 0, 0, 0, 0, 0, 0, 54251, 0, 59860, 57850, 58572, 0, 57828, 59591, 0, 0, 52955, 0, 0, 0, 56533, 0, 63413, 64755, 61683, 52911, 61877, 61394, 59592, 60401, 0, 0, 0, 0, 0, 52180, 57534, 58360, 60137, 64690, 0, 0, 0, 0, 0, 57588, 0, 53216, 0, 61093, 0, 0, 64170, 59075, 57778, 51883, 0, 58340, 59835, 0, 0, 0, 0, 0, 58070, 62450, 0, 61142, 60082, 53494, 60633, 56011, 53160, 0, 0, 0, 0, 56739, 0, 0, 0, 55515, 0, 63950, 59861, 58321, 0, 0, 53948, 0, 0, 0, 0, 0, 0, 55468, 62412, 0, 52731, 63190, 0, 59381, 59631, 58361, 53947, 62451, 58363, 0, 57040, 52912, 0, 55031, 61913, 0, 0, 0, 0, 0, 62913, 56516, 0, 62907, 0, 57041, 0, 0, 0, 0, 0, 0, 56550, 0, 0, 57042, 0, 0, 60898, 61174, 60111, 61678, 58364, 0, 54239, 54260, 57779, 0, 57780, 0, 0, 0, 0, 62675, 0, 0, 57286, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59862, 0, 0, 0, 56235, 0, 0, 0, 0, 0, 0, 0, 0, 63142, 0, 0, 0, 0, 0, 0, 58297, 60357, 62633, 52662, 54009, 0, 55981, 53987, 53201, 0, 0, 0, 0, 52188, 52474, 0, 53213, 0, 0, 59561, 0, 58299, 58298, 0, 0, 57562, 0, 0, 0, 61175, 0, 0, 0, 0, 0, 56499, 0, 0, 0, 0, 54261, 0, 55206, 0, 63157, 55259, 0, 0, 0, 0, 0, 0, 57813, 0, 0, 54506, 0, 57251, 0, 0, 0, 0, 0, 0, 0, 64991, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53495, 60884, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52138, 0, 0, 0, 0, 0, 0, 0, 58587, 0, 57851, 52130, 0, 0, 0, 0, 54240, 0, 58559, 0, 64448, 0, 55998, 58573, 0, 54969, 0, 0, 0, 61376, 0, 57852, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63161, 0, 0, 0, 0, 0, 0, 57287, 0, 0, 0, 0, 0, 0, 0, 58545, 0, 0, 0, 0, 0, 0, 56551, 56552, 0, 0, 0, 64214, 0, 54262, 0, 0, 0, 0, 61914, 0, 64242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58109, 0, 0, 0, 0, 0, 54735, 53496, 0, 0, 52703, 0, 0, 62923, 0, 58608, 52139, 0, 55236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58110, 0, 56794, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55982, 51950, 0, 0, 0, 54713, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58273, 0, 0, 59619, 0, 0, 62379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53161, 0, 0, 0, 54263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54513, 0, 0, 52964, 0, 59634, 0, 0, 0, 0, 0, 0, 0, 58869, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59310, 0, 54970, 0, 57324, 58560, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59620, 0, 0, 0, 0, 55477, 0, 0, 0, 58588, 0, 0, 0, 0, 0, 0, 62649, 61878, 0, 0, 58078, 57781, 0, 0, 52719, 61863, 52965, 52189, 0, 0, 55779, 0, 0, 62380, 0, 0, 53497, 60587, 57043, 63465, 0, 0, 63989, 0, 0, 0, 0, 0, 57822, 52206, 0, 0, 0, 58300, 63702, 0, 0, 56302, 0, 0, 0, 0, 0, 65009, 0, 0, 0, 0, 63414, 0, 0, 0, 0, 62686, 0, 0, 62189, 0, 56281, 0, 61608, 0, 0, 0, 0, 0, 0, 0, 57853, 0, 0, 0, 0, 0, 57044, 0, 57516, 0, 0, 0, 0, 0, 60899, 0, 0, 54241, 0, 57288, 0, 0, 0, 0, 55734, 0, 64940, 61395, 0, 0, 0, 58561, 63723, 0, 56236, 0, 0, 0, 0, 64710, 0, 0, 0, 0, 0, 0, 0, 0, 55469, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63162, 0, 56287, 54227, 63687, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51918, 63681, 53940, 0, 0, 56500, 64185, 51919, 0, 64691, 60138, 60139, 53498, 0, 0, 0, 0, 0, 60900, 0, 0, 56807, 0, 0, 57289, 0, 0, 0, 0, 57325, 0, 0, 0, 0, 0, 61116, 0, 61377, 0, 0, 52434, 0, 56740, 0, 0, 0, 57290, 0, 0, 0, 0, 0, 54264, 61864, 0, 0, 0, 52663, 0, 61396, 0, 0, 0, 0, 0, 0, 0, 58589, 57326, 52140, 59836, 0, 0, 0, 0, 0, 60140, 0, 0, 0, 57291, 0, 0, 0, 0, 0, 63935, 54959, 54726, 0, 0, 0, 0, 0, 53162, 0, 0, 52905, 0, 0, 55032, 0, 0, 0, 61879, 61176, 0, 0, 0, 55769, 62431, 0, 63688, 52934, 0, 0, 0, 0, 0, 0, 0, 0, 54758, 0, 0, 0, 0, 0, 0, 62694, 0, 0, 59077, 61397, 0, 0, 52207, 64735, 0, 0, 0, 0, 0, 56487, 0, 0, 55015, 0, 0, 0, 0, 0, 63689, 0, 0, 0, 0, 58322, 0, 58301, 0, 53217, 61632, 60634, 0, 56791, 64496, 0, 0, 60588, 0, 0, 0, 61609, 0, 0, 0, 0, 0, 0, 64215, 64449, 0, 53952, 0, 0, 0, 0, 0, 0, 0, 58800, 0, 0, 0, 60901, 0, 0, 0, 0, 52141, 0, 63920, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63397, 0, 52142, 0, 55983, 0, 55478, 0, 0, 0, 0, 0, 0, 0, 54183, 64434, 0, 64964, 0, 60589, 0, 0, 0, 0, 0, 0, 64417, 0, 0, 0, 58857, 59886, 0, 62452, 63731, 61633, 57007, 63664, 0, 0, 62432, 59311, 0, 0, 0, 0, 0, 56237, 0, 59061, 0, 0, 63912, 0, 0, 56792, 59609, 61398, 0, 0, 0, 54242, 0, 58079, 0, 0, 64736, 55240, 64941, 0, 0, 0, 57327, 52435, 54265, 0, 0, 0, 0, 54512, 56263, 57045, 0, 0, 0, 0, 61684, 0, 54736, 58841, 0, 0, 0, 0, 0, 0, 64711, 56534, 58080, 0, 0, 0, 55984, 0, 0, 0, 0, 0, 0, 62371, 0, 54252, 0, 62667, 0, 0, 0, 64965, 0, 0, 0, 0, 0, 58365, 0, 63921, 0, 0, 0, 0, 0, 0, 53499, 60635, 0, 0, 0, 0, 0, 0, 0, 0, 62908, 62116, 55502, 55503, 0, 0, 0, 0, 0, 0, 62967, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53943, 0, 0, 0, 0, 0, 0, 0, 64492, 0, 56776, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58600, 0, 0, 53953, 0, 0, 0, 63703, 0, 0, 0, 0, 0, 54971, 57046, 0, 0, 63421, 60590, 0, 0, 0, 53473, 0, 57589, 60083, 0, 52950, 0, 0, 0, 0, 52389, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60662, 58081, 58302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64712, 0, 0, 52720, 0, 63990, 0, 0, 57328, 0, 0, 0, 58815, 0, 0, 0, 52927, 0, 0, 0, 0, 64737, 60848, 64977, 63163, 0, 0, 63951, 60378, 51905, 0, 53944, 52721, 0, 58323, 64998, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59117, 0, 0, 0, 58362, 0, 0, 61610, 63952, 0, 0, 0, 0, 0, 0, 64738, 0, 63655, 0, 0, 0, 57829, 61177, 0, 0, 0, 59382, 60141, 0, 0, 64692, 62914, 0, 0, 55260, 0, 0, 0, 0, 0, 0, 0, 0, 61685, 0, 56808, 54253, 62972, 0, 55999, 0, 52475, 0, 0, 0, 54266, 62628, 0, 0, 0, 0, 0, 0, 0, 61399, 0, 54467, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64483, 0, 0, 0, 0, 0, 0, 0, 0, 64493, 0, 57517, 0, 0, 60142, 64435, 58562, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63207, 53981, 0, 57292, 0, 0, 64713, 0, 0, 58793, 57590, 63155, 0, 0, 0, 0, 0, 57854, 0, 0, 0, 0, 52208, 0, 60143, 60144, 0, 0, 0, 56000, 63668, 60402, 0, 0, 0, 0, 0, 58563, 0, 0, 0, 0, 59863, 58609, 0, 0, 0, 51951, 0, 0, 0, 0, 0, 0, 0, 52951, 0, 0, 0, 0, 0, 0, 0, 0, 64714, 0, 0, 0, 62433, 0, 0, 52164, 0, 0, 0, 0, 58341, 0, 52165, 60084, 0, 0, 59837, 0, 55241, 0, 0, 60379, 60849, 0, 52419, 63422, 64715, 0, 0, 0, 0, 0, 0, 63732, 0, 55735, 0, 0, 62419, 62420, 0, 0, 0, 63460, 0, 63441, 0, 0, 55479, 52913, 51906, 0, 0, 64436, 52166, 0, 0, 61686, 0, 0, 54759, 0, 60112, 0, 0, 0, 0, 0, 52436, 52143, 0, 0, 0, 0, 0, 62634, 59823, 0, 0, 62915, 59864, 0, 0, 0, 0, 0, 0, 0, 56809, 0, 0, 0, 61939, 0, 54779, 57019, 0, 0, 62715, 0, 0, 0, 65011, 65010, 63398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56777, 0, 0, 54483, 0, 52392, 0, 56001, 52437, 0, 55780, 0, 0, 0, 64202, 0, 0, 0, 58851, 0, 0, 0, 54204, 0, 0, 0, 51952, 0, 0, 0, 0, 53444, 0, 0, 0, 51920, 64171, 60395, 59384, 55781, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53719, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62372, 0, 0, 0, 54523, 64739, 64216, 0, 62421, 0, 53163, 0, 0, 60403, 54780, 0, 0, 0, 0, 0, 0, 54228, 52732, 0, 55782, 0, 58105, 58017, 60372, 0, 57591, 58546, 52476, 0, 0, 0, 64484, 0, 0, 0, 62635, 0, 0, 0, 0, 53437, 0, 51953, 0, 0, 0, 0, 0, 0, 0, 0, 61368, 0, 0, 0, 55232, 0, 61178, 65012, 0, 0, 54243, 0, 64450, 0, 0, 0, 0, 0, 0, 0, 54760, 56238, 57782, 63671, 0, 0, 0, 0, 0, 57535, 64451, 56810, 0, 58018, 0, 61094, 0, 0, 0, 0, 0, 63208, 0, 0, 0, 0, 63221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56778, 0, 0, 53474, 0, 0, 0, 0, 56742, 0, 0, 56811, 0, 0, 58617, 0, 0, 58287, 53500, 0, 0, 0, 62716, 0, 0, 0, 0, 52412, 63466, 0, 0, 0, 0, 0, 0, 58852, 57329, 0, 0, 63457, 0, 63991, 61369, 0, 0, 63704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63913, 0, 0, 0, 0, 0, 63705, 0, 0, 0, 61117, 0, 0, 0, 55494, 0, 0, 58595, 62926, 0, 0, 0, 0, 56793, 0, 0, 0, 0, 55783, 53945, 54723, 0, 0, 56037, 56016, 0, 53721, 52952, 0, 52190, 62636, 56059, 0, 63209, 59635, 53164, 61680, 0, 62717, 56264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52928, 58324, 53711, 61941, 0, 52722, 0, 53227, 0, 0, 0, 52664, 0, 0, 0, 0, 0, 0, 58278, 53722, 0, 62117, 0, 0, 0, 0, 0, 62118, 0, 58574, 0, 0, 0, 0, 0, 0, 0, 54267, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61865, 0, 0, 0, 62153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61400, 59081, 0, 55480, 64243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62389, 0, 0, 63652, 0, 0, 53747, 59080, 0, 0, 0, 0, 63706, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56553, 57047, 0, 0, 0, 0, 0, 52191, 0, 0, 0, 53228, 0, 0, 0, 0, 62687, 0, 0, 53748, 53946, 0, 0, 0, 57330, 0, 0, 0, 57783, 0, 0, 0, 0, 58019, 54268, 0, 0, 60902, 0, 0, 0, 0, 0, 56265, 0, 0, 0, 58618, 0, 53214, 0, 0, 52944, 0, 0, 0, 0, 54739, 62453, 63406, 0, 0, 61384, 0, 52723, 62927, 58867, 61634, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51921, 0, 0, 0, 60145, 0, 53414, 0, 0, 0, 0, 0, 0, 0, 0, 55770, 61611, 0, 0, 0, 0, 0, 60391, 0, 0, 0, 58816, 64693, 0, 0, 0, 0, 0, 58564, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52393, 64966, 0, 0, 0, 0, 0, 60085, 0, 58794, 57274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57823, 0, 56017, 0, 0, 0, 0, 57784, 0, 59636, 54269, 0, 0, 0, 0, 58020, 0, 0, 0, 0, 0, 62154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56038, 63411, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64973, 0, 0, 0, 62390, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61143, 0, 0, 0, 0, 0, 0, 0, 62916, 0, 0, 0, 0, 0, 0, 0, 0, 55460, 0, 0, 0, 0, 0, 62119, 0, 0, 0, 0, 0, 0, 0, 0, 55736, 55737, 61385, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54990, 0, 0, 0, 0, 0, 0, 0, 0, 63435, 57262, 59637, 0, 0, 0, 0, 0, 0, 53941, 0, 0, 0, 54229, 0, 0, 0, 0, 0, 62668, 56060, 0, 0, 0, 0, 0, 55784, 0, 63467, 62921, 0, 62396, 0, 56018, 0, 0, 0, 0, 0, 0, 0, 0, 54197, 0, 0, 0, 0, 0, 59574, 0, 0, 54991, 62650, 0, 63433, 0, 0, 52394, 0, 0, 61635, 52438, 0, 0, 0, 53459, 0, 54205, 0, 0, 0, 56315, 0, 52192, 0, 0, 0, 0, 0, 0, 54244, 63223, 0, 0, 54714, 62413, 52193, 0, 0, 0, 0, 60404, 0, 0, 0, 0, 0, 62637, 0, 64682, 0, 0, 0, 0, 0, 63468, 0, 0, 0, 59638, 0, 56039, 0, 0, 0, 63436, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58817, 0, 0, 0, 0, 57582, 0, 0, 0, 0, 0, 54781, 0, 0, 0, 0, 0, 0, 52966, 64683, 54715, 0, 0, 62120, 0, 0, 0, 0, 0, 0, 58021, 52665, 60146, 52167, 0, 52724, 0, 0, 56239, 61401, 0, 0, 0, 0, 0, 52666, 0, 0, 64761, 0, 0, 0, 0, 57331, 52967, 56002, 0, 53165, 0, 0, 0, 0, 59385, 63656, 0, 0, 0, 0, 0, 0, 62434, 0, 0, 0, 51954, 57252, 0, 0, 54468, 0, 0, 0, 0, 0, 52439, 58818, 0, 0, 0, 0, 52667, 0, 61402, 61144, 0, 56743, 58022, 0, 0, 0, 0, 0, 57536, 0, 0, 0, 54960, 63690, 0, 64762, 0, 55806, 0, 0, 0, 0, 57008, 0, 0, 0, 56812, 56040, 0, 0, 0, 0, 0, 54496, 0, 55033, 0, 52695, 57048, 0, 0, 62200, 0, 58582, 0, 0, 53445, 62638, 0, 56744, 0, 0, 0, 60869, 62422, 0, 0, 57049, 58342, 0, 0, 0, 0, 0, 0, 54184, 0, 56240, 0, 0, 58842, 58303, 0, 0, 0, 56241, 0, 0, 0, 54761, 0, 0, 0, 0, 0, 57537, 61403, 0, 0, 61673, 0, 0, 55218, 0, 0, 0, 0, 53501, 0, 0, 0, 0, 0, 0, 0, 0, 55785, 0, 0, 53502, 0, 60653, 54185, 0, 62121, 61636, 0, 0, 58082, 59887, 0, 0, 0, 63953, 0, 0, 59865, 0, 0, 0, 0, 0, 59610, 56003, 56004, 54469, 0, 59386, 0, 0, 0, 0, 0, 0, 52704, 58288, 0, 56242, 64452, 0, 62435, 0, 55717, 64487, 56779, 53460, 0, 59062, 57518, 64986, 0, 0, 0, 0, 0, 0, 0, 0, 56501, 57592, 59313, 0, 0, 0, 0, 62960, 0, 55516, 60870, 0, 0, 0, 0, 57785, 0, 58304, 63936, 59888, 0, 0, 55771, 0, 62436, 0, 0, 0, 56502, 58601, 0, 0, 0, 0, 0, 61637, 58305, 64716, 64717, 0, 0, 0, 0, 62155, 0, 62156, 0, 0, 0, 58575, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61915, 0, 64217, 0, 61880, 65013, 57593, 0, 0, 0, 0, 59387, 64695, 64740, 64453, 58343, 55481, 0, 63224, 0, 0, 56517, 52440, 0, 0, 0, 57519, 62695, 0, 61404, 53244, 61405, 0, 62122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64958, 0, 0, 51884, 64955, 64967, 0, 0, 0, 0, 59314, 0, 60113, 57332, 0, 0, 0, 0, 53740, 58590, 58819, 0, 0, 0, 0, 55718, 0, 0, 52668, 0, 62437, 0, 0, 0, 0, 0, 0, 0, 0, 60885, 0, 0, 55738, 0, 0, 0, 60903, 64437, 63724, 0, 0, 0, 0, 57575, 0, 52441, 0, 0, 54470, 0, 0, 0, 0, 0, 59301, 0, 54773, 54206, 0, 64763, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58610, 0, 0, 57333, 0, 0, 59640, 63725, 0, 0, 52935, 0, 0, 0, 0, 0, 65014, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59608, 0, 52696, 59350, 52442, 0, 0, 51939, 57334, 61639, 61638, 0, 55482, 0, 61940, 62704, 62924, 0, 0, 64741, 0, 0, 0, 0, 60101, 60147, 0, 56795, 0, 56535, 0, 0, 0, 0, 0, 0, 57085, 62201, 0, 54727, 0, 0, 0, 55504, 0, 61640, 53665, 53666, 0, 0, 0, 0, 0, 0, 55764, 55016, 55754, 0, 55985, 55495, 56546, 62414, 62964, 0, 0, 61881, 0, 0, 56019, 0, 63210, 0, 0, 0, 53237, 0, 0, 64942, 0, 0, 0, 0, 0, 0, 0, 0, 51922, 0, 0, 57268, 0, 0, 0, 0, 55261, 64186, 61095, 62909, 0, 63733, 0, 0, 60904, 0, 0, 0, 0, 0, 54497, 0, 53667, 57814, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63992, 0, 56266, 52217, 54484, 0, 55772, 0, 61118, 0, 63469, 0, 0, 0, 53998, 0, 0, 57830, 63481, 0, 0, 0, 0, 0, 0, 0, 56813, 0, 59611, 0, 56243, 0, 0, 0, 53751, 57520, 0, 0, 54498, 0, 63191, 0, 55289, 0, 0, 55517, 0, 52733, 62123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52669, 63682, 0, 0, 62124, 0, 0, 51885, 51886, 53166, 0, 0, 0, 0, 0, 58306, 0, 0, 0, 0, 0, 56503, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56282, 55739, 51955, 63187, 59128, 60149, 0, 0, 0, 0, 0, 60150, 0, 0, 63225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53167, 0, 0, 51923, 0, 0, 51887, 53936, 61882, 0, 55219, 58307, 62461, 57050, 0, 0, 0, 0, 57051, 0, 0, 61406, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58083, 61179, 0, 0, 57335, 55242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52968, 56283, 0, 0, 0, 0, 0, 0, 0, 61883, 0, 0, 0, 0, 59889, 0, 0, 0, 0, 0, 0, 0, 0, 64183, 53446, 0, 0, 52395, 61096, 0, 0, 52218, 63993, 52477, 54270, 0, 0, 0, 0, 58576, 0, 0, 0, 0, 0, 62190, 0, 54485, 57293, 0, 64696, 53712, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62157, 0, 0, 0, 0, 0, 0, 0, 0, 63442, 0, 0, 0, 0, 0, 0, 0, 0, 51924, 0, 54745, 0, 0, 0, 55518, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52697, 0, 0, 0, 61097, 63164, 0, 0, 52443, 0, 0, 0, 0, 0, 61641, 0, 64764, 0, 59593, 62718, 0, 0, 0, 0, 59388, 55262, 0, 0, 0, 0, 57052, 0, 61612, 52478, 52705, 0, 57786, 0, 56303, 55986, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53669, 56504, 0, 0, 0, 55542, 0, 53668, 0, 52706, 0, 0, 0, 0, 56554, 0, 0, 61687, 0, 61642, 53438, 0, 56796, 0, 0, 0, 0, 54486, 54230, 0, 0, 0, 0, 0, 0, 60880, 52641, 0, 0, 0, 0, 0, 57269, 0, 0, 0, 57336, 0, 0, 0, 0, 0, 0, 54433, 52914, 0, 0, 0, 0, 0, 59594, 0, 0, 0, 0, 60405, 0, 0, 0, 0, 0, 0, 0, 58325, 62928, 0, 0, 0, 62881, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55719, 0, 0, 0, 0, 0, 0, 0, 0, 58795, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59083, 0, 62961, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58821, 0, 0, 0, 0, 0, 0, 0, 0, 63907, 57563, 63211, 0, 52209, 0, 55786, 62882, 0, 0, 0, 55249, 0, 53752, 60152, 60153, 55987, 0, 0, 0, 0, 61407, 0, 0, 61935, 0, 58870, 61119, 58084, 0, 0, 0, 0, 0, 53439, 0, 64172, 62929, 59315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59838, 0, 0, 0, 0, 0, 62158, 56244, 0, 0, 0, 0, 0, 0, 0, 0, 64718, 0, 56814, 0, 0, 0, 0, 0, 0, 59316, 0, 0, 0, 0, 0, 55220, 0, 0, 0, 0, 0, 0, 63412, 0, 0, 0, 0, 0, 52670, 0, 56041, 0, 0, 0, 0, 0, 0, 0, 53168, 63449, 62438, 0, 0, 52953, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52906, 0, 52168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53415, 0, 61643, 0, 53447, 0, 0, 58565, 0, 0, 0, 0, 0, 0, 0, 56288, 0, 0, 0, 0, 0, 0, 54746, 0, 55207, 0, 0, 0, 61120, 0, 63734, 0, 0, 0, 0, 62930, 60905, 0, 55740, 0, 58822, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62883, 0, 0, 56020, 58023, 64508, 0, 0, 61916, 0, 0, 0, 0, 0, 0, 51956, 0, 0, 0, 59642, 0, 0, 52969, 0, 0, 0, 0, 0, 0, 59896, 58085, 0, 0, 0, 0, 53433, 54514, 0, 0, 0, 0, 0, 53670, 0, 57294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64756, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54186, 0, 0, 0, 52396, 0, 0, 0, 0, 61408, 0, 0, 0, 58853, 53461, 0, 0, 0, 0, 0, 0, 0, 0, 56316, 0, 0, 0, 0, 64742, 0, 0, 0, 0, 0, 52222, 60906, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57009, 0, 0, 0, 0, 0, 0, 0, 63971, 0, 0, 0, 0, 0, 0, 54434, 53238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54992, 0, 0, 0, 0, 0, 0, 54762, 61934, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64203, 0, 0, 0, 0, 58785, 0, 0, 0, 0, 0, 0, 0, 0, 54705, 0, 0, 0, 0, 0, 53229, 0, 60907, 0, 0, 0, 0, 0, 54706, 0, 0, 0, 54716, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64994, 62381, 0, 64987, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59824, 0, 0, 0, 0, 0, 0, 0, 53671, 0, 0, 64995, 52915, 0, 0, 0, 0, 0, 0, 0, 64996, 64206, 0, 0, 0, 0, 51888, 0, 63399, 0, 53169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59042, 0, 64694, 62125, 61409, 62382, 56518, 55787, 0, 0, 0, 59616, 0, 0, 0, 0, 0, 0, 0, 57768, 0, 0, 0, 0, 54774, 53245, 0, 0, 57053, 0, 0, 0, 55761, 0, 0, 0, 58602, 62159, 0, 63423, 0, 0, 58086, 58024, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58326, 0, 60881, 0, 0, 0, 0, 0, 59897, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54961, 57010, 0, 0, 57576, 0, 0, 54187, 0, 60380, 0, 0, 57263, 0, 51907, 0, 0, 61180, 0, 64963, 0, 0, 0, 60406, 53170, 0, 0, 0, 0, 55788, 0, 55741, 0, 55519, 0, 0, 54456, 60350, 56815, 0, 56816, 56817, 56818, 0, 0, 55742, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64454, 53171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61181, 0, 0, 0, 0, 0, 0, 58539, 0, 56005, 0, 55532, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53672, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58025, 0, 0, 57020, 59317, 0, 0, 0, 0, 0, 56304, 0, 61410, 61936, 53172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56305, 0, 57521, 0, 0, 0, 0, 57253, 0, 63954, 0, 0, 59389, 0, 0, 59043, 64497, 52144, 62126, 0, 0, 0, 0, 0, 0, 0, 52711, 0, 59612, 0, 0, 59351, 0, 0, 63424, 0, 53475, 0, 0, 0, 55969, 0, 0, 0, 52413, 0, 0, 53673, 56780, 0, 0, 58366, 53674, 59562, 0, 60086, 63994, 59084, 63192, 0, 0, 0, 54471, 0, 0, 0, 55755, 0, 55762, 54219, 55543, 55977, 62968, 0, 0, 57054, 62127, 63657, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55496, 0, 0, 61121, 0, 0, 0, 0, 63937, 0, 0, 0, 0, 56819, 60154, 0, 63165, 57787, 52671, 62676, 59085, 0, 64719, 64418, 0, 57564, 0, 0, 0, 0, 62651, 56021, 0, 63922, 0, 0, 0, 0, 0, 0, 64498, 0, 56310, 0, 57055, 0, 0, 0, 56306, 0, 0, 0, 0, 0, 63708, 63470, 60392, 0, 54010, 0, 0, 61884, 0, 0, 64218, 0, 0, 56042, 56006, 63425, 0, 0, 59318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58823, 54956, 0, 0, 0, 0, 56519, 0, 0, 0, 0, 0, 57769, 0, 58026, 0, 54694, 0, 0, 54487, 0, 0, 0, 0, 0, 0, 62160, 0, 60155, 0, 57565, 64499, 0, 0, 0, 0, 0, 0, 0, 61885, 0, 0, 58087, 64983, 0, 52936, 60087, 0, 64704, 0, 64999, 63471, 0, 0, 55221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61370, 61917, 0, 57011, 0, 0, 0, 0, 0, 0, 59595, 0, 0, 63709, 0, 0, 64455, 54728, 0, 55263, 0, 56745, 0, 0, 0, 0, 0, 59825, 0, 0, 64173, 63193, 64244, 0, 0, 0, 0, 0, 63658, 0, 0, 0, 0, 0, 59118, 0, 52444, 57788, 57583, 0, 0, 59839, 64765, 59086, 0, 0, 57815, 0, 59087, 0, 62705, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58611, 0, 0, 58619, 0, 0, 63972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61411, 0, 0, 53230, 63166, 57522, 64766, 53675, 0, 0, 0, 55290, 0, 0, 0, 64456, 0, 58071, 0, 0, 0, 0, 0, 0, 54435, 61688, 55208, 0, 0, 0, 57831, 0, 0, 54207, 0, 0, 0, 0, 0, 0, 61412, 0, 55237, 60386, 0, 0, 64743, 0, 0, 58530, 0, 58088, 0, 59088, 0, 64488, 62696, 58868, 62652, 62677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57270, 0, 64697, 61122, 51957, 0, 0, 0, 61413, 52194, 54436, 0, 57056, 56061, 58566, 59582, 0, 0, 0, 0, 57566, 63156, 60114, 0, 63995, 0, 0, 57538, 0, 51940, 0, 59319, 0, 60157, 0, 55773, 0, 55988, 61098, 64489, 0, 0, 0, 0, 56267, 55989, 0, 0, 0, 0, 0, 61886, 0, 0, 54188, 0, 0, 0, 0, 0, 0, 0, 0, 64457, 0, 57295, 0, 0, 54208, 58327, 0, 61414, 64720, 0, 0, 0, 0, 0, 0, 0, 59840, 0, 0, 0, 62931, 0, 0, 60636, 63415, 0, 0, 60088, 53753, 0, 0, 0, 0, 0, 0, 56520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60089, 0, 0, 0, 0, 0, 61918, 0, 0, 0, 0, 0, 55222, 53173, 0, 55720, 0, 0, 60654, 0, 0, 56746, 0, 0, 0, 0, 52642, 59566, 0, 0, 0, 57789, 0, 62161, 0, 0, 0, 0, 59841, 0, 0, 0, 54012, 0, 0, 0, 0, 0, 0, 0, 56245, 0, 62439, 55550, 0, 0, 0, 64721, 0, 60850, 62639, 0, 64419, 0, 0, 64705, 0, 61099, 54437, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62706, 0, 0, 0, 0, 61145, 0, 0, 0, 64458, 0, 0, 0, 0, 0, 52707, 55483, 0, 58843, 63735, 0, 0, 0, 63188, 0, 0, 0, 0, 0, 0, 0, 0, 55209, 0, 52169, 0, 0, 59089, 61644, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55470, 0, 63955, 54782, 0, 0, 0, 0, 0, 0, 0, 55484, 62128, 0, 0, 0, 0, 58027, 62440, 0, 0, 0, 0, 0, 61378, 0, 0, 0, 0, 0, 0, 60908, 0, 59320, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56062, 0, 0, 52414, 0, 0, 62204, 56043, 0, 58072, 60886, 0, 0, 54993, 57523, 0, 0, 64722, 0, 60360, 0, 0, 0, 0, 0, 0, 0, 0, 54209, 61645, 0, 53239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60882, 0, 54488, 56521, 55281, 0, 0, 57275, 0, 0, 62373, 0, 0, 0, 62669, 0, 0, 0, 0, 61887, 63665, 0, 59898, 0, 0, 0, 64459, 0, 0, 51925, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63956, 63434, 0, 0, 54984, 0, 0, 0, 0, 0, 0, 64744, 62397, 0, 61182, 0, 59390, 0, 0, 0, 0, 0, 54210, 0, 0, 0, 0, 54198, 0, 52397, 63226, 54962, 53976, 0, 0, 0, 0, 0, 0, 59352, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58277, 0, 0, 0, 0, 59321, 0, 0, 0, 0, 61613, 64460, 60321, 0, 0, 54438, 0, 0, 0, 0, 64461, 0, 54717, 61919, 0, 0, 63227, 0, 57012, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54763, 0, 0, 58824, 0, 0, 0, 64420, 54457, 0, 0, 57057, 0, 58531, 0, 0, 0, 55223, 0, 63726, 0, 0, 0, 57013, 0, 0, 54994, 0, 63957, 59322, 60373, 54775, 61415, 57790, 0, 0, 0, 64174, 0, 0, 0, 55017, 55022, 0, 0, 0, 0, 0, 0, 59323, 0, 0, 0, 0, 0, 0, 0, 60619, 0, 0, 0, 0, 0, 0, 54707, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52916, 0, 0, 0, 64421, 57838, 0, 0, 0, 0, 0, 0, 63400, 0, 0, 0, 0, 64462, 0, 0, 0, 0, 0, 55485, 0, 0, 0, 0, 0, 0, 0, 64509, 0, 0, 0, 0, 64745, 0, 0, 0, 0, 0, 0, 0, 53174, 0, 0, 0, 60871, 61100, 0, 0, 0, 0, 0, 0, 0, 52445, 0, 0, 0, 0, 63143, 0, 0, 0, 59130, 0, 0, 0, 62884, 0, 0, 0, 0, 0, 64988, 60851, 52937, 0, 0, 0, 0, 0, 0, 61416, 0, 0, 57791, 0, 0, 0, 0, 0, 0, 64219, 52195, 63401, 0, 64422, 0, 0, 0, 56505, 0, 0, 0, 61888, 60872, 61379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54957, 0, 0, 64974, 0, 0, 0, 59553, 0, 0, 0, 0, 0, 0, 0, 0, 64500, 54695, 0, 0, 0, 61942, 0, 59091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52446, 0, 0, 0, 0, 0, 0, 0, 63666, 0, 0, 0, 56555, 0, 0, 0, 0, 0, 0, 64950, 0, 0, 0, 0, 58858, 0, 0, 61920, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56268, 56781, 0, 0, 0, 54472, 0, 0, 55789, 0, 0, 0, 0, 62885, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59131, 0, 0, 0, 0, 0, 59092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64968, 0, 54945, 64959, 0, 64723, 0, 61345, 0, 59324, 0, 0, 0, 0, 0, 53742, 0, 0, 59093, 0, 0, 59890, 0, 57264, 0, 0, 0, 0, 0, 55520, 64698, 64943, 61646, 0, 56289, 0, 0, 58825, 0, 60852, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57539, 0, 0, 0, 0, 0, 0, 58328, 0, 0, 0, 0, 59899, 60072, 0, 0, 0, 0, 64951, 0, 0, 64423, 0, 59842, 0, 0, 0, 0, 65015, 0, 0, 0, 0, 0, 58073, 0, 0, 56556, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59554, 0, 0, 0, 0, 59120, 0, 0, 0, 0, 0, 0, 0, 65016, 65017, 0, 0, 0, 63167, 0, 0, 59303, 0, 59095, 0, 0, 0, 0, 54515, 54473, 0, 0, 0, 0, 55034, 0, 55282, 0, 57792, 0, 56290, 59096, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59325, 0, 0, 0, 0, 0, 61647, 62398, 58028, 0, 0, 0, 0, 0, 62903, 57584, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64952, 58344, 0, 54439, 59644, 64210, 0, 0, 0, 0, 0, 63727, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54995, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54708, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61648, 0, 63472, 61107, 0, 0, 60090, 0, 60115, 0, 0, 60873, 56747, 0, 0, 0, 58796, 64929, 0, 57296, 60595, 0, 57297, 0, 0, 0, 0, 0, 60909, 63672, 63482, 0, 0, 0, 63659, 0, 0, 0, 0, 0, 62688, 0, 0, 0, 0, 0, 54458, 58547, 0, 59866, 0, 57014, 0, 55743, 0, 55744, 55023, 0, 0, 0, 0, 55756, 0, 55978, 0, 0, 0, 0, 0, 0, 0, 0, 57317, 0, 0, 0, 0, 0, 0, 63461, 0, 0, 0, 52402, 0, 0, 57337, 55264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54459, 0, 0, 0, 0, 65018, 0, 0, 0, 0, 52403, 0, 0, 56307, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57298, 0, 52938, 0, 61146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58596, 0, 64463, 0, 0, 0, 0, 0, 0, 53175, 0, 61123, 0, 0, 0, 0, 0, 0, 0, 52970, 0, 0, 0, 0, 0, 0, 0, 58029, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55265, 64245, 0, 0, 54729, 63660, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59353, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62441, 0, 0, 0, 0, 55533, 58308, 61681, 0, 0, 0, 0, 0, 0, 0, 59621, 0, 0, 0, 57594, 61124, 55774, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60322, 60323, 0, 0, 0, 0, 0, 0, 64706, 60091, 0, 0, 0, 0, 59563, 57058, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60911, 0, 59555, 0, 0, 0, 0, 53233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54460, 0, 64746, 0, 0, 0, 0, 0, 59326, 0, 64754, 0, 0, 54964, 0, 0, 58030, 0, 54199, 64204, 0, 0, 0, 0, 0, 0, 0, 0, 64220, 0, 60853, 57827, 0, 59564, 0, 59613, 0, 0, 61417, 0, 0, 0, 0, 0, 62653, 0, 53176, 59867, 53676, 0, 0, 0, 0, 0, 0, 56007, 0, 0, 0, 0, 0, 0, 0, 60361, 0, 59596, 0, 0, 0, 57015, 0, 0, 0, 0, 54972, 54245, 0, 0, 0, 0, 0, 64221, 0, 0, 0, 0, 0, 0, 56022, 0, 51889, 0, 0, 0, 0, 0, 0, 56008, 57254, 0, 63923, 62162, 0, 51908, 0, 0, 0, 0, 0, 0, 52939, 0, 0, 52725, 0, 0, 0, 64944, 54696, 0, 61889, 0, 0, 58089, 56522, 60596, 64192, 0, 0, 64424, 53416, 0, 0, 56044, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55790, 0, 57595, 0, 0, 0, 61418, 64222, 0, 0, 57540, 0, 53177, 0, 54730, 55266, 58031, 0, 55224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59597, 0, 0, 0, 0, 0, 0, 0, 63194, 0, 0, 0, 0, 61346, 58074, 63228, 0, 0, 64464, 53677, 0, 52708, 0, 53678, 56557, 59598, 0, 61689, 52917, 59132, 0, 0, 55291, 53462, 56821, 63473, 0, 63229, 0, 56311, 0, 0, 0, 0, 64490, 59868, 55745, 0, 62962, 57541, 0, 0, 0, 0, 0, 0, 60116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63938, 0, 60092, 0, 53957, 64465, 59328, 60325, 0, 57338, 58274, 55225, 0, 59843, 0, 59645, 59567, 0, 0, 62163, 64425, 55461, 0, 0, 0, 0, 54731, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53448, 0, 0, 0, 53679, 55267, 0, 0, 0, 57542, 0, 54946, 0, 60912, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55283, 0, 0, 0, 64724, 0, 56023, 52447, 0, 62164, 0, 53680, 0, 52448, 0, 56317, 62399, 0, 61649, 0, 0, 0, 0, 0, 64699, 0, 58032, 0, 0, 59045, 0, 0, 0, 58075, 0, 0, 0, 57310, 0, 57543, 0, 0, 0, 0, 0, 0, 62191, 0, 0, 0, 52449, 0, 0, 0, 0, 55018, 0, 0, 0, 0, 59330, 0, 0, 0, 52918, 0, 62400, 0, 52734, 0, 0, 0, 64466, 0, 63736, 63483, 0, 0, 59583, 0, 0, 0, 0, 0, 0, 0, 59575, 0, 0, 0, 0, 0, 0, 0, 0, 60854, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56506, 0, 0, 52404, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61943, 0, 0, 0, 59576, 0, 0, 51958, 0, 58532, 62678, 0, 0, 0, 57318, 0, 0, 0, 57255, 0, 57319, 57793, 0, 59844, 0, 0, 56523, 59845, 0, 0, 0, 61347, 60326, 52131, 58345, 0, 0, 0, 53755, 61348, 0, 61419, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53428, 0, 0, 0, 0, 52643, 0, 0, 59622, 0, 61349, 0, 54220, 56045, 0, 0, 0, 0, 55226, 0, 62165, 62949, 55791, 0, 0, 0, 0, 63924, 0, 0, 54740, 64975, 0, 0, 0, 56291, 0, 0, 0, 0, 61921, 60598, 0, 0, 0, 0, 64510, 54231, 0, 53681, 0, 52145, 0, 0, 0, 0, 53682, 0, 0, 0, 0, 0, 0, 52146, 61890, 0, 0, 62689, 63925, 0, 0, 57795, 57794, 0, 60407, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57256, 0, 0, 0, 0, 0, 0, 0, 52170, 0, 0, 0, 0, 0, 59065, 0, 0, 0, 0, 0, 63710, 63914, 51959, 0, 60855, 0, 0, 54200, 62166, 0, 0, 54489, 61125, 62192, 0, 0, 0, 51890, 0, 0, 56507, 0, 61944, 0, 0, 0, 0, 0, 60599, 0, 0, 0, 0, 58826, 0, 63168, 64989, 0, 0, 54499, 52450, 0, 63444, 0, 0, 0, 0, 0, 0, 55269, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54211, 0, 55462, 0, 63169, 0, 0, 0, 0, 0, 56822, 0, 52672, 0, 0, 0, 58844, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58827, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57796, 0, 0, 0, 0, 0, 59568, 62640, 62442, 56046, 0, 55227, 0, 58033, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55210, 0, 0, 0, 0, 0, 0, 55035, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58591, 0, 51926, 0, 0, 0, 60328, 0, 0, 0, 56318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63170, 0, 0, 61371, 0, 0, 0, 0, 54525, 0, 0, 57544, 0, 0, 0, 59577, 0, 61350, 0, 0, 0, 0, 0, 52644, 0, 0, 54516, 56225, 56284, 56285, 0, 0, 0, 0, 0, 61148, 0, 52171, 64725, 0, 0, 0, 0, 0, 0, 52971, 0, 52673, 0, 0, 64467, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63915, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62932, 0, 0, 0, 0, 55721, 0, 0, 59869, 56269, 0, 0, 56782, 0, 59331, 0, 60620, 0, 0, 0, 0, 0, 0, 0, 63980, 0, 0, 0, 52172, 0, 0, 0, 0, 57596, 54440, 0, 60883, 55535, 0, 62167, 0, 51960, 56047, 0, 0, 54996, 0, 0, 0, 0, 0, 0, 55757, 0, 0, 0, 55534, 0, 62145, 0, 0, 0, 57299, 0, 0, 0, 56048, 0, 58090, 0, 0, 57597, 0, 0, 55544, 0, 0, 0, 63407, 55990, 0, 51927, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62168, 0, 55545, 0, 0, 0, 0, 0, 0, 0, 0, 64223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53231, 55746, 0, 61650, 0, 58577, 0, 0, 0, 62391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61420, 0, 0, 0, 0, 0, 58034, 0, 54461, 0, 0, 55758, 0, 0, 0, 0, 62690, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54441, 0, 0, 0, 0, 52674, 59354, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62169, 0, 0, 0, 0, 0, 55722, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55486, 0, 0, 0, 0, 0, 0, 56493, 0, 0, 0, 0, 0, 0, 58091, 55036, 0, 0, 51961, 0, 0, 54490, 0, 0, 0, 0, 0, 0, 0, 62679, 52385, 0, 0, 53178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62904, 0, 0, 0, 55747, 53480, 0, 0, 0, 0, 0, 58309, 60408, 0, 62129, 0, 0, 0, 53179, 0, 0, 0, 54189, 59617, 52972, 0, 0, 0, 57524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57059, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56823, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62130, 62454, 63195, 0, 0, 0, 0, 55294, 0, 0, 0, 0, 0, 63711, 0, 63474, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59098, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62886, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55228, 52451, 0, 0, 59099, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56797, 0, 0, 0, 0, 53683, 0, 0, 0, 0, 0, 61421, 0, 0, 0, 0, 55006, 58612, 57839, 0, 0, 56824, 0, 0, 0, 0, 0, 59599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51941, 0, 0, 0, 56481, 0, 57525, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64684, 64685, 55463, 0, 0, 0, 0, 60856, 0, 0, 0, 56246, 0, 0, 0, 0, 55024, 62383, 0, 0, 52645, 0, 56049, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55464, 0, 0, 0, 52452, 0, 0, 53684, 0, 0, 0, 0, 0, 51928, 0, 0, 0, 0, 0, 56050, 0, 0, 0, 0, 0, 62887, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62888, 0, 0, 0, 0, 0, 0, 0, 59046, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54764, 54776, 56051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58310, 0, 0, 0, 57060, 0, 57061, 53685, 0, 0, 0, 0, 0, 53686, 53687, 62131, 0, 0, 0, 0, 0, 0, 59870, 0, 0, 0, 0, 0, 61651, 62132, 0, 0, 61652, 52196, 64468, 62950, 58346, 0, 57062, 0, 0, 0, 0, 57300, 0, 0, 63737, 0, 0, 0, 0, 61614, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53688, 0, 0, 0, 0, 55007, 0, 53463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64673, 61422, 56536, 0, 59871, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58845, 65019, 0, 0, 57545, 0, 0, 0, 54985, 0, 0, 54442, 0, 58828, 0, 0, 0, 0, 0, 59872, 0, 0, 0, 53464, 64674, 54462, 58035, 57063, 0, 0, 0, 0, 0, 0, 0, 56508, 53942, 62933, 0, 0, 0, 0, 0, 52897, 62889, 0, 0, 56825, 0, 0, 56826, 0, 0, 0, 0, 0, 0, 61653, 0, 0, 0, 0, 63199, 0, 62170, 58603, 0, 62193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60601, 0, 0, 0, 0, 65020, 0, 0, 0, 0, 57770, 0, 0, 51929, 0, 0, 61423, 0, 62890, 0, 0, 0, 0, 0, 0, 60665, 0, 0, 63661, 0, 62146, 63171, 0, 55250, 0, 0, 63906, 61654, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61690, 0, 0, 63200, 0, 0, 0, 0, 59891, 62147, 0, 0, 0, 54443, 51891, 52646, 0, 52675, 52698, 0, 0, 0, 0, 0, 55759, 0, 0, 63172, 0, 0, 0, 61149, 59332, 0, 0, 0, 0, 0, 0, 0, 0, 58036, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57314, 59355, 0, 0, 0, 0, 0, 0, 59569, 0, 64686, 0, 0, 0, 0, 58829, 0, 0, 0, 64235, 0, 53180, 0, 0, 53218, 52726, 0, 0, 61424, 0, 62654, 0, 54477, 0, 0, 62392, 0, 0, 0, 59809, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62194, 62443, 0, 61655, 0, 0, 53207, 0, 0, 0, 0, 0, 0, 53215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59584, 59585, 0, 0, 0, 53219, 59810, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53418, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62401, 53419, 0, 54500, 0, 0, 61372, 55457, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55775, 0, 62423, 0, 0, 0, 56509, 0, 52453, 60913, 0, 0, 61922, 0, 54491, 0, 0, 0, 0, 58037, 0, 0, 51942, 0, 54190, 0, 0, 0, 0, 0, 0, 52454, 0, 0, 61907, 62951, 0, 0, 0, 0, 51930, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64494, 0, 57797, 0, 0, 0, 0, 0, 0, 0, 57321, 0, 61150, 0, 0, 63426, 0, 55458, 0, 0, 0, 0, 0, 56748, 0, 0, 0, 0, 0, 61615, 54973, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57771, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63926, 0, 0, 54517, 0, 53449, 61351, 58092, 0, 56298, 52940, 62952, 63445, 0, 54221, 0, 62462, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53429, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57598, 0, 57339, 0, 0, 0, 0, 0, 0, 59101, 0, 0, 0, 0, 0, 0, 0, 59556, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52173, 0, 0, 0, 61352, 0, 0, 0, 61108, 0, 0, 0, 0, 56024, 53689, 0, 57257, 0, 0, 62384, 0, 0, 52420, 0, 0, 0, 52919, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61353, 0, 0, 0, 57301, 0, 0, 60887, 0, 0, 0, 61126, 0, 0, 0, 0, 0, 0, 0, 61373, 64726, 0, 0, 56308, 0, 61354, 63673, 0, 62953, 0, 0, 0, 0, 0, 0, 0, 0, 58329, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57798, 0, 0, 0, 54463, 0, 0, 0, 0, 57064, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61674, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62402, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54191, 0, 0, 51931, 0, 0, 0, 0, 0, 64727, 0, 0, 60888, 57799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62680, 54963, 56749, 0, 0, 0, 54718, 0, 0, 0, 0, 0, 0, 0, 0, 61891, 61151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55019, 0, 0, 0, 62681, 0, 0, 0, 0, 0, 0, 0, 55270, 0, 0, 0, 0, 0, 0, 55991, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56827, 0, 0, 0, 0, 0, 56783, 0, 0, 0, 0, 0, 0, 0, 0, 55459, 0, 0, 56025, 0, 61656, 61380, 0, 0, 0, 0, 0, 0, 57816, 0, 0, 0, 0, 0, 61908, 0, 60914, 0, 0, 0, 0, 0, 0, 54747, 0, 0, 54748, 62404, 52183, 0, 0, 0, 0, 0, 58038, 0, 0, 0, 0, 61425, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64469, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54232, 0, 0, 0, 0, 0, 0, 0, 56784, 61657, 52147, 0, 0, 0, 0, 0, 0, 54749, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52647, 0, 0, 53420, 0, 53690, 0, 61892, 0, 58803, 64501, 59873, 64992, 64700, 0, 55970, 55971, 0, 53921, 0, 0, 53999, 0, 0, 0, 58093, 0, 0, 57065, 52956, 62133, 53476, 56785, 0, 0, 0, 0, 57800, 56247, 57315, 0, 0, 0, 0, 0, 0, 0, 0, 60857, 61893, 0, 62415, 55211, 57772, 0, 0, 58347, 0, 61127, 0, 0, 0, 57801, 51962, 0, 0, 0, 0, 0, 0, 0, 61691, 64225, 61658, 52455, 56052, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52415, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52973, 0, 0, 54697, 64226, 0, 0, 0, 53477, 0, 60374, 0, 60639, 0, 0, 0, 57340, 0, 0, 63446, 57066, 52148, 0, 0, 61374, 0, 0, 52405, 0, 0, 0, 0, 0, 53181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61426, 58039, 0, 0, 0, 52456, 0, 0, 0, 0, 0, 0, 0, 0, 61692, 0, 0, 0, 55008, 0, 61894, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58040, 60331, 0, 0, 0, 52149, 55505, 0, 62670, 62455, 0, 0, 55238, 0, 53691, 63402, 0, 60874, 55251, 55546, 0, 0, 0, 0, 0, 0, 0, 63173, 0, 0, 53708, 56828, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57341, 0, 63973, 0, 57546, 0, 0, 62205, 54192, 0, 62707, 56009, 0, 59102, 0, 0, 0, 0, 63674, 59600, 0, 0, 55547, 0, 0, 60117, 0, 0, 0, 0, 54947, 0, 0, 0, 0, 0, 0, 63174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62171, 58620, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59570, 0, 0, 0, 0, 0, 56026, 0, 62172, 64470, 59826, 0, 61101, 0, 64227, 0, 0, 0, 0, 0, 0, 0, 56558, 0, 0, 62954, 59104, 0, 61693, 0, 0, 0, 0, 0, 55212, 0, 0, 0, 0, 0, 62917, 61152, 0, 0, 56293, 0, 56798, 0, 0, 55792, 59811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61945, 0, 62148, 57547, 0, 0, 0, 0, 0, 0, 0, 0, 59812, 0, 0, 58041, 0, 0, 0, 0, 0, 0, 0, 58289, 64747, 52648, 0, 52406, 0, 0, 61659, 0, 0, 0, 0, 0, 0, 0, 0, 59066, 0, 0, 52649, 0, 0, 0, 0, 0, 62403, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57817, 0, 0, 61355, 0, 0, 0, 59333, 0, 0, 57577, 0, 62405, 0, 0, 54464, 54719, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56750, 0, 63996, 0, 52416, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58786, 0, 0, 0, 52920, 0, 0, 0, 55506, 63958, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61866, 52945, 0, 0, 63175, 0, 56299, 0, 57342, 0, 0, 55521, 0, 63475, 0, 55271, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54526, 0, 0, 53692, 0, 58831, 0, 52150, 0, 55992, 0, 0, 0, 0, 0, 52676, 0, 0, 0, 0, 0, 54974, 0, 0, 0, 58042, 0, 0, 0, 0, 0, 53208, 0, 0, 0, 57548, 60409, 0, 0, 0, 0, 0, 0, 0, 0, 65021, 0, 0, 0, 0, 0, 55272, 52184, 0, 0, 0, 59874, 0, 0, 0, 59578, 0, 0, 0, 58311, 0, 0, 0, 0, 60621, 0, 60622, 0, 54975, 0, 0, 0, 58279, 0, 57302, 65000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61153, 63144, 56829, 0, 0, 0, 0, 0, 0, 0, 63675, 0, 59601, 0, 0, 0, 0, 63959, 0, 0, 0, 0, 0, 0, 0, 0, 52974, 0, 0, 60623, 0, 0, 0, 59813, 54997, 0, 52677, 0, 60858, 53693, 0, 0, 53182, 0, 0, 60603, 0, 0, 0, 53937, 0, 0, 0, 0, 52457, 0, 55748, 59900, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53694, 0, 0, 0, 0, 0, 60604, 0, 0, 58797, 0, 0, 0, 0, 0, 0, 63408, 0, 52458, 0, 0, 0, 54212, 0, 0, 54976, 0, 0, 0, 55037, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57761, 0, 57021, 0, 63145, 0, 0, 0, 55972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54948, 62918, 0, 57762, 59846, 0, 0, 0, 62149, 0, 0, 0, 0, 0, 62697, 55020, 60371, 0, 0, 0, 0, 60605, 58076, 57067, 61660, 0, 60351, 0, 55246, 53695, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62891, 0, 0, 0, 0, 63997, 0, 51932, 0, 0, 0, 52678, 62134, 0, 0, 56830, 0, 0, 0, 52407, 56248, 0, 0, 0, 0, 53481, 0, 52957, 60352, 0, 64930, 0, 0, 0, 0, 0, 63691, 0, 0, 0, 0, 0, 0, 0, 0, 60118, 61872, 0, 0, 0, 0, 0, 0, 0, 56270, 0, 63427, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56271, 52132, 0, 0, 63712, 0, 0, 64471, 0, 0, 60362, 57505, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52941, 0, 0, 54492, 0, 0, 0, 64984, 0, 0, 0, 0, 54006, 0, 0, 0, 0, 62135, 0, 0, 64246, 63146, 64247, 55526, 0, 62641, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59602, 0, 51909, 52459, 0, 0, 0, 0, 0, 0, 0, 58094, 0, 0, 0, 0, 0, 58043, 0, 63405, 0, 0, 0, 63713, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62444, 0, 0, 0, 0, 56993, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58621, 0, 0, 58348, 0, 56751, 56752, 0, 0, 52151, 59603, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57763, 53984, 0, 0, 0, 0, 61694, 0, 0, 0, 0, 59814, 52210, 0, 0, 0, 0, 0, 0, 60915, 56537, 57549, 0, 0, 0, 0, 63450, 56249, 0, 0, 0, 0, 0, 0, 0, 52398, 0, 56027, 0, 0, 0, 0, 52679, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56753, 0, 55471, 58275, 0, 0, 52975, 0, 0, 62195, 0, 0, 0, 0, 63667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57550, 0, 62973, 0, 0, 0, 0, 60396, 0, 0, 54213, 64748, 53979, 54507, 0, 56994, 0, 0, 0, 58854, 0, 0, 0, 0, 0, 0, 61616, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54724, 0, 0, 0, 0, 0, 0, 60916, 0, 0, 0, 58349, 0, 59586, 0, 60917, 55292, 0, 60859, 0, 0, 63147, 0, 0, 0, 0, 0, 62136, 63176, 0, 0, 0, 0, 0, 54246, 62173, 53183, 0, 60332, 0, 0, 0, 0, 0, 0, 53184, 0, 59048, 65001, 0, 53185, 0, 57567, 57068, 0, 0, 0, 0, 57506, 0, 0, 0, 0, 0, 0, 0, 0, 62655, 58095, 0, 55793, 61895, 0, 52152, 0, 0, 0, 0, 0, 0, 0, 0, 63998, 56250, 56053, 0, 0, 0, 0, 0, 0, 0, 0, 63212, 56028, 64228, 0, 57551, 0, 0, 0, 0, 0, 0, 56754, 0, 0, 0, 0, 59049, 0, 61427, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62445, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60410, 0, 63974, 0, 0, 0, 0, 0, 0, 0, 51933, 54750, 0, 51934, 57316, 0, 0, 0, 59133, 0, 62892, 0, 0, 0, 0, 0, 58613, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59875, 0, 60875, 53220, 0, 0, 0, 55507, 0, 0, 0, 0, 0, 0, 56755, 54508, 0, 0, 62137, 0, 57271, 0, 0, 0, 0, 0, 52174, 64472, 0, 0, 53465, 0, 0, 56786, 63476, 59356, 58533, 0, 64675, 0, 56251, 0, 0, 0, 62138, 59901, 53450, 0, 62934, 55749, 58548, 0, 60839, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60093, 59134, 0, 63428, 62893, 0, 55776, 0, 0, 0, 51892, 0, 0, 63714, 53186, 0, 60606, 0, 0, 0, 58804, 52680, 61128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52681, 63927, 0, 0, 61928, 55794, 56309, 51893, 55750, 0, 0, 0, 55497, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55723, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60860, 0, 0, 55508, 0, 0, 0, 56538, 0, 58044, 0, 0, 64749, 60640, 54014, 0, 59847, 59050, 0, 0, 0, 0, 0, 0, 58096, 0, 0, 0, 0, 0, 0, 64187, 0, 62894, 64426, 0, 0, 0, 0, 60667, 0, 60607, 64728, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54501, 0, 0, 0, 63939, 0, 0, 0, 61154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55273, 60918, 0, 0, 0, 57069, 0, 0, 0, 0, 0, 0, 0, 52460, 0, 58350, 0, 0, 0, 0, 0, 59604, 0, 0, 0, 64248, 0, 0, 0, 0, 0, 0, 56756, 58549, 55472, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55509, 0, 0, 0, 62698, 0, 0, 0, 52921, 0, 0, 0, 55009, 53202, 0, 53430, 0, 0, 0, 0, 0, 0, 52898, 0, 0, 62446, 0, 0, 0, 0, 0, 62456, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56524, 0, 53451, 0, 0, 0, 64676, 52682, 55252, 56995, 0, 58592, 0, 0, 0, 0, 61129, 0, 0, 0, 58077, 0, 0, 0, 0, 0, 62974, 54444, 0, 0, 0, 0, 0, 54737, 0, 55536, 63683, 60119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62935, 0, 0, 55487, 0, 0, 0, 0, 64960, 0, 0, 0, 0, 0, 0, 60333, 0, 0, 0, 0, 54698, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61130, 0, 0, 0, 51943, 0, 0, 0, 0, 0, 63715, 0, 54493, 0, 0, 60120, 0, 0, 0, 0, 64473, 60919, 0, 0, 58805, 0, 0, 0, 0, 0, 53421, 0, 0, 0, 0, 61937, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58045, 0, 0, 0, 58312, 0, 0, 0, 0, 55765, 0, 0, 57258, 0, 0, 0, 0, 56252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63716, 0, 0, 0, 0, 0, 61946, 0, 0, 58806, 62447, 0, 0, 64474, 57824, 0, 55724, 0, 62955, 0, 57526, 0, 0, 59848, 0, 52175, 0, 58313, 0, 0, 0, 57070, 0, 0, 0, 0, 0, 0, 0, 0, 58046, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56559, 0, 54949, 0, 0, 0, 0, 0, 58097, 0, 0, 0, 0, 0, 0, 0, 55038, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55713, 0, 55488, 56539, 0, 0, 60861, 57272, 0, 60069, 0, 0, 0, 55213, 0, 0, 62457, 0, 60920, 0, 62919, 0, 0, 0, 0, 0, 0, 57802, 60387, 0, 62174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63692, 0, 60121, 0, 54214, 0, 56294, 0, 0, 0, 0, 0, 62895, 0, 0, 0, 0, 52976, 0, 0, 0, 0, 59902, 0, 0, 0, 0, 0, 64438, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58098, 0, 0, 0, 0, 53234, 63417, 55795, 0, 0, 57803, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56029, 0, 0, 55993, 0, 0, 0, 0, 0, 0, 0, 60411, 0, 52153, 0, 0, 60921, 0, 0, 0, 0, 0, 0, 57568, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62656, 0, 64956, 57265, 58351, 0, 0, 0, 0, 57507, 64953, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61617, 0, 0, 0, 0, 0, 0, 52683, 0, 0, 0, 0, 0, 0, 0, 60862, 0, 0, 0, 54720, 58352, 60922, 0, 0, 0, 0, 0, 59876, 0, 0, 0, 0, 0, 0, 54765, 59357, 0, 0, 0, 0, 0, 0, 54518, 58807, 0, 0, 0, 56295, 58047, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61131, 0, 0, 55284, 61661, 0, 0, 0, 52907, 0, 0, 59358, 0, 0, 0, 54998, 57804, 0, 0, 59571, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58862, 56482, 0, 0, 57552, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54709, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54689, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64475, 0, 63947, 0, 0, 0, 52211, 62629, 0, 0, 0, 0, 0, 64200, 54999, 0, 59877, 64476, 0, 0, 0, 0, 0, 0, 0, 64976, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64502, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55973, 0, 56253, 0, 0, 0, 0, 0, 0, 60642, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52727, 61662, 0, 0, 0, 0, 63177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57071, 0, 0, 0, 54193, 0, 0, 0, 0, 0, 0, 0, 0, 64750, 0, 0, 0, 0, 59587, 0, 61896, 0, 0, 0, 52977, 0, 0, 0, 0, 63981, 0, 0, 0, 0, 0, 0, 0, 0, 62196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58550, 0, 62905, 0, 56560, 58353, 0, 0, 0, 0, 59557, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62139, 0, 56996, 0, 56012, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51945, 0, 0, 0, 0, 0, 0, 58330, 0, 64729, 0, 0, 0, 0, 0, 0, 0, 60122, 0, 0, 0, 0, 0, 0, 63940, 0, 58276, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64477, 0, 61386, 0, 59588, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54732, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60375, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55725, 0, 0, 64427, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54233, 0, 0, 0, 0, 0, 0, 54690, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56054, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57553, 0, 0, 59816, 0, 0, 62969, 0, 0, 0, 0, 0, 0, 64175, 0, 60412, 0, 0, 57578, 0, 0, 0, 0, 0, 0, 58290, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54725, 0, 0, 61923, 54766, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52684, 0, 0, 0, 0, 60889, 0, 0, 0, 0, 55489, 0, 0, 0, 0, 64236, 0, 0, 0, 0, 0, 61931, 0, 0, 0, 0, 0, 64188, 59106, 0, 0, 0, 0, 64229, 58106, 0, 0, 0, 51894, 0, 58551, 0, 60123, 0, 62970, 0, 0, 0, 64428, 53187, 60413, 0, 0, 0, 0, 63738, 0, 0, 57273, 0, 0, 0, 0, 57841, 0, 53924, 0, 0, 0, 0, 62971, 0, 0, 0, 0, 0, 0, 53466, 53467, 0, 60094, 55729, 0, 0, 0, 0, 0, 51895, 0, 0, 54247, 0, 63717, 0, 0, 0, 0, 54194, 0, 0, 0, 58048, 62175, 0, 0, 0, 0, 0, 0, 52709, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63916, 0, 0, 0, 0, 0, 0, 0, 0, 52685, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61102, 54958, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55274, 0, 0, 0, 0, 59360, 60334, 0, 0, 0, 53209, 0, 0, 56525, 60923, 0, 57072, 0, 55275, 0, 0, 0, 0, 0, 0, 56997, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57303, 56272, 56273, 0, 0, 54691, 0, 0, 0, 0, 61618, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56540, 0, 0, 0, 0, 0, 0, 0, 0, 51944, 0, 63718, 56526, 0, 0, 0, 0, 60124, 56274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59827, 0, 0, 0, 0, 63451, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58280, 0, 55214, 0, 0, 57569, 0, 0, 0, 0, 0, 52154, 0, 0, 58833, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53468, 0, 0, 0, 0, 54721, 0, 0, 0, 0, 0, 55498, 0, 0, 0, 0, 0, 0, 0, 58281, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57508, 0, 59817, 0, 54215, 0, 0, 56541, 63662, 0, 0, 0, 52408, 0, 0, 0, 53422, 0, 0, 0, 55538, 0, 0, 58314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52399, 0, 0, 0, 0, 0, 0, 0, 54445, 63185, 0, 0, 0, 0, 0, 0, 0, 53452, 0, 0, 0, 0, 0, 0, 0, 51910, 0, 0, 54722, 0, 0, 52922, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51911, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57304, 0, 0, 0, 62906, 0, 0, 0, 0, 0, 0, 0, 58859, 0, 61428, 56757, 0, 0, 0, 0, 52650, 0, 58354, 0, 64503, 0, 63440, 0, 0, 0, 0, 64954, 0, 0, 64993, 63230, 53696, 0, 0, 59589, 0, 58552, 0, 57832, 0, 0, 0, 52417, 0, 53997, 0, 0, 0, 0, 56254, 0, 0, 57570, 0, 0, 0, 64201, 0, 0, 57805, 0, 51896, 0, 0, 0, 62176, 61897, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57073, 0, 0, 0, 61663, 63684, 0, 0, 0, 0, 0, 61132, 0, 0, 57074, 0, 59337, 0, 58099, 59361, 0, 0, 58315, 0, 0, 58316, 0, 0, 0, 53240, 61356, 0, 65022, 64677, 64177, 57305, 0, 57554, 0, 0, 0, 62682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61898, 0, 52899, 0, 0, 0, 0, 62140, 60643, 0, 0, 0, 0, 0, 57509, 0, 63403, 0, 0, 60335, 0, 0, 0, 0, 0, 58846, 0, 57764, 52651, 0, 55796, 59558, 52686, 57833, 0, 64751, 0, 57571, 0, 0, 0, 0, 0, 58049, 0, 52900, 0, 0, 0, 0, 0, 0, 56998, 0, 0, 60414, 0, 60381, 61664, 0, 0, 62683, 0, 58100, 0, 0, 54216, 0, 0, 0, 62699, 0, 61109, 0, 62936, 0, 0, 54751, 0, 0, 0, 55013, 0, 0, 0, 0, 60336, 62691, 0, 0, 0, 0, 58317, 0, 0, 0, 0, 62708, 64178, 0, 0, 61429, 51935, 0, 60337, 60863, 0, 0, 64969, 0, 0, 0, 0, 58534, 63908, 61619, 0, 58860, 0, 0, 0, 53735, 0, 55751, 58583, 60125, 0, 54519, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55994, 0, 56013, 0, 0, 0, 63948, 0, 57818, 56255, 0, 52421, 60624, 52155, 0, 57075, 0, 0, 59818, 0, 0, 0, 0, 0, 0, 0, 55752, 0, 0, 61155, 55229, 0, 0, 0, 0, 0, 0, 53188, 0, 0, 0, 0, 0, 53453, 0, 0, 0, 0, 0, 0, 0, 64678, 0, 0, 0, 0, 0, 0, 0, 61947, 0, 0, 0, 0, 64978, 53697, 0, 0, 0, 0, 0, 0, 0, 0, 58331, 0, 54217, 0, 56527, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52461, 0, 0, 0, 0, 0, 56999, 0, 0, 59067, 60577, 0, 0, 0, 52409, 0, 0, 64478, 0, 0, 0, 0, 0, 59362, 0, 0, 54465, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56488, 0, 0, 0, 0, 0, 58050, 0, 62424, 58835, 0, 0, 62425, 0, 0, 0, 62406, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52699, 0, 0, 0, 0, 0, 0, 0, 52652, 0, 64707, 0, 0, 0, 0, 54503, 0, 53698, 0, 63909, 0, 59605, 0, 0, 0, 0, 0, 0, 0, 0, 58318, 0, 0, 0, 0, 54474, 0, 0, 0, 0, 0, 0, 57306, 0, 0, 0, 0, 0, 0, 0, 0, 64479, 59363, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63739, 58319, 0, 0, 0, 0, 0, 0, 0, 62896, 0, 0, 0, 0, 0, 0, 0, 55527, 0, 55753, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63663, 61430, 0, 56758, 61103, 52728, 0, 0, 0, 0, 57016, 64679, 63484, 63409, 52923, 62625, 0, 0, 61133, 57774, 0, 0, 60611, 53246, 0, 63679, 55522, 54248, 0, 0, 57000, 62692, 60610, 0, 55797, 63941, 56787, 55025, 60668, 64752, 0, 0, 60864, 51897, 0, 61156, 0, 0, 0, 0, 0, 0, 62177, 0, 57017, 0, 0, 0, 0, 0, 0, 55026, 0, 57076, 0, 57307, 0, 56275, 0, 64231, 55523, 62657, 0, 56759, 0, 0, 0, 62197, 0, 0, 54446, 0, 0, 0, 0, 0, 0, 55027, 0, 0, 0, 0, 0, 0, 56760, 53189, 57311, 0, 0, 0, 0, 0, 0, 62142, 63137, 0, 60363, 61948, 0, 62407, 0, 0, 57579, 0, 0, 0, 0, 0, 60924, 0, 0, 57819, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61157, 0, 57077, 0, 0, 0, 0, 64211, 0, 0, 0, 0, 61899, 0, 0, 53423, 56761, 0, 0, 53699, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62897, 0, 0, 0, 0, 60102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61665, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63148, 0, 0, 0, 0, 62937, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61675, 0, 0, 0, 0, 0, 0, 56762, 0, 0, 0, 62143, 0, 0, 0, 0, 0, 0, 0, 63429, 0, 0, 0, 0, 56226, 62198, 0, 0, 51898, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63477, 0, 52197, 0, 0, 0, 61158, 0, 57555, 0, 0, 0, 0, 52901, 0, 0, 0, 0, 0, 0, 55000, 0, 0, 0, 54447, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59849, 0, 0, 0, 0, 54222, 62658, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61857, 0, 0, 0, 0, 0, 60338, 0, 0, 0, 0, 61858, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60339, 0, 61620, 0, 0, 52212, 54448, 62386, 64439, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62956, 0, 0, 0, 0, 0, 61159, 62642, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62957, 0, 53235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61666, 0, 0, 0, 0, 0, 61134, 0, 0, 61900, 0, 0, 58808, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55285, 58355, 53221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62387, 58584, 53241, 53210, 0, 0, 0, 0, 64205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62958, 0, 0, 51899, 0, 0, 58332, 0, 0, 0, 0, 52978, 0, 55001, 0, 0, 0, 61104, 0, 0, 0, 0, 0, 0, 0, 0, 62693, 55490, 56528, 52462, 0, 0, 0, 0, 0, 54752, 63178, 64970, 55510, 62671, 0, 0, 0, 0, 0, 0, 54950, 56510, 0, 56276, 55239, 0, 0, 0, 0, 62206, 0, 0, 0, 61901, 0, 0, 0, 0, 58051, 56542, 0, 56543, 0, 0, 61357, 59051, 0, 0, 0, 0, 63965, 60095, 0, 0, 0, 61358, 0, 0, 0, 62672, 52979, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59052, 0, 52958, 0, 0, 54777, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58356, 52688, 0, 0, 0, 0, 0, 0, 54712, 0, 0, 63485, 0, 56489, 0, 0, 0, 0, 57078, 0, 56490, 62179, 59828, 53980, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59878, 0, 0, 58358, 0, 0, 0, 0, 0, 0, 0, 0, 59338, 0, 0, 53454, 0, 0, 56055, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51900, 0, 0, 0, 61160, 56030, 0, 62199, 0, 0, 58107, 0, 52390, 0, 0, 0, 0, 55995, 0, 61161, 0, 0, 0, 62938, 0, 0, 63452, 57834, 52929, 54449, 0, 64945, 59069, 0, 64429, 0, 0, 63719, 0, 57806, 0, 63458, 62959, 53191, 0, 0, 54450, 52463, 0, 54504, 0, 61135, 63447, 0, 0, 57510, 54977, 57820, 61667, 61924, 56561, 54951, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62709, 0, 0, 61902, 62180, 0, 0, 53424, 0, 0, 60655, 0, 0, 0, 63930, 0, 60341, 0, 0, 54509, 58052, 0, 0, 0, 0, 59879, 0, 0, 60340, 60065, 0, 63676, 52902, 0, 63942, 64730, 0, 54451, 54201, 60126, 0, 0, 0, 59819, 0, 0, 57825, 54223, 62710, 0, 60096, 57807, 0, 52410, 0, 0, 0, 0, 0, 61162, 0, 0, 0, 61668, 62388, 54510, 0, 0, 62144, 0, 0, 61925, 0, 62659, 57556, 0, 60342, 0, 55201, 52200, 0, 63917, 59821, 55524, 64179, 58053, 64701, 0, 0, 60612, 55473, 0, 56491, 0, 0, 0, 0, 54692, 0, 60393, 0, 0, 0, 59579, 0, 0, 0, 55511, 0, 0, 0, 0, 0, 0, 0, 0, 64430, 53729, 0, 0, 56256, 0, 62910, 0, 57079, 0, 0, 0, 0, 51963, 63430, 53192, 0, 0, 0, 57808, 0, 0, 61136, 0, 0, 0, 0, 0, 0, 0, 0, 59892, 0, 0, 0, 0, 0, 0, 0, 0, 52980, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54733, 0, 0, 53211, 0, 0, 0, 0, 0, 0, 56763, 0, 0, 0, 0, 52908, 0, 0, 0, 0, 0, 0, 0, 59880, 0, 0, 0, 0, 0, 0, 0, 54452, 0, 0, 0, 0, 58567, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62939, 0, 0, 64193, 0, 0, 0, 57001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54520, 0, 0, 0, 0, 0, 61431, 0, 0, 0, 0, 54195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60343, 61432, 62940, 60876, 56277, 61903, 0, 0, 0, 61904, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62898, 0, 0, 0, 0, 0, 0, 55726, 54700, 0, 58054, 0, 0, 0, 0, 0, 0, 0, 0, 64931, 0, 64485, 57259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58101, 0, 63149, 0, 62899, 0, 61621, 0, 0, 0, 0, 57765, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62941, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60578, 60925, 0, 62900, 64440, 0, 56227, 0, 0, 54986, 52185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58836, 0, 0, 0, 0, 0, 0, 62458, 0, 60344, 0, 57527, 55276, 61932, 58799, 54753, 55277, 53713, 0, 0, 0, 0, 0, 57842, 61433, 0, 0, 0, 56764, 63196, 0, 0, 0, 0, 0, 61669, 0, 0, 0, 62660, 0, 0, 59881, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62459, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54511, 0, 0, 52386, 63486, 57276, 0, 0, 0, 0, 60365, 0, 0, 0, 0, 0, 0, 53431, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54978, 0, 0, 0, 0, 0, 59565, 0, 0, 0, 0, 61359, 52133, 0, 0, 0, 0, 52201, 0, 0, 0, 64232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52422, 0, 0, 0, 59111, 0, 0, 60103, 0, 0, 0, 56228, 0, 53193, 58108, 61434, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60382, 0, 0, 62920, 0, 54494, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57557, 0, 61360, 0, 0, 58055, 0, 55727, 0, 0, 0, 63975, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59365, 0, 0, 53194, 57809, 0, 58056, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61435, 0, 0, 64249, 0, 0, 56562, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57511, 0, 0, 0, 0, 0, 63720, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52202, 0, 0, 0, 52156, 0, 0, 0, 0, 0, 0, 0, 55010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62942, 0, 0, 0, 0, 0, 0, 0, 62943, 0, 61110, 0, 0, 0, 58102, 54218, 61436, 53700, 61361, 0, 53701, 0, 53470, 0, 55777, 0, 0, 57528, 0, 0, 52689, 62393, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59340, 0, 54952, 52903, 0, 54453, 0, 0, 0, 0, 0, 0, 58568, 0, 0, 0, 0, 0, 0, 54196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60345, 0, 0, 0, 0, 0, 0, 52213, 0, 0, 0, 0, 0, 0, 63197, 0, 61859, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52423, 0, 0, 0, 0, 0, 0, 0, 59850, 0, 57840, 0, 0, 0, 62944, 0, 0, 0, 0, 0, 0, 0, 0, 64431, 0, 0, 0, 52177, 0, 0, 0, 0, 64480, 62181, 0, 0, 60656, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61676, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59851, 0, 0, 52464, 0, 0, 55215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64757, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61860, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57558, 0, 0, 0, 0, 0, 61362, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62673, 0, 0, 63393, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61905, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51964, 51965, 0, 0, 0, 0, 0, 0, 0, 0, 52942, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62408, 0, 62394, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60926, 0, 0, 0, 0, 0, 0, 0, 0, 55974, 0, 0, 57580, 0, 0, 0, 0, 0, 63693, 0, 52178, 0, 0, 0, 60366, 0, 63960, 63961, 51936, 56010, 0, 0, 0, 52134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51912, 63982, 56300, 0, 0, 53425, 0, 0, 0, 0, 54767, 0, 0, 0, 59123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59298, 58585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58593, 0, 0, 64708, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63983, 53236, 63462, 0, 0, 0, 0, 0, 52924, 0, 0, 0, 0, 62661, 56483, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56765, 0, 0, 0, 0, 62662, 0, 0, 0, 0, 0, 0, 0, 0, 63649, 0, 0, 0, 59606, 0, 0, 0, 56257, 0, 0, 0, 0, 0, 0, 0, 0, 61670, 0, 0, 0, 58553, 63213, 0, 63918, 0, 56766, 0, 0, 0, 0, 0, 0, 55216, 55528, 52157, 0, 0, 63962, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63694, 63984, 57581, 58291, 62643, 0, 0, 60098, 62182, 61622, 0, 0, 0, 0, 0, 56278, 0, 0, 0, 0, 0, 60388, 0, 0, 62183, 0, 55253, 54454, 63976, 55233, 0, 0, 0, 0, 58837, 0, 0, 0, 0, 0, 0, 0, 59882, 55244, 0, 0, 0, 54249, 58057, 0, 64731, 52653, 0, 0, 0, 0, 0, 52400, 60066, 0, 0, 58614, 53440, 0, 61623, 61089, 0, 0, 0, 0, 0, 0, 55286, 0, 0, 0, 58058, 58059, 0, 64207, 0, 0, 0, 0, 0, 0, 60383, 0, 0, 0, 0, 0, 54987, 0, 0, 0, 62644, 0, 0, 0, 0, 60877, 58578, 0, 0, 60073, 58554, 62370, 52690, 0, 63179, 0, 61926, 60865, 59580, 61137, 0, 0, 0, 0, 0, 0, 61671, 58060, 0, 0, 58538, 0, 62945, 60890, 0, 0, 0, 0, 0, 55278, 53745, 0, 0, 0, 0, 59883, 59884, 57572, 0, 0, 0, 0, 55975, 56788, 0, 60067, 0, 0, 0, 54979, 55028, 0, 56031, 0, 61363, 0, 0, 0, 0, 58061, 0, 0, 0, 0, 0, 61437, 62184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61381, 0, 59367, 0, 0, 55293, 0, 0, 59342, 0, 0, 57308, 0, 63943, 0, 0, 0, 0, 0, 0, 0, 0, 55798, 0, 0, 0, 0, 0, 0, 0, 0, 57260, 0, 55002, 0, 0, 0, 0, 0, 0, 56484, 0, 0, 0, 61624, 0, 0, 0, 0, 54778, 0, 58615, 0, 0, 0, 54980, 0, 0, 0, 0, 0, 0, 0, 0, 62700, 0, 0, 0, 0, 61438, 0, 0, 0, 0, 0, 61601, 0, 57002, 0, 0, 55996, 55548, 0, 0, 0, 0, 0, 0, 64212, 0, 0, 0, 60645, 0, 0, 0, 0, 0, 0, 64680, 0, 0, 60646, 0, 0, 55499, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64441, 0, 58579, 0, 52729, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53203, 0, 0, 0, 0, 0, 0, 0, 51946, 0, 0, 53204, 0, 63677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62663, 0, 0, 0, 0, 60127, 0, 0, 0, 0, 0, 0, 0, 63963, 0, 0, 0, 0, 0, 0, 0, 0, 54455, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60389, 0, 0, 57810, 0, 0, 0, 0, 60068, 0, 0, 0, 64194, 64481, 64237, 61602, 52465, 0, 64163, 58103, 0, 58062, 0, 59893, 0, 57835, 0, 0, 0, 59368, 59607, 56056, 54475, 0, 0, 0, 63478, 54981, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54505, 0, 0, 64250, 0, 0, 0, 0, 0, 0, 0, 52466, 63453, 0, 57018, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52904, 0, 0, 0, 0, 0, 61625, 58622, 58569, 0, 0, 0, 0, 0, 58580, 0, 0, 0, 60099, 0, 61364, 0, 0, 0, 55230, 0, 0, 0, 0, 0, 0, 64482, 0, 52691, 0, 0, 0, 61365, 0, 0, 0, 64233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63910, 0, 0, 0, 0, 0, 0, 57277, 0, 63431, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63741, 0, 0, 63740, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57003, 56296, 0, 0, 58333, 0, 57826, 53702, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63184, 60390, 56057, 0, 0, 0, 0, 60615, 0, 0, 0, 0, 0, 0, 0, 57080, 63721, 58334, 0, 0, 0, 0, 52981, 0, 0, 0, 0, 0, 64195, 58839, 0, 60616, 0, 0, 0, 62409, 0, 0, 58555, 0, 0, 0, 0, 59054, 0, 0, 0, 0, 0, 61366, 0, 56511, 0, 0, 0, 0, 0, 0, 0, 52925, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55491, 0, 0, 0, 53455, 0, 53242, 62410, 57559, 0, 0, 0, 53703, 59822, 0, 59581, 0, 0, 64196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58063, 0, 0, 64197, 0, 0, 0, 63928, 0, 0, 0, 0, 0, 0, 0, 56544, 0, 0, 64432, 0, 0, 0, 55465, 58847, 63911, 0, 0, 63214, 0, 63180, 58104, 0, 0, 0, 0, 60657, 0, 0, 0, 0, 0, 0, 0, 56032, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61906, 53964, 53195, 0, 0, 51901, 0, 0, 0, 56767, 0, 0, 0, 63215, 0, 57081, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64180, 0, 0, 0, 54701, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61927, 0, 57022, 0, 0, 0, 0, 0, 0, 56512, 0, 0, 0, 0, 0, 53704, 53705, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63678, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52214, 0, 0, 0, 0, 54521, 0, 0, 0, 0, 0, 62946, 57811, 0, 0, 0, 0, 0, 0, 0, 0, 55529, 0, 0, 63742, 0, 53196, 0, 0, 0, 0, 0, 0, 0, 64932, 0, 0, 0, 0, 0, 0, 0, 52982, 0, 64208, 0, 0, 52467, 59070, 0, 0, 0, 63150, 0, 0, 54768, 0, 0, 53706, 0, 0, 0, 64702, 54769, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52713, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58064, 62711, 0, 0, 0, 52692, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59299, 0, 0, 0, 0, 0, 0, 0, 0, 56229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58065, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55202, 0, 0, 63459, 0, 0, 0, 0, 0, 0, 60070, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53409, 0, 0, 0, 0, 52954, 64491, 56230, 56286, 55525, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60128, 0, 0, 0, 0, 55466, 0, 0, 0, 0, 0, 58848, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55003, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61382, 0, 0, 63722, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58581, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52983, 0, 0, 57560, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62701, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52710, 0, 0, 0, 52468, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62947, 0, 0, 58570, 0, 56545, 0, 0, 63944, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64703, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59559, 0, 0, 0, 0, 0, 0, 0, 0, 55492, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52158, 0, 56494, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55287, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61672, 0, 56768, 0, 53197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56563, 55728, 0, 59113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58556, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58604, 0, 58597, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64504, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52411, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58557, 0, 0, 52700, 55799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56799, 0, 0, 0, 0, 0, 60878, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55760, 0, 0, 0, 0, 0, 58787, 0, 0, 0, 0, 63949, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52654, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63151, 0, 0, 0, 0, 0, 64979, 60397, 55004, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58788, 0, 0, 0, 54710, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55005, 0, 0, 0, 63977, 0, 0, 0, 59300, 0, 55011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53707, 55012, 0, 0, 0, 54770, 0, 0, 0, 0, 0, 57082, 0, 55288, 0, 0, 0, 0, 0, 55530, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53205, 55549, 0, 0, 0, 0, 0, 55467, 0, 0, 64971, 0, 0, 0, 0, 64732, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57512, 54771, 0, 0, 64985, 0, 0, 52387, 0, 0, 0, 55801, 0, 0, 54250, 62965, 0, 61383, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55997, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59560, 56495, 0, 0, 0, 0, 0, 61603, 0, 0, 0, 0, 52693, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57513, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57004, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61626, 61105, 0, 0, 61106, 0, 0, 0, 63181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61138, 0, 54982, 0, 0, 0, 0, 0, 57573, 0, 0, 62395, 0, 58849, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58571, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55203, 0, 0, 56258, 0, 0, 0, 0, 51966, 0, 0, 0, 0, 0, 0, 53199]); + encode1 = $toNativeArray($kindUint16, [45217, 45218, 33089, 33090, 45219, 33091, 33092, 45220, 45221, 45222, 45223, 33093, 33094, 33095, 33096, 33097, 45224, 45225, 45226, 45227, 45228, 45229, 45230, 45231, 33098, 45232, 45233, 45234, 45235, 45236, 33099, 33100, 45237, 33101, 33102, 33103, 45238, 33104, 33105, 33106, 33107, 33108, 33109, 33110, 45239, 45240, 33111, 45241, 45242, 45243, 33112, 33113, 33114, 33121, 33122, 33123, 45244, 45245, 33124, 33125, 45246, 33126, 33127, 33128, 45247, 33129, 33130, 33131, 33132, 33133, 33134, 33135, 33136, 33137, 33138, 45248, 33139, 45249, 33140, 33141, 33142, 33143, 33144, 33145, 45250, 33146, 33153, 33154, 45251, 33155, 33156, 33157, 45252, 33158, 33159, 33160, 33161, 33162, 33163, 33164, 33165, 33166, 33167, 33168, 33169, 33170, 33171, 33172, 33173, 33174, 33175, 33176, 45253, 45254, 33177, 33178, 45255, 33179, 33180, 45256, 45257, 33181, 45258, 33182, 33183, 33184, 33185, 33186, 45259, 45260, 33187, 45261, 45262, 45263, 45264, 33188, 33189, 45265, 45266, 45267, 45268, 33190, 33191, 33192, 45269, 33193, 33194, 33195, 45270, 33196, 33197, 33198, 33199, 33200, 33201, 33202, 45271, 45272, 33203, 45273, 45274, 45275, 33204, 33205, 33206, 33207, 33208, 33209, 45276, 45277, 45278, 33210, 45279, 33211, 33212, 45280, 45281, 33213, 33214, 33215, 33216, 33217, 33218, 33219, 45282, 45283, 33220, 45284, 45285, 45286, 33221, 33222, 33223, 45287, 33224, 33225, 45288, 33226, 33227, 33228, 45289, 33229, 33230, 33231, 45290, 33232, 33233, 33234, 33235, 33236, 33237, 33238, 33239, 45291, 33240, 45292, 33241, 33242, 33243, 33244, 33245, 33246, 33247, 33248, 45293, 45294, 33249, 33250, 45295, 33251, 33252, 45296, 45297, 33253, 45298, 33254, 45299, 33255, 33256, 45300, 45301, 45302, 33257, 45303, 33258, 45304, 45305, 33259, 33260, 33261, 33262, 33263, 45306, 45307, 33264, 33265, 45308, 33266, 33267, 33268, 45309, 33269, 45310, 33270, 33271, 33272, 33273, 33274, 45473, 45474, 33275, 45475, 33276, 45476, 33277, 33278, 33345, 33346, 33347, 33348, 45477, 33349, 33350, 33351, 45478, 33352, 33353, 33354, 45479, 33355, 33356, 33357, 33358, 33359, 33360, 33361, 33362, 45480, 33363, 33364, 45481, 45482, 33365, 33366, 33367, 33368, 33369, 33370, 45483, 45484, 33377, 33378, 45485, 33379, 33380, 33381, 45486, 33382, 33383, 33384, 33385, 33386, 33387, 33388, 45487, 45488, 33389, 45489, 33390, 45490, 33391, 33392, 33393, 33394, 33395, 33396, 45491, 33397, 33398, 33399, 45492, 33400, 33401, 33402, 45493, 33409, 33410, 33411, 33412, 33413, 33414, 33415, 33416, 45494, 33417, 45495, 33418, 33419, 33420, 33421, 33422, 33423, 33424, 33425, 45496, 45497, 33426, 33427, 45498, 33428, 33429, 45499, 45500, 45501, 45502, 33430, 33431, 33432, 33433, 45503, 45504, 45505, 33434, 45506, 33435, 45507, 45508, 33436, 33437, 33438, 33439, 33440, 45509, 45510, 33441, 33442, 45511, 33443, 33444, 33445, 45512, 33446, 33447, 33448, 33449, 33450, 33451, 33452, 33453, 33454, 33455, 33456, 45513, 45514, 33457, 33458, 33459, 33460, 33461, 33462, 45515, 33463, 33464, 33465, 33466, 33467, 33468, 33469, 33470, 33471, 33472, 33473, 33474, 33475, 33476, 33477, 33478, 33479, 33480, 45516, 33481, 33482, 33483, 33484, 33485, 33486, 33487, 33488, 45517, 45518, 33489, 33490, 45519, 33491, 33492, 33493, 45520, 33494, 33495, 33496, 33497, 33498, 33499, 33500, 45521, 45522, 33501, 45523, 33502, 33503, 33504, 33505, 33506, 33507, 33508, 33509, 45524, 33510, 33511, 33512, 45525, 33513, 33514, 33515, 45526, 33516, 33517, 33518, 33519, 33520, 33521, 33522, 33523, 33524, 33525, 33526, 33527, 33528, 33529, 33530, 33531, 33532, 33533, 33534, 45527, 45528, 33601, 33602, 45529, 33603, 33604, 45530, 45531, 45532, 33605, 33606, 33607, 33608, 33609, 33610, 45533, 45534, 33611, 45535, 33612, 45536, 33613, 33614, 33615, 33616, 33617, 33618, 45537, 33619, 33620, 33621, 33622, 33623, 33624, 33625, 33626, 33633, 33634, 33635, 33636, 33637, 33638, 33639, 33640, 33641, 33642, 33643, 33644, 33645, 33646, 33647, 33648, 33649, 33650, 33651, 45538, 45539, 33652, 33653, 45540, 33654, 33655, 45541, 45542, 33656, 45543, 33657, 33658, 33665, 33666, 33667, 45544, 45545, 33668, 45546, 33669, 45547, 45548, 33670, 33671, 33672, 45549, 33673, 45550, 45551, 45552, 33674, 45553, 33675, 33676, 33677, 45554, 33678, 45555, 33679, 33680, 33681, 33682, 33683, 45556, 45557, 33684, 45558, 45559, 45560, 33685, 33686, 33687, 45561, 33688, 33689, 45562, 45563, 33690, 33691, 45564, 33692, 33693, 33694, 45565, 33695, 33696, 33697, 33698, 33699, 33700, 33701, 45566, 45729, 33702, 45730, 45731, 45732, 33703, 33704, 33705, 33706, 33707, 33708, 45733, 45734, 33709, 33710, 33711, 33712, 33713, 33714, 45735, 33715, 33716, 33717, 33718, 33719, 33720, 33721, 33722, 33723, 33724, 33725, 33726, 33727, 33728, 33729, 33730, 33731, 33732, 33733, 33734, 33735, 33736, 33737, 33738, 33739, 33740, 33741, 33742, 33743, 33744, 33745, 33746, 33747, 33748, 33749, 33750, 33751, 33752, 33753, 33754, 33755, 33756, 33757, 33758, 33759, 33760, 33761, 45736, 45737, 45738, 33762, 45739, 33763, 33764, 33765, 45740, 33766, 33767, 33768, 33769, 33770, 33771, 33772, 45741, 45742, 33773, 45743, 45744, 45745, 33774, 33775, 33776, 33777, 33778, 33779, 45746, 45747, 33780, 33781, 45748, 33782, 33783, 33784, 33785, 33786, 33787, 33788, 33789, 33790, 33857, 33858, 45749, 33859, 33860, 45750, 33861, 45751, 33862, 33863, 33864, 33865, 33866, 33867, 45752, 33868, 33869, 33870, 45753, 33871, 33872, 33873, 45754, 33874, 33875, 33876, 33877, 33878, 33879, 33880, 33881, 33882, 33889, 45755, 45756, 33890, 33891, 33892, 33893, 45757, 33894, 33895, 45758, 33896, 33897, 33898, 33899, 33900, 33901, 33902, 33903, 33904, 33905, 33906, 33907, 33908, 33909, 33910, 33911, 33912, 33913, 33914, 33921, 33922, 33923, 33924, 33925, 33926, 33927, 33928, 45759, 45760, 33929, 33930, 45761, 33931, 45762, 33932, 45763, 33933, 33934, 33935, 33936, 33937, 33938, 33939, 45764, 45765, 33940, 45766, 33941, 45767, 45768, 45769, 33942, 33943, 33944, 33945, 45770, 45771, 33946, 33947, 33948, 33949, 33950, 33951, 45772, 33952, 33953, 33954, 33955, 33956, 33957, 33958, 33959, 33960, 33961, 33962, 45773, 45774, 33963, 33964, 33965, 33966, 33967, 33968, 45775, 45776, 33969, 33970, 33971, 33972, 33973, 33974, 33975, 33976, 33977, 33978, 33979, 33980, 33981, 33982, 33983, 33984, 33985, 33986, 33987, 45777, 33988, 33989, 33990, 33991, 33992, 33993, 45778, 33994, 33995, 33996, 45779, 33997, 33998, 33999, 45780, 34000, 34001, 34002, 34003, 34004, 34005, 34006, 45781, 45782, 34007, 34008, 34009, 45783, 34010, 34011, 34012, 34013, 34014, 34015, 45784, 34016, 34017, 34018, 34019, 34020, 34021, 34022, 34023, 34024, 34025, 34026, 34027, 34028, 34029, 34030, 34031, 34032, 34033, 34034, 34035, 34036, 34037, 34038, 34039, 34040, 34041, 34042, 45785, 45786, 34043, 34044, 45787, 34045, 34046, 34113, 45788, 34114, 34115, 34116, 34117, 34118, 34119, 45789, 45790, 45791, 34120, 45792, 34121, 45793, 45794, 34122, 34123, 34124, 34125, 34126, 45795, 34127, 34128, 34129, 34130, 34131, 34132, 34133, 45796, 34134, 34135, 34136, 34137, 34138, 34145, 34146, 34147, 34148, 34149, 34150, 45797, 45798, 34151, 34152, 34153, 34154, 34155, 34156, 45799, 45800, 34157, 34158, 45801, 34159, 34160, 34161, 45802, 34162, 34163, 34164, 34165, 34166, 34167, 34168, 45803, 45804, 34169, 34170, 45805, 34177, 34178, 34179, 34180, 34181, 34182, 34183, 45806, 34184, 34185, 34186, 45807, 34187, 34188, 34189, 45808, 34190, 34191, 34192, 34193, 34194, 34195, 34196, 45809, 45810, 34197, 34198, 34199, 34200, 34201, 34202, 34203, 34204, 34205, 34206, 45811, 34207, 34208, 34209, 34210, 34211, 34212, 34213, 34214, 34215, 34216, 34217, 34218, 34219, 34220, 34221, 34222, 34223, 34224, 34225, 34226, 34227, 34228, 34229, 34230, 34231, 34232, 34233, 45812, 45813, 34234, 34235, 45814, 34236, 45815, 34237, 45816, 34238, 45817, 34239, 34240, 34241, 34242, 45818, 45819, 45820, 34243, 45821, 34244, 45822, 34245, 34246, 34247, 45985, 34248, 34249, 34250, 34251, 34252, 34253, 34254, 34255, 34256, 34257, 34258, 34259, 34260, 34261, 34262, 34263, 34264, 34265, 34266, 34267, 34268, 34269, 34270, 34271, 34272, 34273, 34274, 34275, 34276, 34277, 45986, 45987, 34278, 34279, 45988, 34280, 34281, 34282, 45989, 34283, 34284, 34285, 34286, 34287, 34288, 34289, 45990, 45991, 34290, 45992, 34291, 45993, 34292, 34293, 34294, 34295, 34296, 34297, 45994, 45995, 45996, 34298, 45997, 34299, 34300, 45998, 45999, 46000, 46001, 34301, 34302, 34369, 34370, 34371, 46002, 46003, 34372, 46004, 46005, 46006, 46007, 46008, 34373, 46009, 34374, 46010, 46011, 46012, 34375, 34376, 46013, 34377, 34378, 34379, 46014, 34380, 34381, 34382, 34383, 34384, 34385, 34386, 46015, 46016, 34387, 46017, 46018, 46019, 34388, 34389, 34390, 34391, 34392, 34393, 46020, 46021, 34394, 34401, 46022, 34402, 34403, 34404, 46023, 34405, 34406, 34407, 34408, 34409, 34410, 34411, 46024, 34412, 34413, 34414, 34415, 46025, 34416, 34417, 34418, 34419, 34420, 34421, 34422, 34423, 34424, 34425, 34426, 34433, 34434, 34435, 34436, 34437, 34438, 34439, 34440, 34441, 34442, 34443, 34444, 34445, 34446, 34447, 34448, 34449, 34450, 34451, 34452, 34453, 34454, 34455, 46026, 46027, 34456, 46028, 46029, 34457, 34458, 34459, 46030, 34460, 46031, 46032, 34461, 34462, 34463, 34464, 46033, 46034, 34465, 46035, 46036, 46037, 34466, 34467, 34468, 34469, 34470, 46038, 46039, 46040, 34471, 34472, 46041, 34473, 34474, 34475, 46042, 34476, 34477, 34478, 34479, 34480, 34481, 34482, 46043, 46044, 34483, 46045, 46046, 46047, 34484, 34485, 34486, 34487, 34488, 34489, 46048, 46049, 34490, 34491, 46050, 34492, 34493, 34494, 46051, 34495, 34496, 34497, 34498, 34499, 34500, 34501, 46052, 46053, 34502, 34503, 46054, 46055, 34504, 34505, 46056, 34506, 34507, 34508, 46057, 34509, 34510, 34511, 46058, 34512, 34513, 34514, 34515, 34516, 34517, 34518, 34519, 34520, 34521, 34522, 34523, 34524, 34525, 34526, 34527, 34528, 34529, 34530, 34531, 34532, 34533, 34534, 46059, 46060, 34535, 34536, 46061, 34537, 34538, 34539, 46062, 34540, 46063, 34541, 34542, 34543, 34544, 34545, 46064, 46065, 34546, 46066, 34547, 46067, 34548, 34549, 34550, 34551, 46068, 46069, 46070, 34552, 34553, 34554, 46071, 34555, 34556, 34557, 46072, 34558, 34625, 34626, 34627, 34628, 34629, 34630, 34631, 34632, 34633, 34634, 46073, 34635, 34636, 34637, 34638, 34639, 34640, 34641, 34642, 34643, 34644, 34645, 34646, 34647, 34648, 34649, 34650, 34657, 34658, 34659, 34660, 34661, 34662, 34663, 34664, 34665, 34666, 34667, 34668, 34669, 34670, 34671, 34672, 34673, 34674, 34675, 46074, 34676, 34677, 34678, 46075, 34679, 34680, 34681, 46076, 34682, 34689, 34690, 34691, 34692, 34693, 34694, 46077, 46078, 34695, 46241, 34696, 34697, 34698, 34699, 34700, 34701, 34702, 34703, 46242, 46243, 34704, 34705, 46244, 34706, 34707, 34708, 46245, 34709, 34710, 34711, 34712, 34713, 34714, 34715, 34716, 46246, 34717, 46247, 34718, 46248, 34719, 34720, 34721, 34722, 34723, 34724, 46249, 46250, 34725, 34726, 46251, 34727, 34728, 46252, 46253, 34729, 34730, 34731, 34732, 34733, 34734, 34735, 46254, 46255, 34736, 46256, 34737, 46257, 34738, 34739, 34740, 34741, 34742, 34743, 46258, 34744, 34745, 34746, 34747, 34748, 34749, 34750, 34751, 34752, 34753, 34754, 34755, 34756, 34757, 34758, 34759, 34760, 34761, 34762, 46259, 34763, 34764, 34765, 34766, 34767, 34768, 34769, 46260, 34770, 34771, 34772, 34773, 34774, 34775, 34776, 34777, 34778, 34779, 34780, 34781, 34782, 34783, 34784, 34785, 34786, 34787, 34788, 34789, 34790, 34791, 34792, 34793, 34794, 34795, 34796, 46261, 34797, 34798, 34799, 46262, 34800, 34801, 34802, 46263, 34803, 34804, 34805, 34806, 34807, 34808, 34809, 46264, 46265, 34810, 34811, 34812, 34813, 34814, 34881, 34882, 34883, 34884, 34885, 46266, 46267, 34886, 34887, 34888, 34889, 34890, 34891, 46268, 34892, 34893, 34894, 34895, 34896, 34897, 34898, 46269, 46270, 34899, 34900, 34901, 46271, 34902, 34903, 34904, 34905, 34906, 34913, 46272, 46273, 34914, 34915, 46274, 34916, 34917, 34918, 46275, 46276, 46277, 34919, 34920, 34921, 34922, 34923, 46278, 46279, 34924, 46280, 34925, 46281, 46282, 34926, 34927, 34928, 46283, 34929, 46284, 34930, 34931, 34932, 46285, 34933, 34934, 34935, 46286, 34936, 34937, 34938, 34945, 34946, 34947, 34948, 34949, 34950, 34951, 34952, 34953, 34954, 34955, 34956, 34957, 34958, 34959, 34960, 46287, 46288, 34961, 34962, 46289, 34963, 34964, 34965, 46290, 34966, 46291, 34967, 34968, 34969, 34970, 34971, 46292, 46293, 34972, 46294, 34973, 46295, 34974, 34975, 34976, 34977, 46296, 34978, 46297, 46298, 46299, 34979, 46300, 34980, 34981, 46301, 46302, 46303, 46304, 46305, 34982, 34983, 34984, 46306, 46307, 46308, 34985, 46309, 46310, 46311, 46312, 46313, 34986, 34987, 34988, 46314, 46315, 46316, 34989, 34990, 46317, 34991, 34992, 34993, 46318, 34994, 34995, 34996, 34997, 34998, 34999, 35000, 46319, 46320, 35001, 46321, 46322, 46323, 35002, 35003, 35004, 35005, 35006, 35007, 46324, 35008, 35009, 35010, 35011, 35012, 35013, 35014, 35015, 35016, 35017, 35018, 35019, 35020, 35021, 35022, 35023, 35024, 35025, 35026, 35027, 35028, 35029, 35030, 35031, 35032, 35033, 35034, 35035, 35036, 35037, 35038, 35039, 35040, 35041, 35042, 35043, 35044, 35045, 35046, 35047, 35048, 35049, 35050, 35051, 35052, 35053, 35054, 35055, 35056, 35057, 35058, 35059, 35060, 35061, 35062, 46325, 46326, 46327, 35063, 46328, 35064, 35065, 46329, 46330, 35066, 46331, 46332, 35067, 35068, 35069, 35070, 46333, 46334, 35137, 46497, 35138, 46498, 35139, 46499, 35140, 35141, 46500, 35142, 46501, 46502, 35143, 35144, 46503, 35145, 35146, 35147, 46504, 35148, 35149, 35150, 35151, 35152, 35153, 35154, 46505, 46506, 35155, 46507, 46508, 46509, 35156, 35157, 35158, 35159, 35160, 35161, 46510, 35162, 35169, 35170, 46511, 35171, 35172, 35173, 46512, 35174, 35175, 35176, 35177, 35178, 35179, 35180, 35181, 35182, 35183, 35184, 46513, 46514, 35185, 35186, 35187, 35188, 35189, 35190, 46515, 35191, 35192, 35193, 46516, 35194, 35201, 35202, 35203, 35204, 35205, 35206, 35207, 35208, 35209, 35210, 35211, 35212, 35213, 35214, 35215, 35216, 35217, 35218, 35219, 35220, 35221, 35222, 46517, 46518, 35223, 35224, 46519, 35225, 35226, 46520, 46521, 35227, 46522, 35228, 46523, 35229, 35230, 35231, 46524, 46525, 35232, 46526, 35233, 46527, 35234, 46528, 35235, 46529, 35236, 35237, 46530, 35238, 35239, 35240, 46531, 35241, 35242, 35243, 46532, 35244, 35245, 35246, 35247, 35248, 35249, 35250, 35251, 35252, 35253, 35254, 35255, 35256, 35257, 35258, 35259, 35260, 35261, 35262, 46533, 35263, 35264, 35265, 35266, 35267, 35268, 35269, 35270, 35271, 35272, 35273, 35274, 35275, 35276, 35277, 35278, 35279, 35280, 35281, 46534, 35282, 35283, 35284, 35285, 35286, 35287, 35288, 46535, 35289, 35290, 35291, 46536, 35292, 35293, 35294, 46537, 35295, 35296, 35297, 35298, 35299, 35300, 35301, 46538, 46539, 35302, 46540, 35303, 35304, 35305, 35306, 35307, 35308, 35309, 35310, 46541, 35311, 35312, 35313, 35314, 35315, 35316, 35317, 35318, 35319, 35320, 35321, 35322, 35323, 35324, 35325, 35326, 35393, 35394, 35395, 35396, 35397, 35398, 35399, 35400, 35401, 35402, 35403, 46542, 46543, 35404, 35405, 46544, 35406, 35407, 35408, 46545, 35409, 35410, 35411, 35412, 35413, 35414, 35415, 46546, 46547, 35416, 46548, 35417, 46549, 35418, 35425, 35426, 35427, 35428, 35429, 46550, 35430, 35431, 35432, 35433, 35434, 35435, 35436, 35437, 35438, 35439, 35440, 35441, 35442, 35443, 35444, 35445, 35446, 35447, 35448, 46551, 35449, 35450, 35457, 35458, 35459, 35460, 35461, 46552, 35462, 35463, 35464, 35465, 35466, 35467, 35468, 35469, 35470, 35471, 35472, 35473, 35474, 35475, 35476, 35477, 35478, 35479, 35480, 35481, 46553, 35482, 35483, 35484, 35485, 35486, 35487, 46554, 35488, 35489, 35490, 46555, 35491, 35492, 35493, 46556, 35494, 35495, 35496, 35497, 35498, 35499, 35500, 35501, 46557, 35502, 46558, 35503, 46559, 35504, 35505, 35506, 35507, 35508, 35509, 46560, 35510, 35511, 35512, 46561, 35513, 35514, 35515, 46562, 35516, 35517, 35518, 35519, 35520, 35521, 35522, 46563, 35523, 35524, 35525, 35526, 46564, 35527, 35528, 35529, 35530, 35531, 35532, 46565, 46566, 35533, 35534, 46567, 35535, 35536, 46568, 46569, 35537, 46570, 35538, 35539, 35540, 35541, 35542, 46571, 46572, 35543, 46573, 35544, 46574, 35545, 35546, 35547, 35548, 35549, 35550, 46575, 35551, 35552, 35553, 35554, 35555, 35556, 35557, 35558, 35559, 35560, 35561, 35562, 35563, 35564, 35565, 35566, 35567, 35568, 35569, 35570, 35571, 35572, 35573, 35574, 35575, 35576, 35577, 46576, 46577, 35578, 35579, 46578, 35580, 35581, 46579, 46580, 35582, 35649, 35650, 35651, 35652, 35653, 35654, 46581, 46582, 35655, 46583, 46584, 46585, 46586, 35656, 35657, 35658, 35659, 35660, 46587, 46588, 35661, 35662, 46589, 35663, 35664, 35665, 46590, 35666, 35667, 35668, 35669, 35670, 35671, 35672, 46753, 46754, 35673, 46755, 46756, 46757, 35674, 35681, 35682, 35683, 35684, 46758, 46759, 46760, 35685, 35686, 46761, 35687, 35688, 35689, 46762, 35690, 35691, 35692, 35693, 35694, 35695, 35696, 46763, 46764, 35697, 46765, 46766, 46767, 35698, 35699, 35700, 35701, 35702, 35703, 35704, 35705, 35706, 35713, 35714, 35715, 35716, 35717, 35718, 35719, 35720, 35721, 35722, 35723, 35724, 35725, 35726, 35727, 35728, 35729, 35730, 35731, 35732, 35733, 35734, 35735, 35736, 35737, 35738, 35739, 35740, 35741, 35742, 35743, 35744, 35745, 35746, 35747, 35748, 35749, 35750, 35751, 35752, 35753, 35754, 35755, 35756, 35757, 35758, 35759, 35760, 35761, 35762, 35763, 35764, 35765, 46768, 46769, 35766, 35767, 46770, 35768, 35769, 35770, 46771, 35771, 46772, 46773, 35772, 35773, 35774, 35775, 46774, 46775, 35776, 46776, 46777, 46778, 35777, 35778, 35779, 35780, 35781, 46779, 46780, 46781, 35782, 35783, 46782, 35784, 35785, 35786, 46783, 35787, 35788, 35789, 35790, 35791, 35792, 35793, 46784, 46785, 35794, 46786, 46787, 46788, 35795, 35796, 35797, 35798, 35799, 35800, 46789, 35801, 35802, 35803, 35804, 35805, 35806, 35807, 35808, 35809, 35810, 35811, 35812, 35813, 35814, 35815, 35816, 35817, 35818, 35819, 46790, 35820, 35821, 35822, 35823, 35824, 35825, 35826, 35827, 35828, 35829, 35830, 35831, 35832, 35833, 35834, 35835, 35836, 35837, 35838, 35905, 35906, 35907, 35908, 35909, 35910, 35911, 35912, 35913, 35914, 35915, 35916, 35917, 35918, 35919, 35920, 46791, 46792, 35921, 35922, 46793, 35923, 35924, 35925, 46794, 35926, 35927, 35928, 35929, 35930, 35937, 35938, 35939, 35940, 35941, 35942, 35943, 46795, 35944, 35945, 35946, 35947, 35948, 35949, 46796, 35950, 35951, 35952, 35953, 35954, 35955, 35956, 46797, 35957, 35958, 35959, 35960, 35961, 35962, 35969, 35970, 35971, 35972, 35973, 35974, 35975, 35976, 35977, 35978, 35979, 35980, 35981, 46798, 35982, 35983, 35984, 35985, 35986, 35987, 35988, 35989, 35990, 35991, 35992, 35993, 35994, 35995, 35996, 35997, 35998, 35999, 36000, 36001, 36002, 36003, 36004, 36005, 36006, 36007, 36008, 46799, 36009, 36010, 36011, 46800, 36012, 36013, 36014, 36015, 36016, 36017, 36018, 36019, 36020, 36021, 36022, 36023, 36024, 36025, 36026, 36027, 36028, 36029, 36030, 36031, 36032, 36033, 36034, 36035, 36036, 36037, 36038, 36039, 36040, 36041, 36042, 36043, 36044, 36045, 36046, 36047, 36048, 36049, 36050, 36051, 36052, 36053, 36054, 36055, 36056, 36057, 36058, 36059, 36060, 36061, 36062, 46801, 46802, 36063, 36064, 46803, 36065, 36066, 36067, 46804, 36068, 36069, 36070, 36071, 36072, 36073, 46805, 46806, 36074, 36075, 36076, 36077, 46807, 36078, 36079, 36080, 36081, 36082, 36083, 36084, 36085, 36086, 36087, 36088, 36089, 36090, 36091, 36092, 36093, 36094, 36161, 36162, 36163, 36164, 36165, 36166, 36167, 36168, 36169, 36170, 36171, 36172, 36173, 36174, 36175, 36176, 36177, 46808, 36178, 36179, 36180, 36181, 36182, 36183, 36184, 36185, 36186, 36193, 36194, 36195, 36196, 36197, 36198, 36199, 36200, 36201, 36202, 36203, 36204, 36205, 36206, 36207, 36208, 36209, 36210, 46809, 36211, 36212, 36213, 46810, 36214, 36215, 36216, 46811, 36217, 36218, 36225, 36226, 36227, 36228, 36229, 46812, 46813, 36230, 36231, 36232, 46814, 36233, 36234, 36235, 36236, 36237, 36238, 36239, 36240, 36241, 36242, 36243, 36244, 36245, 36246, 36247, 36248, 36249, 36250, 36251, 36252, 36253, 36254, 36255, 36256, 36257, 36258, 36259, 36260, 36261, 36262, 36263, 36264, 36265, 36266, 46815, 46816, 36267, 36268, 46817, 36269, 36270, 46818, 46819, 36271, 36272, 36273, 36274, 36275, 36276, 36277, 46820, 46821, 36278, 46822, 36279, 36280, 36281, 36282, 36283, 36284, 36285, 36286, 46823, 36287, 36288, 36289, 46824, 36290, 36291, 36292, 46825, 36293, 36294, 36295, 36296, 36297, 36298, 36299, 46826, 46827, 36300, 36301, 36302, 36303, 36304, 36305, 36306, 36307, 36308, 36309, 46828, 36310, 36311, 36312, 46829, 36313, 36314, 36315, 46830, 36316, 36317, 36318, 36319, 36320, 36321, 36322, 46831, 46832, 36323, 46833, 36324, 46834, 36325, 36326, 36327, 36328, 36329, 36330, 46835, 46836, 36331, 36332, 46837, 36333, 36334, 36335, 46838, 36336, 36337, 36338, 36339, 36340, 36341, 36342, 46839, 46840, 36343, 46841, 46842, 46843, 46844, 36344, 36345, 36346, 46845, 46846, 47009, 47010, 36347, 36348, 47011, 36349, 36350, 36417, 47012, 36418, 36419, 36420, 36421, 36422, 36423, 36424, 47013, 47014, 36425, 47015, 47016, 47017, 36426, 36427, 36428, 36429, 36430, 36431, 47018, 47019, 36432, 36433, 47020, 36434, 36435, 36436, 36437, 36438, 36439, 36440, 36441, 36442, 36449, 36450, 36451, 36452, 36453, 47021, 36454, 47022, 36455, 36456, 36457, 36458, 36459, 36460, 36461, 36462, 36463, 36464, 36465, 36466, 36467, 36468, 36469, 36470, 36471, 36472, 36473, 36474, 36481, 36482, 36483, 36484, 36485, 36486, 36487, 36488, 36489, 36490, 36491, 36492, 36493, 36494, 47023, 47024, 36495, 36496, 47025, 36497, 36498, 36499, 47026, 36500, 36501, 36502, 36503, 36504, 36505, 36506, 47027, 47028, 36507, 47029, 47030, 47031, 36508, 36509, 36510, 36511, 36512, 47032, 47033, 47034, 36513, 36514, 47035, 36515, 36516, 36517, 47036, 36518, 36519, 36520, 36521, 36522, 36523, 36524, 47037, 47038, 36525, 47039, 36526, 47040, 36527, 36528, 36529, 36530, 36531, 36532, 47041, 47042, 36533, 36534, 47043, 36535, 36536, 36537, 47044, 36538, 36539, 36540, 36541, 36542, 36543, 36544, 47045, 47046, 36545, 47047, 47048, 47049, 36546, 36547, 36548, 36549, 36550, 36551, 47050, 36552, 36553, 36554, 47051, 36555, 36556, 36557, 36558, 36559, 36560, 36561, 36562, 36563, 36564, 36565, 36566, 47052, 36567, 47053, 36568, 36569, 36570, 36571, 36572, 36573, 36574, 36575, 47054, 47055, 36576, 36577, 47056, 36578, 36579, 36580, 47057, 36581, 36582, 36583, 36584, 36585, 36586, 36587, 47058, 47059, 36588, 47060, 36589, 47061, 36590, 36591, 36592, 36593, 36594, 36595, 47062, 36596, 36597, 36598, 47063, 36599, 36600, 36601, 36602, 36603, 36604, 36605, 36606, 36673, 36674, 36675, 36676, 36677, 36678, 36679, 36680, 47064, 36681, 36682, 36683, 36684, 36685, 36686, 36687, 36688, 36689, 36690, 36691, 36692, 36693, 36694, 36695, 36696, 36697, 36698, 36705, 36706, 36707, 36708, 36709, 36710, 36711, 36712, 47065, 36713, 36714, 36715, 36716, 36717, 36718, 36719, 47066, 36720, 36721, 36722, 47067, 36723, 36724, 36725, 47068, 36726, 36727, 36728, 36729, 36730, 36737, 36738, 47069, 47070, 36739, 47071, 36740, 47072, 36741, 36742, 36743, 36744, 36745, 36746, 47073, 36747, 36748, 36749, 47074, 36750, 36751, 36752, 47075, 36753, 36754, 36755, 36756, 36757, 36758, 36759, 36760, 47076, 36761, 47077, 36762, 47078, 36763, 36764, 36765, 36766, 36767, 36768, 47079, 47080, 36769, 36770, 47081, 36771, 36772, 36773, 47082, 36774, 36775, 36776, 36777, 36778, 36779, 36780, 47083, 47084, 36781, 47085, 36782, 47086, 36783, 36784, 36785, 36786, 36787, 36788, 47087, 36789, 36790, 36791, 36792, 36793, 36794, 36795, 36796, 36797, 36798, 36799, 36800, 36801, 36802, 36803, 36804, 36805, 36806, 36807, 47088, 36808, 36809, 36810, 36811, 36812, 36813, 36814, 47089, 36815, 36816, 36817, 36818, 36819, 36820, 36821, 36822, 36823, 36824, 36825, 36826, 36827, 36828, 36829, 36830, 36831, 36832, 36833, 36834, 36835, 36836, 36837, 36838, 36839, 36840, 36841, 47090, 47091, 36842, 36843, 47092, 36844, 36845, 36846, 47093, 36847, 36848, 36849, 36850, 36851, 36852, 36853, 47094, 36854, 36855, 47095, 36856, 47096, 36857, 36858, 36859, 36860, 36861, 36862, 47097, 47098, 36929, 36930, 47099, 36931, 36932, 36933, 47100, 36934, 36935, 36936, 36937, 36938, 36939, 36940, 47101, 47102, 36941, 47265, 36942, 47266, 36943, 36944, 36945, 36946, 36947, 36948, 47267, 47268, 36949, 36950, 47269, 36951, 36952, 36953, 47270, 36954, 36961, 36962, 36963, 36964, 36965, 36966, 47271, 47272, 36967, 47273, 36968, 47274, 47275, 36969, 36970, 47276, 47277, 36971, 36972, 36973, 36974, 36975, 36976, 36977, 36978, 36979, 36980, 36981, 36982, 36983, 36984, 36985, 36986, 36993, 36994, 36995, 36996, 36997, 36998, 36999, 37000, 37001, 37002, 37003, 37004, 37005, 47278, 47279, 37006, 37007, 47280, 37008, 37009, 37010, 47281, 37011, 37012, 37013, 37014, 37015, 37016, 37017, 47282, 47283, 37018, 47284, 37019, 47285, 37020, 37021, 37022, 37023, 37024, 37025, 47286, 47287, 37026, 37027, 47288, 37028, 47289, 47290, 47291, 47292, 47293, 37029, 37030, 37031, 37032, 37033, 47294, 47295, 37034, 47296, 37035, 47297, 47298, 37036, 37037, 47299, 37038, 47300, 47301, 47302, 37039, 37040, 47303, 37041, 37042, 37043, 47304, 37044, 37045, 37046, 37047, 37048, 37049, 37050, 47305, 47306, 37051, 47307, 47308, 47309, 47310, 37052, 37053, 37054, 37055, 37056, 47311, 47312, 37057, 37058, 37059, 37060, 37061, 37062, 47313, 37063, 37064, 37065, 37066, 37067, 37068, 37069, 37070, 37071, 37072, 37073, 37074, 47314, 37075, 37076, 37077, 37078, 37079, 37080, 37081, 37082, 37083, 37084, 37085, 37086, 37087, 37088, 37089, 37090, 37091, 37092, 37093, 37094, 37095, 37096, 37097, 37098, 37099, 37100, 37101, 37102, 37103, 37104, 37105, 37106, 37107, 37108, 47315, 47316, 37109, 37110, 47317, 37111, 37112, 37113, 47318, 37114, 47319, 37115, 37116, 37117, 37118, 37185, 47320, 47321, 37186, 47322, 37187, 47323, 47324, 37188, 37189, 37190, 37191, 47325, 47326, 47327, 37192, 37193, 47328, 37194, 37195, 37196, 47329, 37197, 37198, 37199, 37200, 37201, 37202, 37203, 47330, 47331, 37204, 47332, 47333, 47334, 37205, 37206, 37207, 37208, 37209, 37210, 47335, 47336, 37217, 37218, 47337, 37219, 37220, 37221, 47338, 37222, 37223, 37224, 37225, 37226, 37227, 37228, 37229, 37230, 37231, 47339, 47340, 47341, 37232, 47342, 37233, 37234, 37235, 37236, 47343, 37237, 37238, 37239, 37240, 37241, 37242, 37249, 37250, 37251, 37252, 37253, 37254, 37255, 37256, 37257, 37258, 37259, 37260, 37261, 37262, 37263, 37264, 37265, 37266, 37267, 37268, 37269, 47344, 47345, 37270, 47346, 47347, 37271, 37272, 37273, 47348, 37274, 47349, 37275, 37276, 37277, 37278, 37279, 47350, 47351, 37280, 47352, 37281, 47353, 37282, 37283, 37284, 37285, 37286, 37287, 47354, 37288, 37289, 37290, 47355, 37291, 37292, 37293, 37294, 37295, 37296, 37297, 37298, 37299, 37300, 37301, 37302, 37303, 37304, 37305, 47356, 47357, 37306, 37307, 37308, 37309, 37310, 37311, 37312, 37313, 37314, 37315, 37316, 37317, 37318, 37319, 37320, 37321, 37322, 37323, 37324, 37325, 37326, 37327, 37328, 37329, 37330, 37331, 37332, 37333, 37334, 37335, 37336, 37337, 37338, 37339, 47358, 37340, 37341, 37342, 47521, 37343, 37344, 37345, 47522, 37346, 37347, 37348, 37349, 37350, 37351, 37352, 37353, 47523, 37354, 47524, 37355, 47525, 37356, 37357, 37358, 37359, 37360, 37361, 47526, 37362, 37363, 37364, 47527, 37365, 37366, 37367, 47528, 37368, 37369, 37370, 37371, 37372, 37373, 37374, 37441, 47529, 37442, 47530, 37443, 37444, 37445, 37446, 37447, 37448, 37449, 37450, 47531, 47532, 47533, 37451, 47534, 37452, 37453, 47535, 47536, 47537, 47538, 37454, 37455, 37456, 37457, 37458, 47539, 47540, 37459, 47541, 37460, 47542, 37461, 37462, 37463, 47543, 37464, 47544, 47545, 37465, 37466, 37473, 47546, 37474, 37475, 37476, 47547, 37477, 37478, 37479, 37480, 37481, 37482, 37483, 37484, 47548, 37485, 47549, 37486, 37487, 37488, 37489, 37490, 37491, 37492, 37493, 47550, 37494, 37495, 37496, 37497, 37498, 37505, 37506, 37507, 37508, 37509, 37510, 37511, 37512, 37513, 37514, 37515, 37516, 37517, 37518, 37519, 37520, 37521, 37522, 37523, 37524, 37525, 37526, 47551, 37527, 37528, 37529, 47552, 37530, 37531, 37532, 47553, 37533, 37534, 37535, 37536, 37537, 37538, 37539, 37540, 37541, 37542, 37543, 37544, 37545, 37546, 37547, 37548, 37549, 37550, 37551, 47554, 37552, 37553, 37554, 47555, 37555, 37556, 37557, 47556, 37558, 37559, 37560, 37561, 37562, 37563, 37564, 47557, 37565, 37566, 47558, 37567, 37568, 37569, 37570, 37571, 37572, 37573, 37574, 47559, 37575, 37576, 37577, 47560, 37578, 37579, 37580, 47561, 37581, 37582, 37583, 37584, 37585, 37586, 37587, 47562, 37588, 37589, 47563, 37590, 37591, 37592, 37593, 37594, 37595, 37596, 37597, 37598, 37599, 37600, 37601, 37602, 37603, 37604, 37605, 37606, 37607, 37608, 37609, 37610, 37611, 37612, 37613, 37614, 37615, 37616, 37617, 37618, 37619, 37620, 37621, 37622, 37623, 37624, 37625, 47564, 47565, 37626, 37627, 47566, 37628, 37629, 47567, 47568, 37630, 47569, 37697, 37698, 37699, 37700, 37701, 47570, 47571, 37702, 47572, 47573, 47574, 37703, 47575, 37704, 47576, 37705, 37706, 47577, 47578, 47579, 47580, 47581, 37707, 37708, 47582, 47583, 47584, 47585, 47586, 37709, 37710, 37711, 37712, 47587, 47588, 37713, 47589, 37714, 47590, 37715, 37716, 37717, 47591, 37718, 37719, 47592, 47593, 37720, 37721, 47594, 37722, 37729, 37730, 47595, 37731, 37732, 37733, 37734, 37735, 37736, 37737, 47596, 47597, 37738, 47598, 47599, 47600, 37739, 37740, 37741, 47601, 37742, 37743, 47602, 47603, 37744, 37745, 47604, 37746, 37747, 37748, 37749, 37750, 37751, 37752, 37753, 37754, 37761, 37762, 37763, 47605, 37764, 37765, 37766, 37767, 37768, 37769, 37770, 37771, 37772, 37773, 37774, 37775, 37776, 37777, 37778, 37779, 37780, 37781, 37782, 37783, 37784, 37785, 37786, 37787, 37788, 37789, 37790, 37791, 37792, 37793, 37794, 37795, 37796, 37797, 37798, 37799, 37800, 37801, 47606, 47607, 37802, 37803, 47608, 37804, 37805, 47609, 47610, 37806, 47611, 37807, 37808, 37809, 37810, 37811, 47612, 47613, 37812, 47614, 37813, 47777, 47778, 37814, 37815, 37816, 37817, 37818, 47779, 47780, 37819, 37820, 47781, 37821, 37822, 47782, 47783, 37823, 37824, 37825, 37826, 37827, 37828, 37829, 47784, 47785, 37830, 47786, 47787, 47788, 37831, 37832, 37833, 37834, 37835, 37836, 47789, 47790, 37837, 37838, 47791, 37839, 37840, 37841, 47792, 37842, 37843, 37844, 37845, 37846, 37847, 37848, 37849, 47793, 37850, 47794, 47795, 47796, 37851, 37852, 37853, 47797, 37854, 37855, 47798, 37856, 37857, 37858, 47799, 37859, 37860, 37861, 37862, 37863, 37864, 37865, 37866, 37867, 37868, 37869, 37870, 37871, 37872, 37873, 37874, 37875, 37876, 37877, 37878, 37879, 37880, 37881, 47800, 47801, 47802, 37882, 47803, 37883, 37884, 37885, 47804, 37886, 37953, 37954, 37955, 37956, 37957, 37958, 47805, 47806, 37959, 47807, 37960, 47808, 37961, 37962, 37963, 37964, 37965, 37966, 47809, 37967, 37968, 37969, 47810, 37970, 37971, 37972, 37973, 37974, 37975, 37976, 37977, 37978, 37985, 37986, 37987, 37988, 37989, 37990, 47811, 37991, 37992, 37993, 37994, 37995, 37996, 37997, 47812, 37998, 37999, 38000, 38001, 38002, 38003, 38004, 38005, 38006, 38007, 38008, 38009, 38010, 38017, 38018, 38019, 38020, 38021, 38022, 47813, 38023, 38024, 38025, 38026, 38027, 38028, 38029, 47814, 47815, 38030, 38031, 47816, 38032, 38033, 38034, 47817, 38035, 38036, 38037, 38038, 38039, 38040, 38041, 47818, 47819, 38042, 38043, 38044, 38045, 38046, 38047, 38048, 38049, 38050, 38051, 47820, 38052, 38053, 38054, 47821, 38055, 38056, 38057, 38058, 38059, 38060, 38061, 38062, 38063, 38064, 38065, 38066, 38067, 38068, 38069, 38070, 38071, 38072, 38073, 38074, 38075, 38076, 38077, 47822, 47823, 38078, 38079, 47824, 38080, 38081, 47825, 47826, 47827, 47828, 38082, 38083, 38084, 38085, 38086, 47829, 47830, 38087, 47831, 38088, 47832, 38089, 38090, 38091, 47833, 47834, 38092, 47835, 38093, 38094, 38095, 38096, 38097, 38098, 38099, 47836, 38100, 38101, 38102, 38103, 38104, 38105, 38106, 38107, 38108, 38109, 38110, 47837, 38111, 38112, 38113, 38114, 38115, 38116, 38117, 47838, 38118, 38119, 38120, 38121, 38122, 38123, 38124, 38125, 38126, 38127, 38128, 38129, 38130, 38131, 38132, 38133, 38134, 38135, 38136, 38137, 38138, 38139, 38140, 38141, 38142, 38209, 38210, 47839, 47840, 38211, 38212, 47841, 38213, 38214, 38215, 47842, 38216, 38217, 38218, 38219, 38220, 38221, 38222, 38223, 38224, 38225, 38226, 38227, 47843, 38228, 38229, 38230, 38231, 38232, 38233, 47844, 38234, 38241, 38242, 47845, 38243, 38244, 38245, 47846, 38246, 38247, 38248, 38249, 38250, 38251, 38252, 47847, 38253, 38254, 47848, 38255, 47849, 38256, 38257, 38258, 38259, 38260, 38261, 47850, 47851, 38262, 38263, 47852, 38264, 38265, 38266, 47853, 38273, 38274, 38275, 38276, 38277, 38278, 38279, 47854, 47855, 38280, 47856, 38281, 38282, 38283, 38284, 38285, 38286, 38287, 38288, 38289, 38290, 38291, 38292, 38293, 38294, 38295, 38296, 38297, 38298, 38299, 38300, 38301, 38302, 38303, 38304, 38305, 38306, 38307, 38308, 38309, 38310, 38311, 38312, 38313, 38314, 38315, 38316, 47857, 47858, 38317, 38318, 47859, 38319, 38320, 38321, 47860, 38322, 47861, 38323, 38324, 38325, 38326, 38327, 47862, 47863, 38328, 47864, 38329, 47865, 47866, 47867, 38330, 38331, 38332, 38333, 47868, 47869, 38334, 38335, 47870, 38336, 38337, 38338, 48033, 38339, 48034, 38340, 38341, 38342, 38343, 38344, 48035, 48036, 38345, 48037, 48038, 48039, 38346, 38347, 38348, 38349, 38350, 48040, 48041, 48042, 38351, 38352, 48043, 38353, 38354, 38355, 48044, 38356, 38357, 38358, 38359, 38360, 38361, 38362, 48045, 48046, 38363, 48047, 48048, 48049, 38364, 38365, 38366, 38367, 38368, 38369, 48050, 48051, 38370, 38371, 38372, 38373, 38374, 38375, 38376, 38377, 38378, 38379, 38380, 38381, 38382, 38383, 48052, 38384, 38385, 38386, 38387, 38388, 38389, 38390, 38391, 38392, 38393, 38394, 38395, 38396, 38397, 38398, 38465, 38466, 38467, 38468, 38469, 38470, 38471, 38472, 38473, 38474, 38475, 38476, 38477, 38478, 38479, 38480, 38481, 38482, 38483, 38484, 38485, 38486, 38487, 38488, 48053, 48054, 38489, 38490, 48055, 38497, 38498, 48056, 48057, 38499, 38500, 38501, 38502, 38503, 38504, 38505, 48058, 38506, 38507, 48059, 48060, 48061, 38508, 38509, 38510, 38511, 38512, 38513, 48062, 38514, 38515, 38516, 38517, 38518, 38519, 38520, 38521, 38522, 38529, 38530, 38531, 38532, 38533, 38534, 38535, 38536, 38537, 38538, 38539, 48063, 38540, 38541, 38542, 38543, 38544, 38545, 48064, 48065, 38546, 38547, 38548, 38549, 38550, 38551, 38552, 38553, 38554, 38555, 38556, 38557, 38558, 38559, 48066, 48067, 38560, 48068, 48069, 48070, 38561, 38562, 38563, 38564, 38565, 38566, 38567, 38568, 38569, 38570, 38571, 38572, 38573, 38574, 38575, 38576, 38577, 38578, 38579, 38580, 38581, 38582, 38583, 38584, 38585, 38586, 38587, 38588, 38589, 38590, 38591, 38592, 38593, 38594, 48071, 48072, 38595, 38596, 48073, 38597, 38598, 38599, 48074, 38600, 38601, 38602, 38603, 38604, 38605, 38606, 48075, 48076, 38607, 38608, 38609, 48077, 38610, 38611, 38612, 38613, 38614, 38615, 38616, 38617, 38618, 38619, 38620, 38621, 38622, 38623, 38624, 38625, 38626, 38627, 38628, 38629, 38630, 38631, 38632, 38633, 38634, 38635, 38636, 38637, 38638, 38639, 38640, 38641, 38642, 38643, 38644, 38645, 38646, 38647, 38648, 38649, 38650, 38651, 38652, 38653, 38654, 38721, 38722, 38723, 38724, 38725, 38726, 38727, 38728, 38729, 38730, 38731, 38732, 38733, 38734, 38735, 38736, 38737, 48078, 38738, 38739, 38740, 38741, 38742, 38743, 38744, 38745, 38746, 38753, 38754, 38755, 38756, 38757, 38758, 38759, 38760, 38761, 38762, 38763, 38764, 38765, 38766, 38767, 38768, 38769, 38770, 48079, 38771, 38772, 38773, 38774, 38775, 38776, 38777, 38778, 38785, 38786, 38787, 38788, 38789, 38790, 38791, 38792, 38793, 38794, 38795, 38796, 48080, 38797, 38798, 38799, 38800, 38801, 38802, 48081, 48082, 38803, 38804, 48083, 38805, 38806, 38807, 48084, 38808, 38809, 38810, 38811, 38812, 38813, 38814, 48085, 38815, 38816, 48086, 38817, 48087, 38818, 38819, 38820, 38821, 38822, 38823, 38824, 38825, 38826, 38827, 38828, 38829, 38830, 38831, 38832, 38833, 38834, 38835, 38836, 38837, 38838, 38839, 38840, 38841, 38842, 38843, 38844, 38845, 38846, 38847, 38848, 38849, 38850, 38851, 38852, 38853, 38854, 38855, 38856, 38857, 38858, 38859, 38860, 38861, 38862, 38863, 38864, 38865, 38866, 38867, 38868, 38869, 38870, 38871, 38872, 38873, 38874, 38875, 38876, 38877, 38878, 38879, 38880, 38881, 38882, 38883, 38884, 38885, 38886, 38887, 38888, 38889, 38890, 38891, 38892, 38893, 38894, 38895, 38896, 38897, 38898, 38899, 38900, 38901, 38902, 38903, 38904, 38905, 38906, 38907, 48088, 38908, 38909, 38910, 38977, 38978, 38979, 38980, 38981, 38982, 38983, 38984, 38985, 38986, 38987, 38988, 38989, 38990, 38991, 38992, 38993, 48089, 38994, 38995, 38996, 38997, 38998, 38999, 48090, 39000, 39001, 39002, 48091, 39009, 39010, 39011, 48092, 39012, 39013, 39014, 39015, 39016, 39017, 39018, 48093, 48094, 39019, 39020, 39021, 39022, 39023, 39024, 39025, 39026, 39027, 39028, 39029, 39030, 39031, 39032, 39033, 39034, 39041, 39042, 39043, 39044, 39045, 39046, 39047, 39048, 39049, 39050, 39051, 39052, 39053, 39054, 39055, 39056, 39057, 39058, 39059, 39060, 39061, 39062, 48095, 48096, 39063, 39064, 48097, 39065, 39066, 39067, 48098, 39068, 39069, 39070, 39071, 39072, 39073, 39074, 48099, 48100, 39075, 48101, 39076, 48102, 39077, 39078, 39079, 39080, 39081, 39082, 48103, 48104, 39083, 48105, 48106, 39084, 39085, 48107, 48108, 48109, 48110, 39086, 39087, 39088, 39089, 39090, 48111, 48112, 39091, 48113, 48114, 48115, 39092, 39093, 39094, 48116, 39095, 39096, 48117, 48118, 39097, 39098, 48119, 39099, 39100, 39101, 48120, 39102, 39103, 39104, 39105, 39106, 39107, 39108, 48121, 48122, 39109, 48123, 48124, 48125, 39110, 39111, 39112, 39113, 39114, 39115, 48126, 48289, 39116, 39117, 48290, 39118, 39119, 39120, 48291, 39121, 39122, 39123, 39124, 39125, 39126, 39127, 48292, 48293, 39128, 48294, 39129, 48295, 39130, 39131, 39132, 39133, 39134, 39135, 48296, 39136, 39137, 39138, 48297, 39139, 39140, 39141, 48298, 39142, 39143, 39144, 39145, 39146, 39147, 39148, 48299, 39149, 39150, 39151, 39152, 48300, 39153, 39154, 39155, 39156, 39157, 39158, 48301, 48302, 48303, 48304, 48305, 39159, 39160, 48306, 48307, 39161, 48308, 48309, 39162, 39163, 39164, 39165, 48310, 48311, 39166, 48312, 48313, 48314, 39233, 39234, 39235, 39236, 48315, 39237, 48316, 48317, 39238, 39239, 48318, 39240, 39241, 39242, 48319, 39243, 39244, 39245, 39246, 39247, 39248, 39249, 48320, 48321, 39250, 48322, 48323, 48324, 39251, 39252, 39253, 39254, 39255, 39256, 48325, 48326, 39257, 39258, 48327, 39265, 39266, 39267, 48328, 39268, 39269, 39270, 39271, 39272, 39273, 39274, 48329, 48330, 39275, 48331, 48332, 48333, 39276, 39277, 39278, 39279, 39280, 39281, 48334, 39282, 39283, 39284, 48335, 39285, 39286, 39287, 48336, 39288, 39289, 39290, 39297, 39298, 39299, 39300, 39301, 39302, 39303, 39304, 39305, 48337, 39306, 39307, 39308, 39309, 39310, 39311, 48338, 48339, 48340, 39312, 48341, 39313, 39314, 39315, 48342, 39316, 48343, 39317, 39318, 39319, 39320, 39321, 48344, 48345, 39322, 48346, 39323, 48347, 39324, 39325, 39326, 48348, 39327, 39328, 48349, 48350, 39329, 39330, 48351, 39331, 39332, 39333, 48352, 39334, 39335, 39336, 39337, 39338, 39339, 39340, 39341, 39342, 39343, 39344, 39345, 48353, 39346, 39347, 39348, 39349, 39350, 39351, 48354, 39352, 39353, 39354, 48355, 39355, 39356, 39357, 48356, 39358, 39359, 39360, 39361, 39362, 39363, 39364, 48357, 39365, 39366, 48358, 48359, 39367, 39368, 39369, 39370, 39371, 39372, 39373, 48360, 39374, 39375, 39376, 48361, 39377, 39378, 39379, 48362, 39380, 39381, 39382, 39383, 39384, 39385, 39386, 48363, 48364, 39387, 48365, 39388, 39389, 39390, 39391, 39392, 39393, 39394, 39395, 48366, 48367, 39396, 39397, 48368, 39398, 39399, 39400, 48369, 39401, 39402, 39403, 39404, 39405, 39406, 39407, 48370, 48371, 39408, 48372, 39409, 48373, 39410, 39411, 39412, 39413, 39414, 39415, 48374, 48375, 39416, 39417, 48376, 39418, 39419, 48377, 48378, 39420, 39421, 39422, 39489, 39490, 39491, 39492, 48379, 48380, 39493, 48381, 39494, 48382, 39495, 48545, 39496, 48546, 48547, 39497, 48548, 39498, 39499, 39500, 39501, 39502, 39503, 39504, 39505, 39506, 39507, 39508, 39509, 39510, 39511, 39512, 39513, 39514, 39521, 39522, 48549, 39523, 39524, 39525, 39526, 39527, 39528, 39529, 48550, 48551, 39530, 39531, 48552, 39532, 39533, 39534, 48553, 39535, 39536, 39537, 39538, 39539, 39540, 39541, 48554, 39542, 39543, 39544, 39545, 48555, 39546, 39553, 39554, 39555, 39556, 39557, 48556, 48557, 39558, 39559, 48558, 39560, 39561, 39562, 48559, 39563, 39564, 39565, 39566, 39567, 39568, 39569, 48560, 48561, 39570, 48562, 39571, 48563, 39572, 39573, 39574, 39575, 39576, 39577, 48564, 48565, 39578, 39579, 39580, 39581, 39582, 39583, 48566, 39584, 39585, 39586, 39587, 39588, 39589, 39590, 48567, 39591, 39592, 48568, 39593, 48569, 39594, 39595, 39596, 39597, 39598, 39599, 48570, 48571, 39600, 39601, 48572, 39602, 39603, 39604, 48573, 48574, 39605, 39606, 39607, 39608, 39609, 39610, 48575, 48576, 39611, 48577, 39612, 48578, 39613, 39614, 39615, 39616, 39617, 39618, 39619, 39620, 39621, 39622, 39623, 39624, 39625, 39626, 39627, 39628, 39629, 39630, 39631, 39632, 39633, 39634, 39635, 39636, 39637, 39638, 39639, 39640, 39641, 39642, 39643, 39644, 39645, 39646, 48579, 48580, 39647, 39648, 48581, 39649, 39650, 48582, 48583, 39651, 39652, 39653, 39654, 39655, 39656, 48584, 48585, 48586, 39657, 48587, 39658, 48588, 39659, 39660, 39661, 39662, 48589, 39663, 48590, 48591, 39664, 48592, 48593, 39665, 39666, 39667, 48594, 39668, 39669, 39670, 39671, 39672, 39673, 39674, 48595, 48596, 39675, 39676, 48597, 48598, 39677, 39678, 39745, 39746, 39747, 48599, 48600, 48601, 39748, 39749, 48602, 39750, 39751, 39752, 48603, 39753, 39754, 39755, 39756, 39757, 39758, 39759, 48604, 48605, 39760, 39761, 48606, 48607, 39762, 39763, 39764, 39765, 39766, 39767, 39768, 39769, 39770, 39777, 39778, 39779, 39780, 39781, 39782, 39783, 39784, 39785, 39786, 39787, 39788, 39789, 39790, 39791, 39792, 39793, 39794, 48608, 39795, 39796, 39797, 39798, 39799, 39800, 39801, 39802, 39809, 39810, 39811, 39812, 39813, 39814, 39815, 39816, 39817, 39818, 39819, 39820, 39821, 39822, 39823, 39824, 39825, 39826, 39827, 39828, 39829, 39830, 39831, 39832, 39833, 39834, 48609, 48610, 39835, 39836, 48611, 39837, 39838, 39839, 48612, 39840, 48613, 39841, 39842, 39843, 39844, 39845, 48614, 48615, 39846, 39847, 48616, 48617, 39848, 39849, 39850, 39851, 39852, 39853, 48618, 39854, 39855, 39856, 48619, 39857, 39858, 39859, 48620, 39860, 39861, 39862, 39863, 39864, 39865, 39866, 39867, 39868, 39869, 39870, 39871, 39872, 39873, 39874, 39875, 39876, 39877, 39878, 39879, 39880, 39881, 39882, 39883, 39884, 39885, 39886, 39887, 39888, 39889, 39890, 39891, 39892, 39893, 39894, 39895, 39896, 39897, 39898, 39899, 39900, 39901, 39902, 39903, 39904, 39905, 39906, 39907, 39908, 39909, 39910, 48621, 39911, 39912, 39913, 39914, 39915, 39916, 39917, 39918, 39919, 39920, 39921, 39922, 39923, 39924, 39925, 39926, 39927, 39928, 39929, 39930, 39931, 39932, 39933, 48622, 48623, 39934, 40001, 48624, 40002, 40003, 48625, 48626, 40004, 48627, 40005, 40006, 40007, 40008, 40009, 48628, 48629, 40010, 40011, 40012, 48630, 40013, 40014, 40015, 40016, 40017, 40018, 48631, 48632, 40019, 40020, 48633, 40021, 40022, 40023, 40024, 40025, 40026, 40033, 40034, 40035, 40036, 40037, 40038, 40039, 40040, 40041, 48634, 40042, 40043, 40044, 40045, 40046, 40047, 40048, 48635, 40049, 40050, 40051, 40052, 40053, 40054, 40055, 40056, 40057, 40058, 40065, 40066, 40067, 40068, 40069, 40070, 40071, 40072, 40073, 48636, 40074, 40075, 40076, 40077, 40078, 40079, 40080, 48637, 40081, 40082, 40083, 48638, 40084, 40085, 40086, 48801, 40087, 40088, 40089, 40090, 40091, 40092, 40093, 48802, 48803, 40094, 40095, 40096, 40097, 40098, 40099, 40100, 40101, 40102, 40103, 48804, 40104, 40105, 40106, 40107, 40108, 40109, 40110, 40111, 40112, 40113, 40114, 40115, 40116, 40117, 40118, 40119, 40120, 40121, 40122, 40123, 40124, 40125, 40126, 40127, 40128, 40129, 40130, 48805, 48806, 40131, 40132, 48807, 40133, 40134, 40135, 48808, 40136, 40137, 40138, 40139, 40140, 40141, 40142, 48809, 48810, 40143, 40144, 40145, 48811, 40146, 40147, 40148, 40149, 40150, 40151, 48812, 40152, 40153, 40154, 40155, 40156, 40157, 40158, 40159, 40160, 40161, 40162, 40163, 40164, 40165, 40166, 40167, 40168, 40169, 40170, 48813, 40171, 40172, 40173, 40174, 40175, 40176, 40177, 48814, 40178, 40179, 40180, 40181, 40182, 40183, 40184, 40185, 40186, 40187, 40188, 40189, 40190, 40257, 40258, 40259, 40260, 40261, 40262, 40263, 40264, 40265, 40266, 40267, 40268, 40269, 40270, 48815, 40271, 40272, 40273, 48816, 40274, 40275, 40276, 40277, 40278, 40279, 40280, 40281, 40282, 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, 40321, 40322, 40323, 40324, 40325, 40326, 40327, 40328, 40329, 48817, 40330, 40331, 40332, 40333, 40334, 40335, 48818, 48819, 40336, 40337, 48820, 40338, 40339, 40340, 48821, 40341, 48822, 40342, 40343, 40344, 40345, 48823, 48824, 48825, 40346, 40347, 40348, 40349, 40350, 40351, 40352, 40353, 40354, 40355, 48826, 40356, 40357, 40358, 48827, 40359, 40360, 40361, 48828, 40362, 40363, 40364, 40365, 40366, 40367, 40368, 48829, 40369, 40370, 40371, 40372, 40373, 40374, 40375, 40376, 40377, 40378, 40379, 48830, 48831, 40380, 40381, 48832, 40382, 40383, 40384, 48833, 40385, 40386, 40387, 40388, 40389, 40390, 40391, 48834, 48835, 40392, 48836, 40393, 48837, 40394, 40395, 40396, 40397, 40398, 40399, 48838, 48839, 40400, 40401, 48840, 48841, 48842, 40402, 48843, 48844, 48845, 40403, 40404, 40405, 40406, 48846, 48847, 48848, 40407, 48849, 48850, 48851, 40408, 40409, 40410, 48852, 48853, 40411, 48854, 48855, 40412, 40413, 48856, 40414, 40415, 40416, 48857, 40417, 40418, 40419, 40420, 40421, 40422, 40423, 48858, 48859, 40424, 48860, 48861, 48862, 40425, 40426, 40427, 40428, 40429, 40430, 48863, 48864, 40431, 40432, 48865, 40433, 40434, 40435, 48866, 40436, 40437, 48867, 40438, 40439, 40440, 40441, 48868, 48869, 40442, 48870, 40443, 48871, 40444, 40445, 40446, 48872, 40513, 48873, 48874, 40514, 40515, 40516, 48875, 40517, 40518, 40519, 48876, 40520, 40521, 40522, 40523, 40524, 40525, 40526, 40527, 48877, 40528, 40529, 40530, 40531, 40532, 40533, 40534, 40535, 40536, 40537, 48878, 48879, 40538, 40545, 48880, 48881, 40546, 48882, 48883, 48884, 48885, 40547, 40548, 40549, 40550, 40551, 48886, 48887, 48888, 48889, 48890, 48891, 48892, 40552, 48893, 40553, 48894, 40554, 49057, 49058, 40555, 40556, 49059, 40557, 40558, 40559, 49060, 40560, 40561, 40562, 40563, 40564, 40565, 40566, 49061, 49062, 40567, 49063, 40568, 49064, 40569, 40570, 40577, 40578, 40579, 40580, 49065, 49066, 49067, 40581, 49068, 40582, 40583, 40584, 49069, 40585, 49070, 49071, 40586, 40587, 40588, 40589, 49072, 49073, 49074, 49075, 49076, 49077, 40590, 40591, 40592, 49078, 49079, 49080, 49081, 40593, 40594, 40595, 49082, 40596, 40597, 40598, 49083, 40599, 40600, 40601, 40602, 40603, 40604, 40605, 49084, 49085, 40606, 49086, 49087, 40607, 40608, 40609, 40610, 40611, 40612, 40613, 49088, 49089, 40614, 40615, 49090, 40616, 40617, 40618, 49091, 49092, 49093, 40619, 49094, 40620, 40621, 49095, 49096, 49097, 40622, 49098, 40623, 49099, 40624, 49100, 40625, 40626, 40627, 40628, 49101, 49102, 40629, 40630, 49103, 40631, 40632, 40633, 49104, 40634, 40635, 40636, 40637, 40638, 40639, 40640, 49105, 49106, 40641, 49107, 49108, 49109, 40642, 40643, 40644, 40645, 40646, 40647, 49110, 49111, 40648, 40649, 49112, 40650, 40651, 40652, 40653, 40654, 40655, 40656, 40657, 40658, 40659, 40660, 49113, 40661, 40662, 49114, 40663, 49115, 40664, 40665, 40666, 40667, 40668, 40669, 49116, 49117, 40670, 40671, 49118, 40672, 40673, 40674, 49119, 40675, 40676, 40677, 40678, 40679, 40680, 40681, 49120, 49121, 40682, 49122, 40683, 49123, 40684, 40685, 40686, 40687, 40688, 40689, 49124, 49125, 40690, 40691, 49126, 40692, 40693, 40694, 49127, 40695, 40696, 40697, 40698, 40699, 40700, 40701, 49128, 49129, 40702, 49130, 40769, 49131, 40770, 40771, 40772, 40773, 40774, 40775, 49132, 49133, 40776, 40777, 49134, 40778, 40779, 40780, 49135, 49136, 49137, 40781, 40782, 40783, 40784, 40785, 49138, 49139, 40786, 49140, 40787, 49141, 40788, 40789, 40790, 40791, 40792, 40793, 49142, 49143, 40794, 40801, 49144, 40802, 40803, 40804, 49145, 40805, 40806, 40807, 40808, 40809, 40810, 40811, 49146, 49147, 40812, 40813, 49148, 49149, 40814, 40815, 40816, 40817, 40818, 40819, 49150, 49313, 40820, 40821, 49314, 40822, 40823, 40824, 49315, 40825, 40826, 40833, 40834, 40835, 40836, 40837, 49316, 49317, 40838, 40839, 40840, 49318, 40841, 40842, 40843, 40844, 40845, 40846, 49319, 49320, 40847, 40848, 49321, 40849, 40850, 40851, 49322, 40852, 40853, 40854, 40855, 40856, 40857, 40858, 49323, 49324, 40859, 49325, 40860, 49326, 40861, 40862, 40863, 40864, 40865, 40866, 49327, 49328, 40867, 40868, 49329, 40869, 40870, 40871, 49330, 40872, 40873, 40874, 40875, 40876, 40877, 40878, 49331, 49332, 40879, 49333, 40880, 49334, 40881, 49335, 40882, 40883, 40884, 40885, 49336, 49337, 40886, 40887, 49338, 40888, 40889, 40890, 49339, 40891, 40892, 40893, 40894, 40895, 49340, 40896, 49341, 49342, 40897, 49343, 40898, 49344, 49345, 49346, 49347, 49348, 49349, 49350, 49351, 40899, 40900, 40901, 49352, 40902, 40903, 40904, 49353, 40905, 40906, 40907, 40908, 40909, 40910, 40911, 49354, 40912, 40913, 49355, 40914, 40915, 40916, 40917, 40918, 40919, 40920, 40921, 49356, 49357, 40922, 40923, 49358, 40924, 40925, 40926, 49359, 49360, 49361, 40927, 40928, 40929, 40930, 49362, 49363, 49364, 40931, 49365, 49366, 49367, 49368, 40932, 40933, 40934, 49369, 40935, 49370, 49371, 40936, 40937, 49372, 40938, 49373, 49374, 49375, 40939, 49376, 40940, 40941, 40942, 40943, 40944, 49377, 49378, 40945, 49379, 49380, 49381, 49382, 40946, 40947, 40948, 40949, 40950, 49383, 49384, 40951, 40952, 49385, 40953, 40954, 40955, 49386, 40956, 40957, 40958, 41025, 41026, 41027, 41028, 49387, 49388, 41029, 49389, 49390, 49391, 41030, 41031, 41032, 41033, 41034, 41035, 49392, 49393, 41036, 41037, 49394, 41038, 49395, 41039, 49396, 41040, 41041, 41042, 41043, 41044, 41045, 41046, 49397, 41047, 41048, 41049, 41050, 49398, 41057, 41058, 41059, 41060, 41061, 41062, 49399, 41063, 41064, 41065, 49400, 41066, 41067, 41068, 49401, 41069, 41070, 41071, 41072, 41073, 41074, 41075, 41076, 41077, 41078, 41079, 41080, 41081, 41082, 41089, 41090, 41091, 41092, 41093, 49402, 49403, 41094, 41095, 49404, 41096, 41097, 41098, 49405, 41099, 49406, 41100, 41101, 41102, 41103, 41104, 49569, 49570, 41105, 49571, 41106, 49572, 49573, 41107, 41108, 41109, 41110, 41111, 49574, 49575, 41112, 41113, 49576, 41114, 41115, 41116, 49577, 41117, 41118, 41119, 41120, 41121, 41122, 41123, 49578, 49579, 41124, 49580, 41125, 49581, 41126, 41127, 41128, 41129, 41130, 41131, 49582, 41132, 41133, 41134, 49583, 41135, 41136, 41137, 49584, 41138, 41139, 41140, 41141, 41142, 41143, 41144, 49585, 49586, 41145, 41146, 49587, 49588, 41147, 41148, 41149, 41150, 41151, 41152, 49589, 41153, 41154, 41155, 41156, 41157, 41158, 41159, 41160, 41161, 41162, 41163, 41164, 41165, 41166, 41167, 41168, 41169, 41170, 41171, 41172, 41173, 41174, 41175, 41176, 41177, 41178, 41179, 49590, 49591, 41180, 41181, 49592, 41182, 41183, 41184, 49593, 41185, 49594, 41186, 41187, 41188, 41189, 41190, 49595, 49596, 41191, 49597, 41192, 49598, 49599, 49600, 41193, 41194, 41195, 49601, 49602, 49603, 41196, 41197, 41198, 41199, 41200, 41201, 49604, 41202, 41203, 41204, 41205, 41206, 41207, 41208, 41209, 49605, 41210, 49606, 41211, 49607, 41212, 41213, 41214, 41281, 41282, 41283, 49608, 41284, 41285, 41286, 41287, 41288, 41289, 41290, 41291, 41292, 41293, 41294, 41295, 41296, 41297, 41298, 41299, 41300, 41301, 41302, 49609, 49610, 41303, 41304, 41305, 41306, 41313, 41314, 49611, 41315, 41316, 41317, 49612, 41318, 41319, 41320, 49613, 41321, 41322, 41323, 41324, 41325, 41326, 41327, 49614, 49615, 41328, 49616, 41329, 49617, 41330, 41331, 41332, 41333, 41334, 41335, 49618, 49619, 41336, 41337, 49620, 41338, 41345, 41346, 41347, 41348, 41349, 41350, 41351, 41352, 41353, 41354, 41355, 41356, 41357, 41358, 41359, 49621, 41360, 41361, 41362, 41363, 41364, 41365, 49622, 49623, 41366, 41367, 49624, 41368, 41369, 41370, 49625, 49626, 49627, 41371, 41372, 41373, 41374, 41375, 49628, 49629, 41376, 49630, 41537, 49631, 41538, 41539, 41540, 41541, 41542, 41543, 49632, 41544, 41545, 41546, 41547, 41548, 41549, 41550, 41551, 41552, 41553, 41554, 41555, 41556, 41557, 41558, 41559, 41560, 41561, 41562, 49633, 41569, 41570, 41571, 41572, 41573, 41574, 41575, 49634, 41576, 41577, 41578, 41579, 41580, 41581, 41582, 41583, 41584, 41585, 41586, 41587, 41588, 41589, 41590, 41591, 41592, 41593, 41594, 41601, 41602, 41603, 41604, 41605, 41606, 41607, 41608, 49635, 49636, 41609, 41610, 49637, 41611, 41612, 41613, 49638, 41614, 41615, 41616, 41617, 41618, 41619, 41620, 49639, 49640, 41621, 49641, 41622, 41623, 41624, 41625, 41626, 41627, 41628, 41629, 49642, 41630, 41631, 41632, 49643, 41793, 41794, 41795, 49644, 41796, 41797, 41798, 41799, 41800, 41801, 41802, 49645, 41803, 41804, 41805, 41806, 41807, 41808, 41809, 41810, 41811, 41812, 41813, 49646, 49647, 41814, 41815, 49648, 41816, 41817, 41818, 49649, 41825, 41826, 41827, 41828, 41829, 41830, 41831, 49650, 49651, 41832, 49652, 41833, 49653, 41834, 41835, 41836, 41837, 41838, 41839, 41840, 41841, 41842, 41843, 41844, 41845, 41846, 41847, 41848, 41849, 41850, 41857, 41858, 41859, 41860, 41861, 41862, 41863, 41864, 41865, 41866, 41867, 41868, 41869, 41870, 41871, 41872, 41873, 49654, 49655, 41874, 41875, 49656, 41876, 41877, 49657, 49658, 41878, 49659, 41879, 41880, 41881, 41882, 41883, 49660, 49661, 41884, 49662, 41885, 49825, 49826, 41886, 41887, 49827, 49828, 41888, 49829, 49830, 42049, 42050, 49831, 42051, 49832, 42052, 49833, 42053, 42054, 49834, 42055, 42056, 42057, 42058, 49835, 49836, 42059, 49837, 49838, 49839, 42060, 42061, 42062, 42063, 42064, 42065, 49840, 49841, 42066, 42067, 49842, 42068, 42069, 42070, 49843, 42071, 42072, 42073, 42074, 42081, 42082, 42083, 49844, 49845, 42084, 49846, 49847, 49848, 42085, 42086, 42087, 42088, 42089, 42090, 49849, 42091, 42092, 42093, 49850, 42094, 42095, 42096, 42097, 42098, 42099, 42100, 42101, 42102, 42103, 42104, 42105, 42106, 42113, 42114, 42115, 49851, 42116, 42117, 42118, 42119, 42120, 42121, 42122, 42123, 42124, 42125, 42126, 42127, 42128, 42129, 42130, 42131, 42132, 42133, 42134, 42135, 42136, 42137, 42138, 42139, 42140, 42141, 42142, 42143, 42144, 42305, 42306, 42307, 42308, 42309, 49852, 49853, 42310, 42311, 49854, 42312, 42313, 42314, 49855, 42315, 42316, 42317, 42318, 42319, 42320, 42321, 49856, 49857, 42322, 49858, 49859, 49860, 42323, 42324, 42325, 42326, 42327, 42328, 49861, 42329, 42330, 42337, 42338, 42339, 42340, 42341, 42342, 42343, 42344, 42345, 42346, 42347, 42348, 42349, 42350, 42351, 42352, 42353, 42354, 49862, 42355, 42356, 42357, 42358, 42359, 42360, 49863, 42361, 42362, 42369, 42370, 42371, 42372, 42373, 42374, 42375, 42376, 42377, 42378, 42379, 42380, 42381, 42382, 42383, 42384, 42385, 49864, 42386, 42387, 42388, 42389, 42390, 42391, 42392, 42393, 42394, 42395, 42396, 42397, 42398, 42399, 42400, 42561, 42562, 42563, 42564, 42565, 42566, 42567, 42568, 42569, 42570, 42571, 42572, 42573, 42574, 42575, 42576, 42577, 42578, 42579, 42580, 49865, 49866, 42581, 42582, 49867, 42583, 42584, 42585, 49868, 42586, 42593, 42594, 42595, 42596, 42597, 42598, 49869, 49870, 42599, 49871, 42600, 49872, 42601, 49873, 42602, 42603, 42604, 42605, 49874, 49875, 42606, 42607, 42608, 42609, 42610, 42611, 49876, 42612, 42613, 42614, 42615, 42616, 42617, 42618, 42625, 42626, 42627, 42628, 49877, 42629, 42630, 42631, 42632, 42633, 42634, 42635, 49878, 42636, 42637, 42638, 42639, 42640, 42641, 42642, 42643, 42644, 42645, 42646, 42647, 42648, 42649, 42650, 42651, 42652, 42653, 42654, 49879, 42655, 42656, 42817, 42818, 42819, 42820, 42821, 49880, 42822, 42823, 42824, 49881, 42825, 42826, 42827, 49882, 42828, 42829, 42830, 42831, 42832, 42833, 42834, 49883, 49884, 42835, 42836, 42837, 42838, 42839, 42840, 42841, 42842, 42849, 42850, 42851, 42852, 42853, 42854, 42855, 42856, 42857, 42858, 42859, 42860, 42861, 42862, 42863, 42864, 42865, 42866, 42867, 42868, 42869, 42870, 42871, 49885, 42872, 42873, 42874, 42881, 42882, 42883, 49886, 49887, 42884, 42885, 49888, 42886, 42887, 42888, 49889, 42889, 42890, 42891, 42892, 42893, 42894, 42895, 49890, 49891, 42896, 42897, 42898, 49892, 42899, 42900, 42901, 42902, 42903, 42904, 49893, 42905, 42906, 42907, 42908, 42909, 42910, 42911, 42912, 43073, 43074, 43075, 43076, 43077, 43078, 43079, 43080, 43081, 43082, 43083, 49894, 49895, 43084, 43085, 43086, 43087, 43088, 43089, 43090, 43091, 43092, 43093, 43094, 43095, 43096, 43097, 43098, 43105, 43106, 43107, 43108, 43109, 43110, 43111, 43112, 43113, 43114, 43115, 43116, 43117, 43118, 43119, 43120, 43121, 43122, 43123, 49896, 43124, 43125, 43126, 43127, 43128, 43129, 43130, 43137, 43138, 43139, 43140, 43141, 43142, 43143, 43144, 43145, 43146, 43147, 43148, 43149, 43150, 43151, 43152, 43153, 43154, 43155, 43156, 49897, 43157, 43158, 43159, 43160, 43161, 43162, 43163, 43164, 43165, 43166, 43167, 43168, 43329, 43330, 43331, 43332, 43333, 43334, 43335, 43336, 43337, 43338, 43339, 43340, 43341, 43342, 43343, 49898, 43344, 43345, 43346, 43347, 43348, 43349, 43350, 43351, 43352, 43353, 43354, 43361, 43362, 43363, 43364, 49899, 43365, 43366, 49900, 43367, 49901, 43368, 43369, 43370, 43371, 43372, 43373, 43374, 43375, 43376, 43377, 43378, 43379, 43380, 43381, 43382, 43383, 43384, 43385, 43386, 43393, 43394, 43395, 43396, 43397, 43398, 43399, 43400, 43401, 43402, 43403, 43404, 43405, 43406, 43407, 49902, 49903, 43408, 43409, 49904, 43410, 43411, 43412, 49905, 43413, 43414, 43415, 43416, 43417, 43418, 43419, 49906, 49907, 43420, 43421, 43422, 49908, 49909, 43423, 43424, 43585, 43586, 49910, 49911, 49912, 43587, 43588, 49913, 43589, 49914, 43590, 49915, 43591, 43592, 43593, 43594, 43595, 43596, 43597, 49916, 49917, 43598, 49918, 50081, 50082, 50083, 43599, 43600, 43601, 43602, 43603, 50084, 50085, 43604, 43605, 50086, 43606, 43607, 43608, 50087, 43609, 43610, 43617, 43618, 43619, 43620, 43621, 50088, 50089, 43622, 50090, 50091, 50092, 43623, 43624, 43625, 43626, 43627, 43628, 50093, 43629, 43630, 43631, 50094, 43632, 50095, 43633, 50096, 43634, 43635, 43636, 43637, 43638, 43639, 43640, 50097, 43641, 43642, 43649, 43650, 50098, 43651, 43652, 43653, 43654, 43655, 43656, 43657, 43658, 43659, 43660, 43661, 43662, 43663, 43664, 43665, 43666, 43667, 43668, 43669, 43670, 43671, 43672, 43673, 43674, 43675, 43676, 43677, 43678, 43679, 43680, 43841, 43842, 43843, 43844, 50099, 50100, 43845, 43846, 50101, 43847, 43848, 43849, 50102, 43850, 43851, 43852, 43853, 43854, 43855, 43856, 50103, 50104, 43857, 50105, 50106, 50107, 43858, 43859, 43860, 43861, 43862, 43863, 50108, 50109, 43864, 43865, 50110, 43866, 43873, 43874, 50111, 43875, 43876, 43877, 43878, 43879, 43880, 43881, 50112, 50113, 43882, 50114, 43883, 50115, 43884, 43885, 43886, 43887, 43888, 43889, 50116, 43890, 43891, 43892, 50117, 43893, 43894, 43895, 43896, 43897, 43898, 43905, 43906, 43907, 43908, 43909, 43910, 43911, 43912, 43913, 50118, 43914, 43915, 43916, 43917, 43918, 43919, 43920, 50119, 43921, 43922, 43923, 50120, 43924, 43925, 43926, 43927, 43928, 43929, 43930, 43931, 43932, 43933, 43934, 43935, 43936, 44097, 44098, 44099, 50121, 44100, 44101, 44102, 44103, 44104, 44105, 50122, 50123, 44106, 44107, 50124, 44108, 44109, 44110, 50125, 44111, 44112, 44113, 44114, 44115, 44116, 44117, 50126, 50127, 44118, 50128, 44119, 50129, 44120, 44121, 44122, 44129, 44130, 44131, 50130, 44132, 44133, 44134, 50131, 44135, 44136, 44137, 50132, 44138, 44139, 44140, 44141, 44142, 44143, 44144, 44145, 44146, 44147, 44148, 44149, 50133, 44150, 44151, 44152, 44153, 44154, 44161, 44162, 44163, 44164, 44165, 44166, 44167, 44168, 44169, 44170, 44171, 44172, 44173, 44174, 44175, 44176, 44177, 44178, 44179, 44180, 44181, 44182, 44183, 44184, 44185, 44186, 44187, 44188, 44189, 50134, 44190, 44191, 44192, 50135, 44353, 44354, 44355, 50136, 44356, 44357, 44358, 44359, 44360, 44361, 44362, 50137, 50138, 44363, 50139, 44364, 50140, 44365, 44366, 44367, 44368, 44369, 44370, 50141, 44371, 44372, 44373, 44374, 44375, 44376, 44377, 44378, 44385, 44386, 44387, 44388, 44389, 44390, 44391, 50142, 44392, 44393, 44394, 44395, 44396, 44397, 44398, 44399, 44400, 44401, 44402, 50143, 50144, 44403, 44404, 50145, 44405, 44406, 44407, 50146, 44408, 44409, 44410, 44417, 44418, 44419, 44420, 50147, 50148, 44421, 50149, 44422, 50150, 44423, 44424, 44425, 44426, 44427, 44428, 50151, 44429, 44430, 44431, 44432, 44433, 44434, 44435, 44436, 44437, 44438, 44439, 44440, 44441, 44442, 44443, 44444, 44445, 44446, 44447, 50152, 44448, 44609, 44610, 44611, 44612, 44613, 44614, 50153, 44615, 44616, 44617, 50154, 44618, 44619, 44620, 44621, 44622, 44623, 44624, 44625, 44626, 44627, 44628, 44629, 44630, 44631, 44632, 44633, 44634, 44641, 44642, 44643, 44644, 44645, 44646, 50155, 44647, 44648, 44649, 50156, 44650, 44651, 44652, 50157, 44653, 44654, 44655, 44656, 44657, 44658, 44659, 50158, 50159, 44660, 50160, 44661, 50161, 44662, 44663, 44664, 44665, 44666, 44673, 50162, 44674, 44675, 44676, 50163, 44677, 44678, 44679, 50164, 44680, 44681, 44682, 44683, 44684, 44685, 44686, 50165, 44687, 44688, 44689, 44690, 50166, 44691, 44692, 44693, 44694, 44695, 44696, 50167, 50168, 44697, 44698, 50169, 44699, 44700, 44701, 50170, 44702, 44703, 44704, 44865, 44866, 44867, 44868, 50171, 50172, 44869, 50173, 44870, 50174, 44871, 44872, 44873, 44874, 44875, 44876, 44877, 44878, 44879, 44880, 44881, 44882, 44883, 44884, 44885, 44886, 44887, 44888, 44889, 44890, 44897, 44898, 44899, 44900, 44901, 44902, 44903, 44904, 44905, 44906, 44907, 44908, 44909, 44910, 50337, 50338, 44911, 44912, 50339, 44913, 44914, 50340, 50341, 50342, 44915, 44916, 44917, 44918, 44919, 44920, 50343, 50344, 44921, 50345, 44922, 50346, 44929, 44930, 44931, 44932, 44933, 44934, 50347, 50348, 44935, 44936, 50349, 44937, 44938, 44939, 50350, 44940, 44941, 44942, 44943, 44944, 44945, 44946, 50351, 50352, 44947, 50353, 44948, 50354, 44949, 44950, 44951, 44952, 44953, 44954, 50355, 50356, 44955, 44956, 50357, 44957, 44958, 44959, 50358, 44960, 45121, 45122, 45123, 45124, 45125, 45126, 50359, 50360, 45127, 50361, 50362, 50363, 45128, 45129, 45130, 45131, 45132, 45133, 50364, 50365, 45134, 45135, 45136, 45137, 45138, 45139, 45140, 45141, 45142, 45143, 45144, 45145, 45146, 45153, 45154, 45155, 45156, 45157, 45158, 50366, 45159, 45160, 45161, 45162, 45163, 45164, 45165, 45166, 45167, 45168, 45169, 45170, 45171, 45172, 45173, 45174, 45175, 45176, 45177, 45178, 45185, 45186, 45187, 45188, 45189, 45190, 45191, 45192, 45193, 45194, 45195, 45196, 45197, 45198, 50367, 50368, 45199, 45200, 50369, 45201, 45202, 50370, 50371, 45203, 45204, 45205, 45206, 45207, 45208, 45209, 50372, 50373, 45210, 50374, 50375, 50376, 45211, 45212, 45213, 45214, 45215, 45216, 50377, 50378, 45377, 45378, 50379, 45379, 45380, 45381, 50380, 45382, 45383, 45384, 45385, 45386, 45387, 45388, 50381, 50382, 45389, 50383, 45390, 50384, 45391, 45392, 45393, 45394, 45395, 45396, 50385, 45397, 45398, 45399, 50386, 45400, 45401, 45402, 50387, 45409, 45410, 45411, 45412, 45413, 45414, 45415, 50388, 50389, 45416, 50390, 50391, 50392, 45417, 45418, 45419, 45420, 45421, 45422, 50393, 45423, 45424, 45425, 45426, 45427, 45428, 45429, 45430, 45431, 45432, 45433, 45434, 45441, 45442, 45443, 45444, 45445, 45446, 45447, 45448, 45449, 45450, 45451, 45452, 45453, 45454, 45455, 50394, 50395, 45456, 45457, 50396, 45458, 45459, 45460, 50397, 45461, 45462, 45463, 45464, 45465, 45466, 45467, 50398, 50399, 45468, 50400, 45469, 50401, 45470, 45471, 45472, 45633, 45634, 45635, 50402, 50403, 45636, 45637, 50404, 45638, 45639, 45640, 50405, 45641, 45642, 45643, 45644, 45645, 45646, 45647, 50406, 45648, 45649, 45650, 45651, 50407, 45652, 45653, 45654, 45655, 45656, 45657, 50408, 45658, 45665, 45666, 45667, 45668, 45669, 45670, 45671, 45672, 45673, 45674, 45675, 45676, 45677, 45678, 45679, 45680, 45681, 45682, 45683, 50409, 45684, 45685, 45686, 45687, 45688, 45689, 50410, 45690, 45697, 45698, 45699, 45700, 45701, 45702, 50411, 45703, 45704, 45705, 45706, 45707, 45708, 45709, 45710, 45711, 45712, 45713, 45714, 45715, 45716, 45717, 45718, 45719, 45720, 45721, 50412, 45722, 45723, 45724, 45725, 45726, 45727, 45728, 45889, 45890, 45891, 45892, 45893, 45894, 45895, 45896, 45897, 45898, 45899, 45900, 45901, 45902, 45903, 45904, 45905, 45906, 45907, 45908, 50413, 50414, 45909, 45910, 50415, 45911, 45912, 45913, 50416, 45914, 45921, 45922, 45923, 45924, 45925, 45926, 50417, 50418, 45927, 50419, 45928, 50420, 45929, 45930, 45931, 45932, 45933, 45934, 50421, 45935, 45936, 45937, 50422, 45938, 45939, 45940, 50423, 45941, 45942, 45943, 45944, 45945, 45946, 45953, 45954, 45955, 45956, 45957, 45958, 50424, 45959, 45960, 45961, 45962, 45963, 45964, 50425, 45965, 45966, 45967, 45968, 45969, 45970, 45971, 45972, 45973, 45974, 45975, 45976, 45977, 45978, 45979, 45980, 45981, 45982, 45983, 45984, 50426, 46145, 46146, 46147, 46148, 46149, 46150, 50427, 50428, 46151, 46152, 50429, 46153, 46154, 46155, 50430, 46156, 46157, 46158, 46159, 46160, 46161, 46162, 50593, 50594, 46163, 50595, 46164, 50596, 46165, 46166, 46167, 46168, 46169, 46170, 50597, 46177, 46178, 46179, 50598, 46180, 46181, 46182, 50599, 46183, 46184, 46185, 46186, 46187, 46188, 46189, 50600, 46190, 46191, 46192, 46193, 46194, 46195, 46196, 46197, 46198, 46199, 46200, 50601, 50602, 46201, 46202, 50603, 46209, 46210, 46211, 50604, 46212, 46213, 46214, 46215, 46216, 46217, 46218, 50605, 50606, 46219, 46220, 46221, 50607, 46222, 46223, 46224, 46225, 46226, 46227, 46228, 46229, 46230, 46231, 46232, 46233, 46234, 46235, 46236, 46237, 46238, 46239, 46240, 46401, 46402, 46403, 46404, 46405, 46406, 46407, 46408, 46409, 46410, 46411, 46412, 46413, 46414, 46415, 50608, 50609, 46416, 46417, 50610, 46418, 46419, 46420, 50611, 46421, 46422, 46423, 46424, 46425, 46426, 46433, 50612, 50613, 46434, 50614, 46435, 50615, 46436, 46437, 46438, 46439, 46440, 46441, 50616, 50617, 46442, 46443, 50618, 46444, 46445, 46446, 50619, 50620, 46447, 46448, 46449, 46450, 46451, 46452, 50621, 50622, 46453, 50623, 50624, 50625, 46454, 46455, 46456, 46457, 46458, 46465, 50626, 50627, 46466, 46467, 50628, 46468, 46469, 46470, 50629, 46471, 46472, 46473, 46474, 46475, 46476, 46477, 50630, 50631, 46478, 50632, 50633, 50634, 46479, 46480, 46481, 46482, 46483, 46484, 50635, 46485, 46486, 46487, 46488, 46489, 46490, 46491, 46492, 46493, 46494, 46495, 46496, 46657, 46658, 46659, 46660, 46661, 46662, 46663, 46664, 50636, 46665, 46666, 46667, 46668, 46669, 46670, 46671, 46672, 46673, 46674, 46675, 46676, 46677, 46678, 46679, 46680, 46681, 46682, 46689, 46690, 46691, 46692, 46693, 46694, 46695, 46696, 46697, 46698, 46699, 46700, 46701, 46702, 46703, 46704, 50637, 50638, 46705, 46706, 50639, 46707, 46708, 46709, 50640, 46710, 50641, 46711, 46712, 46713, 46714, 46721, 50642, 50643, 46722, 50644, 50645, 50646, 46723, 46724, 46725, 46726, 46727, 46728, 50647, 50648, 46729, 46730, 50649, 46731, 46732, 46733, 50650, 46734, 46735, 46736, 46737, 46738, 46739, 46740, 50651, 50652, 46741, 50653, 46742, 50654, 46743, 46744, 46745, 46746, 46747, 46748, 50655, 46749, 46750, 46751, 50656, 46752, 46913, 46914, 46915, 46916, 46917, 46918, 46919, 46920, 46921, 46922, 46923, 46924, 46925, 46926, 50657, 46927, 46928, 46929, 46930, 46931, 46932, 46933, 50658, 46934, 46935, 46936, 50659, 46937, 46938, 46945, 46946, 46947, 46948, 46949, 46950, 46951, 46952, 46953, 46954, 46955, 46956, 46957, 46958, 46959, 46960, 46961, 46962, 46963, 46964, 46965, 50660, 50661, 46966, 46967, 50662, 46968, 46969, 46970, 50663, 46977, 46978, 46979, 46980, 46981, 46982, 46983, 50664, 50665, 46984, 50666, 46985, 50667, 46986, 46987, 46988, 46989, 50668, 46990, 50669, 46991, 46992, 46993, 50670, 46994, 46995, 46996, 46997, 46998, 46999, 47000, 47001, 47002, 47003, 47004, 47005, 47006, 47007, 47008, 47169, 47170, 47171, 47172, 47173, 47174, 47175, 47176, 50671, 47177, 47178, 47179, 47180, 47181, 47182, 47183, 47184, 47185, 47186, 47187, 47188, 47189, 47190, 47191, 47192, 47193, 47194, 47201, 47202, 47203, 47204, 47205, 47206, 47207, 47208, 47209, 50672, 47210, 47211, 47212, 50673, 47213, 47214, 47215, 47216, 47217, 47218, 47219, 47220, 47221, 47222, 47223, 47224, 47225, 47226, 50674, 47233, 50675, 47234, 47235, 47236, 47237, 47238, 47239, 50676, 47240, 47241, 47242, 47243, 47244, 47245, 47246, 47247, 47248, 47249, 47250, 47251, 47252, 47253, 47254, 47255, 47256, 47257, 47258, 47259, 47260, 47261, 47262, 47263, 47264, 47425, 47426, 50677, 50678, 47427, 47428, 50679, 47429, 47430, 47431, 50680, 47432, 47433, 47434, 47435, 47436, 47437, 47438, 50681, 50682, 47439, 50683, 47440, 50684, 47441, 47442, 47443, 47444, 47445, 47446, 50685, 47447, 47448, 47449, 47450, 47457, 47458, 47459, 47460, 47461, 47462, 47463, 47464, 47465, 47466, 47467, 47468, 47469, 47470, 47471, 50686, 47472, 47473, 47474, 47475, 47476, 47477, 47478, 50849, 47479, 47480, 47481, 47482, 47489, 47490, 47491, 47492, 47493, 47494, 47495, 47496, 47497, 47498, 47499, 47500, 47501, 47502, 47503, 47504, 47505, 47506, 47507, 47508, 47509, 47510, 47511, 50850, 50851, 47512, 47513, 50852, 47514, 47515, 47516, 50853, 47517, 47518, 47519, 47520, 47681, 47682, 47683, 50854, 50855, 47684, 47685, 47686, 50856, 47687, 47688, 47689, 47690, 47691, 47692, 50857, 47693, 47694, 47695, 50858, 47696, 47697, 47698, 50859, 47699, 47700, 47701, 47702, 47703, 47704, 47705, 50860, 47706, 47713, 47714, 47715, 50861, 47716, 47717, 47718, 47719, 47720, 47721, 50862, 50863, 47722, 47723, 50864, 47724, 47725, 50865, 50866, 47726, 50867, 47727, 47728, 47729, 47730, 47731, 50868, 50869, 47732, 50870, 47733, 47734, 47735, 47736, 47737, 47738, 47745, 47746, 50871, 47747, 47748, 47749, 50872, 47750, 47751, 47752, 50873, 47753, 47754, 47755, 47756, 47757, 47758, 47759, 50874, 50875, 47760, 47761, 47762, 47763, 47764, 47765, 47766, 47767, 47768, 47769, 50876, 50877, 47770, 47771, 50878, 47772, 47773, 47774, 50879, 47775, 47776, 47937, 47938, 47939, 47940, 47941, 50880, 50881, 47942, 50882, 47943, 50883, 47944, 47945, 47946, 47947, 47948, 47949, 50884, 50885, 50886, 47950, 50887, 47951, 47952, 47953, 50888, 47954, 50889, 47955, 47956, 47957, 47958, 47959, 50890, 50891, 47960, 50892, 50893, 50894, 47961, 47962, 47969, 50895, 47970, 47971, 50896, 50897, 47972, 47973, 50898, 47974, 47975, 47976, 50899, 47977, 47978, 47979, 47980, 47981, 47982, 47983, 50900, 50901, 47984, 50902, 50903, 50904, 47985, 47986, 47987, 47988, 47989, 47990, 50905, 50906, 47991, 47992, 47993, 47994, 48001, 48002, 48003, 48004, 48005, 48006, 48007, 48008, 48009, 48010, 48011, 48012, 48013, 48014, 48015, 48016, 48017, 48018, 48019, 48020, 48021, 48022, 48023, 48024, 48025, 48026, 48027, 48028, 48029, 48030, 48031, 48032, 48193, 48194, 48195, 48196, 48197, 48198, 48199, 48200, 48201, 48202, 48203, 48204, 48205, 48206, 48207, 48208, 48209, 48210, 50907, 50908, 48211, 48212, 50909, 48213, 48214, 48215, 50910, 48216, 48217, 48218, 48225, 48226, 48227, 48228, 50911, 50912, 48229, 50913, 50914, 50915, 48230, 48231, 48232, 48233, 48234, 48235, 50916, 50917, 48236, 48237, 50918, 48238, 48239, 48240, 50919, 48241, 48242, 48243, 48244, 48245, 48246, 48247, 50920, 50921, 48248, 50922, 48249, 50923, 48250, 48257, 48258, 48259, 48260, 48261, 50924, 48262, 48263, 48264, 50925, 48265, 48266, 48267, 50926, 48268, 48269, 48270, 48271, 48272, 48273, 48274, 50927, 50928, 48275, 48276, 50929, 50930, 48277, 48278, 48279, 48280, 48281, 48282, 50931, 48283, 48284, 48285, 48286, 48287, 48288, 48449, 50932, 48450, 48451, 48452, 48453, 48454, 48455, 48456, 48457, 50933, 48458, 50934, 48459, 48460, 48461, 48462, 48463, 48464, 48465, 48466, 50935, 50936, 48467, 48468, 50937, 48469, 48470, 48471, 50938, 48472, 48473, 48474, 48481, 48482, 48483, 48484, 50939, 50940, 48485, 50941, 48486, 50942, 48487, 48488, 48489, 48490, 48491, 48492, 51105, 48493, 48494, 48495, 48496, 48497, 48498, 48499, 48500, 48501, 48502, 48503, 48504, 48505, 48506, 48513, 48514, 48515, 48516, 48517, 48518, 51106, 48519, 48520, 48521, 48522, 48523, 48524, 48525, 48526, 48527, 48528, 48529, 48530, 48531, 48532, 48533, 48534, 48535, 48536, 48537, 48538, 48539, 48540, 48541, 48542, 48543, 48544, 48705, 48706, 48707, 48708, 48709, 48710, 48711, 48712, 51107, 48713, 48714, 48715, 51108, 48716, 48717, 48718, 48719, 48720, 48721, 48722, 48723, 48724, 48725, 48726, 48727, 48728, 48729, 48730, 48737, 48738, 48739, 48740, 48741, 48742, 48743, 48744, 51109, 48745, 48746, 48747, 51110, 48748, 48749, 48750, 51111, 48751, 48752, 48753, 48754, 48755, 48756, 48757, 48758, 51112, 48759, 51113, 48760, 48761, 48762, 48769, 48770, 48771, 48772, 48773, 51114, 51115, 48774, 48775, 51116, 48776, 48777, 51117, 51118, 48778, 51119, 48779, 48780, 48781, 48782, 48783, 51120, 51121, 48784, 51122, 48785, 51123, 48786, 48787, 48788, 48789, 48790, 48791, 51124, 48792, 48793, 48794, 48795, 48796, 48797, 48798, 48799, 48800, 48961, 48962, 48963, 48964, 48965, 48966, 48967, 48968, 48969, 48970, 48971, 51125, 48972, 48973, 48974, 48975, 48976, 48977, 48978, 48979, 48980, 48981, 48982, 48983, 48984, 48985, 48986, 48993, 48994, 48995, 48996, 48997, 48998, 48999, 49000, 49001, 49002, 49003, 49004, 49005, 49006, 49007, 49008, 49009, 49010, 49011, 51126, 49012, 49013, 49014, 51127, 49015, 49016, 49017, 51128, 49018, 49025, 49026, 49027, 49028, 49029, 49030, 51129, 49031, 49032, 51130, 49033, 49034, 49035, 49036, 49037, 49038, 49039, 49040, 51131, 49041, 49042, 49043, 51132, 49044, 49045, 49046, 51133, 49047, 49048, 49049, 49050, 49051, 49052, 49053, 51134, 49054, 49055, 51135, 49056, 51136, 49217, 49218, 49219, 49220, 49221, 49222, 51137, 49223, 49224, 49225, 51138, 49226, 49227, 49228, 51139, 49229, 49230, 49231, 49232, 49233, 49234, 49235, 51140, 51141, 49236, 51142, 49237, 49238, 49239, 49240, 49241, 49242, 49249, 49250, 49251, 49252, 49253, 49254, 49255, 49256, 49257, 49258, 49259, 49260, 49261, 49262, 49263, 49264, 49265, 49266, 49267, 49268, 49269, 49270, 49271, 49272, 49273, 49274, 49281, 49282, 49283, 49284, 51143, 51144, 49285, 49286, 51145, 49287, 49288, 49289, 51146, 49290, 49291, 49292, 49293, 49294, 49295, 49296, 51147, 51148, 49297, 51149, 49298, 51150, 49299, 49300, 49301, 49302, 49303, 49304, 51151, 51152, 49305, 49306, 51153, 49307, 49308, 49309, 51154, 49310, 49311, 49312, 49473, 51155, 49474, 49475, 51156, 51157, 49476, 51158, 49477, 51159, 49478, 49479, 49480, 49481, 49482, 49483, 51160, 51161, 49484, 49485, 51162, 49486, 49487, 49488, 51163, 49489, 49490, 49491, 49492, 49493, 49494, 49495, 51164, 51165, 49496, 51166, 51167, 51168, 49497, 49498, 49505, 49506, 49507, 49508, 51169, 49509, 49510, 49511, 49512, 49513, 49514, 49515, 49516, 49517, 49518, 49519, 49520, 49521, 49522, 49523, 49524, 49525, 49526, 49527, 49528, 51170, 49529, 49530, 49537, 49538, 49539, 49540, 49541, 49542, 49543, 49544, 49545, 49546, 49547, 49548, 49549, 49550, 49551, 49552, 49553, 49554, 49555, 49556, 49557, 49558, 49559, 49560, 49561, 49562, 49563, 49564, 49565, 49566, 49567, 49568, 51171, 51172, 49729, 49730, 51173, 49731, 49732, 49733, 51174, 49734, 51175, 49735, 49736, 49737, 49738, 49739, 51176, 51177, 49740, 51178, 49741, 51179, 49742, 49743, 49744, 49745, 49746, 49747, 51180, 51181, 49748, 49749, 51182, 49750, 49751, 49752, 51183, 49753, 49754, 49761, 49762, 49763, 49764, 49765, 51184, 51185, 49766, 51186, 49767, 51187, 49768, 49769, 49770, 49771, 49772, 49773, 51188, 51189, 49774, 49775, 51190, 49776, 49777, 49778, 51191, 49779, 49780, 49781, 49782, 49783, 49784, 49785, 51192, 51193, 49786, 51194, 51195, 51196, 49793, 49794, 49795, 49796, 49797, 49798, 51197, 49799, 49800, 49801, 51198, 49802, 49803, 49804, 51361, 49805, 49806, 49807, 49808, 49809, 49810, 49811, 49812, 51362, 49813, 49814, 49815, 49816, 49817, 49818, 49819, 49820, 49821, 49822, 51363, 51364, 49823, 49824, 51365, 49985, 49986, 49987, 51366, 49988, 49989, 49990, 49991, 51367, 49992, 49993, 51368, 51369, 49994, 51370, 49995, 51371, 49996, 49997, 49998, 51372, 49999, 50000, 51373, 51374, 50001, 50002, 51375, 50003, 50004, 50005, 51376, 50006, 50007, 50008, 50009, 50010, 50017, 50018, 50019, 50020, 50021, 51377, 50022, 51378, 50023, 50024, 50025, 50026, 50027, 50028, 51379, 51380, 50029, 50030, 51381, 50031, 50032, 50033, 50034, 50035, 50036, 50037, 50038, 50039, 50040, 50041, 50042, 50049, 50050, 51382, 50051, 51383, 50052, 50053, 50054, 50055, 50056, 50057, 51384, 51385, 50058, 50059, 51386, 50060, 50061, 50062, 51387, 50063, 50064, 50065, 50066, 50067, 50068, 50069, 50070, 51388, 50071, 51389, 50072, 51390, 50073, 50074, 50075, 50076, 50077, 50078, 51391, 50079, 50080, 50241, 51392, 50242, 50243, 50244, 51393, 50245, 50246, 50247, 50248, 50249, 50250, 50251, 50252, 51394, 50253, 51395, 50254, 50255, 50256, 50257, 50258, 50259, 50260, 50261, 51396, 51397, 50262, 50263, 51398, 50264, 50265, 50266, 51399, 50273, 50274, 50275, 50276, 51400, 50277, 50278, 51401, 50279, 50280, 51402, 50281, 51403, 50282, 50283, 50284, 50285, 50286, 50287, 51404, 50288, 50289, 50290, 51405, 50291, 50292, 50293, 51406, 50294, 50295, 50296, 50297, 50298, 50305, 50306, 51407, 50307, 50308, 50309, 50310, 51408, 50311, 50312, 50313, 50314, 50315, 50316, 51409, 51410, 50317, 50318, 51411, 50319, 50320, 50321, 51412, 50322, 50323, 50324, 50325, 50326, 50327, 50328, 50329, 50330, 50331, 50332, 50333, 51413, 50334, 50335, 50336, 50497, 50498, 50499, 51414, 51415, 50500, 50501, 51416, 50502, 50503, 50504, 51417, 50505, 50506, 50507, 50508, 50509, 50510, 50511, 51418, 51419, 50512, 51420, 50513, 51421, 50514, 50515, 50516, 50517, 50518, 50519, 51422, 51423, 50520, 50521, 51424, 50522, 50529, 50530, 51425, 50531, 50532, 50533, 50534, 50535, 50536, 50537, 51426, 50538, 50539, 51427, 50540, 51428, 50541, 50542, 50543, 50544, 50545, 50546, 51429, 51430, 50547, 50548, 51431, 50549, 51432, 51433, 51434, 51435, 50550, 50551, 50552, 50553, 50554, 50561, 51436, 51437, 50562, 51438, 50563, 51439, 50564, 50565, 50566, 51440, 50567, 50568, 51441, 50569, 50570, 50571, 51442, 50572, 50573, 50574, 51443, 50575, 50576, 50577, 50578, 50579, 50580, 50581, 51444, 51445, 50582, 50583, 50584, 51446, 50585, 50586, 50587, 50588, 50589, 50590, 51447, 51448, 50591, 50592, 51449, 50753, 50754, 50755, 51450, 50756, 50757, 50758, 50759, 50760, 50761, 50762, 51451, 51452, 50763, 51453, 50764, 51454, 50765, 50766, 50767, 50768, 50769, 50770]); + encode2 = $toNativeArray($kindUint16, [41386, 0, 0, 41390, 41391, 0, 0, 41392, 41393, 0, 0, 41683, 41684, 0, 0, 0, 41381, 41382, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41654, 0, 41415, 41416, 0, 0, 0, 0, 0, 0, 0, 41432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43513, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43514, 0, 43515, 43516, 43517, 43518, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41702, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41417, 0, 0, 0, 0, 0, 41653, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42916, 0, 0, 41696, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41701, 41698, 0, 0, 0, 42969, 0, 0, 0, 0, 41418, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43255, 43256, 0, 0, 0, 0, 0, 0, 43259, 43260, 43261, 43262, 0, 42416, 42417, 42418, 42419, 42420, 42421, 42422, 42423, 42424, 42425, 0, 0, 0, 0, 0, 0, 42401, 42402, 42403, 42404, 42405, 42406, 42407, 42408, 42409, 42410, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41447, 41448, 41446, 41449, 41450, 41685, 41688, 41686, 41689, 41687, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41633, 0, 41634, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41635, 0, 41427, 41636, 0, 0, 0, 41428, 41460, 0, 0, 41461, 0, 0, 0, 41651, 0, 41650, 0, 0, 0, 0, 0, 0, 0, 0, 41454, 0, 0, 41456, 41412, 0, 41424, 0, 0, 0, 0, 41387, 0, 41468, 41469, 41467, 41466, 41458, 41459, 0, 41649, 0, 0, 0, 0, 0, 41413, 41457, 0, 0, 0, 0, 0, 0, 41389, 41455, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41430, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41409, 41429, 0, 0, 41410, 41411, 0, 0, 0, 0, 41452, 41453, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41464, 41465, 0, 0, 41462, 41463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41665, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41425, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43239, 43240, 43241, 43242, 43243, 43244, 43245, 43246, 43247, 43248, 43249, 43250, 43251, 43252, 43253, 0, 0, 0, 0, 0, 43495, 43496, 43497, 43498, 43499, 43500, 43501, 43502, 43503, 43504, 43505, 43506, 43507, 43508, 43509, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43469, 43470, 43471, 43472, 43473, 43474, 43475, 43476, 43477, 43478, 43479, 43480, 43481, 43482, 43483, 43484, 43485, 43486, 43487, 43488, 43489, 43490, 43491, 43492, 43493, 43494, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43213, 43214, 43215, 43216, 43217, 43218, 43219, 43220, 43221, 43222, 43223, 43224, 43225, 43226, 43227, 43228, 43229, 43230, 43231, 43232, 43233, 43234, 43235, 43236, 43237, 43238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42657, 42668, 42658, 42669, 0, 0, 0, 0, 0, 0, 0, 0, 42659, 42696, 42695, 42670, 42660, 42690, 42689, 42671, 42662, 42694, 42693, 42673, 42661, 42692, 42691, 42672, 42663, 42684, 42697, 42698, 42679, 42699, 42700, 42674, 42665, 42686, 42701, 42702, 42681, 42703, 42704, 42676, 42664, 42705, 42706, 42680, 42685, 42707, 42708, 42675, 42666, 42709, 42710, 42682, 42687, 42711, 42712, 42677, 42667, 42713, 42714, 42683, 42715, 42716, 42688, 42717, 42718, 42719, 42720, 42721, 42722, 42723, 42724, 42678, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41670, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41441, 41440, 0, 41667, 41671, 41672, 41675, 41674, 41673, 41676, 0, 0, 0, 0, 0, 0, 0, 0, 41443, 41442, 0, 0, 41658, 41657, 0, 0, 0, 0, 41445, 41444, 0, 0, 41656, 41655, 0, 0, 0, 0, 41439, 41438, 41666, 0, 0, 41435, 0, 0, 41437, 41436, 41668, 41669, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41434, 41433, 0, 0, 0, 0, 0, 0, 0, 41679, 41678, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41680, 0, 41681, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41423, 0, 41422, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41660, 41661, 0, 41664, 41659, 41662, 0, 41663, 41677, 41691, 41692, 0, 41693, 41690]); + encode3 = $toNativeArray($kindUint16, [41377, 41378, 41379, 41384, 0, 0, 0, 0, 41396, 41397, 41398, 41399, 41400, 41401, 41402, 41403, 41404, 41405, 0, 41451, 41394, 41395, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43681, 43682, 43683, 43684, 43685, 43686, 43687, 43688, 43689, 43690, 43691, 43692, 43693, 43694, 43695, 43696, 43697, 43698, 43699, 43700, 43701, 43702, 43703, 43704, 43705, 43706, 43707, 43708, 43709, 43710, 43711, 43712, 43713, 43714, 43715, 43716, 43717, 43718, 43719, 43720, 43721, 43722, 43723, 43724, 43725, 43726, 43727, 43728, 43729, 43730, 43731, 43732, 43733, 43734, 43735, 43736, 43737, 43738, 43739, 43740, 43741, 43742, 43743, 43744, 43745, 43746, 43747, 43748, 43749, 43750, 43751, 43752, 43753, 43754, 43755, 43756, 43757, 43758, 43759, 43760, 43761, 43762, 43763, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43937, 43938, 43939, 43940, 43941, 43942, 43943, 43944, 43945, 43946, 43947, 43948, 43949, 43950, 43951, 43952, 43953, 43954, 43955, 43956, 43957, 43958, 43959, 43960, 43961, 43962, 43963, 43964, 43965, 43966, 43967, 43968, 43969, 43970, 43971, 43972, 43973, 43974, 43975, 43976, 43977, 43978, 43979, 43980, 43981, 43982, 43983, 43984, 43985, 43986, 43987, 43988, 43989, 43990, 43991, 43992, 43993, 43994, 43995, 43996, 43997, 43998, 43999, 44000, 44001, 44002, 44003, 44004, 44005, 44006, 44007, 44008, 44009, 44010, 44011, 44012, 44013, 44014, 44015, 44016, 44017, 44018, 44019, 44020, 44021, 44022, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42145, 42146, 42147, 42148, 42149, 42150, 42151, 42152, 42153, 42154, 42155, 42156, 42157, 42158, 42159, 42160, 42161, 42162, 42163, 42164, 42165, 42166, 42167, 42168, 42169, 42170, 42171, 42172, 42173, 42174, 42175, 42176, 42177, 42178, 42179, 42180, 42181, 42182, 42183, 42184, 42185, 42186, 42187, 42188, 42189, 42190, 42191, 42192, 42193, 42194, 42195, 42196, 42197, 42198, 42199, 42200, 42201, 42202, 42203, 42204, 42205, 42206, 42207, 42208, 42209, 42210, 42211, 42212, 42213, 42214, 42215, 42216, 42217, 42218, 42219, 42220, 42221, 42222, 42223, 42224, 42225, 42226, 42227, 42228, 42229, 42230, 42231, 42232, 42233, 42234, 42235, 42236, 42237, 42238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43441, 43442, 43443, 43444, 43445, 43446, 43447, 43448, 43449, 43450, 43451, 43452, 43453, 43454, 43455, 43456, 43457, 43458, 43459, 43460, 43461, 43462, 43463, 43464, 43465, 43466, 43467, 43468, 41695, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43185, 43186, 43187, 43188, 43189, 43190, 43191, 43192, 43193, 43194, 43195, 43196, 43197, 43198, 43199, 43200, 43201, 43202, 43203, 43204, 43205, 43206, 43207, 43208, 43209, 43210, 43211, 43212, 0, 0, 0, 41694, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42953, 42954, 42955, 42956, 42957, 0, 0, 0, 42938, 42939, 42972, 42973, 42974, 42934, 42935, 42936, 42964, 42965, 42966, 42967, 42968, 42913, 42914, 42915, 42917, 42923, 42924, 42925, 42926, 42927, 42928, 42929, 42930, 42931, 42932, 42919, 42920, 42921, 42922, 42941, 42942, 42981, 42982, 42983, 42984, 42977, 42978, 42979, 42943, 42944, 42945, 42946, 42947, 42948, 42949, 42950, 42951, 42952, 42958, 42959, 42960, 42961, 42962, 42963, 42970, 42971, 41699, 42988, 42918, 42976, 42991, 41697, 42940, 42989, 42933, 0, 0, 0, 0, 42937, 42986, 0, 0, 42987, 0, 0, 42975, 0, 41700, 0, 0, 42980, 42990, 42985]); + encode4 = $toNativeArray($kindUint16, [41646, 0, 0, 41652, 0, 0, 41431, 41383, 0, 43171, 0, 0, 41385, 41703, 0, 41414, 41406, 43511, 43512, 41637, 0, 41682, 41380, 41644, 43510, 43180, 0, 43257, 43254, 43258, 41647, 0, 0, 0, 0, 0, 0, 43169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43170, 0, 0, 0, 0, 0, 0, 41407, 43178, 0, 0, 0, 0, 0, 43181, 43436, 0, 0, 0, 0, 0, 0, 43425, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43427, 0, 0, 0, 0, 0, 0, 41408, 43434, 0, 0, 0, 0, 0, 43437, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43172, 43428, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43429, 43174, 43430, 0, 0, 0, 0, 43431, 0, 0, 0, 0, 0, 0, 43176, 43432, 43177, 43433, 0, 0, 0, 0, 0, 0, 43440, 43183, 43439, 0, 0, 0, 0, 0, 0, 43179, 43435, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43182, 43438, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41639, 0, 0, 0, 0, 0, 0, 0, 0, 41648, 0, 0, 0, 0, 0, 0, 0, 41640, 41643, 41642, 41645, 0, 41641, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42433, 42434, 42435, 42436, 42437, 42438, 42439, 42440, 42441, 42442, 42443, 42444, 42445, 42446, 42447, 42448, 42449, 0, 42450, 42451, 42452, 42453, 42454, 42455, 42456, 0, 0, 0, 0, 0, 0, 0, 42465, 42466, 42467, 42468, 42469, 42470, 42471, 42472, 42473, 42474, 42475, 42476, 42477, 42478, 42479, 42480, 42481, 0, 42482, 42483, 42484, 42485, 42486, 42487, 42488, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44193, 44194, 44195, 44196, 44197, 44198, 44200, 44201, 44202, 44203, 44204, 44205, 44206, 44207, 44208, 44209, 44210, 44211, 44212, 44213, 44214, 44215, 44216, 44217, 44218, 44219, 44220, 44221, 44222, 44223, 44224, 44225, 44241, 44242, 44243, 44244, 44245, 44246, 44248, 44249, 44250, 44251, 44252, 44253, 44254, 44255, 44256, 44257, 44258, 44259, 44260, 44261, 44262, 44263, 44264, 44265, 44266, 44267, 44268, 44269, 44270, 44271, 44272, 44273, 0, 44247]); + encode5 = $toNativeArray($kindUint16, [52176, 52182, 52199, 52687, 52712, 52909, 53243, 53410, 53432, 53456, 53469, 53716, 53717, 53720, 53723, 53724, 53725, 53726, 53727, 53728, 53730, 53731, 53732, 53733, 53734, 53736, 53737, 53738, 53739, 53741, 53743, 53744, 53746, 53750, 53754, 53756, 53757, 53758, 53922, 53923, 53927, 53928, 53929, 53930, 53931, 53933, 53938, 53950, 53954, 53955, 53956, 53958, 53959, 53960, 53961, 53962, 53963, 53965, 53966, 53967, 53968, 53969, 53970, 53971, 53972, 53973, 53974, 53975, 53977, 53978, 53982, 53983, 53985, 53986, 53988, 53989, 53990, 53991, 53992, 53993, 53994, 53995, 54000, 54001, 54002, 54003, 54004, 54005, 54007, 54008, 54502, 54524, 54693, 54699, 54702, 54968, 54989, 55243, 55268, 56261, 56292, 56485, 56741, 56789, 56820, 57084, 57086, 57267, 57313, 57320, 57585, 57773, 57837, 58357, 58529, 58537, 58798, 58801, 58802, 58809, 58811, 58812, 58820, 58830, 58832, 58834, 58838, 58874, 58875, 58876, 58878, 59041, 59044, 59047, 59053, 59055, 59056, 59057, 59059, 59063, 59064, 59068, 59076, 59078, 59079, 59082, 59090, 59094, 59097, 59100, 59103, 59105, 59108, 59109, 59110, 59112, 59114, 59115, 59116, 59119, 59121, 59122, 59125, 59126, 59127, 59129, 59297, 59302, 59305, 59306, 59308, 59309, 59312, 59327, 59329, 59334, 59335, 59339, 59341, 59343, 59344, 59347, 59359, 59364, 59366, 59383, 59623, 59624, 59632, 59633, 59639, 59641, 59643, 59646, 59815, 59820, 59852, 59895, 60097, 60133, 60148, 60151, 60156, 60158, 60324, 60327, 60329, 60330, 60346, 60347, 60349, 60353, 60354, 60358, 60359, 60364, 60367, 60368, 60369, 60370, 60376, 60582, 60583, 60586, 60591, 60592, 60593, 60594, 60597, 60600, 60602, 60608, 60609, 60613, 60614, 60617, 60618, 60629, 60637, 60638, 60641, 60644, 60647, 60648, 60663, 60664, 60666, 60833, 60834, 60835, 60910, 61147, 62141, 62202, 62385, 62631, 62702, 63220, 63222, 63416, 63432, 63443, 63707, 63728, 64161, 64162, 64230, 64681]); + encode6 = $toNativeArray($kindUint16, [41889, 41890, 41891, 41892, 41893, 41894, 41895, 41896, 41897, 41898, 41899, 41900, 41901, 41902, 41903, 41904, 41905, 41906, 41907, 41908, 41909, 41910, 41911, 41912, 41913, 41914, 41915, 41916, 41917, 41918, 41919, 41920, 41921, 41922, 41923, 41924, 41925, 41926, 41927, 41928, 41929, 41930, 41931, 41932, 41933, 41934, 41935, 41936, 41937, 41938, 41939, 41940, 41941, 41942, 41943, 41944, 41945, 41946, 41947, 41388, 41949, 41950, 41951, 41952, 41953, 41954, 41955, 41956, 41957, 41958, 41959, 41960, 41961, 41962, 41963, 41964, 41965, 41966, 41967, 41968, 41969, 41970, 41971, 41972, 41973, 41974, 41975, 41976, 41977, 41978, 41979, 41980, 41981, 41638, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41419, 41420, 41470, 41982, 0, 41421, 41948]); + init(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["golang.org/x/text/encoding/simplifiedchinese"] = (function() { + var $pkg = {}, $init, encoding, internal, identifier, transform, utf8, gbkDecoder, gbkEncoder, hzGB2312Decoder, hzGB2312Encoder, arrayType, ptrType, ptrType$1, sliceType$1, gbk, gbk$24ptr, gbk18030, gbk18030$24ptr, hzGB2312, hzGB2312$24ptr, gb18030, decode, encode0, encode1, encode2, encode3, encode4, x, x$1, x$2, x$3, x$4, init, hzGB2312NewDecoder, hzGB2312NewEncoder; + encoding = $packages["golang.org/x/text/encoding"]; + internal = $packages["golang.org/x/text/encoding/internal"]; + identifier = $packages["golang.org/x/text/encoding/internal/identifier"]; + transform = $packages["golang.org/x/text/transform"]; + utf8 = $packages["unicode/utf8"]; + gbkDecoder = $pkg.gbkDecoder = $newType(0, $kindStruct, "simplifiedchinese.gbkDecoder", true, "golang.org/x/text/encoding/simplifiedchinese", false, function(NopResetter_, gb18030_) { + this.$val = this; + if (arguments.length === 0) { + this.NopResetter = new transform.NopResetter.ptr(); + this.gb18030 = false; + return; + } + this.NopResetter = NopResetter_; + this.gb18030 = gb18030_; + }); + gbkEncoder = $pkg.gbkEncoder = $newType(0, $kindStruct, "simplifiedchinese.gbkEncoder", true, "golang.org/x/text/encoding/simplifiedchinese", false, function(NopResetter_, gb18030_) { + this.$val = this; + if (arguments.length === 0) { + this.NopResetter = new transform.NopResetter.ptr(); + this.gb18030 = false; + return; + } + this.NopResetter = NopResetter_; + this.gb18030 = gb18030_; + }); + hzGB2312Decoder = $pkg.hzGB2312Decoder = $newType(4, $kindInt, "simplifiedchinese.hzGB2312Decoder", true, "golang.org/x/text/encoding/simplifiedchinese", false, null); + hzGB2312Encoder = $pkg.hzGB2312Encoder = $newType(4, $kindInt, "simplifiedchinese.hzGB2312Encoder", true, "golang.org/x/text/encoding/simplifiedchinese", false, null); + arrayType = $arrayType($Uint16, 2); + ptrType = $ptrType(hzGB2312Decoder); + ptrType$1 = $ptrType(hzGB2312Encoder); + sliceType$1 = $sliceType($Uint8); + gbkDecoder.ptr.prototype.Transform = function(dst, src, atEOF) { + var _q, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, atEOF, c0, c1, c2, c3, d, dec, dst, err, h, i, i$1, j, nDst, nSrc, r, size, src, x$5, x$6, x$7, x$8, $s; + /* */ $s = 0; s: while (true) { switch ($s) { case 0: + nDst = 0; + nSrc = 0; + err = $ifaceNil; + d = this; + _tmp = 0; + _tmp$1 = 0; + r = _tmp; + size = _tmp$1; + /* while (true) { */ case 1: + /* if (!(nSrc < src.$length)) { break; } */ if(!(nSrc < src.$length)) { $s = 2; continue; } + c0 = ((nSrc < 0 || nSrc >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + nSrc]); + /* */ if (c0 < 128) { $s = 4; continue; } + /* */ if ((c0 === 128)) { $s = 5; continue; } + /* */ if (c0 < 255) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (c0 < 128) { */ case 4: + _tmp$2 = ((c0 >> 0)); + _tmp$3 = 1; + r = _tmp$2; + size = _tmp$3; + $s = 8; continue; + /* } else if ((c0 === 128)) { */ case 5: + _tmp$4 = 8364; + _tmp$5 = 1; + r = _tmp$4; + size = _tmp$5; + $s = 8; continue; + /* } else if (c0 < 255) { */ case 6: + /* */ if ((nSrc + 1 >> 0) >= src.$length) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if ((nSrc + 1 >> 0) >= src.$length) { */ case 9: + if (!atEOF) { + err = transform.ErrShortSrc; + /* break loop; */ $s = 2; continue s; + } + _tmp$6 = 65533; + _tmp$7 = 1; + r = _tmp$6; + size = _tmp$7; + /* goto write */ $s = 11; continue; + /* } */ case 10: + c1 = (x$5 = nSrc + 1 >> 0, ((x$5 < 0 || x$5 >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x$5])); + /* */ if (64 <= c1 && c1 < 127) { $s = 13; continue; } + /* */ if (128 <= c1 && c1 < 255) { $s = 14; continue; } + /* */ if (d.gb18030 && 48 <= c1 && c1 < 64) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (64 <= c1 && c1 < 127) { */ case 13: + c1 = c1 - (64) << 24 >>> 24; + $s = 17; continue; + /* } else if (128 <= c1 && c1 < 255) { */ case 14: + c1 = c1 - (65) << 24 >>> 24; + $s = 17; continue; + /* } else if (d.gb18030 && 48 <= c1 && c1 < 64) { */ case 15: + /* */ if ((nSrc + 3 >> 0) >= src.$length) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if ((nSrc + 3 >> 0) >= src.$length) { */ case 18: + if (!atEOF) { + err = transform.ErrShortSrc; + /* break loop; */ $s = 2; continue s; + } + _tmp$8 = 65533; + _tmp$9 = 1; + r = _tmp$8; + size = _tmp$9; + /* goto write */ $s = 11; continue; + /* } */ case 19: + c2 = (x$6 = nSrc + 2 >> 0, ((x$6 < 0 || x$6 >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x$6])); + /* */ if (c2 < 129 || 255 <= c2) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (c2 < 129 || 255 <= c2) { */ case 20: + _tmp$10 = 65533; + _tmp$11 = 1; + r = _tmp$10; + size = _tmp$11; + /* goto write */ $s = 11; continue; + /* } */ case 21: + c3 = (x$7 = nSrc + 3 >> 0, ((x$7 < 0 || x$7 >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x$7])); + /* */ if (c3 < 48 || 58 <= c3) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (c3 < 48 || 58 <= c3) { */ case 22: + _tmp$12 = 65533; + _tmp$13 = 1; + r = _tmp$12; + size = _tmp$13; + /* goto write */ $s = 11; continue; + /* } */ case 23: + size = 4; + r = ($imul(((($imul(((($imul((((c0 - 129 << 24 >>> 24) >> 0)), 10)) + (((c1 - 48 << 24 >>> 24) >> 0)) >> 0)), 126)) + (((c2 - 129 << 24 >>> 24) >> 0)) >> 0)), 10)) + (((c3 - 48 << 24 >>> 24) >> 0)) >> 0; + /* */ if (r < 39420) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if (r < 39420) { */ case 24: + _tmp$14 = 0; + _tmp$15 = 206; + i = _tmp$14; + j = _tmp$15; + while (true) { + if (!(i < j)) { break; } + h = i + (_q = ((j - i >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0; + if (r >= ((((h < 0 || h >= gb18030.length) ? ($throwRuntimeError("index out of range"), undefined) : gb18030[h])[0] >> 0))) { + i = h + 1 >> 0; + } else { + j = h; + } + } + dec = (x$8 = i - 1 >> 0, ((x$8 < 0 || x$8 >= gb18030.length) ? ($throwRuntimeError("index out of range"), undefined) : gb18030[x$8])); + r = r + (((((dec.nilCheck, dec[1]) >> 0)) - (((dec.nilCheck, dec[0]) >> 0)) >> 0)) >> 0; + /* goto write */ $s = 11; continue; + /* } */ case 25: + r = r - (189000) >> 0; + if (0 <= r && r < 1048576) { + r = r + (65536) >> 0; + } else { + _tmp$16 = 65533; + _tmp$17 = 1; + r = _tmp$16; + size = _tmp$17; + } + /* goto write */ $s = 11; continue; + $s = 17; continue; + /* } else { */ case 16: + _tmp$18 = 65533; + _tmp$19 = 1; + r = _tmp$18; + size = _tmp$19; + /* goto write */ $s = 11; continue; + /* } */ case 17: + case 12: + _tmp$20 = 65533; + _tmp$21 = 2; + r = _tmp$20; + size = _tmp$21; + i$1 = ($imul((((c0 - 129 << 24 >>> 24) >> 0)), 190)) + ((c1 >> 0)) >> 0; + if (i$1 < 23845) { + r = ((((i$1 < 0 || i$1 >= decode.length) ? ($throwRuntimeError("index out of range"), undefined) : decode[i$1]) >> 0)); + if (r === 0) { + r = 65533; + } + } + $s = 8; continue; + /* } else { */ case 7: + _tmp$22 = 65533; + _tmp$23 = 1; + r = _tmp$22; + size = _tmp$23; + /* } */ case 8: + case 3: + /* write: */ case 11: + if ((nDst + utf8.RuneLen(r) >> 0) > dst.$length) { + err = transform.ErrShortDst; + /* break loop; */ $s = 2; continue s; + } + nDst = nDst + (utf8.EncodeRune($subslice(dst, nDst), r)) >> 0; + nSrc = nSrc + (size) >> 0; + /* } */ $s = 1; continue; case 2: + _tmp$24 = nDst; + _tmp$25 = nSrc; + _tmp$26 = err; + nDst = _tmp$24; + nSrc = _tmp$25; + err = _tmp$26; + $s = -1; return [nDst, nSrc, err]; + /* */ } return; } + }; + gbkDecoder.prototype.Transform = function(dst, src, atEOF) { return this.$val.Transform(dst, src, atEOF); }; + gbkEncoder.ptr.prototype.Transform = function(dst, src, atEOF) { + var _q, _q$1, _q$2, _q$3, _r, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, atEOF, dec, dst, e, err, h, i, j, nDst, nSrc, r, r2, size, src, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$5, x$6, x$7, x$8, x$9, $s; + /* */ $s = 0; s: while (true) { switch ($s) { case 0: + nDst = 0; + nSrc = 0; + err = $ifaceNil; + e = this; + _tmp = 0; + _tmp$1 = 0; + _tmp$2 = 0; + r = _tmp; + r2 = _tmp$1; + size = _tmp$2; + /* while (true) { */ case 1: + /* if (!(nSrc < src.$length)) { break; } */ if(!(nSrc < src.$length)) { $s = 2; continue; } + r = ((((nSrc < 0 || nSrc >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + nSrc]) >> 0)); + /* */ if (r < 128) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (r < 128) { */ case 3: + size = 1; + $s = 5; continue; + /* } else { */ case 4: + _tuple = utf8.DecodeRune($subslice(src, nSrc)); + r = _tuple[0]; + size = _tuple[1]; + if (size === 1) { + if (!atEOF && !utf8.FullRune($subslice(src, nSrc))) { + err = transform.ErrShortSrc; + /* break; */ $s = 2; continue; + } + } + /* */ if (11905 <= r && r < 40870) { $s = 7; continue; } + /* */ if (8208 <= r && r < 9795) { $s = 8; continue; } + /* */ if (164 <= r && r < 1106) { $s = 9; continue; } + /* */ if (65072 <= r && r < 65510) { $s = 10; continue; } + /* */ if (63788 <= r && r < 64042) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (11905 <= r && r < 40870) { */ case 7: + r2 = (((x$5 = r - 11905 >> 0, ((x$5 < 0 || x$5 >= encode0.length) ? ($throwRuntimeError("index out of range"), undefined) : encode0[x$5])) >> 0)); + /* */ if (!((r2 === 0))) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (!((r2 === 0))) { */ case 13: + /* goto write2 */ $s = 15; continue; + /* } */ case 14: + $s = 12; continue; + /* } else if (8208 <= r && r < 9795) { */ case 8: + /* */ if (r === 8364) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (r === 8364) { */ case 16: + r = 128; + /* goto write1 */ $s = 18; continue; + /* } */ case 17: + r2 = (((x$6 = r - 8208 >> 0, ((x$6 < 0 || x$6 >= encode1.length) ? ($throwRuntimeError("index out of range"), undefined) : encode1[x$6])) >> 0)); + /* */ if (!((r2 === 0))) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (!((r2 === 0))) { */ case 19: + /* goto write2 */ $s = 15; continue; + /* } */ case 20: + $s = 12; continue; + /* } else if (164 <= r && r < 1106) { */ case 9: + r2 = (((x$7 = r - 164 >> 0, ((x$7 < 0 || x$7 >= encode2.length) ? ($throwRuntimeError("index out of range"), undefined) : encode2[x$7])) >> 0)); + /* */ if (!((r2 === 0))) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (!((r2 === 0))) { */ case 21: + /* goto write2 */ $s = 15; continue; + /* } */ case 22: + $s = 12; continue; + /* } else if (65072 <= r && r < 65510) { */ case 10: + r2 = (((x$8 = r - 65072 >> 0, ((x$8 < 0 || x$8 >= encode3.length) ? ($throwRuntimeError("index out of range"), undefined) : encode3[x$8])) >> 0)); + /* */ if (!((r2 === 0))) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (!((r2 === 0))) { */ case 23: + /* goto write2 */ $s = 15; continue; + /* } */ case 24: + $s = 12; continue; + /* } else if (63788 <= r && r < 64042) { */ case 11: + r2 = (((x$9 = r - 63788 >> 0, ((x$9 < 0 || x$9 >= encode4.length) ? ($throwRuntimeError("index out of range"), undefined) : encode4[x$9])) >> 0)); + /* */ if (!((r2 === 0))) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (!((r2 === 0))) { */ case 25: + /* goto write2 */ $s = 15; continue; + /* } */ case 26: + /* } */ case 12: + case 6: + /* */ if (e.gb18030) { $s = 27; continue; } + /* */ $s = 28; continue; + /* if (e.gb18030) { */ case 27: + /* */ if (r < 65536) { $s = 29; continue; } + /* */ if (r < 1114112) { $s = 30; continue; } + /* */ $s = 31; continue; + /* if (r < 65536) { */ case 29: + _tmp$3 = 0; + _tmp$4 = 206; + i = _tmp$3; + j = _tmp$4; + while (true) { + if (!(i < j)) { break; } + h = i + (_q = ((j - i >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0; + if (r >= ((((h < 0 || h >= gb18030.length) ? ($throwRuntimeError("index out of range"), undefined) : gb18030[h])[1] >> 0))) { + i = h + 1 >> 0; + } else { + j = h; + } + } + dec = (x$10 = i - 1 >> 0, ((x$10 < 0 || x$10 >= gb18030.length) ? ($throwRuntimeError("index out of range"), undefined) : gb18030[x$10])); + r = r + (((((dec.nilCheck, dec[0]) >> 0)) - (((dec.nilCheck, dec[1]) >> 0)) >> 0)) >> 0; + /* goto write4 */ $s = 32; continue; + $s = 31; continue; + /* } else if (r < 1114112) { */ case 30: + r = r + (123464) >> 0; + /* goto write4 */ $s = 32; continue; + /* } */ case 31: + /* } */ case 28: + err = new internal.RepertoireError(internal.ErrASCIIReplacement); + /* break; */ $s = 2; continue; + /* } */ case 5: + /* write1: */ case 18: + if (nDst >= dst.$length) { + err = transform.ErrShortDst; + /* break; */ $s = 2; continue; + } + ((nDst < 0 || nDst >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + nDst] = ((r << 24 >>> 24))); + nDst = nDst + (1) >> 0; + nSrc = nSrc + (size) >> 0; + /* continue; */ $s = 1; continue; + /* write2: */ case 15: + if ((nDst + 2 >> 0) > dst.$length) { + err = transform.ErrShortDst; + /* break; */ $s = 2; continue; + } + (x$11 = nDst + 0 >> 0, ((x$11 < 0 || x$11 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$11] = (((r2 >> 8 >> 0) << 24 >>> 24)))); + (x$12 = nDst + 1 >> 0, ((x$12 < 0 || x$12 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$12] = ((r2 << 24 >>> 24)))); + nDst = nDst + (2) >> 0; + nSrc = nSrc + (size) >> 0; + /* continue; */ $s = 1; continue; + /* write4: */ case 32: + if ((nDst + 4 >> 0) > dst.$length) { + err = transform.ErrShortDst; + /* break; */ $s = 2; continue; + } + (x$13 = nDst + 3 >> 0, ((x$13 < 0 || x$13 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$13] = ((((_r = r % 10, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) + 48 >> 0) << 24 >>> 24)))); + r = (_q$1 = r / (10), (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")); + (x$14 = nDst + 2 >> 0, ((x$14 < 0 || x$14 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$14] = ((((_r$1 = r % 126, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) + 129 >> 0) << 24 >>> 24)))); + r = (_q$2 = r / (126), (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero")); + (x$15 = nDst + 1 >> 0, ((x$15 < 0 || x$15 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$15] = ((((_r$2 = r % 10, _r$2 === _r$2 ? _r$2 : $throwRuntimeError("integer divide by zero")) + 48 >> 0) << 24 >>> 24)))); + r = (_q$3 = r / (10), (_q$3 === _q$3 && _q$3 !== 1/0 && _q$3 !== -1/0) ? _q$3 >> 0 : $throwRuntimeError("integer divide by zero")); + (x$16 = nDst + 0 >> 0, ((x$16 < 0 || x$16 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$16] = (((r + 129 >> 0) << 24 >>> 24)))); + nDst = nDst + (4) >> 0; + nSrc = nSrc + (size) >> 0; + /* continue; */ $s = 1; continue; + /* } */ $s = 1; continue; case 2: + _tmp$5 = nDst; + _tmp$6 = nSrc; + _tmp$7 = err; + nDst = _tmp$5; + nSrc = _tmp$6; + err = _tmp$7; + $s = -1; return [nDst, nSrc, err]; + /* */ } return; } + }; + gbkEncoder.prototype.Transform = function(dst, src, atEOF) { return this.$val.Transform(dst, src, atEOF); }; + init = function() { + if (false) { + $panic(new $String("bad numEncodeTables")); + } + }; + hzGB2312NewDecoder = function() { + return $newDataPointer(0, ptrType); + }; + hzGB2312NewEncoder = function() { + return $newDataPointer(0, ptrType$1); + }; + $ptrType(hzGB2312Decoder).prototype.Reset = function() { + var d; + d = this; + d.$set(0); + }; + $ptrType(hzGB2312Decoder).prototype.Transform = function(dst, src, atEOF) { + var _1, _tmp, _tmp$1, _tmp$10, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, atEOF, c0, c1, d, dst, err, i, nDst, nSrc, r, size, src, x$5, x$6, $s; + /* */ $s = 0; s: while (true) { switch ($s) { case 0: + nDst = 0; + nSrc = 0; + err = $ifaceNil; + d = this; + _tmp = 0; + _tmp$1 = 0; + r = _tmp; + size = _tmp$1; + /* while (true) { */ case 1: + /* if (!(nSrc < src.$length)) { break; } */ if(!(nSrc < src.$length)) { $s = 2; continue; } + c0 = ((nSrc < 0 || nSrc >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + nSrc]); + /* */ if (c0 >= 128) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (c0 >= 128) { */ case 3: + _tmp$2 = 65533; + _tmp$3 = 1; + r = _tmp$2; + size = _tmp$3; + /* goto write */ $s = 5; continue; + /* } */ case 4: + /* */ if (c0 === 126) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (c0 === 126) { */ case 6: + /* */ if ((nSrc + 1 >> 0) >= src.$length) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if ((nSrc + 1 >> 0) >= src.$length) { */ case 8: + if (!atEOF) { + err = transform.ErrShortSrc; + /* break loop; */ $s = 2; continue s; + } + r = 65533; + /* goto write */ $s = 5; continue; + /* } */ case 9: + size = 2; + _1 = (x$5 = nSrc + 1 >> 0, ((x$5 < 0 || x$5 >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x$5])); + /* */ if (_1 === (123)) { $s = 11; continue; } + /* */ if (_1 === (125)) { $s = 12; continue; } + /* */ if (_1 === (126)) { $s = 13; continue; } + /* */ if (_1 === (10)) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (_1 === (123)) { */ case 11: + d.$set(1); + nSrc = nSrc + (size) >> 0; + /* continue; */ $s = 1; continue; + $s = 16; continue; + /* } else if (_1 === (125)) { */ case 12: + d.$set(0); + nSrc = nSrc + (size) >> 0; + /* continue; */ $s = 1; continue; + $s = 16; continue; + /* } else if (_1 === (126)) { */ case 13: + if (nDst >= dst.$length) { + err = transform.ErrShortDst; + /* break loop; */ $s = 2; continue s; + } + ((nDst < 0 || nDst >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + nDst] = 126); + nDst = nDst + (1) >> 0; + nSrc = nSrc + (size) >> 0; + /* continue; */ $s = 1; continue; + $s = 16; continue; + /* } else if (_1 === (10)) { */ case 14: + nSrc = nSrc + (size) >> 0; + /* continue; */ $s = 1; continue; + $s = 16; continue; + /* } else { */ case 15: + r = 65533; + /* goto write */ $s = 5; continue; + /* } */ case 16: + case 10: + /* } */ case 7: + /* */ if (d.$get() === 0) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (d.$get() === 0) { */ case 17: + _tmp$4 = ((c0 >> 0)); + _tmp$5 = 1; + r = _tmp$4; + size = _tmp$5; + $s = 19; continue; + /* } else { */ case 18: + /* */ if ((nSrc + 1 >> 0) >= src.$length) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if ((nSrc + 1 >> 0) >= src.$length) { */ case 20: + if (!atEOF) { + err = transform.ErrShortSrc; + /* break loop; */ $s = 2; continue s; + } + _tmp$6 = 65533; + _tmp$7 = 1; + r = _tmp$6; + size = _tmp$7; + /* goto write */ $s = 5; continue; + /* } */ case 21: + size = 2; + c1 = (x$6 = nSrc + 1 >> 0, ((x$6 < 0 || x$6 >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x$6])); + /* */ if (c0 < 33 || 126 <= c0 || c1 < 33 || 127 <= c1) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (c0 < 33 || 126 <= c0 || c1 < 33 || 127 <= c1) { */ case 22: + $s = 24; continue; + /* } else { */ case 23: + i = ($imul((((c0 - 1 << 24 >>> 24) >> 0)), 190)) + (((c1 + 63 << 24 >>> 24) >> 0)) >> 0; + /* */ if (i < 23845) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (i < 23845) { */ case 25: + r = ((((i < 0 || i >= decode.length) ? ($throwRuntimeError("index out of range"), undefined) : decode[i]) >> 0)); + /* */ if (!((r === 0))) { $s = 27; continue; } + /* */ $s = 28; continue; + /* if (!((r === 0))) { */ case 27: + /* goto write */ $s = 5; continue; + /* } */ case 28: + /* } */ case 26: + /* } */ case 24: + if (c1 > 128) { + size = 1; + } + r = 65533; + /* } */ case 19: + /* write: */ case 5: + if ((nDst + utf8.RuneLen(r) >> 0) > dst.$length) { + err = transform.ErrShortDst; + /* break loop; */ $s = 2; continue s; + } + nDst = nDst + (utf8.EncodeRune($subslice(dst, nDst), r)) >> 0; + nSrc = nSrc + (size) >> 0; + /* } */ $s = 1; continue; case 2: + _tmp$8 = nDst; + _tmp$9 = nSrc; + _tmp$10 = err; + nDst = _tmp$8; + nSrc = _tmp$9; + err = _tmp$10; + $s = -1; return [nDst, nSrc, err]; + /* */ } return; } + }; + $ptrType(hzGB2312Encoder).prototype.Reset = function() { + var d; + d = this; + d.$set(0); + }; + $ptrType(hzGB2312Encoder).prototype.Transform = function(dst, src, atEOF) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tuple, atEOF, c0, c1, dst, e, err, nDst, nSrc, r, size, src, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$5, x$6, x$7, x$8, x$9, $s; + /* */ $s = 0; s: while (true) { switch ($s) { case 0: + nDst = 0; + nSrc = 0; + err = $ifaceNil; + e = this; + _tmp = 0; + _tmp$1 = 0; + r = _tmp; + size = _tmp$1; + /* while (true) { */ case 1: + /* if (!(nSrc < src.$length)) { break; } */ if(!(nSrc < src.$length)) { $s = 2; continue; } + r = ((((nSrc < 0 || nSrc >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + nSrc]) >> 0)); + /* */ if (r < 128) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (r < 128) { */ case 3: + size = 1; + if (r === 126) { + if ((nDst + 2 >> 0) > dst.$length) { + err = transform.ErrShortDst; + /* break; */ $s = 2; continue; + } + (x$5 = nDst + 0 >> 0, ((x$5 < 0 || x$5 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$5] = 126)); + (x$6 = nDst + 1 >> 0, ((x$6 < 0 || x$6 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$6] = 126)); + nDst = nDst + (2) >> 0; + nSrc = nSrc + (size) >> 0; + /* continue; */ $s = 1; continue; + } else if (!((e.$get() === 0))) { + if ((nDst + 3 >> 0) > dst.$length) { + err = transform.ErrShortDst; + /* break; */ $s = 2; continue; + } + e.$set(0); + (x$7 = nDst + 0 >> 0, ((x$7 < 0 || x$7 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$7] = 126)); + (x$8 = nDst + 1 >> 0, ((x$8 < 0 || x$8 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$8] = 125)); + nDst = nDst + (2) >> 0; + } else if (nDst >= dst.$length) { + err = transform.ErrShortDst; + /* break; */ $s = 2; continue; + } + ((nDst < 0 || nDst >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + nDst] = ((r << 24 >>> 24))); + nDst = nDst + (1) >> 0; + nSrc = nSrc + (size) >> 0; + /* continue; */ $s = 1; continue; + /* } */ case 4: + _tuple = utf8.DecodeRune($subslice(src, nSrc)); + r = _tuple[0]; + size = _tuple[1]; + if (size === 1) { + if (!atEOF && !utf8.FullRune($subslice(src, nSrc))) { + err = transform.ErrShortSrc; + /* break; */ $s = 2; continue; + } + } + /* */ if (11905 <= r && r < 40870) { $s = 6; continue; } + /* */ if (8208 <= r && r < 9795) { $s = 7; continue; } + /* */ if (164 <= r && r < 1106) { $s = 8; continue; } + /* */ if (65072 <= r && r < 65510) { $s = 9; continue; } + /* */ if (63788 <= r && r < 64042) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (11905 <= r && r < 40870) { */ case 6: + r = (((x$9 = r - 11905 >> 0, ((x$9 < 0 || x$9 >= encode0.length) ? ($throwRuntimeError("index out of range"), undefined) : encode0[x$9])) >> 0)); + /* */ if (!((r === 0))) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (!((r === 0))) { */ case 12: + /* goto writeGB */ $s = 14; continue; + /* } */ case 13: + $s = 11; continue; + /* } else if (8208 <= r && r < 9795) { */ case 7: + r = (((x$10 = r - 8208 >> 0, ((x$10 < 0 || x$10 >= encode1.length) ? ($throwRuntimeError("index out of range"), undefined) : encode1[x$10])) >> 0)); + /* */ if (!((r === 0))) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (!((r === 0))) { */ case 15: + /* goto writeGB */ $s = 14; continue; + /* } */ case 16: + $s = 11; continue; + /* } else if (164 <= r && r < 1106) { */ case 8: + r = (((x$11 = r - 164 >> 0, ((x$11 < 0 || x$11 >= encode2.length) ? ($throwRuntimeError("index out of range"), undefined) : encode2[x$11])) >> 0)); + /* */ if (!((r === 0))) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (!((r === 0))) { */ case 17: + /* goto writeGB */ $s = 14; continue; + /* } */ case 18: + $s = 11; continue; + /* } else if (65072 <= r && r < 65510) { */ case 9: + r = (((x$12 = r - 65072 >> 0, ((x$12 < 0 || x$12 >= encode3.length) ? ($throwRuntimeError("index out of range"), undefined) : encode3[x$12])) >> 0)); + /* */ if (!((r === 0))) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (!((r === 0))) { */ case 19: + /* goto writeGB */ $s = 14; continue; + /* } */ case 20: + $s = 11; continue; + /* } else if (63788 <= r && r < 64042) { */ case 10: + r = (((x$13 = r - 63788 >> 0, ((x$13 < 0 || x$13 >= encode4.length) ? ($throwRuntimeError("index out of range"), undefined) : encode4[x$13])) >> 0)); + /* */ if (!((r === 0))) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (!((r === 0))) { */ case 21: + /* goto writeGB */ $s = 14; continue; + /* } */ case 22: + /* } */ case 11: + case 5: + /* terminateInASCIIState: */ case 23: + if (!((e.$get() === 0))) { + if ((nDst + 2 >> 0) > dst.$length) { + err = transform.ErrShortDst; + /* break; */ $s = 2; continue; + } + (x$14 = nDst + 0 >> 0, ((x$14 < 0 || x$14 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$14] = 126)); + (x$15 = nDst + 1 >> 0, ((x$15 < 0 || x$15 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$15] = 125)); + nDst = nDst + (2) >> 0; + } + err = new internal.RepertoireError(internal.ErrASCIIReplacement); + /* break; */ $s = 2; continue; + /* writeGB: */ case 14: + c0 = (((r >> 8 >> 0) << 24 >>> 24)) - 128 << 24 >>> 24; + c1 = ((r << 24 >>> 24)) - 128 << 24 >>> 24; + /* */ if (c0 < 33 || 126 <= c0 || c1 < 33 || 127 <= c1) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if (c0 < 33 || 126 <= c0 || c1 < 33 || 127 <= c1) { */ case 24: + /* goto terminateInASCIIState */ $s = 23; continue; + /* } */ case 25: + if (e.$get() === 0) { + if ((nDst + 4 >> 0) > dst.$length) { + err = transform.ErrShortDst; + /* break; */ $s = 2; continue; + } + e.$set(1); + (x$16 = nDst + 0 >> 0, ((x$16 < 0 || x$16 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$16] = 126)); + (x$17 = nDst + 1 >> 0, ((x$17 < 0 || x$17 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$17] = 123)); + nDst = nDst + (2) >> 0; + } else if ((nDst + 2 >> 0) > dst.$length) { + err = transform.ErrShortDst; + /* break; */ $s = 2; continue; + } + (x$18 = nDst + 0 >> 0, ((x$18 < 0 || x$18 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$18] = c0)); + (x$19 = nDst + 1 >> 0, ((x$19 < 0 || x$19 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$19] = c1)); + nDst = nDst + (2) >> 0; + nSrc = nSrc + (size) >> 0; + /* continue; */ $s = 1; continue; + /* } */ $s = 1; continue; case 2: + _tmp$2 = nDst; + _tmp$3 = nSrc; + _tmp$4 = err; + nDst = _tmp$2; + nSrc = _tmp$3; + err = _tmp$4; + $s = -1; return [nDst, nSrc, err]; + /* */ } return; } + }; + gbkDecoder.methods = [{prop: "Transform", name: "Transform", pkg: "", typ: $funcType([sliceType$1, sliceType$1, $Bool], [$Int, $Int, $error], false)}]; + gbkEncoder.methods = [{prop: "Transform", name: "Transform", pkg: "", typ: $funcType([sliceType$1, sliceType$1, $Bool], [$Int, $Int, $error], false)}]; + ptrType.methods = [{prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}, {prop: "Transform", name: "Transform", pkg: "", typ: $funcType([sliceType$1, sliceType$1, $Bool], [$Int, $Int, $error], false)}]; + ptrType$1.methods = [{prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}, {prop: "Transform", name: "Transform", pkg: "", typ: $funcType([sliceType$1, sliceType$1, $Bool], [$Int, $Int, $error], false)}]; + gbkDecoder.init("golang.org/x/text/encoding/simplifiedchinese", [{prop: "NopResetter", name: "NopResetter", embedded: true, exported: true, typ: transform.NopResetter, tag: ""}, {prop: "gb18030", name: "gb18030", embedded: false, exported: false, typ: $Bool, tag: ""}]); + gbkEncoder.init("golang.org/x/text/encoding/simplifiedchinese", [{prop: "NopResetter", name: "NopResetter", embedded: true, exported: true, typ: transform.NopResetter, tag: ""}, {prop: "gb18030", name: "gb18030", embedded: false, exported: false, typ: $Bool, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = encoding.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = internal.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = identifier.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = transform.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + gbk = new internal.Encoding.ptr(new internal.SimpleEncoding.ptr((x = new gbkDecoder.ptr(new transform.NopResetter.ptr(), false), new x.constructor.elem(x)), (x$1 = new gbkEncoder.ptr(new transform.NopResetter.ptr(), false), new x$1.constructor.elem(x$1))), "GBK", 113); + $pkg.GBK = gbk; + gbk18030 = new internal.Encoding.ptr(new internal.SimpleEncoding.ptr((x$2 = new gbkDecoder.ptr(new transform.NopResetter.ptr(), true), new x$2.constructor.elem(x$2)), (x$3 = new gbkEncoder.ptr(new transform.NopResetter.ptr(), true), new x$3.constructor.elem(x$3))), "GB18030", 114); + $pkg.GB18030 = gbk18030; + hzGB2312 = new internal.Encoding.ptr((x$4 = new internal.FuncEncoding.ptr(hzGB2312NewDecoder, hzGB2312NewEncoder), new x$4.constructor.elem(x$4)), "HZ-GB2312", 2085); + $pkg.HZGB2312 = hzGB2312; + gb18030 = $toNativeArray($kindArray, [$toNativeArray($kindUint16, [0, 128]), $toNativeArray($kindUint16, [36, 165]), $toNativeArray($kindUint16, [38, 169]), $toNativeArray($kindUint16, [45, 178]), $toNativeArray($kindUint16, [50, 184]), $toNativeArray($kindUint16, [81, 216]), $toNativeArray($kindUint16, [89, 226]), $toNativeArray($kindUint16, [95, 235]), $toNativeArray($kindUint16, [96, 238]), $toNativeArray($kindUint16, [100, 244]), $toNativeArray($kindUint16, [103, 248]), $toNativeArray($kindUint16, [104, 251]), $toNativeArray($kindUint16, [105, 253]), $toNativeArray($kindUint16, [109, 258]), $toNativeArray($kindUint16, [126, 276]), $toNativeArray($kindUint16, [133, 284]), $toNativeArray($kindUint16, [148, 300]), $toNativeArray($kindUint16, [172, 325]), $toNativeArray($kindUint16, [175, 329]), $toNativeArray($kindUint16, [179, 334]), $toNativeArray($kindUint16, [208, 364]), $toNativeArray($kindUint16, [306, 463]), $toNativeArray($kindUint16, [307, 465]), $toNativeArray($kindUint16, [308, 467]), $toNativeArray($kindUint16, [309, 469]), $toNativeArray($kindUint16, [310, 471]), $toNativeArray($kindUint16, [311, 473]), $toNativeArray($kindUint16, [312, 475]), $toNativeArray($kindUint16, [313, 477]), $toNativeArray($kindUint16, [341, 506]), $toNativeArray($kindUint16, [428, 594]), $toNativeArray($kindUint16, [443, 610]), $toNativeArray($kindUint16, [544, 712]), $toNativeArray($kindUint16, [545, 716]), $toNativeArray($kindUint16, [558, 730]), $toNativeArray($kindUint16, [741, 930]), $toNativeArray($kindUint16, [742, 938]), $toNativeArray($kindUint16, [749, 962]), $toNativeArray($kindUint16, [750, 970]), $toNativeArray($kindUint16, [805, 1026]), $toNativeArray($kindUint16, [819, 1104]), $toNativeArray($kindUint16, [820, 1106]), $toNativeArray($kindUint16, [7922, 8209]), $toNativeArray($kindUint16, [7924, 8215]), $toNativeArray($kindUint16, [7925, 8218]), $toNativeArray($kindUint16, [7927, 8222]), $toNativeArray($kindUint16, [7934, 8231]), $toNativeArray($kindUint16, [7943, 8241]), $toNativeArray($kindUint16, [7944, 8244]), $toNativeArray($kindUint16, [7945, 8246]), $toNativeArray($kindUint16, [7950, 8252]), $toNativeArray($kindUint16, [8062, 8365]), $toNativeArray($kindUint16, [8148, 8452]), $toNativeArray($kindUint16, [8149, 8454]), $toNativeArray($kindUint16, [8152, 8458]), $toNativeArray($kindUint16, [8164, 8471]), $toNativeArray($kindUint16, [8174, 8482]), $toNativeArray($kindUint16, [8236, 8556]), $toNativeArray($kindUint16, [8240, 8570]), $toNativeArray($kindUint16, [8262, 8596]), $toNativeArray($kindUint16, [8264, 8602]), $toNativeArray($kindUint16, [8374, 8713]), $toNativeArray($kindUint16, [8380, 8720]), $toNativeArray($kindUint16, [8381, 8722]), $toNativeArray($kindUint16, [8384, 8726]), $toNativeArray($kindUint16, [8388, 8731]), $toNativeArray($kindUint16, [8390, 8737]), $toNativeArray($kindUint16, [8392, 8740]), $toNativeArray($kindUint16, [8393, 8742]), $toNativeArray($kindUint16, [8394, 8748]), $toNativeArray($kindUint16, [8396, 8751]), $toNativeArray($kindUint16, [8401, 8760]), $toNativeArray($kindUint16, [8406, 8766]), $toNativeArray($kindUint16, [8416, 8777]), $toNativeArray($kindUint16, [8419, 8781]), $toNativeArray($kindUint16, [8424, 8787]), $toNativeArray($kindUint16, [8437, 8802]), $toNativeArray($kindUint16, [8439, 8808]), $toNativeArray($kindUint16, [8445, 8816]), $toNativeArray($kindUint16, [8482, 8854]), $toNativeArray($kindUint16, [8485, 8858]), $toNativeArray($kindUint16, [8496, 8870]), $toNativeArray($kindUint16, [8521, 8896]), $toNativeArray($kindUint16, [8603, 8979]), $toNativeArray($kindUint16, [8936, 9322]), $toNativeArray($kindUint16, [8946, 9372]), $toNativeArray($kindUint16, [9046, 9548]), $toNativeArray($kindUint16, [9050, 9588]), $toNativeArray($kindUint16, [9063, 9616]), $toNativeArray($kindUint16, [9066, 9622]), $toNativeArray($kindUint16, [9076, 9634]), $toNativeArray($kindUint16, [9092, 9652]), $toNativeArray($kindUint16, [9100, 9662]), $toNativeArray($kindUint16, [9108, 9672]), $toNativeArray($kindUint16, [9111, 9676]), $toNativeArray($kindUint16, [9113, 9680]), $toNativeArray($kindUint16, [9131, 9702]), $toNativeArray($kindUint16, [9162, 9735]), $toNativeArray($kindUint16, [9164, 9738]), $toNativeArray($kindUint16, [9218, 9793]), $toNativeArray($kindUint16, [9219, 9795]), $toNativeArray($kindUint16, [11329, 11906]), $toNativeArray($kindUint16, [11331, 11909]), $toNativeArray($kindUint16, [11334, 11913]), $toNativeArray($kindUint16, [11336, 11917]), $toNativeArray($kindUint16, [11346, 11928]), $toNativeArray($kindUint16, [11361, 11944]), $toNativeArray($kindUint16, [11363, 11947]), $toNativeArray($kindUint16, [11366, 11951]), $toNativeArray($kindUint16, [11370, 11956]), $toNativeArray($kindUint16, [11372, 11960]), $toNativeArray($kindUint16, [11375, 11964]), $toNativeArray($kindUint16, [11389, 11979]), $toNativeArray($kindUint16, [11682, 12284]), $toNativeArray($kindUint16, [11686, 12292]), $toNativeArray($kindUint16, [11687, 12312]), $toNativeArray($kindUint16, [11692, 12319]), $toNativeArray($kindUint16, [11694, 12330]), $toNativeArray($kindUint16, [11714, 12351]), $toNativeArray($kindUint16, [11716, 12436]), $toNativeArray($kindUint16, [11723, 12447]), $toNativeArray($kindUint16, [11725, 12535]), $toNativeArray($kindUint16, [11730, 12543]), $toNativeArray($kindUint16, [11736, 12586]), $toNativeArray($kindUint16, [11982, 12842]), $toNativeArray($kindUint16, [11989, 12850]), $toNativeArray($kindUint16, [12102, 12964]), $toNativeArray($kindUint16, [12336, 13200]), $toNativeArray($kindUint16, [12348, 13215]), $toNativeArray($kindUint16, [12350, 13218]), $toNativeArray($kindUint16, [12384, 13253]), $toNativeArray($kindUint16, [12393, 13263]), $toNativeArray($kindUint16, [12395, 13267]), $toNativeArray($kindUint16, [12397, 13270]), $toNativeArray($kindUint16, [12510, 13384]), $toNativeArray($kindUint16, [12553, 13428]), $toNativeArray($kindUint16, [12851, 13727]), $toNativeArray($kindUint16, [12962, 13839]), $toNativeArray($kindUint16, [12973, 13851]), $toNativeArray($kindUint16, [13738, 14617]), $toNativeArray($kindUint16, [13823, 14703]), $toNativeArray($kindUint16, [13919, 14801]), $toNativeArray($kindUint16, [13933, 14816]), $toNativeArray($kindUint16, [14080, 14964]), $toNativeArray($kindUint16, [14298, 15183]), $toNativeArray($kindUint16, [14585, 15471]), $toNativeArray($kindUint16, [14698, 15585]), $toNativeArray($kindUint16, [15583, 16471]), $toNativeArray($kindUint16, [15847, 16736]), $toNativeArray($kindUint16, [16318, 17208]), $toNativeArray($kindUint16, [16434, 17325]), $toNativeArray($kindUint16, [16438, 17330]), $toNativeArray($kindUint16, [16481, 17374]), $toNativeArray($kindUint16, [16729, 17623]), $toNativeArray($kindUint16, [17102, 17997]), $toNativeArray($kindUint16, [17122, 18018]), $toNativeArray($kindUint16, [17315, 18212]), $toNativeArray($kindUint16, [17320, 18218]), $toNativeArray($kindUint16, [17402, 18301]), $toNativeArray($kindUint16, [17418, 18318]), $toNativeArray($kindUint16, [17859, 18760]), $toNativeArray($kindUint16, [17909, 18811]), $toNativeArray($kindUint16, [17911, 18814]), $toNativeArray($kindUint16, [17915, 18820]), $toNativeArray($kindUint16, [17916, 18823]), $toNativeArray($kindUint16, [17936, 18844]), $toNativeArray($kindUint16, [17939, 18848]), $toNativeArray($kindUint16, [17961, 18872]), $toNativeArray($kindUint16, [18664, 19576]), $toNativeArray($kindUint16, [18703, 19620]), $toNativeArray($kindUint16, [18814, 19738]), $toNativeArray($kindUint16, [18962, 19887]), $toNativeArray($kindUint16, [19043, 40870]), $toNativeArray($kindUint16, [33469, 59244]), $toNativeArray($kindUint16, [33470, 59336]), $toNativeArray($kindUint16, [33471, 59367]), $toNativeArray($kindUint16, [33484, 59413]), $toNativeArray($kindUint16, [33485, 59417]), $toNativeArray($kindUint16, [33490, 59423]), $toNativeArray($kindUint16, [33497, 59431]), $toNativeArray($kindUint16, [33501, 59437]), $toNativeArray($kindUint16, [33505, 59443]), $toNativeArray($kindUint16, [33513, 59452]), $toNativeArray($kindUint16, [33520, 59460]), $toNativeArray($kindUint16, [33536, 59478]), $toNativeArray($kindUint16, [33550, 59493]), $toNativeArray($kindUint16, [37845, 63789]), $toNativeArray($kindUint16, [37921, 63866]), $toNativeArray($kindUint16, [37948, 63894]), $toNativeArray($kindUint16, [38029, 63976]), $toNativeArray($kindUint16, [38038, 63986]), $toNativeArray($kindUint16, [38064, 64016]), $toNativeArray($kindUint16, [38065, 64018]), $toNativeArray($kindUint16, [38066, 64021]), $toNativeArray($kindUint16, [38069, 64025]), $toNativeArray($kindUint16, [38075, 64034]), $toNativeArray($kindUint16, [38076, 64037]), $toNativeArray($kindUint16, [38078, 64042]), $toNativeArray($kindUint16, [39108, 65074]), $toNativeArray($kindUint16, [39109, 65093]), $toNativeArray($kindUint16, [39113, 65107]), $toNativeArray($kindUint16, [39114, 65112]), $toNativeArray($kindUint16, [39115, 65127]), $toNativeArray($kindUint16, [39116, 65132]), $toNativeArray($kindUint16, [39265, 65375]), $toNativeArray($kindUint16, [39394, 65510])]); + decode = $toNativeArray($kindUint16, [19970, 19972, 19973, 19974, 19983, 19986, 19991, 19999, 20000, 20001, 20003, 20006, 20009, 20014, 20015, 20017, 20019, 20021, 20023, 20028, 20032, 20033, 20034, 20036, 20038, 20042, 20049, 20053, 20055, 20058, 20059, 20066, 20067, 20068, 20069, 20071, 20072, 20074, 20075, 20076, 20077, 20078, 20079, 20082, 20084, 20085, 20086, 20087, 20088, 20089, 20090, 20091, 20092, 20093, 20095, 20096, 20097, 20098, 20099, 20100, 20101, 20103, 20106, 20112, 20118, 20119, 20121, 20124, 20125, 20126, 20131, 20138, 20143, 20144, 20145, 20148, 20150, 20151, 20152, 20153, 20156, 20157, 20158, 20168, 20172, 20175, 20176, 20178, 20186, 20187, 20188, 20192, 20194, 20198, 20199, 20201, 20205, 20206, 20207, 20209, 20212, 20216, 20217, 20218, 20220, 20222, 20224, 20226, 20227, 20228, 20229, 20230, 20231, 20232, 20235, 20236, 20242, 20243, 20244, 20245, 20246, 20252, 20253, 20257, 20259, 20264, 20265, 20268, 20269, 20270, 20273, 20275, 20277, 20279, 20281, 20283, 20286, 20287, 20288, 20289, 20290, 20292, 20293, 20295, 20296, 20297, 20298, 20299, 20300, 20306, 20308, 20310, 20321, 20322, 20326, 20328, 20330, 20331, 20333, 20334, 20337, 20338, 20341, 20343, 20344, 20345, 20346, 20349, 20352, 20353, 20354, 20357, 20358, 20359, 20362, 20364, 20366, 20368, 20370, 20371, 20373, 20374, 20376, 20377, 20378, 20380, 20382, 20383, 20385, 20386, 20388, 20395, 20397, 20400, 20401, 20402, 20403, 20404, 20406, 20407, 20408, 20409, 20410, 20411, 20412, 20413, 20414, 20416, 20417, 20418, 20422, 20423, 20424, 20425, 20427, 20428, 20429, 20434, 20435, 20436, 20437, 20438, 20441, 20443, 20448, 20450, 20452, 20453, 20455, 20459, 20460, 20464, 20466, 20468, 20469, 20470, 20471, 20473, 20475, 20476, 20477, 20479, 20480, 20481, 20482, 20483, 20484, 20485, 20486, 20487, 20488, 20489, 20490, 20491, 20494, 20496, 20497, 20499, 20501, 20502, 20503, 20507, 20509, 20510, 20512, 20514, 20515, 20516, 20519, 20523, 20527, 20528, 20529, 20530, 20531, 20532, 20533, 20534, 20535, 20536, 20537, 20539, 20541, 20543, 20544, 20545, 20546, 20548, 20549, 20550, 20553, 20554, 20555, 20557, 20560, 20561, 20562, 20563, 20564, 20566, 20567, 20568, 20569, 20571, 20573, 20574, 20575, 20576, 20577, 20578, 20579, 20580, 20582, 20583, 20584, 20585, 20586, 20587, 20589, 20590, 20591, 20592, 20593, 20594, 20595, 20596, 20597, 20600, 20601, 20602, 20604, 20605, 20609, 20610, 20611, 20612, 20614, 20615, 20617, 20618, 20619, 20620, 20622, 20623, 20624, 20625, 20626, 20627, 20628, 20629, 20630, 20631, 20632, 20633, 20634, 20635, 20636, 20637, 20638, 20639, 20640, 20641, 20642, 20644, 20646, 20650, 20651, 20653, 20654, 20655, 20656, 20657, 20659, 20660, 20661, 20662, 20663, 20664, 20665, 20668, 20669, 20670, 20671, 20672, 20673, 20674, 20675, 20676, 20677, 20678, 20679, 20680, 20681, 20682, 20683, 20684, 20685, 20686, 20688, 20689, 20690, 20691, 20692, 20693, 20695, 20696, 20697, 20699, 20700, 20701, 20702, 20703, 20704, 20705, 20706, 20707, 20708, 20709, 20712, 20713, 20714, 20715, 20719, 20720, 20721, 20722, 20724, 20726, 20727, 20728, 20729, 20730, 20732, 20733, 20734, 20735, 20736, 20737, 20738, 20739, 20740, 20741, 20744, 20745, 20746, 20748, 20749, 20750, 20751, 20752, 20753, 20755, 20756, 20757, 20758, 20759, 20760, 20761, 20762, 20763, 20764, 20765, 20766, 20767, 20768, 20770, 20771, 20772, 20773, 20774, 20775, 20776, 20777, 20778, 20779, 20780, 20781, 20782, 20783, 20784, 20785, 20786, 20787, 20788, 20789, 20790, 20791, 20792, 20793, 20794, 20795, 20796, 20797, 20798, 20802, 20807, 20810, 20812, 20814, 20815, 20816, 20818, 20819, 20823, 20824, 20825, 20827, 20829, 20830, 20831, 20832, 20833, 20835, 20836, 20838, 20839, 20841, 20842, 20847, 20850, 20858, 20862, 20863, 20867, 20868, 20870, 20871, 20874, 20875, 20878, 20879, 20880, 20881, 20883, 20884, 20888, 20890, 20893, 20894, 20895, 20897, 20899, 20902, 20903, 20904, 20905, 20906, 20909, 20910, 20916, 20920, 20921, 20922, 20926, 20927, 20929, 20930, 20931, 20933, 20936, 20938, 20941, 20942, 20944, 20946, 20947, 20948, 20949, 20950, 20951, 20952, 20953, 20954, 20956, 20958, 20959, 20962, 20963, 20965, 20966, 20967, 20968, 20969, 20970, 20972, 20974, 20977, 20978, 20980, 20983, 20990, 20996, 20997, 21001, 21003, 21004, 21007, 21008, 21011, 21012, 21013, 21020, 21022, 21023, 21025, 21026, 21027, 21029, 21030, 21031, 21034, 21036, 21039, 21041, 21042, 21044, 21045, 21052, 21054, 21060, 21061, 21062, 21063, 21064, 21065, 21067, 21070, 21071, 21074, 21075, 21077, 21079, 21080, 21081, 21082, 21083, 21085, 21087, 21088, 21090, 21091, 21092, 21094, 21096, 21099, 21100, 21101, 21102, 21104, 21105, 21107, 21108, 21109, 21110, 21111, 21112, 21113, 21114, 21115, 21116, 21118, 21120, 21123, 21124, 21125, 21126, 21127, 21129, 21130, 21131, 21132, 21133, 21134, 21135, 21137, 21138, 21140, 21141, 21142, 21143, 21144, 21145, 21146, 21148, 21156, 21157, 21158, 21159, 21166, 21167, 21168, 21172, 21173, 21174, 21175, 21176, 21177, 21178, 21179, 21180, 21181, 21184, 21185, 21186, 21188, 21189, 21190, 21192, 21194, 21196, 21197, 21198, 21199, 21201, 21203, 21204, 21205, 21207, 21209, 21210, 21211, 21212, 21213, 21214, 21216, 21217, 21218, 21219, 21221, 21222, 21223, 21224, 21225, 21226, 21227, 21228, 21229, 21230, 21231, 21233, 21234, 21235, 21236, 21237, 21238, 21239, 21240, 21243, 21244, 21245, 21249, 21250, 21251, 21252, 21255, 21257, 21258, 21259, 21260, 21262, 21265, 21266, 21267, 21268, 21272, 21275, 21276, 21278, 21279, 21282, 21284, 21285, 21287, 21288, 21289, 21291, 21292, 21293, 21295, 21296, 21297, 21298, 21299, 21300, 21301, 21302, 21303, 21304, 21308, 21309, 21312, 21314, 21316, 21318, 21323, 21324, 21325, 21328, 21332, 21336, 21337, 21339, 21341, 21349, 21352, 21354, 21356, 21357, 21362, 21366, 21369, 21371, 21372, 21373, 21374, 21376, 21377, 21379, 21383, 21384, 21386, 21390, 21391, 21392, 21393, 21394, 21395, 21396, 21398, 21399, 21401, 21403, 21404, 21406, 21408, 21409, 21412, 21415, 21418, 21419, 21420, 21421, 21423, 21424, 21425, 21426, 21427, 21428, 21429, 21431, 21432, 21433, 21434, 21436, 21437, 21438, 21440, 21443, 21444, 21445, 21446, 21447, 21454, 21455, 21456, 21458, 21459, 21461, 21466, 21468, 21469, 21470, 21473, 21474, 21479, 21492, 21498, 21502, 21503, 21504, 21506, 21509, 21511, 21515, 21524, 21528, 21529, 21530, 21532, 21538, 21540, 21541, 21546, 21552, 21555, 21558, 21559, 21562, 21565, 21567, 21569, 21570, 21572, 21573, 21575, 21577, 21580, 21581, 21582, 21583, 21585, 21594, 21597, 21598, 21599, 21600, 21601, 21603, 21605, 21607, 21609, 21610, 21611, 21612, 21613, 21614, 21615, 21616, 21620, 21625, 21626, 21630, 21631, 21633, 21635, 21637, 21639, 21640, 21641, 21642, 21645, 21649, 21651, 21655, 21656, 21660, 21662, 21663, 21664, 21665, 21666, 21669, 21678, 21680, 21682, 21685, 21686, 21687, 21689, 21690, 21692, 21694, 21699, 21701, 21706, 21707, 21718, 21720, 21723, 21728, 21729, 21730, 21731, 21732, 21739, 21740, 21743, 21744, 21745, 21748, 21749, 21750, 21751, 21752, 21753, 21755, 21758, 21760, 21762, 21763, 21764, 21765, 21768, 21770, 21771, 21772, 21773, 21774, 21778, 21779, 21781, 21782, 21783, 21784, 21785, 21786, 21788, 21789, 21790, 21791, 21793, 21797, 21798, 21800, 21801, 21803, 21805, 21810, 21812, 21813, 21814, 21816, 21817, 21818, 21819, 21821, 21824, 21826, 21829, 21831, 21832, 21835, 21836, 21837, 21838, 21839, 21841, 21842, 21843, 21844, 21847, 21848, 21849, 21850, 21851, 21853, 21854, 21855, 21856, 21858, 21859, 21864, 21865, 21867, 21871, 21872, 21873, 21874, 21875, 21876, 21881, 21882, 21885, 21887, 21893, 21894, 21900, 21901, 21902, 21904, 21906, 21907, 21909, 21910, 21911, 21914, 21915, 21918, 21920, 21921, 21922, 21923, 21924, 21925, 21926, 21928, 21929, 21930, 21931, 21932, 21933, 21934, 21935, 21936, 21938, 21940, 21942, 21944, 21946, 21948, 21951, 21952, 21953, 21954, 21955, 21958, 21959, 21960, 21962, 21963, 21966, 21967, 21968, 21973, 21975, 21976, 21977, 21978, 21979, 21982, 21984, 21986, 21991, 21993, 21997, 21998, 22000, 22001, 22004, 22006, 22008, 22009, 22010, 22011, 22012, 22015, 22018, 22019, 22020, 22021, 22022, 22023, 22026, 22027, 22029, 22032, 22033, 22034, 22035, 22036, 22037, 22038, 22039, 22041, 22042, 22044, 22045, 22048, 22049, 22050, 22053, 22054, 22056, 22057, 22058, 22059, 22062, 22063, 22064, 22067, 22069, 22071, 22072, 22074, 22076, 22077, 22078, 22080, 22081, 22082, 22083, 22084, 22085, 22086, 22087, 22088, 22089, 22090, 22091, 22095, 22096, 22097, 22098, 22099, 22101, 22102, 22106, 22107, 22109, 22110, 22111, 22112, 22113, 22115, 22117, 22118, 22119, 22125, 22126, 22127, 22128, 22130, 22131, 22132, 22133, 22135, 22136, 22137, 22138, 22141, 22142, 22143, 22144, 22145, 22146, 22147, 22148, 22151, 22152, 22153, 22154, 22155, 22156, 22157, 22160, 22161, 22162, 22164, 22165, 22166, 22167, 22168, 22169, 22170, 22171, 22172, 22173, 22174, 22175, 22176, 22177, 22178, 22180, 22181, 22182, 22183, 22184, 22185, 22186, 22187, 22188, 22189, 22190, 22192, 22193, 22194, 22195, 22196, 22197, 22198, 22200, 22201, 22202, 22203, 22205, 22206, 22207, 22208, 22209, 22210, 22211, 22212, 22213, 22214, 22215, 22216, 22217, 22219, 22220, 22221, 22222, 22223, 22224, 22225, 22226, 22227, 22229, 22230, 22232, 22233, 22236, 22243, 22245, 22246, 22247, 22248, 22249, 22250, 22252, 22254, 22255, 22258, 22259, 22262, 22263, 22264, 22267, 22268, 22272, 22273, 22274, 22277, 22279, 22283, 22284, 22285, 22286, 22287, 22288, 22289, 22290, 22291, 22292, 22293, 22294, 22295, 22296, 22297, 22298, 22299, 22301, 22302, 22304, 22305, 22306, 22308, 22309, 22310, 22311, 22315, 22321, 22322, 22324, 22325, 22326, 22327, 22328, 22332, 22333, 22335, 22337, 22339, 22340, 22341, 22342, 22344, 22345, 22347, 22354, 22355, 22356, 22357, 22358, 22360, 22361, 22370, 22371, 22373, 22375, 22380, 22382, 22384, 22385, 22386, 22388, 22389, 22392, 22393, 22394, 22397, 22398, 22399, 22400, 22401, 22407, 22408, 22409, 22410, 22413, 22414, 22415, 22416, 22417, 22420, 22421, 22422, 22423, 22424, 22425, 22426, 22428, 22429, 22430, 22431, 22437, 22440, 22442, 22444, 22447, 22448, 22449, 22451, 22453, 22454, 22455, 22457, 22458, 22459, 22460, 22461, 22462, 22463, 22464, 22465, 22468, 22469, 22470, 22471, 22472, 22473, 22474, 22476, 22477, 22480, 22481, 22483, 22486, 22487, 22491, 22492, 22494, 22497, 22498, 22499, 22501, 22502, 22503, 22504, 22505, 22506, 22507, 22508, 22510, 22512, 22513, 22514, 22515, 22517, 22518, 22519, 22523, 22524, 22526, 22527, 22529, 22531, 22532, 22533, 22536, 22537, 22538, 22540, 22542, 22543, 22544, 22546, 22547, 22548, 22550, 22551, 22552, 22554, 22555, 22556, 22557, 22559, 22562, 22563, 22565, 22566, 22567, 22568, 22569, 22571, 22572, 22573, 22574, 22575, 22577, 22578, 22579, 22580, 22582, 22583, 22584, 22585, 22586, 22587, 22588, 22589, 22590, 22591, 22592, 22593, 22594, 22595, 22597, 22598, 22599, 22600, 22601, 22602, 22603, 22606, 22607, 22608, 22610, 22611, 22613, 22614, 22615, 22617, 22618, 22619, 22620, 22621, 22623, 22624, 22625, 22626, 22627, 22628, 22630, 22631, 22632, 22633, 22634, 22637, 22638, 22639, 22640, 22641, 22642, 22643, 22644, 22645, 22646, 22647, 22648, 22649, 22650, 22651, 22652, 22653, 22655, 22658, 22660, 22662, 22663, 22664, 22666, 22667, 22668, 22669, 22670, 22671, 22672, 22673, 22676, 22677, 22678, 22679, 22680, 22683, 22684, 22685, 22688, 22689, 22690, 22691, 22692, 22693, 22694, 22695, 22698, 22699, 22700, 22701, 22702, 22703, 22704, 22705, 22706, 22707, 22708, 22709, 22710, 22711, 22712, 22713, 22714, 22715, 22717, 22718, 22719, 22720, 22722, 22723, 22724, 22726, 22727, 22728, 22729, 22730, 22731, 22732, 22733, 22734, 22735, 22736, 22738, 22739, 22740, 22742, 22743, 22744, 22745, 22746, 22747, 22748, 22749, 22750, 22751, 22752, 22753, 22754, 22755, 22757, 22758, 22759, 22760, 22761, 22762, 22765, 22767, 22769, 22770, 22772, 22773, 22775, 22776, 22778, 22779, 22780, 22781, 22782, 22783, 22784, 22785, 22787, 22789, 22790, 22792, 22793, 22794, 22795, 22796, 22798, 22800, 22801, 22802, 22803, 22807, 22808, 22811, 22813, 22814, 22816, 22817, 22818, 22819, 22822, 22824, 22828, 22832, 22834, 22835, 22837, 22838, 22843, 22845, 22846, 22847, 22848, 22851, 22853, 22854, 22858, 22860, 22861, 22864, 22866, 22867, 22873, 22875, 22876, 22877, 22878, 22879, 22881, 22883, 22884, 22886, 22887, 22888, 22889, 22890, 22891, 22892, 22893, 22894, 22895, 22896, 22897, 22898, 22901, 22903, 22906, 22907, 22908, 22910, 22911, 22912, 22917, 22921, 22923, 22924, 22926, 22927, 22928, 22929, 22932, 22933, 22936, 22938, 22939, 22940, 22941, 22943, 22944, 22945, 22946, 22950, 22951, 22956, 22957, 22960, 22961, 22963, 22964, 22965, 22966, 22967, 22968, 22970, 22972, 22973, 22975, 22976, 22977, 22978, 22979, 22980, 22981, 22983, 22984, 22985, 22988, 22989, 22990, 22991, 22997, 22998, 23001, 23003, 23006, 23007, 23008, 23009, 23010, 23012, 23014, 23015, 23017, 23018, 23019, 23021, 23022, 23023, 23024, 23025, 23026, 23027, 23028, 23029, 23030, 23031, 23032, 23034, 23036, 23037, 23038, 23040, 23042, 23050, 23051, 23053, 23054, 23055, 23056, 23058, 23060, 23061, 23062, 23063, 23065, 23066, 23067, 23069, 23070, 23073, 23074, 23076, 23078, 23079, 23080, 23082, 23083, 23084, 23085, 23086, 23087, 23088, 23091, 23093, 23095, 23096, 23097, 23098, 23099, 23101, 23102, 23103, 23105, 23106, 23107, 23108, 23109, 23111, 23112, 23115, 23116, 23117, 23118, 23119, 23120, 23121, 23122, 23123, 23124, 23126, 23127, 23128, 23129, 23131, 23132, 23133, 23134, 23135, 23136, 23137, 23139, 23140, 23141, 23142, 23144, 23145, 23147, 23148, 23149, 23150, 23151, 23152, 23153, 23154, 23155, 23160, 23161, 23163, 23164, 23165, 23166, 23168, 23169, 23170, 23171, 23172, 23173, 23174, 23175, 23176, 23177, 23178, 23179, 23180, 23181, 23182, 23183, 23184, 23185, 23187, 23188, 23189, 23190, 23191, 23192, 23193, 23196, 23197, 23198, 23199, 23200, 23201, 23202, 23203, 23204, 23205, 23206, 23207, 23208, 23209, 23211, 23212, 23213, 23214, 23215, 23216, 23217, 23220, 23222, 23223, 23225, 23226, 23227, 23228, 23229, 23231, 23232, 23235, 23236, 23237, 23238, 23239, 23240, 23242, 23243, 23245, 23246, 23247, 23248, 23249, 23251, 23253, 23255, 23257, 23258, 23259, 23261, 23262, 23263, 23266, 23268, 23269, 23271, 23272, 23274, 23276, 23277, 23278, 23279, 23280, 23282, 23283, 23284, 23285, 23286, 23287, 23288, 23289, 23290, 23291, 23292, 23293, 23294, 23295, 23296, 23297, 23298, 23299, 23300, 23301, 23302, 23303, 23304, 23306, 23307, 23308, 23309, 23310, 23311, 23312, 23313, 23314, 23315, 23316, 23317, 23320, 23321, 23322, 23323, 23324, 23325, 23326, 23327, 23328, 23329, 23330, 23331, 23332, 23333, 23334, 23335, 23336, 23337, 23338, 23339, 23340, 23341, 23342, 23343, 23344, 23345, 23347, 23349, 23350, 23352, 23353, 23354, 23355, 23356, 23357, 23358, 23359, 23361, 23362, 23363, 23364, 23365, 23366, 23367, 23368, 23369, 23370, 23371, 23372, 23373, 23374, 23375, 23378, 23382, 23390, 23392, 23393, 23399, 23400, 23403, 23405, 23406, 23407, 23410, 23412, 23414, 23415, 23416, 23417, 23419, 23420, 23422, 23423, 23426, 23430, 23434, 23437, 23438, 23440, 23441, 23442, 23444, 23446, 23455, 23463, 23464, 23465, 23468, 23469, 23470, 23471, 23473, 23474, 23479, 23482, 23483, 23484, 23488, 23489, 23491, 23496, 23497, 23498, 23499, 23501, 23502, 23503, 23505, 23508, 23509, 23510, 23511, 23512, 23513, 23514, 23515, 23516, 23520, 23522, 23523, 23526, 23527, 23529, 23530, 23531, 23532, 23533, 23535, 23537, 23538, 23539, 23540, 23541, 23542, 23543, 23549, 23550, 23552, 23554, 23555, 23557, 23559, 23560, 23563, 23564, 23565, 23566, 23568, 23570, 23571, 23575, 23577, 23579, 23582, 23583, 23584, 23585, 23587, 23590, 23592, 23593, 23594, 23595, 23597, 23598, 23599, 23600, 23602, 23603, 23605, 23606, 23607, 23619, 23620, 23622, 23623, 23628, 23629, 23634, 23635, 23636, 23638, 23639, 23640, 23642, 23643, 23644, 23645, 23647, 23650, 23652, 23655, 23656, 23657, 23658, 23659, 23660, 23661, 23664, 23666, 23667, 23668, 23669, 23670, 23671, 23672, 23675, 23676, 23677, 23678, 23680, 23683, 23684, 23685, 23686, 23687, 23689, 23690, 23691, 23694, 23695, 23698, 23699, 23701, 23709, 23710, 23711, 23712, 23713, 23716, 23717, 23718, 23719, 23720, 23722, 23726, 23727, 23728, 23730, 23732, 23734, 23737, 23738, 23739, 23740, 23742, 23744, 23746, 23747, 23749, 23750, 23751, 23752, 23753, 23754, 23756, 23757, 23758, 23759, 23760, 23761, 23763, 23764, 23765, 23766, 23767, 23768, 23770, 23771, 23772, 23773, 23774, 23775, 23776, 23778, 23779, 23783, 23785, 23787, 23788, 23790, 23791, 23793, 23794, 23795, 23796, 23797, 23798, 23799, 23800, 23801, 23802, 23804, 23805, 23806, 23807, 23808, 23809, 23812, 23813, 23816, 23817, 23818, 23819, 23820, 23821, 23823, 23824, 23825, 23826, 23827, 23829, 23831, 23832, 23833, 23834, 23836, 23837, 23839, 23840, 23841, 23842, 23843, 23845, 23848, 23850, 23851, 23852, 23855, 23856, 23857, 23858, 23859, 23861, 23862, 23863, 23864, 23865, 23866, 23867, 23868, 23871, 23872, 23873, 23874, 23875, 23876, 23877, 23878, 23880, 23881, 23885, 23886, 23887, 23888, 23889, 23890, 23891, 23892, 23893, 23894, 23895, 23897, 23898, 23900, 23902, 23903, 23904, 23905, 23906, 23907, 23908, 23909, 23910, 23911, 23912, 23914, 23917, 23918, 23920, 23921, 23922, 23923, 23925, 23926, 23927, 23928, 23929, 23930, 23931, 23932, 23933, 23934, 23935, 23936, 23937, 23939, 23940, 23941, 23942, 23943, 23944, 23945, 23946, 23947, 23948, 23949, 23950, 23951, 23952, 23953, 23954, 23955, 23956, 23957, 23958, 23959, 23960, 23962, 23963, 23964, 23966, 23967, 23968, 23969, 23970, 23971, 23972, 23973, 23974, 23975, 23976, 23977, 23978, 23979, 23980, 23981, 23982, 23983, 23984, 23985, 23986, 23987, 23988, 23989, 23990, 23992, 23993, 23994, 23995, 23996, 23997, 23998, 23999, 24000, 24001, 24002, 24003, 24004, 24006, 24007, 24008, 24009, 24010, 24011, 24012, 24014, 24015, 24016, 24017, 24018, 24019, 24020, 24021, 24022, 24023, 24024, 24025, 24026, 24028, 24031, 24032, 24035, 24036, 24042, 24044, 24045, 24048, 24053, 24054, 24056, 24057, 24058, 24059, 24060, 24063, 24064, 24068, 24071, 24073, 24074, 24075, 24077, 24078, 24082, 24083, 24087, 24094, 24095, 24096, 24097, 24098, 24099, 24100, 24101, 24104, 24105, 24106, 24107, 24108, 24111, 24112, 24114, 24115, 24116, 24117, 24118, 24121, 24122, 24126, 24127, 24128, 24129, 24131, 24134, 24135, 24136, 24137, 24138, 24139, 24141, 24142, 24143, 24144, 24145, 24146, 24147, 24150, 24151, 24152, 24153, 24154, 24156, 24157, 24159, 24160, 24163, 24164, 24165, 24166, 24167, 24168, 24169, 24170, 24171, 24172, 24173, 24174, 24175, 24176, 24177, 24181, 24183, 24185, 24190, 24193, 24194, 24195, 24197, 24200, 24201, 24204, 24205, 24206, 24210, 24216, 24219, 24221, 24225, 24226, 24227, 24228, 24232, 24233, 24234, 24235, 24236, 24238, 24239, 24240, 24241, 24242, 24244, 24250, 24251, 24252, 24253, 24255, 24256, 24257, 24258, 24259, 24260, 24261, 24262, 24263, 24264, 24267, 24268, 24269, 24270, 24271, 24272, 24276, 24277, 24279, 24280, 24281, 24282, 24284, 24285, 24286, 24287, 24288, 24289, 24290, 24291, 24292, 24293, 24294, 24295, 24297, 24299, 24300, 24301, 24302, 24303, 24304, 24305, 24306, 24307, 24309, 24312, 24313, 24315, 24316, 24317, 24325, 24326, 24327, 24329, 24332, 24333, 24334, 24336, 24338, 24340, 24342, 24345, 24346, 24348, 24349, 24350, 24353, 24354, 24355, 24356, 24360, 24363, 24364, 24366, 24368, 24370, 24371, 24372, 24373, 24374, 24375, 24376, 24379, 24381, 24382, 24383, 24385, 24386, 24387, 24388, 24389, 24390, 24391, 24392, 24393, 24394, 24395, 24396, 24397, 24398, 24399, 24401, 24404, 24409, 24410, 24411, 24412, 24414, 24415, 24416, 24419, 24421, 24423, 24424, 24427, 24430, 24431, 24434, 24436, 24437, 24438, 24440, 24442, 24445, 24446, 24447, 24451, 24454, 24461, 24462, 24463, 24465, 24467, 24468, 24470, 24474, 24475, 24477, 24478, 24479, 24480, 24482, 24483, 24484, 24485, 24486, 24487, 24489, 24491, 24492, 24495, 24496, 24497, 24498, 24499, 24500, 24502, 24504, 24505, 24506, 24507, 24510, 24511, 24512, 24513, 24514, 24519, 24520, 24522, 24523, 24526, 24531, 24532, 24533, 24538, 24539, 24540, 24542, 24543, 24546, 24547, 24549, 24550, 24552, 24553, 24556, 24559, 24560, 24562, 24563, 24564, 24566, 24567, 24569, 24570, 24572, 24583, 24584, 24585, 24587, 24588, 24592, 24593, 24595, 24599, 24600, 24602, 24606, 24607, 24610, 24611, 24612, 24620, 24621, 24622, 24624, 24625, 24626, 24627, 24628, 24630, 24631, 24632, 24633, 24634, 24637, 24638, 24640, 24644, 24645, 24646, 24647, 24648, 24649, 24650, 24652, 24654, 24655, 24657, 24659, 24660, 24662, 24663, 24664, 24667, 24668, 24670, 24671, 24672, 24673, 24677, 24678, 24686, 24689, 24690, 24692, 24693, 24695, 24702, 24704, 24705, 24706, 24709, 24710, 24711, 24712, 24714, 24715, 24718, 24719, 24720, 24721, 24723, 24725, 24727, 24728, 24729, 24732, 24734, 24737, 24738, 24740, 24741, 24743, 24745, 24746, 24750, 24752, 24755, 24757, 24758, 24759, 24761, 24762, 24765, 24766, 24767, 24768, 24769, 24770, 24771, 24772, 24775, 24776, 24777, 24780, 24781, 24782, 24783, 24784, 24786, 24787, 24788, 24790, 24791, 24793, 24795, 24798, 24801, 24802, 24803, 24804, 24805, 24810, 24817, 24818, 24821, 24823, 24824, 24827, 24828, 24829, 24830, 24831, 24834, 24835, 24836, 24837, 24839, 24842, 24843, 24844, 24848, 24849, 24850, 24851, 24852, 24854, 24855, 24856, 24857, 24859, 24860, 24861, 24862, 24865, 24866, 24869, 24872, 24873, 24874, 24876, 24877, 24878, 24879, 24880, 24881, 24882, 24883, 24884, 24885, 24886, 24887, 24888, 24889, 24890, 24891, 24892, 24893, 24894, 24896, 24897, 24898, 24899, 24900, 24901, 24902, 24903, 24905, 24907, 24909, 24911, 24912, 24914, 24915, 24916, 24918, 24919, 24920, 24921, 24922, 24923, 24924, 24926, 24927, 24928, 24929, 24931, 24932, 24933, 24934, 24937, 24938, 24939, 24940, 24941, 24942, 24943, 24945, 24946, 24947, 24948, 24950, 24952, 24953, 24954, 24955, 24956, 24957, 24958, 24959, 24960, 24961, 24962, 24963, 24964, 24965, 24966, 24967, 24968, 24969, 24970, 24972, 24973, 24975, 24976, 24977, 24978, 24979, 24981, 24982, 24983, 24984, 24985, 24986, 24987, 24988, 24990, 24991, 24992, 24993, 24994, 24995, 24996, 24997, 24998, 25002, 25003, 25005, 25006, 25007, 25008, 25009, 25010, 25011, 25012, 25013, 25014, 25016, 25017, 25018, 25019, 25020, 25021, 25023, 25024, 25025, 25027, 25028, 25029, 25030, 25031, 25033, 25036, 25037, 25038, 25039, 25040, 25043, 25045, 25046, 25047, 25048, 25049, 25050, 25051, 25052, 25053, 25054, 25055, 25056, 25057, 25058, 25059, 25060, 25061, 25063, 25064, 25065, 25066, 25067, 25068, 25069, 25070, 25071, 25072, 25073, 25074, 25075, 25076, 25078, 25079, 25080, 25081, 25082, 25083, 25084, 25085, 25086, 25088, 25089, 25090, 25091, 25092, 25093, 25095, 25097, 25107, 25108, 25113, 25116, 25117, 25118, 25120, 25123, 25126, 25127, 25128, 25129, 25131, 25133, 25135, 25136, 25137, 25138, 25141, 25142, 25144, 25145, 25146, 25147, 25148, 25154, 25156, 25157, 25158, 25162, 25167, 25168, 25173, 25174, 25175, 25177, 25178, 25180, 25181, 25182, 25183, 25184, 25185, 25186, 25188, 25189, 25192, 25201, 25202, 25204, 25205, 25207, 25208, 25210, 25211, 25213, 25217, 25218, 25219, 25221, 25222, 25223, 25224, 25227, 25228, 25229, 25230, 25231, 25232, 25236, 25241, 25244, 25245, 25246, 25251, 25254, 25255, 25257, 25258, 25261, 25262, 25263, 25264, 25266, 25267, 25268, 25270, 25271, 25272, 25274, 25278, 25280, 25281, 25283, 25291, 25295, 25297, 25301, 25309, 25310, 25312, 25313, 25316, 25322, 25323, 25328, 25330, 25333, 25336, 25337, 25338, 25339, 25344, 25347, 25348, 25349, 25350, 25354, 25355, 25356, 25357, 25359, 25360, 25362, 25363, 25364, 25365, 25367, 25368, 25369, 25372, 25382, 25383, 25385, 25388, 25389, 25390, 25392, 25393, 25395, 25396, 25397, 25398, 25399, 25400, 25403, 25404, 25406, 25407, 25408, 25409, 25412, 25415, 25416, 25418, 25425, 25426, 25427, 25428, 25430, 25431, 25432, 25433, 25434, 25435, 25436, 25437, 25440, 25444, 25445, 25446, 25448, 25450, 25451, 25452, 25455, 25456, 25458, 25459, 25460, 25461, 25464, 25465, 25468, 25469, 25470, 25471, 25473, 25475, 25476, 25477, 25478, 25483, 25485, 25489, 25491, 25492, 25493, 25495, 25497, 25498, 25499, 25500, 25501, 25502, 25503, 25505, 25508, 25510, 25515, 25519, 25521, 25522, 25525, 25526, 25529, 25531, 25533, 25535, 25536, 25537, 25538, 25539, 25541, 25543, 25544, 25546, 25547, 25548, 25553, 25555, 25556, 25557, 25559, 25560, 25561, 25562, 25563, 25564, 25565, 25567, 25570, 25572, 25573, 25574, 25575, 25576, 25579, 25580, 25582, 25583, 25584, 25585, 25587, 25589, 25591, 25593, 25594, 25595, 25596, 25598, 25603, 25604, 25606, 25607, 25608, 25609, 25610, 25613, 25614, 25617, 25618, 25621, 25622, 25623, 25624, 25625, 25626, 25629, 25631, 25634, 25635, 25636, 25637, 25639, 25640, 25641, 25643, 25646, 25647, 25648, 25649, 25650, 25651, 25653, 25654, 25655, 25656, 25657, 25659, 25660, 25662, 25664, 25666, 25667, 25673, 25675, 25676, 25677, 25678, 25679, 25680, 25681, 25683, 25685, 25686, 25687, 25689, 25690, 25691, 25692, 25693, 25695, 25696, 25697, 25698, 25699, 25700, 25701, 25702, 25704, 25706, 25707, 25708, 25710, 25711, 25712, 25713, 25714, 25715, 25716, 25717, 25718, 25719, 25723, 25724, 25725, 25726, 25727, 25728, 25729, 25731, 25734, 25736, 25737, 25738, 25739, 25740, 25741, 25742, 25743, 25744, 25747, 25748, 25751, 25752, 25754, 25755, 25756, 25757, 25759, 25760, 25761, 25762, 25763, 25765, 25766, 25767, 25768, 25770, 25771, 25775, 25777, 25778, 25779, 25780, 25782, 25785, 25787, 25789, 25790, 25791, 25793, 25795, 25796, 25798, 25799, 25800, 25801, 25802, 25803, 25804, 25807, 25809, 25811, 25812, 25813, 25814, 25817, 25818, 25819, 25820, 25821, 25823, 25824, 25825, 25827, 25829, 25831, 25832, 25833, 25834, 25835, 25836, 25837, 25838, 25839, 25840, 25841, 25842, 25843, 25844, 25845, 25846, 25847, 25848, 25849, 25850, 25851, 25852, 25853, 25854, 25855, 25857, 25858, 25859, 25860, 25861, 25862, 25863, 25864, 25866, 25867, 25868, 25869, 25870, 25871, 25872, 25873, 25875, 25876, 25877, 25878, 25879, 25881, 25882, 25883, 25884, 25885, 25886, 25887, 25888, 25889, 25890, 25891, 25892, 25894, 25895, 25896, 25897, 25898, 25900, 25901, 25904, 25905, 25906, 25907, 25911, 25914, 25916, 25917, 25920, 25921, 25922, 25923, 25924, 25926, 25927, 25930, 25931, 25933, 25934, 25936, 25938, 25939, 25940, 25943, 25944, 25946, 25948, 25951, 25952, 25953, 25956, 25957, 25959, 25960, 25961, 25962, 25965, 25966, 25967, 25969, 25971, 25973, 25974, 25976, 25977, 25978, 25979, 25980, 25981, 25982, 25983, 25984, 25985, 25986, 25987, 25988, 25989, 25990, 25992, 25993, 25994, 25997, 25998, 25999, 26002, 26004, 26005, 26006, 26008, 26010, 26013, 26014, 26016, 26018, 26019, 26022, 26024, 26026, 26028, 26030, 26033, 26034, 26035, 26036, 26037, 26038, 26039, 26040, 26042, 26043, 26046, 26047, 26048, 26050, 26055, 26056, 26057, 26058, 26061, 26064, 26065, 26067, 26068, 26069, 26072, 26073, 26074, 26075, 26076, 26077, 26078, 26079, 26081, 26083, 26084, 26090, 26091, 26098, 26099, 26100, 26101, 26104, 26105, 26107, 26108, 26109, 26110, 26111, 26113, 26116, 26117, 26119, 26120, 26121, 26123, 26125, 26128, 26129, 26130, 26134, 26135, 26136, 26138, 26139, 26140, 26142, 26145, 26146, 26147, 26148, 26150, 26153, 26154, 26155, 26156, 26158, 26160, 26162, 26163, 26167, 26168, 26169, 26170, 26171, 26173, 26175, 26176, 26178, 26180, 26181, 26182, 26183, 26184, 26185, 26186, 26189, 26190, 26192, 26193, 26200, 26201, 26203, 26204, 26205, 26206, 26208, 26210, 26211, 26213, 26215, 26217, 26218, 26219, 26220, 26221, 26225, 26226, 26227, 26229, 26232, 26233, 26235, 26236, 26237, 26239, 26240, 26241, 26243, 26245, 26246, 26248, 26249, 26250, 26251, 26253, 26254, 26255, 26256, 26258, 26259, 26260, 26261, 26264, 26265, 26266, 26267, 26268, 26270, 26271, 26272, 26273, 26274, 26275, 26276, 26277, 26278, 26281, 26282, 26283, 26284, 26285, 26287, 26288, 26289, 26290, 26291, 26293, 26294, 26295, 26296, 26298, 26299, 26300, 26301, 26303, 26304, 26305, 26306, 26307, 26308, 26309, 26310, 26311, 26312, 26313, 26314, 26315, 26316, 26317, 26318, 26319, 26320, 26321, 26322, 26323, 26324, 26325, 26326, 26327, 26328, 26330, 26334, 26335, 26336, 26337, 26338, 26339, 26340, 26341, 26343, 26344, 26346, 26347, 26348, 26349, 26350, 26351, 26353, 26357, 26358, 26360, 26362, 26363, 26365, 26369, 26370, 26371, 26372, 26373, 26374, 26375, 26380, 26382, 26383, 26385, 26386, 26387, 26390, 26392, 26393, 26394, 26396, 26398, 26400, 26401, 26402, 26403, 26404, 26405, 26407, 26409, 26414, 26416, 26418, 26419, 26422, 26423, 26424, 26425, 26427, 26428, 26430, 26431, 26433, 26436, 26437, 26439, 26442, 26443, 26445, 26450, 26452, 26453, 26455, 26456, 26457, 26458, 26459, 26461, 26466, 26467, 26468, 26470, 26471, 26475, 26476, 26478, 26481, 26484, 26486, 26488, 26489, 26490, 26491, 26493, 26496, 26498, 26499, 26501, 26502, 26504, 26506, 26508, 26509, 26510, 26511, 26513, 26514, 26515, 26516, 26518, 26521, 26523, 26527, 26528, 26529, 26532, 26534, 26537, 26540, 26542, 26545, 26546, 26548, 26553, 26554, 26555, 26556, 26557, 26558, 26559, 26560, 26562, 26565, 26566, 26567, 26568, 26569, 26570, 26571, 26572, 26573, 26574, 26581, 26582, 26583, 26587, 26591, 26593, 26595, 26596, 26598, 26599, 26600, 26602, 26603, 26605, 26606, 26610, 26613, 26614, 26615, 26616, 26617, 26618, 26619, 26620, 26622, 26625, 26626, 26627, 26628, 26630, 26637, 26640, 26642, 26644, 26645, 26648, 26649, 26650, 26651, 26652, 26654, 26655, 26656, 26658, 26659, 26660, 26661, 26662, 26663, 26664, 26667, 26668, 26669, 26670, 26671, 26672, 26673, 26676, 26677, 26678, 26682, 26683, 26687, 26695, 26699, 26701, 26703, 26706, 26710, 26711, 26712, 26713, 26714, 26715, 26716, 26717, 26718, 26719, 26730, 26732, 26733, 26734, 26735, 26736, 26737, 26738, 26739, 26741, 26744, 26745, 26746, 26747, 26748, 26749, 26750, 26751, 26752, 26754, 26756, 26759, 26760, 26761, 26762, 26763, 26764, 26765, 26766, 26768, 26769, 26770, 26772, 26773, 26774, 26776, 26777, 26778, 26779, 26780, 26781, 26782, 26783, 26784, 26785, 26787, 26788, 26789, 26793, 26794, 26795, 26796, 26798, 26801, 26802, 26804, 26806, 26807, 26808, 26809, 26810, 26811, 26812, 26813, 26814, 26815, 26817, 26819, 26820, 26821, 26822, 26823, 26824, 26826, 26828, 26830, 26831, 26832, 26833, 26835, 26836, 26838, 26839, 26841, 26843, 26844, 26845, 26846, 26847, 26849, 26850, 26852, 26853, 26854, 26855, 26856, 26857, 26858, 26859, 26860, 26861, 26863, 26866, 26867, 26868, 26870, 26871, 26872, 26875, 26877, 26878, 26879, 26880, 26882, 26883, 26884, 26886, 26887, 26888, 26889, 26890, 26892, 26895, 26897, 26899, 26900, 26901, 26902, 26903, 26904, 26905, 26906, 26907, 26908, 26909, 26910, 26913, 26914, 26915, 26917, 26918, 26919, 26920, 26921, 26922, 26923, 26924, 26926, 26927, 26929, 26930, 26931, 26933, 26934, 26935, 26936, 26938, 26939, 26940, 26942, 26944, 26945, 26947, 26948, 26949, 26950, 26951, 26952, 26953, 26954, 26955, 26956, 26957, 26958, 26959, 26960, 26961, 26962, 26963, 26965, 26966, 26968, 26969, 26971, 26972, 26975, 26977, 26978, 26980, 26981, 26983, 26984, 26985, 26986, 26988, 26989, 26991, 26992, 26994, 26995, 26996, 26997, 26998, 27002, 27003, 27005, 27006, 27007, 27009, 27011, 27013, 27018, 27019, 27020, 27022, 27023, 27024, 27025, 27026, 27027, 27030, 27031, 27033, 27034, 27037, 27038, 27039, 27040, 27041, 27042, 27043, 27044, 27045, 27046, 27049, 27050, 27052, 27054, 27055, 27056, 27058, 27059, 27061, 27062, 27064, 27065, 27066, 27068, 27069, 27070, 27071, 27072, 27074, 27075, 27076, 27077, 27078, 27079, 27080, 27081, 27083, 27085, 27087, 27089, 27090, 27091, 27093, 27094, 27095, 27096, 27097, 27098, 27100, 27101, 27102, 27105, 27106, 27107, 27108, 27109, 27110, 27111, 27112, 27113, 27114, 27115, 27116, 27118, 27119, 27120, 27121, 27123, 27124, 27125, 27126, 27127, 27128, 27129, 27130, 27131, 27132, 27134, 27136, 27137, 27138, 27139, 27140, 27141, 27142, 27143, 27144, 27145, 27147, 27148, 27149, 27150, 27151, 27152, 27153, 27154, 27155, 27156, 27157, 27158, 27161, 27162, 27163, 27164, 27165, 27166, 27168, 27170, 27171, 27172, 27173, 27174, 27175, 27177, 27179, 27180, 27181, 27182, 27184, 27186, 27187, 27188, 27190, 27191, 27192, 27193, 27194, 27195, 27196, 27199, 27200, 27201, 27202, 27203, 27205, 27206, 27208, 27209, 27210, 27211, 27212, 27213, 27214, 27215, 27217, 27218, 27219, 27220, 27221, 27222, 27223, 27226, 27228, 27229, 27230, 27231, 27232, 27234, 27235, 27236, 27238, 27239, 27240, 27241, 27242, 27243, 27244, 27245, 27246, 27247, 27248, 27250, 27251, 27252, 27253, 27254, 27255, 27256, 27258, 27259, 27261, 27262, 27263, 27265, 27266, 27267, 27269, 27270, 27271, 27272, 27273, 27274, 27275, 27276, 27277, 27279, 27282, 27283, 27284, 27285, 27286, 27288, 27289, 27290, 27291, 27292, 27293, 27294, 27295, 27297, 27298, 27299, 27300, 27301, 27302, 27303, 27304, 27306, 27309, 27310, 27311, 27312, 27313, 27314, 27315, 27316, 27317, 27318, 27319, 27320, 27321, 27322, 27323, 27324, 27325, 27326, 27327, 27328, 27329, 27330, 27331, 27332, 27333, 27334, 27335, 27336, 27337, 27338, 27339, 27340, 27341, 27342, 27343, 27344, 27345, 27346, 27347, 27348, 27349, 27350, 27351, 27352, 27353, 27354, 27355, 27356, 27357, 27358, 27359, 27360, 27361, 27362, 27363, 27364, 27365, 27366, 27367, 27368, 27369, 27370, 27371, 27372, 27373, 27374, 27375, 27376, 27377, 27378, 27379, 27380, 27381, 27382, 27383, 27384, 27385, 27386, 27387, 27388, 27389, 27390, 27391, 27392, 27393, 27394, 27395, 27396, 27397, 27398, 27399, 27400, 27401, 27402, 27403, 27404, 27405, 27406, 27407, 27408, 27409, 27410, 27411, 27412, 27413, 27414, 27415, 27416, 27417, 27418, 27419, 27420, 27421, 27422, 27423, 27429, 27430, 27432, 27433, 27434, 27435, 27436, 27437, 27438, 27439, 27440, 27441, 27443, 27444, 27445, 27446, 27448, 27451, 27452, 27453, 27455, 27456, 27457, 27458, 27460, 27461, 27464, 27466, 27467, 27469, 27470, 27471, 27472, 27473, 27474, 27475, 27476, 27477, 27478, 27479, 27480, 27482, 27483, 27484, 27485, 27486, 27487, 27488, 27489, 27496, 27497, 27499, 27500, 27501, 27502, 27503, 27504, 27505, 27506, 27507, 27508, 27509, 27510, 27511, 27512, 27514, 27517, 27518, 27519, 27520, 27525, 27528, 27532, 27534, 27535, 27536, 27537, 27540, 27541, 27543, 27544, 27545, 27548, 27549, 27550, 27551, 27552, 27554, 27555, 27556, 27557, 27558, 27559, 27560, 27561, 27563, 27564, 27565, 27566, 27567, 27568, 27569, 27570, 27574, 27576, 27577, 27578, 27579, 27580, 27581, 27582, 27584, 27587, 27588, 27590, 27591, 27592, 27593, 27594, 27596, 27598, 27600, 27601, 27608, 27610, 27612, 27613, 27614, 27615, 27616, 27618, 27619, 27620, 27621, 27622, 27623, 27624, 27625, 27628, 27629, 27630, 27632, 27633, 27634, 27636, 27638, 27639, 27640, 27642, 27643, 27644, 27646, 27647, 27648, 27649, 27650, 27651, 27652, 27656, 27657, 27658, 27659, 27660, 27662, 27666, 27671, 27676, 27677, 27678, 27680, 27683, 27685, 27691, 27692, 27693, 27697, 27699, 27702, 27703, 27705, 27706, 27707, 27708, 27710, 27711, 27715, 27716, 27717, 27720, 27723, 27724, 27725, 27726, 27727, 27729, 27730, 27731, 27734, 27736, 27737, 27738, 27746, 27747, 27749, 27750, 27751, 27755, 27756, 27757, 27758, 27759, 27761, 27763, 27765, 27767, 27768, 27770, 27771, 27772, 27775, 27776, 27780, 27783, 27786, 27787, 27789, 27790, 27793, 27794, 27797, 27798, 27799, 27800, 27802, 27804, 27805, 27806, 27808, 27810, 27816, 27820, 27823, 27824, 27828, 27829, 27830, 27831, 27834, 27840, 27841, 27842, 27843, 27846, 27847, 27848, 27851, 27853, 27854, 27855, 27857, 27858, 27864, 27865, 27866, 27868, 27869, 27871, 27876, 27878, 27879, 27881, 27884, 27885, 27890, 27892, 27897, 27903, 27904, 27906, 27907, 27909, 27910, 27912, 27913, 27914, 27917, 27919, 27920, 27921, 27923, 27924, 27925, 27926, 27928, 27932, 27933, 27935, 27936, 27937, 27938, 27939, 27940, 27942, 27944, 27945, 27948, 27949, 27951, 27952, 27956, 27958, 27959, 27960, 27962, 27967, 27968, 27970, 27972, 27977, 27980, 27984, 27989, 27990, 27991, 27992, 27995, 27997, 27999, 28001, 28002, 28004, 28005, 28007, 28008, 28011, 28012, 28013, 28016, 28017, 28018, 28019, 28021, 28022, 28025, 28026, 28027, 28029, 28030, 28031, 28032, 28033, 28035, 28036, 28038, 28039, 28042, 28043, 28045, 28047, 28048, 28050, 28054, 28055, 28056, 28057, 28058, 28060, 28066, 28069, 28076, 28077, 28080, 28081, 28083, 28084, 28086, 28087, 28089, 28090, 28091, 28092, 28093, 28094, 28097, 28098, 28099, 28104, 28105, 28106, 28109, 28110, 28111, 28112, 28114, 28115, 28116, 28117, 28119, 28122, 28123, 28124, 28127, 28130, 28131, 28133, 28135, 28136, 28137, 28138, 28141, 28143, 28144, 28146, 28148, 28149, 28150, 28152, 28154, 28157, 28158, 28159, 28160, 28161, 28162, 28163, 28164, 28166, 28167, 28168, 28169, 28171, 28175, 28178, 28179, 28181, 28184, 28185, 28187, 28188, 28190, 28191, 28194, 28198, 28199, 28200, 28202, 28204, 28206, 28208, 28209, 28211, 28213, 28214, 28215, 28217, 28219, 28220, 28221, 28222, 28223, 28224, 28225, 28226, 28229, 28230, 28231, 28232, 28233, 28234, 28235, 28236, 28239, 28240, 28241, 28242, 28245, 28247, 28249, 28250, 28252, 28253, 28254, 28256, 28257, 28258, 28259, 28260, 28261, 28262, 28263, 28264, 28265, 28266, 28268, 28269, 28271, 28272, 28273, 28274, 28275, 28276, 28277, 28278, 28279, 28280, 28281, 28282, 28283, 28284, 28285, 28288, 28289, 28290, 28292, 28295, 28296, 28298, 28299, 28300, 28301, 28302, 28305, 28306, 28307, 28308, 28309, 28310, 28311, 28313, 28314, 28315, 28317, 28318, 28320, 28321, 28323, 28324, 28326, 28328, 28329, 28331, 28332, 28333, 28334, 28336, 28339, 28341, 28344, 28345, 28348, 28350, 28351, 28352, 28355, 28356, 28357, 28358, 28360, 28361, 28362, 28364, 28365, 28366, 28368, 28370, 28374, 28376, 28377, 28379, 28380, 28381, 28387, 28391, 28394, 28395, 28396, 28397, 28398, 28399, 28400, 28401, 28402, 28403, 28405, 28406, 28407, 28408, 28410, 28411, 28412, 28413, 28414, 28415, 28416, 28417, 28419, 28420, 28421, 28423, 28424, 28426, 28427, 28428, 28429, 28430, 28432, 28433, 28434, 28438, 28439, 28440, 28441, 28442, 28443, 28444, 28445, 28446, 28447, 28449, 28450, 28451, 28453, 28454, 28455, 28456, 28460, 28462, 28464, 28466, 28468, 28469, 28471, 28472, 28473, 28474, 28475, 28476, 28477, 28479, 28480, 28481, 28482, 28483, 28484, 28485, 28488, 28489, 28490, 28492, 28494, 28495, 28496, 28497, 28498, 28499, 28500, 28501, 28502, 28503, 28505, 28506, 28507, 28509, 28511, 28512, 28513, 28515, 28516, 28517, 28519, 28520, 28521, 28522, 28523, 28524, 28527, 28528, 28529, 28531, 28533, 28534, 28535, 28537, 28539, 28541, 28542, 28543, 28544, 28545, 28546, 28547, 28549, 28550, 28551, 28554, 28555, 28559, 28560, 28561, 28562, 28563, 28564, 28565, 28566, 28567, 28568, 28569, 28570, 28571, 28573, 28574, 28575, 28576, 28578, 28579, 28580, 28581, 28582, 28584, 28585, 28586, 28587, 28588, 28589, 28590, 28591, 28592, 28593, 28594, 28596, 28597, 28599, 28600, 28602, 28603, 28604, 28605, 28606, 28607, 28609, 28611, 28612, 28613, 28614, 28615, 28616, 28618, 28619, 28620, 28621, 28622, 28623, 28624, 28627, 28628, 28629, 28630, 28631, 28632, 28633, 28634, 28635, 28636, 28637, 28639, 28642, 28643, 28644, 28645, 28646, 28647, 28648, 28649, 28650, 28651, 28652, 28653, 28656, 28657, 28658, 28659, 28660, 28661, 28662, 28663, 28664, 28665, 28666, 28667, 28668, 28669, 28670, 28671, 28672, 28673, 28674, 28675, 28676, 28677, 28678, 28679, 28680, 28681, 28682, 28683, 28684, 28685, 28686, 28687, 28688, 28690, 28691, 28692, 28693, 28694, 28695, 28696, 28697, 28700, 28701, 28702, 28703, 28704, 28705, 28706, 28708, 28709, 28710, 28711, 28712, 28713, 28714, 28715, 28716, 28717, 28718, 28719, 28720, 28721, 28722, 28723, 28724, 28726, 28727, 28728, 28730, 28731, 28732, 28733, 28734, 28735, 28736, 28737, 28738, 28739, 28740, 28741, 28742, 28743, 28744, 28745, 28746, 28747, 28749, 28750, 28752, 28753, 28754, 28755, 28756, 28757, 28758, 28759, 28760, 28761, 28762, 28763, 28764, 28765, 28767, 28768, 28769, 28770, 28771, 28772, 28773, 28774, 28775, 28776, 28777, 28778, 28782, 28785, 28786, 28787, 28788, 28791, 28793, 28794, 28795, 28797, 28801, 28802, 28803, 28804, 28806, 28807, 28808, 28811, 28812, 28813, 28815, 28816, 28817, 28819, 28823, 28824, 28826, 28827, 28830, 28831, 28832, 28833, 28834, 28835, 28836, 28837, 28838, 28839, 28840, 28841, 28842, 28848, 28850, 28852, 28853, 28854, 28858, 28862, 28863, 28868, 28869, 28870, 28871, 28873, 28875, 28876, 28877, 28878, 28879, 28880, 28881, 28882, 28883, 28884, 28885, 28886, 28887, 28890, 28892, 28893, 28894, 28896, 28897, 28898, 28899, 28901, 28906, 28910, 28912, 28913, 28914, 28915, 28916, 28917, 28918, 28920, 28922, 28923, 28924, 28926, 28927, 28928, 28929, 28930, 28931, 28932, 28933, 28934, 28935, 28936, 28939, 28940, 28941, 28942, 28943, 28945, 28946, 28948, 28951, 28955, 28956, 28957, 28958, 28959, 28960, 28961, 28962, 28963, 28964, 28965, 28967, 28968, 28969, 28970, 28971, 28972, 28973, 28974, 28978, 28979, 28980, 28981, 28983, 28984, 28985, 28986, 28987, 28988, 28989, 28990, 28991, 28992, 28993, 28994, 28995, 28996, 28998, 28999, 29000, 29001, 29003, 29005, 29007, 29008, 29009, 29010, 29011, 29012, 29013, 29014, 29015, 29016, 29017, 29018, 29019, 29021, 29023, 29024, 29025, 29026, 29027, 29029, 29033, 29034, 29035, 29036, 29037, 29039, 29040, 29041, 29044, 29045, 29046, 29047, 29049, 29051, 29052, 29054, 29055, 29056, 29057, 29058, 29059, 29061, 29062, 29063, 29064, 29065, 29067, 29068, 29069, 29070, 29072, 29073, 29074, 29075, 29077, 29078, 29079, 29082, 29083, 29084, 29085, 29086, 29089, 29090, 29091, 29092, 29093, 29094, 29095, 29097, 29098, 29099, 29101, 29102, 29103, 29104, 29105, 29106, 29108, 29110, 29111, 29112, 29114, 29115, 29116, 29117, 29118, 29119, 29120, 29121, 29122, 29124, 29125, 29126, 29127, 29128, 29129, 29130, 29131, 29132, 29133, 29135, 29136, 29137, 29138, 29139, 29142, 29143, 29144, 29145, 29146, 29147, 29148, 29149, 29150, 29151, 29153, 29154, 29155, 29156, 29158, 29160, 29161, 29162, 29163, 29164, 29165, 29167, 29168, 29169, 29170, 29171, 29172, 29173, 29174, 29175, 29176, 29178, 29179, 29180, 29181, 29182, 29183, 29184, 29185, 29186, 29187, 29188, 29189, 29191, 29192, 29193, 29194, 29195, 29196, 29197, 29198, 29199, 29200, 29201, 29202, 29203, 29204, 29205, 29206, 29207, 29208, 29209, 29210, 29211, 29212, 29214, 29215, 29216, 29217, 29218, 29219, 29220, 29221, 29222, 29223, 29225, 29227, 29229, 29230, 29231, 29234, 29235, 29236, 29242, 29244, 29246, 29248, 29249, 29250, 29251, 29252, 29253, 29254, 29257, 29258, 29259, 29262, 29263, 29264, 29265, 29267, 29268, 29269, 29271, 29272, 29274, 29276, 29278, 29280, 29283, 29284, 29285, 29288, 29290, 29291, 29292, 29293, 29296, 29297, 29299, 29300, 29302, 29303, 29304, 29307, 29308, 29309, 29314, 29315, 29317, 29318, 29319, 29320, 29321, 29324, 29326, 29328, 29329, 29331, 29332, 29333, 29334, 29335, 29336, 29337, 29338, 29339, 29340, 29341, 29342, 29344, 29345, 29346, 29347, 29348, 29349, 29350, 29351, 29352, 29353, 29354, 29355, 29358, 29361, 29362, 29363, 29365, 29370, 29371, 29372, 29373, 29374, 29375, 29376, 29381, 29382, 29383, 29385, 29386, 29387, 29388, 29391, 29393, 29395, 29396, 29397, 29398, 29400, 29402, 29403, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12288, 12289, 12290, 183, 713, 711, 168, 12291, 12293, 8212, 65374, 8214, 8230, 8216, 8217, 8220, 8221, 12308, 12309, 12296, 12297, 12298, 12299, 12300, 12301, 12302, 12303, 12310, 12311, 12304, 12305, 177, 215, 247, 8758, 8743, 8744, 8721, 8719, 8746, 8745, 8712, 8759, 8730, 8869, 8741, 8736, 8978, 8857, 8747, 8750, 8801, 8780, 8776, 8765, 8733, 8800, 8814, 8815, 8804, 8805, 8734, 8757, 8756, 9794, 9792, 176, 8242, 8243, 8451, 65284, 164, 65504, 65505, 8240, 167, 8470, 9734, 9733, 9675, 9679, 9678, 9671, 9670, 9633, 9632, 9651, 9650, 8251, 8594, 8592, 8593, 8595, 12307, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8560, 8561, 8562, 8563, 8564, 8565, 8566, 8567, 8568, 8569, 0, 0, 0, 0, 0, 0, 9352, 9353, 9354, 9355, 9356, 9357, 9358, 9359, 9360, 9361, 9362, 9363, 9364, 9365, 9366, 9367, 9368, 9369, 9370, 9371, 9332, 9333, 9334, 9335, 9336, 9337, 9338, 9339, 9340, 9341, 9342, 9343, 9344, 9345, 9346, 9347, 9348, 9349, 9350, 9351, 9312, 9313, 9314, 9315, 9316, 9317, 9318, 9319, 9320, 9321, 8364, 0, 12832, 12833, 12834, 12835, 12836, 12837, 12838, 12839, 12840, 12841, 0, 0, 8544, 8545, 8546, 8547, 8548, 8549, 8550, 8551, 8552, 8553, 8554, 8555, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12288, 65281, 65282, 65283, 65509, 65285, 65286, 65287, 65288, 65289, 65290, 65291, 65292, 65293, 65294, 65295, 65296, 65297, 65298, 65299, 65300, 65301, 65302, 65303, 65304, 65305, 65306, 65307, 65308, 65309, 65310, 65311, 65312, 65313, 65314, 65315, 65316, 65317, 65318, 65319, 65320, 65321, 65322, 65323, 65324, 65325, 65326, 65327, 65328, 65329, 65330, 65331, 65332, 65333, 65334, 65335, 65336, 65337, 65338, 65339, 65340, 65341, 65342, 65343, 65344, 65345, 65346, 65347, 65348, 65349, 65350, 65351, 65352, 65353, 65354, 65355, 65356, 65357, 65358, 65359, 65360, 65361, 65362, 65363, 65364, 65365, 65366, 65367, 65368, 65369, 65370, 65371, 65372, 65373, 65507, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12353, 12354, 12355, 12356, 12357, 12358, 12359, 12360, 12361, 12362, 12363, 12364, 12365, 12366, 12367, 12368, 12369, 12370, 12371, 12372, 12373, 12374, 12375, 12376, 12377, 12378, 12379, 12380, 12381, 12382, 12383, 12384, 12385, 12386, 12387, 12388, 12389, 12390, 12391, 12392, 12393, 12394, 12395, 12396, 12397, 12398, 12399, 12400, 12401, 12402, 12403, 12404, 12405, 12406, 12407, 12408, 12409, 12410, 12411, 12412, 12413, 12414, 12415, 12416, 12417, 12418, 12419, 12420, 12421, 12422, 12423, 12424, 12425, 12426, 12427, 12428, 12429, 12430, 12431, 12432, 12433, 12434, 12435, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12449, 12450, 12451, 12452, 12453, 12454, 12455, 12456, 12457, 12458, 12459, 12460, 12461, 12462, 12463, 12464, 12465, 12466, 12467, 12468, 12469, 12470, 12471, 12472, 12473, 12474, 12475, 12476, 12477, 12478, 12479, 12480, 12481, 12482, 12483, 12484, 12485, 12486, 12487, 12488, 12489, 12490, 12491, 12492, 12493, 12494, 12495, 12496, 12497, 12498, 12499, 12500, 12501, 12502, 12503, 12504, 12505, 12506, 12507, 12508, 12509, 12510, 12511, 12512, 12513, 12514, 12515, 12516, 12517, 12518, 12519, 12520, 12521, 12522, 12523, 12524, 12525, 12526, 12527, 12528, 12529, 12530, 12531, 12532, 12533, 12534, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937, 0, 0, 0, 0, 0, 0, 0, 0, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 963, 964, 965, 966, 967, 968, 969, 0, 0, 0, 0, 0, 0, 0, 65077, 65078, 65081, 65082, 65087, 65088, 65085, 65086, 65089, 65090, 65091, 65092, 0, 0, 65083, 65084, 65079, 65080, 65073, 0, 65075, 65076, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1040, 1041, 1042, 1043, 1044, 1045, 1025, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1072, 1073, 1074, 1075, 1076, 1077, 1105, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 714, 715, 729, 8211, 8213, 8229, 8245, 8453, 8457, 8598, 8599, 8600, 8601, 8725, 8735, 8739, 8786, 8806, 8807, 8895, 9552, 9553, 9554, 9555, 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568, 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9581, 9582, 9583, 9584, 9585, 9586, 9587, 9601, 9602, 9603, 9604, 9605, 9606, 9607, 9608, 9609, 9610, 9611, 9612, 9613, 9614, 9615, 9619, 9620, 9621, 9660, 9661, 9698, 9699, 9700, 9701, 9737, 8853, 12306, 12317, 12318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 257, 225, 462, 224, 275, 233, 283, 232, 299, 237, 464, 236, 333, 243, 466, 242, 363, 250, 468, 249, 470, 472, 474, 476, 252, 234, 593, 0, 324, 328, 505, 609, 0, 0, 0, 0, 12549, 12550, 12551, 12552, 12553, 12554, 12555, 12556, 12557, 12558, 12559, 12560, 12561, 12562, 12563, 12564, 12565, 12566, 12567, 12568, 12569, 12570, 12571, 12572, 12573, 12574, 12575, 12576, 12577, 12578, 12579, 12580, 12581, 12582, 12583, 12584, 12585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12321, 12322, 12323, 12324, 12325, 12326, 12327, 12328, 12329, 12963, 13198, 13199, 13212, 13213, 13214, 13217, 13252, 13262, 13265, 13266, 13269, 65072, 65506, 65508, 0, 8481, 12849, 0, 8208, 0, 0, 0, 12540, 12443, 12444, 12541, 12542, 12294, 12445, 12446, 65097, 65098, 65099, 65100, 65101, 65102, 65103, 65104, 65105, 65106, 65108, 65109, 65110, 65111, 65113, 65114, 65115, 65116, 65117, 65118, 65119, 65120, 65121, 65122, 65123, 65124, 65125, 65126, 65128, 65129, 65130, 65131, 12350, 12272, 12273, 12274, 12275, 12276, 12277, 12278, 12279, 12280, 12281, 12282, 12283, 12295, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9472, 9473, 9474, 9475, 9476, 9477, 9478, 9479, 9480, 9481, 9482, 9483, 9484, 9485, 9486, 9487, 9488, 9489, 9490, 9491, 9492, 9493, 9494, 9495, 9496, 9497, 9498, 9499, 9500, 9501, 9502, 9503, 9504, 9505, 9506, 9507, 9508, 9509, 9510, 9511, 9512, 9513, 9514, 9515, 9516, 9517, 9518, 9519, 9520, 9521, 9522, 9523, 9524, 9525, 9526, 9527, 9528, 9529, 9530, 9531, 9532, 9533, 9534, 9535, 9536, 9537, 9538, 9539, 9540, 9541, 9542, 9543, 9544, 9545, 9546, 9547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29404, 29405, 29407, 29410, 29411, 29412, 29413, 29414, 29415, 29418, 29419, 29429, 29430, 29433, 29437, 29438, 29439, 29440, 29442, 29444, 29445, 29446, 29447, 29448, 29449, 29451, 29452, 29453, 29455, 29456, 29457, 29458, 29460, 29464, 29465, 29466, 29471, 29472, 29475, 29476, 29478, 29479, 29480, 29485, 29487, 29488, 29490, 29491, 29493, 29494, 29498, 29499, 29500, 29501, 29504, 29505, 29506, 29507, 29508, 29509, 29510, 29511, 29512, 29513, 29514, 29515, 29516, 29518, 29519, 29521, 29523, 29524, 29525, 29526, 29528, 29529, 29530, 29531, 29532, 29533, 29534, 29535, 29537, 29538, 29539, 29540, 29541, 29542, 29543, 29544, 29545, 29546, 29547, 29550, 29552, 29553, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29554, 29555, 29556, 29557, 29558, 29559, 29560, 29561, 29562, 29563, 29564, 29565, 29567, 29568, 29569, 29570, 29571, 29573, 29574, 29576, 29578, 29580, 29581, 29583, 29584, 29586, 29587, 29588, 29589, 29591, 29592, 29593, 29594, 29596, 29597, 29598, 29600, 29601, 29603, 29604, 29605, 29606, 29607, 29608, 29610, 29612, 29613, 29617, 29620, 29621, 29622, 29624, 29625, 29628, 29629, 29630, 29631, 29633, 29635, 29636, 29637, 29638, 29639, 29643, 29644, 29646, 29650, 29651, 29652, 29653, 29654, 29655, 29656, 29658, 29659, 29660, 29661, 29663, 29665, 29666, 29667, 29668, 29670, 29672, 29674, 29675, 29676, 29678, 29679, 29680, 29681, 29683, 29684, 29685, 29686, 29687, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29688, 29689, 29690, 29691, 29692, 29693, 29694, 29695, 29696, 29697, 29698, 29700, 29703, 29704, 29707, 29708, 29709, 29710, 29713, 29714, 29715, 29716, 29717, 29718, 29719, 29720, 29721, 29724, 29725, 29726, 29727, 29728, 29729, 29731, 29732, 29735, 29737, 29739, 29741, 29743, 29745, 29746, 29751, 29752, 29753, 29754, 29755, 29757, 29758, 29759, 29760, 29762, 29763, 29764, 29765, 29766, 29767, 29768, 29769, 29770, 29771, 29772, 29773, 29774, 29775, 29776, 29777, 29778, 29779, 29780, 29782, 29784, 29789, 29792, 29793, 29794, 29795, 29796, 29797, 29798, 29799, 29800, 29801, 29802, 29803, 29804, 29806, 29807, 29809, 29810, 29811, 29812, 29813, 29816, 29817, 29818, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29819, 29820, 29821, 29823, 29826, 29828, 29829, 29830, 29832, 29833, 29834, 29836, 29837, 29839, 29841, 29842, 29843, 29844, 29845, 29846, 29847, 29848, 29849, 29850, 29851, 29853, 29855, 29856, 29857, 29858, 29859, 29860, 29861, 29862, 29866, 29867, 29868, 29869, 29870, 29871, 29872, 29873, 29874, 29875, 29876, 29877, 29878, 29879, 29880, 29881, 29883, 29884, 29885, 29886, 29887, 29888, 29889, 29890, 29891, 29892, 29893, 29894, 29895, 29896, 29897, 29898, 29899, 29900, 29901, 29902, 29903, 29904, 29905, 29907, 29908, 29909, 29910, 29911, 29912, 29913, 29914, 29915, 29917, 29919, 29921, 29925, 29927, 29928, 29929, 29930, 29931, 29932, 29933, 29936, 29937, 29938, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29939, 29941, 29944, 29945, 29946, 29947, 29948, 29949, 29950, 29952, 29953, 29954, 29955, 29957, 29958, 29959, 29960, 29961, 29962, 29963, 29964, 29966, 29968, 29970, 29972, 29973, 29974, 29975, 29979, 29981, 29982, 29984, 29985, 29986, 29987, 29988, 29990, 29991, 29994, 29998, 30004, 30006, 30009, 30012, 30013, 30015, 30017, 30018, 30019, 30020, 30022, 30023, 30025, 30026, 30029, 30032, 30033, 30034, 30035, 30037, 30038, 30039, 30040, 30045, 30046, 30047, 30048, 30049, 30050, 30051, 30052, 30055, 30056, 30057, 30059, 30060, 30061, 30062, 30063, 30064, 30065, 30067, 30069, 30070, 30071, 30074, 30075, 30076, 30077, 30078, 30080, 30081, 30082, 30084, 30085, 30087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30088, 30089, 30090, 30092, 30093, 30094, 30096, 30099, 30101, 30104, 30107, 30108, 30110, 30114, 30118, 30119, 30120, 30121, 30122, 30125, 30134, 30135, 30138, 30139, 30143, 30144, 30145, 30150, 30155, 30156, 30158, 30159, 30160, 30161, 30163, 30167, 30169, 30170, 30172, 30173, 30175, 30176, 30177, 30181, 30185, 30188, 30189, 30190, 30191, 30194, 30195, 30197, 30198, 30199, 30200, 30202, 30203, 30205, 30206, 30210, 30212, 30214, 30215, 30216, 30217, 30219, 30221, 30222, 30223, 30225, 30226, 30227, 30228, 30230, 30234, 30236, 30237, 30238, 30241, 30243, 30247, 30248, 30252, 30254, 30255, 30257, 30258, 30262, 30263, 30265, 30266, 30267, 30269, 30273, 30274, 30276, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30277, 30278, 30279, 30280, 30281, 30282, 30283, 30286, 30287, 30288, 30289, 30290, 30291, 30293, 30295, 30296, 30297, 30298, 30299, 30301, 30303, 30304, 30305, 30306, 30308, 30309, 30310, 30311, 30312, 30313, 30314, 30316, 30317, 30318, 30320, 30321, 30322, 30323, 30324, 30325, 30326, 30327, 30329, 30330, 30332, 30335, 30336, 30337, 30339, 30341, 30345, 30346, 30348, 30349, 30351, 30352, 30354, 30356, 30357, 30359, 30360, 30362, 30363, 30364, 30365, 30366, 30367, 30368, 30369, 30370, 30371, 30373, 30374, 30375, 30376, 30377, 30378, 30379, 30380, 30381, 30383, 30384, 30387, 30389, 30390, 30391, 30392, 30393, 30394, 30395, 30396, 30397, 30398, 30400, 30401, 30403, 21834, 38463, 22467, 25384, 21710, 21769, 21696, 30353, 30284, 34108, 30702, 33406, 30861, 29233, 38552, 38797, 27688, 23433, 20474, 25353, 26263, 23736, 33018, 26696, 32942, 26114, 30414, 20985, 25942, 29100, 32753, 34948, 20658, 22885, 25034, 28595, 33453, 25420, 25170, 21485, 21543, 31494, 20843, 30116, 24052, 25300, 36299, 38774, 25226, 32793, 22365, 38712, 32610, 29240, 30333, 26575, 30334, 25670, 20336, 36133, 25308, 31255, 26001, 29677, 25644, 25203, 33324, 39041, 26495, 29256, 25198, 25292, 20276, 29923, 21322, 21150, 32458, 37030, 24110, 26758, 27036, 33152, 32465, 26834, 30917, 34444, 38225, 20621, 35876, 33502, 32990, 21253, 35090, 21093, 30404, 30407, 30409, 30411, 30412, 30419, 30421, 30425, 30426, 30428, 30429, 30430, 30432, 30433, 30434, 30435, 30436, 30438, 30439, 30440, 30441, 30442, 30443, 30444, 30445, 30448, 30451, 30453, 30454, 30455, 30458, 30459, 30461, 30463, 30464, 30466, 30467, 30469, 30470, 30474, 30476, 30478, 30479, 30480, 30481, 30482, 30483, 30484, 30485, 30486, 30487, 30488, 30491, 30492, 30493, 30494, 30497, 30499, 30500, 30501, 30503, 30506, 30507, 30508, 30510, 30512, 30513, 30514, 30515, 30516, 30521, 30523, 30525, 30526, 30527, 30530, 30532, 30533, 30534, 30536, 30537, 30538, 30539, 30540, 30541, 30542, 30543, 30546, 30547, 30548, 30549, 30550, 30551, 30552, 30553, 30556, 34180, 38649, 20445, 22561, 39281, 23453, 25265, 25253, 26292, 35961, 40077, 29190, 26479, 30865, 24754, 21329, 21271, 36744, 32972, 36125, 38049, 20493, 29384, 22791, 24811, 28953, 34987, 22868, 33519, 26412, 31528, 23849, 32503, 29997, 27893, 36454, 36856, 36924, 40763, 27604, 37145, 31508, 24444, 30887, 34006, 34109, 27605, 27609, 27606, 24065, 24199, 30201, 38381, 25949, 24330, 24517, 36767, 22721, 33218, 36991, 38491, 38829, 36793, 32534, 36140, 25153, 20415, 21464, 21342, 36776, 36777, 36779, 36941, 26631, 24426, 33176, 34920, 40150, 24971, 21035, 30250, 24428, 25996, 28626, 28392, 23486, 25672, 20853, 20912, 26564, 19993, 31177, 39292, 28851, 30557, 30558, 30559, 30560, 30564, 30567, 30569, 30570, 30573, 30574, 30575, 30576, 30577, 30578, 30579, 30580, 30581, 30582, 30583, 30584, 30586, 30587, 30588, 30593, 30594, 30595, 30598, 30599, 30600, 30601, 30602, 30603, 30607, 30608, 30611, 30612, 30613, 30614, 30615, 30616, 30617, 30618, 30619, 30620, 30621, 30622, 30625, 30627, 30628, 30630, 30632, 30635, 30637, 30638, 30639, 30641, 30642, 30644, 30646, 30647, 30648, 30649, 30650, 30652, 30654, 30656, 30657, 30658, 30659, 30660, 30661, 30662, 30663, 30664, 30665, 30666, 30667, 30668, 30670, 30671, 30672, 30673, 30674, 30675, 30676, 30677, 30678, 30680, 30681, 30682, 30685, 30686, 30687, 30688, 30689, 30692, 30149, 24182, 29627, 33760, 25773, 25320, 38069, 27874, 21338, 21187, 25615, 38082, 31636, 20271, 24091, 33334, 33046, 33162, 28196, 27850, 39539, 25429, 21340, 21754, 34917, 22496, 19981, 24067, 27493, 31807, 37096, 24598, 25830, 29468, 35009, 26448, 25165, 36130, 30572, 36393, 37319, 24425, 33756, 34081, 39184, 21442, 34453, 27531, 24813, 24808, 28799, 33485, 33329, 20179, 27815, 34255, 25805, 31961, 27133, 26361, 33609, 21397, 31574, 20391, 20876, 27979, 23618, 36461, 25554, 21449, 33580, 33590, 26597, 30900, 25661, 23519, 23700, 24046, 35815, 25286, 26612, 35962, 25600, 25530, 34633, 39307, 35863, 32544, 38130, 20135, 38416, 39076, 26124, 29462, 30694, 30696, 30698, 30703, 30704, 30705, 30706, 30708, 30709, 30711, 30713, 30714, 30715, 30716, 30723, 30724, 30725, 30726, 30727, 30728, 30730, 30731, 30734, 30735, 30736, 30739, 30741, 30745, 30747, 30750, 30752, 30753, 30754, 30756, 30760, 30762, 30763, 30766, 30767, 30769, 30770, 30771, 30773, 30774, 30781, 30783, 30785, 30786, 30787, 30788, 30790, 30792, 30793, 30794, 30795, 30797, 30799, 30801, 30803, 30804, 30808, 30809, 30810, 30811, 30812, 30814, 30815, 30816, 30817, 30818, 30819, 30820, 30821, 30822, 30823, 30824, 30825, 30831, 30832, 30833, 30834, 30835, 30836, 30837, 30838, 30840, 30841, 30842, 30843, 30845, 30846, 30847, 30848, 30849, 30850, 30851, 22330, 23581, 24120, 38271, 20607, 32928, 21378, 25950, 30021, 21809, 20513, 36229, 25220, 38046, 26397, 22066, 28526, 24034, 21557, 28818, 36710, 25199, 25764, 25507, 24443, 28552, 37108, 33251, 36784, 23576, 26216, 24561, 27785, 38472, 36225, 34924, 25745, 31216, 22478, 27225, 25104, 21576, 20056, 31243, 24809, 28548, 35802, 25215, 36894, 39563, 31204, 21507, 30196, 25345, 21273, 27744, 36831, 24347, 39536, 32827, 40831, 20360, 23610, 36196, 32709, 26021, 28861, 20805, 20914, 34411, 23815, 23456, 25277, 37228, 30068, 36364, 31264, 24833, 31609, 20167, 32504, 30597, 19985, 33261, 21021, 20986, 27249, 21416, 36487, 38148, 38607, 28353, 38500, 26970, 30852, 30853, 30854, 30856, 30858, 30859, 30863, 30864, 30866, 30868, 30869, 30870, 30873, 30877, 30878, 30880, 30882, 30884, 30886, 30888, 30889, 30890, 30891, 30892, 30893, 30894, 30895, 30901, 30902, 30903, 30904, 30906, 30907, 30908, 30909, 30911, 30912, 30914, 30915, 30916, 30918, 30919, 30920, 30924, 30925, 30926, 30927, 30929, 30930, 30931, 30934, 30935, 30936, 30938, 30939, 30940, 30941, 30942, 30943, 30944, 30945, 30946, 30947, 30948, 30949, 30950, 30951, 30953, 30954, 30955, 30957, 30958, 30959, 30960, 30961, 30963, 30965, 30966, 30968, 30969, 30971, 30972, 30973, 30974, 30975, 30976, 30978, 30979, 30980, 30982, 30983, 30984, 30985, 30986, 30987, 30988, 30784, 20648, 30679, 25616, 35302, 22788, 25571, 24029, 31359, 26941, 20256, 33337, 21912, 20018, 30126, 31383, 24162, 24202, 38383, 21019, 21561, 28810, 25462, 38180, 22402, 26149, 26943, 37255, 21767, 28147, 32431, 34850, 25139, 32496, 30133, 33576, 30913, 38604, 36766, 24904, 29943, 35789, 27492, 21050, 36176, 27425, 32874, 33905, 22257, 21254, 20174, 19995, 20945, 31895, 37259, 31751, 20419, 36479, 31713, 31388, 25703, 23828, 20652, 33030, 30209, 31929, 28140, 32736, 26449, 23384, 23544, 30923, 25774, 25619, 25514, 25387, 38169, 25645, 36798, 31572, 30249, 25171, 22823, 21574, 27513, 20643, 25140, 24102, 27526, 20195, 36151, 34955, 24453, 36910, 30989, 30990, 30991, 30992, 30993, 30994, 30996, 30997, 30998, 30999, 31000, 31001, 31002, 31003, 31004, 31005, 31007, 31008, 31009, 31010, 31011, 31013, 31014, 31015, 31016, 31017, 31018, 31019, 31020, 31021, 31022, 31023, 31024, 31025, 31026, 31027, 31029, 31030, 31031, 31032, 31033, 31037, 31039, 31042, 31043, 31044, 31045, 31047, 31050, 31051, 31052, 31053, 31054, 31055, 31056, 31057, 31058, 31060, 31061, 31064, 31065, 31073, 31075, 31076, 31078, 31081, 31082, 31083, 31084, 31086, 31088, 31089, 31090, 31091, 31092, 31093, 31094, 31097, 31099, 31100, 31101, 31102, 31103, 31106, 31107, 31110, 31111, 31112, 31113, 31115, 31116, 31117, 31118, 31120, 31121, 31122, 24608, 32829, 25285, 20025, 21333, 37112, 25528, 32966, 26086, 27694, 20294, 24814, 28129, 35806, 24377, 34507, 24403, 25377, 20826, 33633, 26723, 20992, 25443, 36424, 20498, 23707, 31095, 23548, 21040, 31291, 24764, 36947, 30423, 24503, 24471, 30340, 36460, 28783, 30331, 31561, 30634, 20979, 37011, 22564, 20302, 28404, 36842, 25932, 31515, 29380, 28068, 32735, 23265, 25269, 24213, 22320, 33922, 31532, 24093, 24351, 36882, 32532, 39072, 25474, 28359, 30872, 28857, 20856, 38747, 22443, 30005, 20291, 30008, 24215, 24806, 22880, 28096, 27583, 30857, 21500, 38613, 20939, 20993, 25481, 21514, 38035, 35843, 36300, 29241, 30879, 34678, 36845, 35853, 21472, 31123, 31124, 31125, 31126, 31127, 31128, 31129, 31131, 31132, 31133, 31134, 31135, 31136, 31137, 31138, 31139, 31140, 31141, 31142, 31144, 31145, 31146, 31147, 31148, 31149, 31150, 31151, 31152, 31153, 31154, 31156, 31157, 31158, 31159, 31160, 31164, 31167, 31170, 31172, 31173, 31175, 31176, 31178, 31180, 31182, 31183, 31184, 31187, 31188, 31190, 31191, 31193, 31194, 31195, 31196, 31197, 31198, 31200, 31201, 31202, 31205, 31208, 31210, 31212, 31214, 31217, 31218, 31219, 31220, 31221, 31222, 31223, 31225, 31226, 31228, 31230, 31231, 31233, 31236, 31237, 31239, 31240, 31241, 31242, 31244, 31247, 31248, 31249, 31250, 31251, 31253, 31254, 31256, 31257, 31259, 31260, 19969, 30447, 21486, 38025, 39030, 40718, 38189, 23450, 35746, 20002, 19996, 20908, 33891, 25026, 21160, 26635, 20375, 24683, 20923, 27934, 20828, 25238, 26007, 38497, 35910, 36887, 30168, 37117, 30563, 27602, 29322, 29420, 35835, 22581, 30585, 36172, 26460, 38208, 32922, 24230, 28193, 22930, 31471, 30701, 38203, 27573, 26029, 32526, 22534, 20817, 38431, 23545, 22697, 21544, 36466, 25958, 39039, 22244, 38045, 30462, 36929, 25479, 21702, 22810, 22842, 22427, 36530, 26421, 36346, 33333, 21057, 24816, 22549, 34558, 23784, 40517, 20420, 39069, 35769, 23077, 24694, 21380, 25212, 36943, 37122, 39295, 24681, 32780, 20799, 32819, 23572, 39285, 27953, 20108, 31261, 31263, 31265, 31266, 31268, 31269, 31270, 31271, 31272, 31273, 31274, 31275, 31276, 31277, 31278, 31279, 31280, 31281, 31282, 31284, 31285, 31286, 31288, 31290, 31294, 31296, 31297, 31298, 31299, 31300, 31301, 31303, 31304, 31305, 31306, 31307, 31308, 31309, 31310, 31311, 31312, 31314, 31315, 31316, 31317, 31318, 31320, 31321, 31322, 31323, 31324, 31325, 31326, 31327, 31328, 31329, 31330, 31331, 31332, 31333, 31334, 31335, 31336, 31337, 31338, 31339, 31340, 31341, 31342, 31343, 31345, 31346, 31347, 31349, 31355, 31356, 31357, 31358, 31362, 31365, 31367, 31369, 31370, 31371, 31372, 31374, 31375, 31376, 31379, 31380, 31385, 31386, 31387, 31390, 31393, 31394, 36144, 21457, 32602, 31567, 20240, 20047, 38400, 27861, 29648, 34281, 24070, 30058, 32763, 27146, 30718, 38034, 32321, 20961, 28902, 21453, 36820, 33539, 36137, 29359, 39277, 27867, 22346, 33459, 26041, 32938, 25151, 38450, 22952, 20223, 35775, 32442, 25918, 33778, 38750, 21857, 39134, 32933, 21290, 35837, 21536, 32954, 24223, 27832, 36153, 33452, 37210, 21545, 27675, 20998, 32439, 22367, 28954, 27774, 31881, 22859, 20221, 24575, 24868, 31914, 20016, 23553, 26539, 34562, 23792, 38155, 39118, 30127, 28925, 36898, 20911, 32541, 35773, 22857, 20964, 20315, 21542, 22827, 25975, 32932, 23413, 25206, 25282, 36752, 24133, 27679, 31526, 20239, 20440, 26381, 31395, 31396, 31399, 31401, 31402, 31403, 31406, 31407, 31408, 31409, 31410, 31412, 31413, 31414, 31415, 31416, 31417, 31418, 31419, 31420, 31421, 31422, 31424, 31425, 31426, 31427, 31428, 31429, 31430, 31431, 31432, 31433, 31434, 31436, 31437, 31438, 31439, 31440, 31441, 31442, 31443, 31444, 31445, 31447, 31448, 31450, 31451, 31452, 31453, 31457, 31458, 31460, 31463, 31464, 31465, 31466, 31467, 31468, 31470, 31472, 31473, 31474, 31475, 31476, 31477, 31478, 31479, 31480, 31483, 31484, 31486, 31488, 31489, 31490, 31493, 31495, 31497, 31500, 31501, 31502, 31504, 31506, 31507, 31510, 31511, 31512, 31514, 31516, 31517, 31519, 31521, 31522, 31523, 31527, 31529, 31533, 28014, 28074, 31119, 34993, 24343, 29995, 25242, 36741, 20463, 37340, 26023, 33071, 33105, 24220, 33104, 36212, 21103, 35206, 36171, 22797, 20613, 20184, 38428, 29238, 33145, 36127, 23500, 35747, 38468, 22919, 32538, 21648, 22134, 22030, 35813, 25913, 27010, 38041, 30422, 28297, 24178, 29976, 26438, 26577, 31487, 32925, 36214, 24863, 31174, 25954, 36195, 20872, 21018, 38050, 32568, 32923, 32434, 23703, 28207, 26464, 31705, 30347, 39640, 33167, 32660, 31957, 25630, 38224, 31295, 21578, 21733, 27468, 25601, 25096, 40509, 33011, 30105, 21106, 38761, 33883, 26684, 34532, 38401, 38548, 38124, 20010, 21508, 32473, 26681, 36319, 32789, 26356, 24218, 32697, 31535, 31536, 31538, 31540, 31541, 31542, 31543, 31545, 31547, 31549, 31551, 31552, 31553, 31554, 31555, 31556, 31558, 31560, 31562, 31565, 31566, 31571, 31573, 31575, 31577, 31580, 31582, 31583, 31585, 31587, 31588, 31589, 31590, 31591, 31592, 31593, 31594, 31595, 31596, 31597, 31599, 31600, 31603, 31604, 31606, 31608, 31610, 31612, 31613, 31615, 31617, 31618, 31619, 31620, 31622, 31623, 31624, 31625, 31626, 31627, 31628, 31630, 31631, 31633, 31634, 31635, 31638, 31640, 31641, 31642, 31643, 31646, 31647, 31648, 31651, 31652, 31653, 31662, 31663, 31664, 31666, 31667, 31669, 31670, 31671, 31673, 31674, 31675, 31676, 31677, 31678, 31679, 31680, 31682, 31683, 31684, 22466, 32831, 26775, 24037, 25915, 21151, 24685, 40858, 20379, 36524, 20844, 23467, 24339, 24041, 27742, 25329, 36129, 20849, 38057, 21246, 27807, 33503, 29399, 22434, 26500, 36141, 22815, 36764, 33735, 21653, 31629, 20272, 27837, 23396, 22993, 40723, 21476, 34506, 39592, 35895, 32929, 25925, 39038, 22266, 38599, 21038, 29916, 21072, 23521, 25346, 35074, 20054, 25296, 24618, 26874, 20851, 23448, 20896, 35266, 31649, 39302, 32592, 24815, 28748, 36143, 20809, 24191, 36891, 29808, 35268, 22317, 30789, 24402, 40863, 38394, 36712, 39740, 35809, 30328, 26690, 26588, 36330, 36149, 21053, 36746, 28378, 26829, 38149, 37101, 22269, 26524, 35065, 36807, 21704, 31685, 31688, 31689, 31690, 31691, 31693, 31694, 31695, 31696, 31698, 31700, 31701, 31702, 31703, 31704, 31707, 31708, 31710, 31711, 31712, 31714, 31715, 31716, 31719, 31720, 31721, 31723, 31724, 31725, 31727, 31728, 31730, 31731, 31732, 31733, 31734, 31736, 31737, 31738, 31739, 31741, 31743, 31744, 31745, 31746, 31747, 31748, 31749, 31750, 31752, 31753, 31754, 31757, 31758, 31760, 31761, 31762, 31763, 31764, 31765, 31767, 31768, 31769, 31770, 31771, 31772, 31773, 31774, 31776, 31777, 31778, 31779, 31780, 31781, 31784, 31785, 31787, 31788, 31789, 31790, 31791, 31792, 31793, 31794, 31795, 31796, 31797, 31798, 31799, 31801, 31802, 31803, 31804, 31805, 31806, 31810, 39608, 23401, 28023, 27686, 20133, 23475, 39559, 37219, 25000, 37039, 38889, 21547, 28085, 23506, 20989, 21898, 32597, 32752, 25788, 25421, 26097, 25022, 24717, 28938, 27735, 27721, 22831, 26477, 33322, 22741, 22158, 35946, 27627, 37085, 22909, 32791, 21495, 28009, 21621, 21917, 33655, 33743, 26680, 31166, 21644, 20309, 21512, 30418, 35977, 38402, 27827, 28088, 36203, 35088, 40548, 36154, 22079, 40657, 30165, 24456, 29408, 24680, 21756, 20136, 27178, 34913, 24658, 36720, 21700, 28888, 34425, 40511, 27946, 23439, 24344, 32418, 21897, 20399, 29492, 21564, 21402, 20505, 21518, 21628, 20046, 24573, 29786, 22774, 33899, 32993, 34676, 29392, 31946, 28246, 31811, 31812, 31813, 31814, 31815, 31816, 31817, 31818, 31819, 31820, 31822, 31823, 31824, 31825, 31826, 31827, 31828, 31829, 31830, 31831, 31832, 31833, 31834, 31835, 31836, 31837, 31838, 31839, 31840, 31841, 31842, 31843, 31844, 31845, 31846, 31847, 31848, 31849, 31850, 31851, 31852, 31853, 31854, 31855, 31856, 31857, 31858, 31861, 31862, 31863, 31864, 31865, 31866, 31870, 31871, 31872, 31873, 31874, 31875, 31876, 31877, 31878, 31879, 31880, 31882, 31883, 31884, 31885, 31886, 31887, 31888, 31891, 31892, 31894, 31897, 31898, 31899, 31904, 31905, 31907, 31910, 31911, 31912, 31913, 31915, 31916, 31917, 31919, 31920, 31924, 31925, 31926, 31927, 31928, 31930, 31931, 24359, 34382, 21804, 25252, 20114, 27818, 25143, 33457, 21719, 21326, 29502, 28369, 30011, 21010, 21270, 35805, 27088, 24458, 24576, 28142, 22351, 27426, 29615, 26707, 36824, 32531, 25442, 24739, 21796, 30186, 35938, 28949, 28067, 23462, 24187, 33618, 24908, 40644, 30970, 34647, 31783, 30343, 20976, 24822, 29004, 26179, 24140, 24653, 35854, 28784, 25381, 36745, 24509, 24674, 34516, 22238, 27585, 24724, 24935, 21321, 24800, 26214, 36159, 31229, 20250, 28905, 27719, 35763, 35826, 32472, 33636, 26127, 23130, 39746, 27985, 28151, 35905, 27963, 20249, 28779, 33719, 25110, 24785, 38669, 36135, 31096, 20987, 22334, 22522, 26426, 30072, 31293, 31215, 31637, 31935, 31936, 31938, 31939, 31940, 31942, 31945, 31947, 31950, 31951, 31952, 31953, 31954, 31955, 31956, 31960, 31962, 31963, 31965, 31966, 31969, 31970, 31971, 31972, 31973, 31974, 31975, 31977, 31978, 31979, 31980, 31981, 31982, 31984, 31985, 31986, 31987, 31988, 31989, 31990, 31991, 31993, 31994, 31996, 31997, 31998, 31999, 32000, 32001, 32002, 32003, 32004, 32005, 32006, 32007, 32008, 32009, 32011, 32012, 32013, 32014, 32015, 32016, 32017, 32018, 32019, 32020, 32021, 32022, 32023, 32024, 32025, 32026, 32027, 32028, 32029, 32030, 32031, 32033, 32035, 32036, 32037, 32038, 32040, 32041, 32042, 32044, 32045, 32046, 32048, 32049, 32050, 32051, 32052, 32053, 32054, 32908, 39269, 36857, 28608, 35749, 40481, 23020, 32489, 32521, 21513, 26497, 26840, 36753, 31821, 38598, 21450, 24613, 30142, 27762, 21363, 23241, 32423, 25380, 20960, 33034, 24049, 34015, 25216, 20864, 23395, 20238, 31085, 21058, 24760, 27982, 23492, 23490, 35745, 35760, 26082, 24524, 38469, 22931, 32487, 32426, 22025, 26551, 22841, 20339, 23478, 21152, 33626, 39050, 36158, 30002, 38078, 20551, 31292, 20215, 26550, 39550, 23233, 27516, 30417, 22362, 23574, 31546, 38388, 29006, 20860, 32937, 33392, 22904, 32516, 33575, 26816, 26604, 30897, 30839, 25315, 25441, 31616, 20461, 21098, 20943, 33616, 27099, 37492, 36341, 36145, 35265, 38190, 31661, 20214, 32055, 32056, 32057, 32058, 32059, 32060, 32061, 32062, 32063, 32064, 32065, 32066, 32067, 32068, 32069, 32070, 32071, 32072, 32073, 32074, 32075, 32076, 32077, 32078, 32079, 32080, 32081, 32082, 32083, 32084, 32085, 32086, 32087, 32088, 32089, 32090, 32091, 32092, 32093, 32094, 32095, 32096, 32097, 32098, 32099, 32100, 32101, 32102, 32103, 32104, 32105, 32106, 32107, 32108, 32109, 32111, 32112, 32113, 32114, 32115, 32116, 32117, 32118, 32120, 32121, 32122, 32123, 32124, 32125, 32126, 32127, 32128, 32129, 32130, 32131, 32132, 32133, 32134, 32135, 32136, 32137, 32138, 32139, 32140, 32141, 32142, 32143, 32144, 32145, 32146, 32147, 32148, 32149, 32150, 32151, 32152, 20581, 33328, 21073, 39279, 28176, 28293, 28071, 24314, 20725, 23004, 23558, 27974, 27743, 30086, 33931, 26728, 22870, 35762, 21280, 37233, 38477, 34121, 26898, 30977, 28966, 33014, 20132, 37066, 27975, 39556, 23047, 22204, 25605, 38128, 30699, 20389, 33050, 29409, 35282, 39290, 32564, 32478, 21119, 25945, 37237, 36735, 36739, 21483, 31382, 25581, 25509, 30342, 31224, 34903, 38454, 25130, 21163, 33410, 26708, 26480, 25463, 30571, 31469, 27905, 32467, 35299, 22992, 25106, 34249, 33445, 30028, 20511, 20171, 30117, 35819, 23626, 24062, 31563, 26020, 37329, 20170, 27941, 35167, 32039, 38182, 20165, 35880, 36827, 38771, 26187, 31105, 36817, 28908, 28024, 32153, 32154, 32155, 32156, 32157, 32158, 32159, 32160, 32161, 32162, 32163, 32164, 32165, 32167, 32168, 32169, 32170, 32171, 32172, 32173, 32175, 32176, 32177, 32178, 32179, 32180, 32181, 32182, 32183, 32184, 32185, 32186, 32187, 32188, 32189, 32190, 32191, 32192, 32193, 32194, 32195, 32196, 32197, 32198, 32199, 32200, 32201, 32202, 32203, 32204, 32205, 32206, 32207, 32208, 32209, 32210, 32211, 32212, 32213, 32214, 32215, 32216, 32217, 32218, 32219, 32220, 32221, 32222, 32223, 32224, 32225, 32226, 32227, 32228, 32229, 32230, 32231, 32232, 32233, 32234, 32235, 32236, 32237, 32238, 32239, 32240, 32241, 32242, 32243, 32244, 32245, 32246, 32247, 32248, 32249, 32250, 23613, 21170, 33606, 20834, 33550, 30555, 26230, 40120, 20140, 24778, 31934, 31923, 32463, 20117, 35686, 26223, 39048, 38745, 22659, 25964, 38236, 24452, 30153, 38742, 31455, 31454, 20928, 28847, 31384, 25578, 31350, 32416, 29590, 38893, 20037, 28792, 20061, 37202, 21417, 25937, 26087, 33276, 33285, 21646, 23601, 30106, 38816, 25304, 29401, 30141, 23621, 39545, 33738, 23616, 21632, 30697, 20030, 27822, 32858, 25298, 25454, 24040, 20855, 36317, 36382, 38191, 20465, 21477, 24807, 28844, 21095, 25424, 40515, 23071, 20518, 30519, 21367, 32482, 25733, 25899, 25225, 25496, 20500, 29237, 35273, 20915, 35776, 32477, 22343, 33740, 38055, 20891, 21531, 23803, 32251, 32252, 32253, 32254, 32255, 32256, 32257, 32258, 32259, 32260, 32261, 32262, 32263, 32264, 32265, 32266, 32267, 32268, 32269, 32270, 32271, 32272, 32273, 32274, 32275, 32276, 32277, 32278, 32279, 32280, 32281, 32282, 32283, 32284, 32285, 32286, 32287, 32288, 32289, 32290, 32291, 32292, 32293, 32294, 32295, 32296, 32297, 32298, 32299, 32300, 32301, 32302, 32303, 32304, 32305, 32306, 32307, 32308, 32309, 32310, 32311, 32312, 32313, 32314, 32316, 32317, 32318, 32319, 32320, 32322, 32323, 32324, 32325, 32326, 32328, 32329, 32330, 32331, 32332, 32333, 32334, 32335, 32336, 32337, 32338, 32339, 32340, 32341, 32342, 32343, 32344, 32345, 32346, 32347, 32348, 32349, 20426, 31459, 27994, 37089, 39567, 21888, 21654, 21345, 21679, 24320, 25577, 26999, 20975, 24936, 21002, 22570, 21208, 22350, 30733, 30475, 24247, 24951, 31968, 25179, 25239, 20130, 28821, 32771, 25335, 28900, 38752, 22391, 33499, 26607, 26869, 30933, 39063, 31185, 22771, 21683, 21487, 28212, 20811, 21051, 23458, 35838, 32943, 21827, 22438, 24691, 22353, 21549, 31354, 24656, 23380, 25511, 25248, 21475, 25187, 23495, 26543, 21741, 31391, 33510, 37239, 24211, 35044, 22840, 22446, 25358, 36328, 33007, 22359, 31607, 20393, 24555, 23485, 27454, 21281, 31568, 29378, 26694, 30719, 30518, 26103, 20917, 20111, 30420, 23743, 31397, 33909, 22862, 39745, 20608, 32350, 32351, 32352, 32353, 32354, 32355, 32356, 32357, 32358, 32359, 32360, 32361, 32362, 32363, 32364, 32365, 32366, 32367, 32368, 32369, 32370, 32371, 32372, 32373, 32374, 32375, 32376, 32377, 32378, 32379, 32380, 32381, 32382, 32383, 32384, 32385, 32387, 32388, 32389, 32390, 32391, 32392, 32393, 32394, 32395, 32396, 32397, 32398, 32399, 32400, 32401, 32402, 32403, 32404, 32405, 32406, 32407, 32408, 32409, 32410, 32412, 32413, 32414, 32430, 32436, 32443, 32444, 32470, 32484, 32492, 32505, 32522, 32528, 32542, 32567, 32569, 32571, 32572, 32573, 32574, 32575, 32576, 32577, 32579, 32582, 32583, 32584, 32585, 32586, 32587, 32588, 32589, 32590, 32591, 32594, 32595, 39304, 24871, 28291, 22372, 26118, 25414, 22256, 25324, 25193, 24275, 38420, 22403, 25289, 21895, 34593, 33098, 36771, 21862, 33713, 26469, 36182, 34013, 23146, 26639, 25318, 31726, 38417, 20848, 28572, 35888, 25597, 35272, 25042, 32518, 28866, 28389, 29701, 27028, 29436, 24266, 37070, 26391, 28010, 25438, 21171, 29282, 32769, 20332, 23013, 37226, 28889, 28061, 21202, 20048, 38647, 38253, 34174, 30922, 32047, 20769, 22418, 25794, 32907, 31867, 27882, 26865, 26974, 20919, 21400, 26792, 29313, 40654, 31729, 29432, 31163, 28435, 29702, 26446, 37324, 40100, 31036, 33673, 33620, 21519, 26647, 20029, 21385, 21169, 30782, 21382, 21033, 20616, 20363, 20432, 32598, 32601, 32603, 32604, 32605, 32606, 32608, 32611, 32612, 32613, 32614, 32615, 32619, 32620, 32621, 32623, 32624, 32627, 32629, 32630, 32631, 32632, 32634, 32635, 32636, 32637, 32639, 32640, 32642, 32643, 32644, 32645, 32646, 32647, 32648, 32649, 32651, 32653, 32655, 32656, 32657, 32658, 32659, 32661, 32662, 32663, 32664, 32665, 32667, 32668, 32672, 32674, 32675, 32677, 32678, 32680, 32681, 32682, 32683, 32684, 32685, 32686, 32689, 32691, 32692, 32693, 32694, 32695, 32698, 32699, 32702, 32704, 32706, 32707, 32708, 32710, 32711, 32712, 32713, 32715, 32717, 32719, 32720, 32721, 32722, 32723, 32726, 32727, 32729, 32730, 32731, 32732, 32733, 32734, 32738, 32739, 30178, 31435, 31890, 27813, 38582, 21147, 29827, 21737, 20457, 32852, 33714, 36830, 38256, 24265, 24604, 28063, 24088, 25947, 33080, 38142, 24651, 28860, 32451, 31918, 20937, 26753, 31921, 33391, 20004, 36742, 37327, 26238, 20142, 35845, 25769, 32842, 20698, 30103, 29134, 23525, 36797, 28518, 20102, 25730, 38243, 24278, 26009, 21015, 35010, 28872, 21155, 29454, 29747, 26519, 30967, 38678, 20020, 37051, 40158, 28107, 20955, 36161, 21533, 25294, 29618, 33777, 38646, 40836, 38083, 20278, 32666, 20940, 28789, 38517, 23725, 39046, 21478, 20196, 28316, 29705, 27060, 30827, 39311, 30041, 21016, 30244, 27969, 26611, 20845, 40857, 32843, 21657, 31548, 31423, 32740, 32743, 32744, 32746, 32747, 32748, 32749, 32751, 32754, 32756, 32757, 32758, 32759, 32760, 32761, 32762, 32765, 32766, 32767, 32770, 32775, 32776, 32777, 32778, 32782, 32783, 32785, 32787, 32794, 32795, 32797, 32798, 32799, 32801, 32803, 32804, 32811, 32812, 32813, 32814, 32815, 32816, 32818, 32820, 32825, 32826, 32828, 32830, 32832, 32833, 32836, 32837, 32839, 32840, 32841, 32846, 32847, 32848, 32849, 32851, 32853, 32854, 32855, 32857, 32859, 32860, 32861, 32862, 32863, 32864, 32865, 32866, 32867, 32868, 32869, 32870, 32871, 32872, 32875, 32876, 32877, 32878, 32879, 32880, 32882, 32883, 32884, 32885, 32886, 32887, 32888, 32889, 32890, 32891, 32892, 32893, 38534, 22404, 25314, 38471, 27004, 23044, 25602, 31699, 28431, 38475, 33446, 21346, 39045, 24208, 28809, 25523, 21348, 34383, 40065, 40595, 30860, 38706, 36335, 36162, 40575, 28510, 31108, 24405, 38470, 25134, 39540, 21525, 38109, 20387, 26053, 23653, 23649, 32533, 34385, 27695, 24459, 29575, 28388, 32511, 23782, 25371, 23402, 28390, 21365, 20081, 25504, 30053, 25249, 36718, 20262, 20177, 27814, 32438, 35770, 33821, 34746, 32599, 36923, 38179, 31657, 39585, 35064, 33853, 27931, 39558, 32476, 22920, 40635, 29595, 30721, 34434, 39532, 39554, 22043, 21527, 22475, 20080, 40614, 21334, 36808, 33033, 30610, 39314, 34542, 28385, 34067, 26364, 24930, 28459, 32894, 32897, 32898, 32901, 32904, 32906, 32909, 32910, 32911, 32912, 32913, 32914, 32916, 32917, 32919, 32921, 32926, 32931, 32934, 32935, 32936, 32940, 32944, 32947, 32949, 32950, 32952, 32953, 32955, 32965, 32967, 32968, 32969, 32970, 32971, 32975, 32976, 32977, 32978, 32979, 32980, 32981, 32984, 32991, 32992, 32994, 32995, 32998, 33006, 33013, 33015, 33017, 33019, 33022, 33023, 33024, 33025, 33027, 33028, 33029, 33031, 33032, 33035, 33036, 33045, 33047, 33049, 33051, 33052, 33053, 33055, 33056, 33057, 33058, 33059, 33060, 33061, 33062, 33063, 33064, 33065, 33066, 33067, 33069, 33070, 33072, 33075, 33076, 33077, 33079, 33081, 33082, 33083, 33084, 33085, 33087, 35881, 33426, 33579, 30450, 27667, 24537, 33725, 29483, 33541, 38170, 27611, 30683, 38086, 21359, 33538, 20882, 24125, 35980, 36152, 20040, 29611, 26522, 26757, 37238, 38665, 29028, 27809, 30473, 23186, 38209, 27599, 32654, 26151, 23504, 22969, 23194, 38376, 38391, 20204, 33804, 33945, 27308, 30431, 38192, 29467, 26790, 23391, 30511, 37274, 38753, 31964, 36855, 35868, 24357, 31859, 31192, 35269, 27852, 34588, 23494, 24130, 26825, 30496, 32501, 20885, 20813, 21193, 23081, 32517, 38754, 33495, 25551, 30596, 34256, 31186, 28218, 24217, 22937, 34065, 28781, 27665, 25279, 30399, 25935, 24751, 38397, 26126, 34719, 40483, 38125, 21517, 21629, 35884, 25720, 33088, 33089, 33090, 33091, 33092, 33093, 33095, 33097, 33101, 33102, 33103, 33106, 33110, 33111, 33112, 33115, 33116, 33117, 33118, 33119, 33121, 33122, 33123, 33124, 33126, 33128, 33130, 33131, 33132, 33135, 33138, 33139, 33141, 33142, 33143, 33144, 33153, 33155, 33156, 33157, 33158, 33159, 33161, 33163, 33164, 33165, 33166, 33168, 33170, 33171, 33172, 33173, 33174, 33175, 33177, 33178, 33182, 33183, 33184, 33185, 33186, 33188, 33189, 33191, 33193, 33195, 33196, 33197, 33198, 33199, 33200, 33201, 33202, 33204, 33205, 33206, 33207, 33208, 33209, 33212, 33213, 33214, 33215, 33220, 33221, 33223, 33224, 33225, 33227, 33229, 33230, 33231, 33232, 33233, 33234, 33235, 25721, 34321, 27169, 33180, 30952, 25705, 39764, 25273, 26411, 33707, 22696, 40664, 27819, 28448, 23518, 38476, 35851, 29279, 26576, 25287, 29281, 20137, 22982, 27597, 22675, 26286, 24149, 21215, 24917, 26408, 30446, 30566, 29287, 31302, 25343, 21738, 21584, 38048, 37027, 23068, 32435, 27670, 20035, 22902, 32784, 22856, 21335, 30007, 38590, 22218, 25376, 33041, 24700, 38393, 28118, 21602, 39297, 20869, 23273, 33021, 22958, 38675, 20522, 27877, 23612, 25311, 20320, 21311, 33147, 36870, 28346, 34091, 25288, 24180, 30910, 25781, 25467, 24565, 23064, 37247, 40479, 23615, 25423, 32834, 23421, 21870, 38218, 38221, 28037, 24744, 26592, 29406, 20957, 23425, 33236, 33237, 33238, 33239, 33240, 33241, 33242, 33243, 33244, 33245, 33246, 33247, 33248, 33249, 33250, 33252, 33253, 33254, 33256, 33257, 33259, 33262, 33263, 33264, 33265, 33266, 33269, 33270, 33271, 33272, 33273, 33274, 33277, 33279, 33283, 33287, 33288, 33289, 33290, 33291, 33294, 33295, 33297, 33299, 33301, 33302, 33303, 33304, 33305, 33306, 33309, 33312, 33316, 33317, 33318, 33319, 33321, 33326, 33330, 33338, 33340, 33341, 33343, 33344, 33345, 33346, 33347, 33349, 33350, 33352, 33354, 33356, 33357, 33358, 33360, 33361, 33362, 33363, 33364, 33365, 33366, 33367, 33369, 33371, 33372, 33373, 33374, 33376, 33377, 33378, 33379, 33380, 33381, 33382, 33383, 33385, 25319, 27870, 29275, 25197, 38062, 32445, 33043, 27987, 20892, 24324, 22900, 21162, 24594, 22899, 26262, 34384, 30111, 25386, 25062, 31983, 35834, 21734, 27431, 40485, 27572, 34261, 21589, 20598, 27812, 21866, 36276, 29228, 24085, 24597, 29750, 25293, 25490, 29260, 24472, 28227, 27966, 25856, 28504, 30424, 30928, 30460, 30036, 21028, 21467, 20051, 24222, 26049, 32810, 32982, 25243, 21638, 21032, 28846, 34957, 36305, 27873, 21624, 32986, 22521, 35060, 36180, 38506, 37197, 20329, 27803, 21943, 30406, 30768, 25256, 28921, 28558, 24429, 34028, 26842, 30844, 31735, 33192, 26379, 40527, 25447, 30896, 22383, 30738, 38713, 25209, 25259, 21128, 29749, 27607, 33386, 33387, 33388, 33389, 33393, 33397, 33398, 33399, 33400, 33403, 33404, 33408, 33409, 33411, 33413, 33414, 33415, 33417, 33420, 33424, 33427, 33428, 33429, 33430, 33434, 33435, 33438, 33440, 33442, 33443, 33447, 33458, 33461, 33462, 33466, 33467, 33468, 33471, 33472, 33474, 33475, 33477, 33478, 33481, 33488, 33494, 33497, 33498, 33501, 33506, 33511, 33512, 33513, 33514, 33516, 33517, 33518, 33520, 33522, 33523, 33525, 33526, 33528, 33530, 33532, 33533, 33534, 33535, 33536, 33546, 33547, 33549, 33552, 33554, 33555, 33558, 33560, 33561, 33565, 33566, 33567, 33568, 33569, 33570, 33571, 33572, 33573, 33574, 33577, 33578, 33582, 33584, 33586, 33591, 33595, 33597, 21860, 33086, 30130, 30382, 21305, 30174, 20731, 23617, 35692, 31687, 20559, 29255, 39575, 39128, 28418, 29922, 31080, 25735, 30629, 25340, 39057, 36139, 21697, 32856, 20050, 22378, 33529, 33805, 24179, 20973, 29942, 35780, 23631, 22369, 27900, 39047, 23110, 30772, 39748, 36843, 31893, 21078, 25169, 38138, 20166, 33670, 33889, 33769, 33970, 22484, 26420, 22275, 26222, 28006, 35889, 26333, 28689, 26399, 27450, 26646, 25114, 22971, 19971, 20932, 28422, 26578, 27791, 20854, 26827, 22855, 27495, 30054, 23822, 33040, 40784, 26071, 31048, 31041, 39569, 36215, 23682, 20062, 20225, 21551, 22865, 30732, 22120, 27668, 36804, 24323, 27773, 27875, 35755, 25488, 33598, 33599, 33601, 33602, 33604, 33605, 33608, 33610, 33611, 33612, 33613, 33614, 33619, 33621, 33622, 33623, 33624, 33625, 33629, 33634, 33648, 33649, 33650, 33651, 33652, 33653, 33654, 33657, 33658, 33662, 33663, 33664, 33665, 33666, 33667, 33668, 33671, 33672, 33674, 33675, 33676, 33677, 33679, 33680, 33681, 33684, 33685, 33686, 33687, 33689, 33690, 33693, 33695, 33697, 33698, 33699, 33700, 33701, 33702, 33703, 33708, 33709, 33710, 33711, 33717, 33723, 33726, 33727, 33730, 33731, 33732, 33734, 33736, 33737, 33739, 33741, 33742, 33744, 33745, 33746, 33747, 33749, 33751, 33753, 33754, 33755, 33758, 33762, 33763, 33764, 33766, 33767, 33768, 33771, 33772, 33773, 24688, 27965, 29301, 25190, 38030, 38085, 21315, 36801, 31614, 20191, 35878, 20094, 40660, 38065, 38067, 21069, 28508, 36963, 27973, 35892, 22545, 23884, 27424, 27465, 26538, 21595, 33108, 32652, 22681, 34103, 24378, 25250, 27207, 38201, 25970, 24708, 26725, 30631, 20052, 20392, 24039, 38808, 25772, 32728, 23789, 20431, 31373, 20999, 33540, 19988, 24623, 31363, 38054, 20405, 20146, 31206, 29748, 21220, 33465, 25810, 31165, 23517, 27777, 38738, 36731, 27682, 20542, 21375, 28165, 25806, 26228, 27696, 24773, 39031, 35831, 24198, 29756, 31351, 31179, 19992, 37041, 29699, 27714, 22234, 37195, 27845, 36235, 21306, 34502, 26354, 36527, 23624, 39537, 28192, 33774, 33775, 33779, 33780, 33781, 33782, 33783, 33786, 33787, 33788, 33790, 33791, 33792, 33794, 33797, 33799, 33800, 33801, 33802, 33808, 33810, 33811, 33812, 33813, 33814, 33815, 33817, 33818, 33819, 33822, 33823, 33824, 33825, 33826, 33827, 33833, 33834, 33835, 33836, 33837, 33838, 33839, 33840, 33842, 33843, 33844, 33845, 33846, 33847, 33849, 33850, 33851, 33854, 33855, 33856, 33857, 33858, 33859, 33860, 33861, 33863, 33864, 33865, 33866, 33867, 33868, 33869, 33870, 33871, 33872, 33874, 33875, 33876, 33877, 33878, 33880, 33885, 33886, 33887, 33888, 33890, 33892, 33893, 33894, 33895, 33896, 33898, 33902, 33903, 33904, 33906, 33908, 33911, 33913, 33915, 33916, 21462, 23094, 40843, 36259, 21435, 22280, 39079, 26435, 37275, 27849, 20840, 30154, 25331, 29356, 21048, 21149, 32570, 28820, 30264, 21364, 40522, 27063, 30830, 38592, 35033, 32676, 28982, 29123, 20873, 26579, 29924, 22756, 25880, 22199, 35753, 39286, 25200, 32469, 24825, 28909, 22764, 20161, 20154, 24525, 38887, 20219, 35748, 20995, 22922, 32427, 25172, 20173, 26085, 25102, 33592, 33993, 33635, 34701, 29076, 28342, 23481, 32466, 20887, 25545, 26580, 32905, 33593, 34837, 20754, 23418, 22914, 36785, 20083, 27741, 20837, 35109, 36719, 38446, 34122, 29790, 38160, 38384, 28070, 33509, 24369, 25746, 27922, 33832, 33134, 40131, 22622, 36187, 19977, 21441, 33917, 33918, 33919, 33920, 33921, 33923, 33924, 33925, 33926, 33930, 33933, 33935, 33936, 33937, 33938, 33939, 33940, 33941, 33942, 33944, 33946, 33947, 33949, 33950, 33951, 33952, 33954, 33955, 33956, 33957, 33958, 33959, 33960, 33961, 33962, 33963, 33964, 33965, 33966, 33968, 33969, 33971, 33973, 33974, 33975, 33979, 33980, 33982, 33984, 33986, 33987, 33989, 33990, 33991, 33992, 33995, 33996, 33998, 33999, 34002, 34004, 34005, 34007, 34008, 34009, 34010, 34011, 34012, 34014, 34017, 34018, 34020, 34023, 34024, 34025, 34026, 34027, 34029, 34030, 34031, 34033, 34034, 34035, 34036, 34037, 34038, 34039, 34040, 34041, 34042, 34043, 34045, 34046, 34048, 34049, 34050, 20254, 25955, 26705, 21971, 20007, 25620, 39578, 25195, 23234, 29791, 33394, 28073, 26862, 20711, 33678, 30722, 26432, 21049, 27801, 32433, 20667, 21861, 29022, 31579, 26194, 29642, 33515, 26441, 23665, 21024, 29053, 34923, 38378, 38485, 25797, 36193, 33203, 21892, 27733, 25159, 32558, 22674, 20260, 21830, 36175, 26188, 19978, 23578, 35059, 26786, 25422, 31245, 28903, 33421, 21242, 38902, 23569, 21736, 37045, 32461, 22882, 36170, 34503, 33292, 33293, 36198, 25668, 23556, 24913, 28041, 31038, 35774, 30775, 30003, 21627, 20280, 36523, 28145, 23072, 32453, 31070, 27784, 23457, 23158, 29978, 32958, 24910, 28183, 22768, 29983, 29989, 29298, 21319, 32499, 34051, 34052, 34053, 34054, 34055, 34056, 34057, 34058, 34059, 34061, 34062, 34063, 34064, 34066, 34068, 34069, 34070, 34072, 34073, 34075, 34076, 34077, 34078, 34080, 34082, 34083, 34084, 34085, 34086, 34087, 34088, 34089, 34090, 34093, 34094, 34095, 34096, 34097, 34098, 34099, 34100, 34101, 34102, 34110, 34111, 34112, 34113, 34114, 34116, 34117, 34118, 34119, 34123, 34124, 34125, 34126, 34127, 34128, 34129, 34130, 34131, 34132, 34133, 34135, 34136, 34138, 34139, 34140, 34141, 34143, 34144, 34145, 34146, 34147, 34149, 34150, 34151, 34153, 34154, 34155, 34156, 34157, 34158, 34159, 34160, 34161, 34163, 34165, 34166, 34167, 34168, 34172, 34173, 34175, 34176, 34177, 30465, 30427, 21097, 32988, 22307, 24072, 22833, 29422, 26045, 28287, 35799, 23608, 34417, 21313, 30707, 25342, 26102, 20160, 39135, 34432, 23454, 35782, 21490, 30690, 20351, 23630, 39542, 22987, 24335, 31034, 22763, 19990, 26623, 20107, 25325, 35475, 36893, 21183, 26159, 21980, 22124, 36866, 20181, 20365, 37322, 39280, 27663, 24066, 24643, 23460, 35270, 35797, 25910, 25163, 39318, 23432, 23551, 25480, 21806, 21463, 30246, 20861, 34092, 26530, 26803, 27530, 25234, 36755, 21460, 33298, 28113, 30095, 20070, 36174, 23408, 29087, 34223, 26257, 26329, 32626, 34560, 40653, 40736, 23646, 26415, 36848, 26641, 26463, 25101, 31446, 22661, 24246, 25968, 28465, 34178, 34179, 34182, 34184, 34185, 34186, 34187, 34188, 34189, 34190, 34192, 34193, 34194, 34195, 34196, 34197, 34198, 34199, 34200, 34201, 34202, 34205, 34206, 34207, 34208, 34209, 34210, 34211, 34213, 34214, 34215, 34217, 34219, 34220, 34221, 34225, 34226, 34227, 34228, 34229, 34230, 34232, 34234, 34235, 34236, 34237, 34238, 34239, 34240, 34242, 34243, 34244, 34245, 34246, 34247, 34248, 34250, 34251, 34252, 34253, 34254, 34257, 34258, 34260, 34262, 34263, 34264, 34265, 34266, 34267, 34269, 34270, 34271, 34272, 34273, 34274, 34275, 34277, 34278, 34279, 34280, 34282, 34283, 34284, 34285, 34286, 34287, 34288, 34289, 34290, 34291, 34292, 34293, 34294, 34295, 34296, 24661, 21047, 32781, 25684, 34928, 29993, 24069, 26643, 25332, 38684, 21452, 29245, 35841, 27700, 30561, 31246, 21550, 30636, 39034, 33308, 35828, 30805, 26388, 28865, 26031, 25749, 22070, 24605, 31169, 21496, 19997, 27515, 32902, 23546, 21987, 22235, 20282, 20284, 39282, 24051, 26494, 32824, 24578, 39042, 36865, 23435, 35772, 35829, 25628, 33368, 25822, 22013, 33487, 37221, 20439, 32032, 36895, 31903, 20723, 22609, 28335, 23487, 35785, 32899, 37240, 33948, 31639, 34429, 38539, 38543, 32485, 39635, 30862, 23681, 31319, 36930, 38567, 31071, 23385, 25439, 31499, 34001, 26797, 21766, 32553, 29712, 32034, 38145, 25152, 22604, 20182, 23427, 22905, 22612, 34297, 34298, 34300, 34301, 34302, 34304, 34305, 34306, 34307, 34308, 34310, 34311, 34312, 34313, 34314, 34315, 34316, 34317, 34318, 34319, 34320, 34322, 34323, 34324, 34325, 34327, 34328, 34329, 34330, 34331, 34332, 34333, 34334, 34335, 34336, 34337, 34338, 34339, 34340, 34341, 34342, 34344, 34346, 34347, 34348, 34349, 34350, 34351, 34352, 34353, 34354, 34355, 34356, 34357, 34358, 34359, 34361, 34362, 34363, 34365, 34366, 34367, 34368, 34369, 34370, 34371, 34372, 34373, 34374, 34375, 34376, 34377, 34378, 34379, 34380, 34386, 34387, 34389, 34390, 34391, 34392, 34393, 34395, 34396, 34397, 34399, 34400, 34401, 34403, 34404, 34405, 34406, 34407, 34408, 34409, 34410, 29549, 25374, 36427, 36367, 32974, 33492, 25260, 21488, 27888, 37214, 22826, 24577, 27760, 22349, 25674, 36138, 30251, 28393, 22363, 27264, 30192, 28525, 35885, 35848, 22374, 27631, 34962, 30899, 25506, 21497, 28845, 27748, 22616, 25642, 22530, 26848, 33179, 21776, 31958, 20504, 36538, 28108, 36255, 28907, 25487, 28059, 28372, 32486, 33796, 26691, 36867, 28120, 38518, 35752, 22871, 29305, 34276, 33150, 30140, 35466, 26799, 21076, 36386, 38161, 25552, 39064, 36420, 21884, 20307, 26367, 22159, 24789, 28053, 21059, 23625, 22825, 28155, 22635, 30000, 29980, 24684, 33300, 33094, 25361, 26465, 36834, 30522, 36339, 36148, 38081, 24086, 21381, 21548, 28867, 34413, 34415, 34416, 34418, 34419, 34420, 34421, 34422, 34423, 34424, 34435, 34436, 34437, 34438, 34439, 34440, 34441, 34446, 34447, 34448, 34449, 34450, 34452, 34454, 34455, 34456, 34457, 34458, 34459, 34462, 34463, 34464, 34465, 34466, 34469, 34470, 34475, 34477, 34478, 34482, 34483, 34487, 34488, 34489, 34491, 34492, 34493, 34494, 34495, 34497, 34498, 34499, 34501, 34504, 34508, 34509, 34514, 34515, 34517, 34518, 34519, 34522, 34524, 34525, 34528, 34529, 34530, 34531, 34533, 34534, 34535, 34536, 34538, 34539, 34540, 34543, 34549, 34550, 34551, 34554, 34555, 34556, 34557, 34559, 34561, 34564, 34565, 34566, 34571, 34572, 34574, 34575, 34576, 34577, 34580, 34582, 27712, 24311, 20572, 20141, 24237, 25402, 33351, 36890, 26704, 37230, 30643, 21516, 38108, 24420, 31461, 26742, 25413, 31570, 32479, 30171, 20599, 25237, 22836, 36879, 20984, 31171, 31361, 22270, 24466, 36884, 28034, 23648, 22303, 21520, 20820, 28237, 22242, 25512, 39059, 33151, 34581, 35114, 36864, 21534, 23663, 33216, 25302, 25176, 33073, 40501, 38464, 39534, 39548, 26925, 22949, 25299, 21822, 25366, 21703, 34521, 27964, 23043, 29926, 34972, 27498, 22806, 35916, 24367, 28286, 29609, 39037, 20024, 28919, 23436, 30871, 25405, 26202, 30358, 24779, 23451, 23113, 19975, 33109, 27754, 29579, 20129, 26505, 32593, 24448, 26106, 26395, 24536, 22916, 23041, 34585, 34587, 34589, 34591, 34592, 34596, 34598, 34599, 34600, 34602, 34603, 34604, 34605, 34607, 34608, 34610, 34611, 34613, 34614, 34616, 34617, 34618, 34620, 34621, 34624, 34625, 34626, 34627, 34628, 34629, 34630, 34634, 34635, 34637, 34639, 34640, 34641, 34642, 34644, 34645, 34646, 34648, 34650, 34651, 34652, 34653, 34654, 34655, 34657, 34658, 34662, 34663, 34664, 34665, 34666, 34667, 34668, 34669, 34671, 34673, 34674, 34675, 34677, 34679, 34680, 34681, 34682, 34687, 34688, 34689, 34692, 34694, 34695, 34697, 34698, 34700, 34702, 34703, 34704, 34705, 34706, 34708, 34709, 34710, 34712, 34713, 34714, 34715, 34716, 34717, 34718, 34720, 34721, 34722, 34723, 34724, 24013, 24494, 21361, 38886, 36829, 26693, 22260, 21807, 24799, 20026, 28493, 32500, 33479, 33806, 22996, 20255, 20266, 23614, 32428, 26410, 34074, 21619, 30031, 32963, 21890, 39759, 20301, 28205, 35859, 23561, 24944, 21355, 30239, 28201, 34442, 25991, 38395, 32441, 21563, 31283, 32010, 38382, 21985, 32705, 29934, 25373, 34583, 28065, 31389, 25105, 26017, 21351, 25569, 27779, 24043, 21596, 38056, 20044, 27745, 35820, 23627, 26080, 33436, 26791, 21566, 21556, 27595, 27494, 20116, 25410, 21320, 33310, 20237, 20398, 22366, 25098, 38654, 26212, 29289, 21247, 21153, 24735, 35823, 26132, 29081, 26512, 35199, 30802, 30717, 26224, 22075, 21560, 38177, 29306, 34725, 34726, 34727, 34729, 34730, 34734, 34736, 34737, 34738, 34740, 34742, 34743, 34744, 34745, 34747, 34748, 34750, 34751, 34753, 34754, 34755, 34756, 34757, 34759, 34760, 34761, 34764, 34765, 34766, 34767, 34768, 34772, 34773, 34774, 34775, 34776, 34777, 34778, 34780, 34781, 34782, 34783, 34785, 34786, 34787, 34788, 34790, 34791, 34792, 34793, 34795, 34796, 34797, 34799, 34800, 34801, 34802, 34803, 34804, 34805, 34806, 34807, 34808, 34810, 34811, 34812, 34813, 34815, 34816, 34817, 34818, 34820, 34821, 34822, 34823, 34824, 34825, 34827, 34828, 34829, 34830, 34831, 34832, 34833, 34834, 34836, 34839, 34840, 34841, 34842, 34844, 34845, 34846, 34847, 34848, 34851, 31232, 24687, 24076, 24713, 33181, 22805, 24796, 29060, 28911, 28330, 27728, 29312, 27268, 34989, 24109, 20064, 23219, 21916, 38115, 27927, 31995, 38553, 25103, 32454, 30606, 34430, 21283, 38686, 36758, 26247, 23777, 20384, 29421, 19979, 21414, 22799, 21523, 25472, 38184, 20808, 20185, 40092, 32420, 21688, 36132, 34900, 33335, 38386, 28046, 24358, 23244, 26174, 38505, 29616, 29486, 21439, 33146, 39301, 32673, 23466, 38519, 38480, 32447, 30456, 21410, 38262, 39321, 31665, 35140, 28248, 20065, 32724, 31077, 35814, 24819, 21709, 20139, 39033, 24055, 27233, 20687, 21521, 35937, 33831, 30813, 38660, 21066, 21742, 22179, 38144, 28040, 23477, 28102, 26195, 34852, 34853, 34854, 34855, 34856, 34857, 34858, 34859, 34860, 34861, 34862, 34863, 34864, 34865, 34867, 34868, 34869, 34870, 34871, 34872, 34874, 34875, 34877, 34878, 34879, 34881, 34882, 34883, 34886, 34887, 34888, 34889, 34890, 34891, 34894, 34895, 34896, 34897, 34898, 34899, 34901, 34902, 34904, 34906, 34907, 34908, 34909, 34910, 34911, 34912, 34918, 34919, 34922, 34925, 34927, 34929, 34931, 34932, 34933, 34934, 34936, 34937, 34938, 34939, 34940, 34944, 34947, 34950, 34951, 34953, 34954, 34956, 34958, 34959, 34960, 34961, 34963, 34964, 34965, 34967, 34968, 34969, 34970, 34971, 34973, 34974, 34975, 34976, 34977, 34979, 34981, 34982, 34983, 34984, 34985, 34986, 23567, 23389, 26657, 32918, 21880, 31505, 25928, 26964, 20123, 27463, 34638, 38795, 21327, 25375, 25658, 37034, 26012, 32961, 35856, 20889, 26800, 21368, 34809, 25032, 27844, 27899, 35874, 23633, 34218, 33455, 38156, 27427, 36763, 26032, 24571, 24515, 20449, 34885, 26143, 33125, 29481, 24826, 20852, 21009, 22411, 24418, 37026, 34892, 37266, 24184, 26447, 24615, 22995, 20804, 20982, 33016, 21256, 27769, 38596, 29066, 20241, 20462, 32670, 26429, 21957, 38152, 31168, 34966, 32483, 22687, 25100, 38656, 34394, 22040, 39035, 24464, 35768, 33988, 37207, 21465, 26093, 24207, 30044, 24676, 32110, 23167, 32490, 32493, 36713, 21927, 23459, 24748, 26059, 29572, 34988, 34990, 34991, 34992, 34994, 34995, 34996, 34997, 34998, 35000, 35001, 35002, 35003, 35005, 35006, 35007, 35008, 35011, 35012, 35015, 35016, 35018, 35019, 35020, 35021, 35023, 35024, 35025, 35027, 35030, 35031, 35034, 35035, 35036, 35037, 35038, 35040, 35041, 35046, 35047, 35049, 35050, 35051, 35052, 35053, 35054, 35055, 35058, 35061, 35062, 35063, 35066, 35067, 35069, 35071, 35072, 35073, 35075, 35076, 35077, 35078, 35079, 35080, 35081, 35083, 35084, 35085, 35086, 35087, 35089, 35092, 35093, 35094, 35095, 35096, 35100, 35101, 35102, 35103, 35104, 35106, 35107, 35108, 35110, 35111, 35112, 35113, 35116, 35117, 35118, 35119, 35121, 35122, 35123, 35125, 35127, 36873, 30307, 30505, 32474, 38772, 34203, 23398, 31348, 38634, 34880, 21195, 29071, 24490, 26092, 35810, 23547, 39535, 24033, 27529, 27739, 35757, 35759, 36874, 36805, 21387, 25276, 40486, 40493, 21568, 20011, 33469, 29273, 34460, 23830, 34905, 28079, 38597, 21713, 20122, 35766, 28937, 21693, 38409, 28895, 28153, 30416, 20005, 30740, 34578, 23721, 24310, 35328, 39068, 38414, 28814, 27839, 22852, 25513, 30524, 34893, 28436, 33395, 22576, 29141, 21388, 30746, 38593, 21761, 24422, 28976, 23476, 35866, 39564, 27523, 22830, 40495, 31207, 26472, 25196, 20335, 30113, 32650, 27915, 38451, 27687, 20208, 30162, 20859, 26679, 28478, 36992, 33136, 22934, 29814, 35128, 35129, 35130, 35131, 35132, 35133, 35134, 35135, 35136, 35138, 35139, 35141, 35142, 35143, 35144, 35145, 35146, 35147, 35148, 35149, 35150, 35151, 35152, 35153, 35154, 35155, 35156, 35157, 35158, 35159, 35160, 35161, 35162, 35163, 35164, 35165, 35168, 35169, 35170, 35171, 35172, 35173, 35175, 35176, 35177, 35178, 35179, 35180, 35181, 35182, 35183, 35184, 35185, 35186, 35187, 35188, 35189, 35190, 35191, 35192, 35193, 35194, 35196, 35197, 35198, 35200, 35202, 35204, 35205, 35207, 35208, 35209, 35210, 35211, 35212, 35213, 35214, 35215, 35216, 35217, 35218, 35219, 35220, 35221, 35222, 35223, 35224, 35225, 35226, 35227, 35228, 35229, 35230, 35231, 35232, 35233, 25671, 23591, 36965, 31377, 35875, 23002, 21676, 33280, 33647, 35201, 32768, 26928, 22094, 32822, 29239, 37326, 20918, 20063, 39029, 25494, 19994, 21494, 26355, 33099, 22812, 28082, 19968, 22777, 21307, 25558, 38129, 20381, 20234, 34915, 39056, 22839, 36951, 31227, 20202, 33008, 30097, 27778, 23452, 23016, 24413, 26885, 34433, 20506, 24050, 20057, 30691, 20197, 33402, 25233, 26131, 37009, 23673, 20159, 24441, 33222, 36920, 32900, 30123, 20134, 35028, 24847, 27589, 24518, 20041, 30410, 28322, 35811, 35758, 35850, 35793, 24322, 32764, 32716, 32462, 33589, 33643, 22240, 27575, 38899, 38452, 23035, 21535, 38134, 28139, 23493, 39278, 23609, 24341, 38544, 35234, 35235, 35236, 35237, 35238, 35239, 35240, 35241, 35242, 35243, 35244, 35245, 35246, 35247, 35248, 35249, 35250, 35251, 35252, 35253, 35254, 35255, 35256, 35257, 35258, 35259, 35260, 35261, 35262, 35263, 35264, 35267, 35277, 35283, 35284, 35285, 35287, 35288, 35289, 35291, 35293, 35295, 35296, 35297, 35298, 35300, 35303, 35304, 35305, 35306, 35308, 35309, 35310, 35312, 35313, 35314, 35316, 35317, 35318, 35319, 35320, 35321, 35322, 35323, 35324, 35325, 35326, 35327, 35329, 35330, 35331, 35332, 35333, 35334, 35336, 35337, 35338, 35339, 35340, 35341, 35342, 35343, 35344, 35345, 35346, 35347, 35348, 35349, 35350, 35351, 35352, 35353, 35354, 35355, 35356, 35357, 21360, 33521, 27185, 23156, 40560, 24212, 32552, 33721, 33828, 33829, 33639, 34631, 36814, 36194, 30408, 24433, 39062, 30828, 26144, 21727, 25317, 20323, 33219, 30152, 24248, 38605, 36362, 34553, 21647, 27891, 28044, 27704, 24703, 21191, 29992, 24189, 20248, 24736, 24551, 23588, 30001, 37038, 38080, 29369, 27833, 28216, 37193, 26377, 21451, 21491, 20305, 37321, 35825, 21448, 24188, 36802, 28132, 20110, 30402, 27014, 34398, 24858, 33286, 20313, 20446, 36926, 40060, 24841, 28189, 28180, 38533, 20104, 23089, 38632, 19982, 23679, 31161, 23431, 35821, 32701, 29577, 22495, 33419, 37057, 21505, 36935, 21947, 23786, 24481, 24840, 27442, 29425, 32946, 35465, 35358, 35359, 35360, 35361, 35362, 35363, 35364, 35365, 35366, 35367, 35368, 35369, 35370, 35371, 35372, 35373, 35374, 35375, 35376, 35377, 35378, 35379, 35380, 35381, 35382, 35383, 35384, 35385, 35386, 35387, 35388, 35389, 35391, 35392, 35393, 35394, 35395, 35396, 35397, 35398, 35399, 35401, 35402, 35403, 35404, 35405, 35406, 35407, 35408, 35409, 35410, 35411, 35412, 35413, 35414, 35415, 35416, 35417, 35418, 35419, 35420, 35421, 35422, 35423, 35424, 35425, 35426, 35427, 35428, 35429, 35430, 35431, 35432, 35433, 35434, 35435, 35436, 35437, 35438, 35439, 35440, 35441, 35442, 35443, 35444, 35445, 35446, 35447, 35448, 35450, 35451, 35452, 35453, 35454, 35455, 35456, 28020, 23507, 35029, 39044, 35947, 39533, 40499, 28170, 20900, 20803, 22435, 34945, 21407, 25588, 36757, 22253, 21592, 22278, 29503, 28304, 32536, 36828, 33489, 24895, 24616, 38498, 26352, 32422, 36234, 36291, 38053, 23731, 31908, 26376, 24742, 38405, 32792, 20113, 37095, 21248, 38504, 20801, 36816, 34164, 37213, 26197, 38901, 23381, 21277, 30776, 26434, 26685, 21705, 28798, 23472, 36733, 20877, 22312, 21681, 25874, 26242, 36190, 36163, 33039, 33900, 36973, 31967, 20991, 34299, 26531, 26089, 28577, 34468, 36481, 22122, 36896, 30338, 28790, 29157, 36131, 25321, 21017, 27901, 36156, 24590, 22686, 24974, 26366, 36192, 25166, 21939, 28195, 26413, 36711, 35457, 35458, 35459, 35460, 35461, 35462, 35463, 35464, 35467, 35468, 35469, 35470, 35471, 35472, 35473, 35474, 35476, 35477, 35478, 35479, 35480, 35481, 35482, 35483, 35484, 35485, 35486, 35487, 35488, 35489, 35490, 35491, 35492, 35493, 35494, 35495, 35496, 35497, 35498, 35499, 35500, 35501, 35502, 35503, 35504, 35505, 35506, 35507, 35508, 35509, 35510, 35511, 35512, 35513, 35514, 35515, 35516, 35517, 35518, 35519, 35520, 35521, 35522, 35523, 35524, 35525, 35526, 35527, 35528, 35529, 35530, 35531, 35532, 35533, 35534, 35535, 35536, 35537, 35538, 35539, 35540, 35541, 35542, 35543, 35544, 35545, 35546, 35547, 35548, 35549, 35550, 35551, 35552, 35553, 35554, 35555, 38113, 38392, 30504, 26629, 27048, 21643, 20045, 28856, 35784, 25688, 25995, 23429, 31364, 20538, 23528, 30651, 27617, 35449, 31896, 27838, 30415, 26025, 36759, 23853, 23637, 34360, 26632, 21344, 25112, 31449, 28251, 32509, 27167, 31456, 24432, 28467, 24352, 25484, 28072, 26454, 19976, 24080, 36134, 20183, 32960, 30260, 38556, 25307, 26157, 25214, 27836, 36213, 29031, 32617, 20806, 32903, 21484, 36974, 25240, 21746, 34544, 36761, 32773, 38167, 34071, 36825, 27993, 29645, 26015, 30495, 29956, 30759, 33275, 36126, 38024, 20390, 26517, 30137, 35786, 38663, 25391, 38215, 38453, 33976, 25379, 30529, 24449, 29424, 20105, 24596, 25972, 25327, 27491, 25919, 35556, 35557, 35558, 35559, 35560, 35561, 35562, 35563, 35564, 35565, 35566, 35567, 35568, 35569, 35570, 35571, 35572, 35573, 35574, 35575, 35576, 35577, 35578, 35579, 35580, 35581, 35582, 35583, 35584, 35585, 35586, 35587, 35588, 35589, 35590, 35592, 35593, 35594, 35595, 35596, 35597, 35598, 35599, 35600, 35601, 35602, 35603, 35604, 35605, 35606, 35607, 35608, 35609, 35610, 35611, 35612, 35613, 35614, 35615, 35616, 35617, 35618, 35619, 35620, 35621, 35623, 35624, 35625, 35626, 35627, 35628, 35629, 35630, 35631, 35632, 35633, 35634, 35635, 35636, 35637, 35638, 35639, 35640, 35641, 35642, 35643, 35644, 35645, 35646, 35647, 35648, 35649, 35650, 35651, 35652, 35653, 24103, 30151, 37073, 35777, 33437, 26525, 25903, 21553, 34584, 30693, 32930, 33026, 27713, 20043, 32455, 32844, 30452, 26893, 27542, 25191, 20540, 20356, 22336, 25351, 27490, 36286, 21482, 26088, 32440, 24535, 25370, 25527, 33267, 33268, 32622, 24092, 23769, 21046, 26234, 31209, 31258, 36136, 28825, 30164, 28382, 27835, 31378, 20013, 30405, 24544, 38047, 34935, 32456, 31181, 32959, 37325, 20210, 20247, 33311, 21608, 24030, 27954, 35788, 31909, 36724, 32920, 24090, 21650, 30385, 23449, 26172, 39588, 29664, 26666, 34523, 26417, 29482, 35832, 35803, 36880, 31481, 28891, 29038, 25284, 30633, 22065, 20027, 33879, 26609, 21161, 34496, 36142, 38136, 31569, 35654, 35655, 35656, 35657, 35658, 35659, 35660, 35661, 35662, 35663, 35664, 35665, 35666, 35667, 35668, 35669, 35670, 35671, 35672, 35673, 35674, 35675, 35676, 35677, 35678, 35679, 35680, 35681, 35682, 35683, 35684, 35685, 35687, 35688, 35689, 35690, 35691, 35693, 35694, 35695, 35696, 35697, 35698, 35699, 35700, 35701, 35702, 35703, 35704, 35705, 35706, 35707, 35708, 35709, 35710, 35711, 35712, 35713, 35714, 35715, 35716, 35717, 35718, 35719, 35720, 35721, 35722, 35723, 35724, 35725, 35726, 35727, 35728, 35729, 35730, 35731, 35732, 35733, 35734, 35735, 35736, 35737, 35738, 35739, 35740, 35741, 35742, 35743, 35756, 35761, 35771, 35783, 35792, 35818, 35849, 35870, 20303, 27880, 31069, 39547, 25235, 29226, 25341, 19987, 30742, 36716, 25776, 36186, 31686, 26729, 24196, 35013, 22918, 25758, 22766, 29366, 26894, 38181, 36861, 36184, 22368, 32512, 35846, 20934, 25417, 25305, 21331, 26700, 29730, 33537, 37196, 21828, 30528, 28796, 27978, 20857, 21672, 36164, 23039, 28363, 28100, 23388, 32043, 20180, 31869, 28371, 23376, 33258, 28173, 23383, 39683, 26837, 36394, 23447, 32508, 24635, 32437, 37049, 36208, 22863, 25549, 31199, 36275, 21330, 26063, 31062, 35781, 38459, 32452, 38075, 32386, 22068, 37257, 26368, 32618, 23562, 36981, 26152, 24038, 20304, 26590, 20570, 20316, 22352, 24231, 0, 0, 0, 0, 0, 35896, 35897, 35898, 35899, 35900, 35901, 35902, 35903, 35904, 35906, 35907, 35908, 35909, 35912, 35914, 35915, 35917, 35918, 35919, 35920, 35921, 35922, 35923, 35924, 35926, 35927, 35928, 35929, 35931, 35932, 35933, 35934, 35935, 35936, 35939, 35940, 35941, 35942, 35943, 35944, 35945, 35948, 35949, 35950, 35951, 35952, 35953, 35954, 35956, 35957, 35958, 35959, 35963, 35964, 35965, 35966, 35967, 35968, 35969, 35971, 35972, 35974, 35975, 35976, 35979, 35981, 35982, 35983, 35984, 35985, 35986, 35987, 35989, 35990, 35991, 35993, 35994, 35995, 35996, 35997, 35998, 35999, 36000, 36001, 36002, 36003, 36004, 36005, 36006, 36007, 36008, 36009, 36010, 36011, 36012, 36013, 20109, 19980, 20800, 19984, 24319, 21317, 19989, 20120, 19998, 39730, 23404, 22121, 20008, 31162, 20031, 21269, 20039, 22829, 29243, 21358, 27664, 22239, 32996, 39319, 27603, 30590, 40727, 20022, 20127, 40720, 20060, 20073, 20115, 33416, 23387, 21868, 22031, 20164, 21389, 21405, 21411, 21413, 21422, 38757, 36189, 21274, 21493, 21286, 21294, 21310, 36188, 21350, 21347, 20994, 21000, 21006, 21037, 21043, 21055, 21056, 21068, 21086, 21089, 21084, 33967, 21117, 21122, 21121, 21136, 21139, 20866, 32596, 20155, 20163, 20169, 20162, 20200, 20193, 20203, 20190, 20251, 20211, 20258, 20324, 20213, 20261, 20263, 20233, 20267, 20318, 20327, 25912, 20314, 20317, 36014, 36015, 36016, 36017, 36018, 36019, 36020, 36021, 36022, 36023, 36024, 36025, 36026, 36027, 36028, 36029, 36030, 36031, 36032, 36033, 36034, 36035, 36036, 36037, 36038, 36039, 36040, 36041, 36042, 36043, 36044, 36045, 36046, 36047, 36048, 36049, 36050, 36051, 36052, 36053, 36054, 36055, 36056, 36057, 36058, 36059, 36060, 36061, 36062, 36063, 36064, 36065, 36066, 36067, 36068, 36069, 36070, 36071, 36072, 36073, 36074, 36075, 36076, 36077, 36078, 36079, 36080, 36081, 36082, 36083, 36084, 36085, 36086, 36087, 36088, 36089, 36090, 36091, 36092, 36093, 36094, 36095, 36096, 36097, 36098, 36099, 36100, 36101, 36102, 36103, 36104, 36105, 36106, 36107, 36108, 36109, 20319, 20311, 20274, 20285, 20342, 20340, 20369, 20361, 20355, 20367, 20350, 20347, 20394, 20348, 20396, 20372, 20454, 20456, 20458, 20421, 20442, 20451, 20444, 20433, 20447, 20472, 20521, 20556, 20467, 20524, 20495, 20526, 20525, 20478, 20508, 20492, 20517, 20520, 20606, 20547, 20565, 20552, 20558, 20588, 20603, 20645, 20647, 20649, 20666, 20694, 20742, 20717, 20716, 20710, 20718, 20743, 20747, 20189, 27709, 20312, 20325, 20430, 40864, 27718, 31860, 20846, 24061, 40649, 39320, 20865, 22804, 21241, 21261, 35335, 21264, 20971, 22809, 20821, 20128, 20822, 20147, 34926, 34980, 20149, 33044, 35026, 31104, 23348, 34819, 32696, 20907, 20913, 20925, 20924, 36110, 36111, 36112, 36113, 36114, 36115, 36116, 36117, 36118, 36119, 36120, 36121, 36122, 36123, 36124, 36128, 36177, 36178, 36183, 36191, 36197, 36200, 36201, 36202, 36204, 36206, 36207, 36209, 36210, 36216, 36217, 36218, 36219, 36220, 36221, 36222, 36223, 36224, 36226, 36227, 36230, 36231, 36232, 36233, 36236, 36237, 36238, 36239, 36240, 36242, 36243, 36245, 36246, 36247, 36248, 36249, 36250, 36251, 36252, 36253, 36254, 36256, 36257, 36258, 36260, 36261, 36262, 36263, 36264, 36265, 36266, 36267, 36268, 36269, 36270, 36271, 36272, 36274, 36278, 36279, 36281, 36283, 36285, 36288, 36289, 36290, 36293, 36295, 36296, 36297, 36298, 36301, 36304, 36306, 36307, 36308, 20935, 20886, 20898, 20901, 35744, 35750, 35751, 35754, 35764, 35765, 35767, 35778, 35779, 35787, 35791, 35790, 35794, 35795, 35796, 35798, 35800, 35801, 35804, 35807, 35808, 35812, 35816, 35817, 35822, 35824, 35827, 35830, 35833, 35836, 35839, 35840, 35842, 35844, 35847, 35852, 35855, 35857, 35858, 35860, 35861, 35862, 35865, 35867, 35864, 35869, 35871, 35872, 35873, 35877, 35879, 35882, 35883, 35886, 35887, 35890, 35891, 35893, 35894, 21353, 21370, 38429, 38434, 38433, 38449, 38442, 38461, 38460, 38466, 38473, 38484, 38495, 38503, 38508, 38514, 38516, 38536, 38541, 38551, 38576, 37015, 37019, 37021, 37017, 37036, 37025, 37044, 37043, 37046, 37050, 36309, 36312, 36313, 36316, 36320, 36321, 36322, 36325, 36326, 36327, 36329, 36333, 36334, 36336, 36337, 36338, 36340, 36342, 36348, 36350, 36351, 36352, 36353, 36354, 36355, 36356, 36358, 36359, 36360, 36363, 36365, 36366, 36368, 36369, 36370, 36371, 36373, 36374, 36375, 36376, 36377, 36378, 36379, 36380, 36384, 36385, 36388, 36389, 36390, 36391, 36392, 36395, 36397, 36400, 36402, 36403, 36404, 36406, 36407, 36408, 36411, 36412, 36414, 36415, 36419, 36421, 36422, 36428, 36429, 36430, 36431, 36432, 36435, 36436, 36437, 36438, 36439, 36440, 36442, 36443, 36444, 36445, 36446, 36447, 36448, 36449, 36450, 36451, 36452, 36453, 36455, 36456, 36458, 36459, 36462, 36465, 37048, 37040, 37071, 37061, 37054, 37072, 37060, 37063, 37075, 37094, 37090, 37084, 37079, 37083, 37099, 37103, 37118, 37124, 37154, 37150, 37155, 37169, 37167, 37177, 37187, 37190, 21005, 22850, 21154, 21164, 21165, 21182, 21759, 21200, 21206, 21232, 21471, 29166, 30669, 24308, 20981, 20988, 39727, 21430, 24321, 30042, 24047, 22348, 22441, 22433, 22654, 22716, 22725, 22737, 22313, 22316, 22314, 22323, 22329, 22318, 22319, 22364, 22331, 22338, 22377, 22405, 22379, 22406, 22396, 22395, 22376, 22381, 22390, 22387, 22445, 22436, 22412, 22450, 22479, 22439, 22452, 22419, 22432, 22485, 22488, 22490, 22489, 22482, 22456, 22516, 22511, 22520, 22500, 22493, 36467, 36469, 36471, 36472, 36473, 36474, 36475, 36477, 36478, 36480, 36482, 36483, 36484, 36486, 36488, 36489, 36490, 36491, 36492, 36493, 36494, 36497, 36498, 36499, 36501, 36502, 36503, 36504, 36505, 36506, 36507, 36509, 36511, 36512, 36513, 36514, 36515, 36516, 36517, 36518, 36519, 36520, 36521, 36522, 36525, 36526, 36528, 36529, 36531, 36532, 36533, 36534, 36535, 36536, 36537, 36539, 36540, 36541, 36542, 36543, 36544, 36545, 36546, 36547, 36548, 36549, 36550, 36551, 36552, 36553, 36554, 36555, 36556, 36557, 36559, 36560, 36561, 36562, 36563, 36564, 36565, 36566, 36567, 36568, 36569, 36570, 36571, 36572, 36573, 36574, 36575, 36576, 36577, 36578, 36579, 36580, 22539, 22541, 22525, 22509, 22528, 22558, 22553, 22596, 22560, 22629, 22636, 22657, 22665, 22682, 22656, 39336, 40729, 25087, 33401, 33405, 33407, 33423, 33418, 33448, 33412, 33422, 33425, 33431, 33433, 33451, 33464, 33470, 33456, 33480, 33482, 33507, 33432, 33463, 33454, 33483, 33484, 33473, 33449, 33460, 33441, 33450, 33439, 33476, 33486, 33444, 33505, 33545, 33527, 33508, 33551, 33543, 33500, 33524, 33490, 33496, 33548, 33531, 33491, 33553, 33562, 33542, 33556, 33557, 33504, 33493, 33564, 33617, 33627, 33628, 33544, 33682, 33596, 33588, 33585, 33691, 33630, 33583, 33615, 33607, 33603, 33631, 33600, 33559, 33632, 33581, 33594, 33587, 33638, 33637, 36581, 36582, 36583, 36584, 36585, 36586, 36587, 36588, 36589, 36590, 36591, 36592, 36593, 36594, 36595, 36596, 36597, 36598, 36599, 36600, 36601, 36602, 36603, 36604, 36605, 36606, 36607, 36608, 36609, 36610, 36611, 36612, 36613, 36614, 36615, 36616, 36617, 36618, 36619, 36620, 36621, 36622, 36623, 36624, 36625, 36626, 36627, 36628, 36629, 36630, 36631, 36632, 36633, 36634, 36635, 36636, 36637, 36638, 36639, 36640, 36641, 36642, 36643, 36644, 36645, 36646, 36647, 36648, 36649, 36650, 36651, 36652, 36653, 36654, 36655, 36656, 36657, 36658, 36659, 36660, 36661, 36662, 36663, 36664, 36665, 36666, 36667, 36668, 36669, 36670, 36671, 36672, 36673, 36674, 36675, 36676, 33640, 33563, 33641, 33644, 33642, 33645, 33646, 33712, 33656, 33715, 33716, 33696, 33706, 33683, 33692, 33669, 33660, 33718, 33705, 33661, 33720, 33659, 33688, 33694, 33704, 33722, 33724, 33729, 33793, 33765, 33752, 22535, 33816, 33803, 33757, 33789, 33750, 33820, 33848, 33809, 33798, 33748, 33759, 33807, 33795, 33784, 33785, 33770, 33733, 33728, 33830, 33776, 33761, 33884, 33873, 33882, 33881, 33907, 33927, 33928, 33914, 33929, 33912, 33852, 33862, 33897, 33910, 33932, 33934, 33841, 33901, 33985, 33997, 34000, 34022, 33981, 34003, 33994, 33983, 33978, 34016, 33953, 33977, 33972, 33943, 34021, 34019, 34060, 29965, 34104, 34032, 34105, 34079, 34106, 36677, 36678, 36679, 36680, 36681, 36682, 36683, 36684, 36685, 36686, 36687, 36688, 36689, 36690, 36691, 36692, 36693, 36694, 36695, 36696, 36697, 36698, 36699, 36700, 36701, 36702, 36703, 36704, 36705, 36706, 36707, 36708, 36709, 36714, 36736, 36748, 36754, 36765, 36768, 36769, 36770, 36772, 36773, 36774, 36775, 36778, 36780, 36781, 36782, 36783, 36786, 36787, 36788, 36789, 36791, 36792, 36794, 36795, 36796, 36799, 36800, 36803, 36806, 36809, 36810, 36811, 36812, 36813, 36815, 36818, 36822, 36823, 36826, 36832, 36833, 36835, 36839, 36844, 36847, 36849, 36850, 36852, 36853, 36854, 36858, 36859, 36860, 36862, 36863, 36871, 36872, 36876, 36878, 36883, 36885, 36888, 34134, 34107, 34047, 34044, 34137, 34120, 34152, 34148, 34142, 34170, 30626, 34115, 34162, 34171, 34212, 34216, 34183, 34191, 34169, 34222, 34204, 34181, 34233, 34231, 34224, 34259, 34241, 34268, 34303, 34343, 34309, 34345, 34326, 34364, 24318, 24328, 22844, 22849, 32823, 22869, 22874, 22872, 21263, 23586, 23589, 23596, 23604, 25164, 25194, 25247, 25275, 25290, 25306, 25303, 25326, 25378, 25334, 25401, 25419, 25411, 25517, 25590, 25457, 25466, 25486, 25524, 25453, 25516, 25482, 25449, 25518, 25532, 25586, 25592, 25568, 25599, 25540, 25566, 25550, 25682, 25542, 25534, 25669, 25665, 25611, 25627, 25632, 25612, 25638, 25633, 25694, 25732, 25709, 25750, 36889, 36892, 36899, 36900, 36901, 36903, 36904, 36905, 36906, 36907, 36908, 36912, 36913, 36914, 36915, 36916, 36919, 36921, 36922, 36925, 36927, 36928, 36931, 36933, 36934, 36936, 36937, 36938, 36939, 36940, 36942, 36948, 36949, 36950, 36953, 36954, 36956, 36957, 36958, 36959, 36960, 36961, 36964, 36966, 36967, 36969, 36970, 36971, 36972, 36975, 36976, 36977, 36978, 36979, 36982, 36983, 36984, 36985, 36986, 36987, 36988, 36990, 36993, 36996, 36997, 36998, 36999, 37001, 37002, 37004, 37005, 37006, 37007, 37008, 37010, 37012, 37014, 37016, 37018, 37020, 37022, 37023, 37024, 37028, 37029, 37031, 37032, 37033, 37035, 37037, 37042, 37047, 37052, 37053, 37055, 37056, 25722, 25783, 25784, 25753, 25786, 25792, 25808, 25815, 25828, 25826, 25865, 25893, 25902, 24331, 24530, 29977, 24337, 21343, 21489, 21501, 21481, 21480, 21499, 21522, 21526, 21510, 21579, 21586, 21587, 21588, 21590, 21571, 21537, 21591, 21593, 21539, 21554, 21634, 21652, 21623, 21617, 21604, 21658, 21659, 21636, 21622, 21606, 21661, 21712, 21677, 21698, 21684, 21714, 21671, 21670, 21715, 21716, 21618, 21667, 21717, 21691, 21695, 21708, 21721, 21722, 21724, 21673, 21674, 21668, 21725, 21711, 21726, 21787, 21735, 21792, 21757, 21780, 21747, 21794, 21795, 21775, 21777, 21799, 21802, 21863, 21903, 21941, 21833, 21869, 21825, 21845, 21823, 21840, 21820, 37058, 37059, 37062, 37064, 37065, 37067, 37068, 37069, 37074, 37076, 37077, 37078, 37080, 37081, 37082, 37086, 37087, 37088, 37091, 37092, 37093, 37097, 37098, 37100, 37102, 37104, 37105, 37106, 37107, 37109, 37110, 37111, 37113, 37114, 37115, 37116, 37119, 37120, 37121, 37123, 37125, 37126, 37127, 37128, 37129, 37130, 37131, 37132, 37133, 37134, 37135, 37136, 37137, 37138, 37139, 37140, 37141, 37142, 37143, 37144, 37146, 37147, 37148, 37149, 37151, 37152, 37153, 37156, 37157, 37158, 37159, 37160, 37161, 37162, 37163, 37164, 37165, 37166, 37168, 37170, 37171, 37172, 37173, 37174, 37175, 37176, 37178, 37179, 37180, 37181, 37182, 37183, 37184, 37185, 37186, 37188, 21815, 21846, 21877, 21878, 21879, 21811, 21808, 21852, 21899, 21970, 21891, 21937, 21945, 21896, 21889, 21919, 21886, 21974, 21905, 21883, 21983, 21949, 21950, 21908, 21913, 21994, 22007, 21961, 22047, 21969, 21995, 21996, 21972, 21990, 21981, 21956, 21999, 21989, 22002, 22003, 21964, 21965, 21992, 22005, 21988, 36756, 22046, 22024, 22028, 22017, 22052, 22051, 22014, 22016, 22055, 22061, 22104, 22073, 22103, 22060, 22093, 22114, 22105, 22108, 22092, 22100, 22150, 22116, 22129, 22123, 22139, 22140, 22149, 22163, 22191, 22228, 22231, 22237, 22241, 22261, 22251, 22265, 22271, 22276, 22282, 22281, 22300, 24079, 24089, 24084, 24081, 24113, 24123, 24124, 37189, 37191, 37192, 37201, 37203, 37204, 37205, 37206, 37208, 37209, 37211, 37212, 37215, 37216, 37222, 37223, 37224, 37227, 37229, 37235, 37242, 37243, 37244, 37248, 37249, 37250, 37251, 37252, 37254, 37256, 37258, 37262, 37263, 37267, 37268, 37269, 37270, 37271, 37272, 37273, 37276, 37277, 37278, 37279, 37280, 37281, 37284, 37285, 37286, 37287, 37288, 37289, 37291, 37292, 37296, 37297, 37298, 37299, 37302, 37303, 37304, 37305, 37307, 37308, 37309, 37310, 37311, 37312, 37313, 37314, 37315, 37316, 37317, 37318, 37320, 37323, 37328, 37330, 37331, 37332, 37333, 37334, 37335, 37336, 37337, 37338, 37339, 37341, 37342, 37343, 37344, 37345, 37346, 37347, 37348, 37349, 24119, 24132, 24148, 24155, 24158, 24161, 23692, 23674, 23693, 23696, 23702, 23688, 23704, 23705, 23697, 23706, 23708, 23733, 23714, 23741, 23724, 23723, 23729, 23715, 23745, 23735, 23748, 23762, 23780, 23755, 23781, 23810, 23811, 23847, 23846, 23854, 23844, 23838, 23814, 23835, 23896, 23870, 23860, 23869, 23916, 23899, 23919, 23901, 23915, 23883, 23882, 23913, 23924, 23938, 23961, 23965, 35955, 23991, 24005, 24435, 24439, 24450, 24455, 24457, 24460, 24469, 24473, 24476, 24488, 24493, 24501, 24508, 34914, 24417, 29357, 29360, 29364, 29367, 29368, 29379, 29377, 29390, 29389, 29394, 29416, 29423, 29417, 29426, 29428, 29431, 29441, 29427, 29443, 29434, 37350, 37351, 37352, 37353, 37354, 37355, 37356, 37357, 37358, 37359, 37360, 37361, 37362, 37363, 37364, 37365, 37366, 37367, 37368, 37369, 37370, 37371, 37372, 37373, 37374, 37375, 37376, 37377, 37378, 37379, 37380, 37381, 37382, 37383, 37384, 37385, 37386, 37387, 37388, 37389, 37390, 37391, 37392, 37393, 37394, 37395, 37396, 37397, 37398, 37399, 37400, 37401, 37402, 37403, 37404, 37405, 37406, 37407, 37408, 37409, 37410, 37411, 37412, 37413, 37414, 37415, 37416, 37417, 37418, 37419, 37420, 37421, 37422, 37423, 37424, 37425, 37426, 37427, 37428, 37429, 37430, 37431, 37432, 37433, 37434, 37435, 37436, 37437, 37438, 37439, 37440, 37441, 37442, 37443, 37444, 37445, 29435, 29463, 29459, 29473, 29450, 29470, 29469, 29461, 29474, 29497, 29477, 29484, 29496, 29489, 29520, 29517, 29527, 29536, 29548, 29551, 29566, 33307, 22821, 39143, 22820, 22786, 39267, 39271, 39272, 39273, 39274, 39275, 39276, 39284, 39287, 39293, 39296, 39300, 39303, 39306, 39309, 39312, 39313, 39315, 39316, 39317, 24192, 24209, 24203, 24214, 24229, 24224, 24249, 24245, 24254, 24243, 36179, 24274, 24273, 24283, 24296, 24298, 33210, 24516, 24521, 24534, 24527, 24579, 24558, 24580, 24545, 24548, 24574, 24581, 24582, 24554, 24557, 24568, 24601, 24629, 24614, 24603, 24591, 24589, 24617, 24619, 24586, 24639, 24609, 24696, 24697, 24699, 24698, 24642, 37446, 37447, 37448, 37449, 37450, 37451, 37452, 37453, 37454, 37455, 37456, 37457, 37458, 37459, 37460, 37461, 37462, 37463, 37464, 37465, 37466, 37467, 37468, 37469, 37470, 37471, 37472, 37473, 37474, 37475, 37476, 37477, 37478, 37479, 37480, 37481, 37482, 37483, 37484, 37485, 37486, 37487, 37488, 37489, 37490, 37491, 37493, 37494, 37495, 37496, 37497, 37498, 37499, 37500, 37501, 37502, 37503, 37504, 37505, 37506, 37507, 37508, 37509, 37510, 37511, 37512, 37513, 37514, 37515, 37516, 37517, 37519, 37520, 37521, 37522, 37523, 37524, 37525, 37526, 37527, 37528, 37529, 37530, 37531, 37532, 37533, 37534, 37535, 37536, 37537, 37538, 37539, 37540, 37541, 37542, 37543, 24682, 24701, 24726, 24730, 24749, 24733, 24707, 24722, 24716, 24731, 24812, 24763, 24753, 24797, 24792, 24774, 24794, 24756, 24864, 24870, 24853, 24867, 24820, 24832, 24846, 24875, 24906, 24949, 25004, 24980, 24999, 25015, 25044, 25077, 24541, 38579, 38377, 38379, 38385, 38387, 38389, 38390, 38396, 38398, 38403, 38404, 38406, 38408, 38410, 38411, 38412, 38413, 38415, 38418, 38421, 38422, 38423, 38425, 38426, 20012, 29247, 25109, 27701, 27732, 27740, 27722, 27811, 27781, 27792, 27796, 27788, 27752, 27753, 27764, 27766, 27782, 27817, 27856, 27860, 27821, 27895, 27896, 27889, 27863, 27826, 27872, 27862, 27898, 27883, 27886, 27825, 27859, 27887, 27902, 37544, 37545, 37546, 37547, 37548, 37549, 37551, 37552, 37553, 37554, 37555, 37556, 37557, 37558, 37559, 37560, 37561, 37562, 37563, 37564, 37565, 37566, 37567, 37568, 37569, 37570, 37571, 37572, 37573, 37574, 37575, 37577, 37578, 37579, 37580, 37581, 37582, 37583, 37584, 37585, 37586, 37587, 37588, 37589, 37590, 37591, 37592, 37593, 37594, 37595, 37596, 37597, 37598, 37599, 37600, 37601, 37602, 37603, 37604, 37605, 37606, 37607, 37608, 37609, 37610, 37611, 37612, 37613, 37614, 37615, 37616, 37617, 37618, 37619, 37620, 37621, 37622, 37623, 37624, 37625, 37626, 37627, 37628, 37629, 37630, 37631, 37632, 37633, 37634, 37635, 37636, 37637, 37638, 37639, 37640, 37641, 27961, 27943, 27916, 27971, 27976, 27911, 27908, 27929, 27918, 27947, 27981, 27950, 27957, 27930, 27983, 27986, 27988, 27955, 28049, 28015, 28062, 28064, 27998, 28051, 28052, 27996, 28000, 28028, 28003, 28186, 28103, 28101, 28126, 28174, 28095, 28128, 28177, 28134, 28125, 28121, 28182, 28075, 28172, 28078, 28203, 28270, 28238, 28267, 28338, 28255, 28294, 28243, 28244, 28210, 28197, 28228, 28383, 28337, 28312, 28384, 28461, 28386, 28325, 28327, 28349, 28347, 28343, 28375, 28340, 28367, 28303, 28354, 28319, 28514, 28486, 28487, 28452, 28437, 28409, 28463, 28470, 28491, 28532, 28458, 28425, 28457, 28553, 28557, 28556, 28536, 28530, 28540, 28538, 28625, 37642, 37643, 37644, 37645, 37646, 37647, 37648, 37649, 37650, 37651, 37652, 37653, 37654, 37655, 37656, 37657, 37658, 37659, 37660, 37661, 37662, 37663, 37664, 37665, 37666, 37667, 37668, 37669, 37670, 37671, 37672, 37673, 37674, 37675, 37676, 37677, 37678, 37679, 37680, 37681, 37682, 37683, 37684, 37685, 37686, 37687, 37688, 37689, 37690, 37691, 37692, 37693, 37695, 37696, 37697, 37698, 37699, 37700, 37701, 37702, 37703, 37704, 37705, 37706, 37707, 37708, 37709, 37710, 37711, 37712, 37713, 37714, 37715, 37716, 37717, 37718, 37719, 37720, 37721, 37722, 37723, 37724, 37725, 37726, 37727, 37728, 37729, 37730, 37731, 37732, 37733, 37734, 37735, 37736, 37737, 37739, 28617, 28583, 28601, 28598, 28610, 28641, 28654, 28638, 28640, 28655, 28698, 28707, 28699, 28729, 28725, 28751, 28766, 23424, 23428, 23445, 23443, 23461, 23480, 29999, 39582, 25652, 23524, 23534, 35120, 23536, 36423, 35591, 36790, 36819, 36821, 36837, 36846, 36836, 36841, 36838, 36851, 36840, 36869, 36868, 36875, 36902, 36881, 36877, 36886, 36897, 36917, 36918, 36909, 36911, 36932, 36945, 36946, 36944, 36968, 36952, 36962, 36955, 26297, 36980, 36989, 36994, 37000, 36995, 37003, 24400, 24407, 24406, 24408, 23611, 21675, 23632, 23641, 23409, 23651, 23654, 32700, 24362, 24361, 24365, 33396, 24380, 39739, 23662, 22913, 22915, 22925, 22953, 22954, 22947, 37740, 37741, 37742, 37743, 37744, 37745, 37746, 37747, 37748, 37749, 37750, 37751, 37752, 37753, 37754, 37755, 37756, 37757, 37758, 37759, 37760, 37761, 37762, 37763, 37764, 37765, 37766, 37767, 37768, 37769, 37770, 37771, 37772, 37773, 37774, 37776, 37777, 37778, 37779, 37780, 37781, 37782, 37783, 37784, 37785, 37786, 37787, 37788, 37789, 37790, 37791, 37792, 37793, 37794, 37795, 37796, 37797, 37798, 37799, 37800, 37801, 37802, 37803, 37804, 37805, 37806, 37807, 37808, 37809, 37810, 37811, 37812, 37813, 37814, 37815, 37816, 37817, 37818, 37819, 37820, 37821, 37822, 37823, 37824, 37825, 37826, 37827, 37828, 37829, 37830, 37831, 37832, 37833, 37835, 37836, 37837, 22935, 22986, 22955, 22942, 22948, 22994, 22962, 22959, 22999, 22974, 23045, 23046, 23005, 23048, 23011, 23000, 23033, 23052, 23049, 23090, 23092, 23057, 23075, 23059, 23104, 23143, 23114, 23125, 23100, 23138, 23157, 33004, 23210, 23195, 23159, 23162, 23230, 23275, 23218, 23250, 23252, 23224, 23264, 23267, 23281, 23254, 23270, 23256, 23260, 23305, 23319, 23318, 23346, 23351, 23360, 23573, 23580, 23386, 23397, 23411, 23377, 23379, 23394, 39541, 39543, 39544, 39546, 39551, 39549, 39552, 39553, 39557, 39560, 39562, 39568, 39570, 39571, 39574, 39576, 39579, 39580, 39581, 39583, 39584, 39586, 39587, 39589, 39591, 32415, 32417, 32419, 32421, 32424, 32425, 37838, 37839, 37840, 37841, 37842, 37843, 37844, 37845, 37847, 37848, 37849, 37850, 37851, 37852, 37853, 37854, 37855, 37856, 37857, 37858, 37859, 37860, 37861, 37862, 37863, 37864, 37865, 37866, 37867, 37868, 37869, 37870, 37871, 37872, 37873, 37874, 37875, 37876, 37877, 37878, 37879, 37880, 37881, 37882, 37883, 37884, 37885, 37886, 37887, 37888, 37889, 37890, 37891, 37892, 37893, 37894, 37895, 37896, 37897, 37898, 37899, 37900, 37901, 37902, 37903, 37904, 37905, 37906, 37907, 37908, 37909, 37910, 37911, 37912, 37913, 37914, 37915, 37916, 37917, 37918, 37919, 37920, 37921, 37922, 37923, 37924, 37925, 37926, 37927, 37928, 37929, 37930, 37931, 37932, 37933, 37934, 32429, 32432, 32446, 32448, 32449, 32450, 32457, 32459, 32460, 32464, 32468, 32471, 32475, 32480, 32481, 32488, 32491, 32494, 32495, 32497, 32498, 32525, 32502, 32506, 32507, 32510, 32513, 32514, 32515, 32519, 32520, 32523, 32524, 32527, 32529, 32530, 32535, 32537, 32540, 32539, 32543, 32545, 32546, 32547, 32548, 32549, 32550, 32551, 32554, 32555, 32556, 32557, 32559, 32560, 32561, 32562, 32563, 32565, 24186, 30079, 24027, 30014, 37013, 29582, 29585, 29614, 29602, 29599, 29647, 29634, 29649, 29623, 29619, 29632, 29641, 29640, 29669, 29657, 39036, 29706, 29673, 29671, 29662, 29626, 29682, 29711, 29738, 29787, 29734, 29733, 29736, 29744, 29742, 29740, 37935, 37936, 37937, 37938, 37939, 37940, 37941, 37942, 37943, 37944, 37945, 37946, 37947, 37948, 37949, 37951, 37952, 37953, 37954, 37955, 37956, 37957, 37958, 37959, 37960, 37961, 37962, 37963, 37964, 37965, 37966, 37967, 37968, 37969, 37970, 37971, 37972, 37973, 37974, 37975, 37976, 37977, 37978, 37979, 37980, 37981, 37982, 37983, 37984, 37985, 37986, 37987, 37988, 37989, 37990, 37991, 37992, 37993, 37994, 37996, 37997, 37998, 37999, 38000, 38001, 38002, 38003, 38004, 38005, 38006, 38007, 38008, 38009, 38010, 38011, 38012, 38013, 38014, 38015, 38016, 38017, 38018, 38019, 38020, 38033, 38038, 38040, 38087, 38095, 38099, 38100, 38106, 38118, 38139, 38172, 38176, 29723, 29722, 29761, 29788, 29783, 29781, 29785, 29815, 29805, 29822, 29852, 29838, 29824, 29825, 29831, 29835, 29854, 29864, 29865, 29840, 29863, 29906, 29882, 38890, 38891, 38892, 26444, 26451, 26462, 26440, 26473, 26533, 26503, 26474, 26483, 26520, 26535, 26485, 26536, 26526, 26541, 26507, 26487, 26492, 26608, 26633, 26584, 26634, 26601, 26544, 26636, 26585, 26549, 26586, 26547, 26589, 26624, 26563, 26552, 26594, 26638, 26561, 26621, 26674, 26675, 26720, 26721, 26702, 26722, 26692, 26724, 26755, 26653, 26709, 26726, 26689, 26727, 26688, 26686, 26698, 26697, 26665, 26805, 26767, 26740, 26743, 26771, 26731, 26818, 26990, 26876, 26911, 26912, 26873, 38183, 38195, 38205, 38211, 38216, 38219, 38229, 38234, 38240, 38254, 38260, 38261, 38263, 38264, 38265, 38266, 38267, 38268, 38269, 38270, 38272, 38273, 38274, 38275, 38276, 38277, 38278, 38279, 38280, 38281, 38282, 38283, 38284, 38285, 38286, 38287, 38288, 38289, 38290, 38291, 38292, 38293, 38294, 38295, 38296, 38297, 38298, 38299, 38300, 38301, 38302, 38303, 38304, 38305, 38306, 38307, 38308, 38309, 38310, 38311, 38312, 38313, 38314, 38315, 38316, 38317, 38318, 38319, 38320, 38321, 38322, 38323, 38324, 38325, 38326, 38327, 38328, 38329, 38330, 38331, 38332, 38333, 38334, 38335, 38336, 38337, 38338, 38339, 38340, 38341, 38342, 38343, 38344, 38345, 38346, 38347, 26916, 26864, 26891, 26881, 26967, 26851, 26896, 26993, 26937, 26976, 26946, 26973, 27012, 26987, 27008, 27032, 27000, 26932, 27084, 27015, 27016, 27086, 27017, 26982, 26979, 27001, 27035, 27047, 27067, 27051, 27053, 27092, 27057, 27073, 27082, 27103, 27029, 27104, 27021, 27135, 27183, 27117, 27159, 27160, 27237, 27122, 27204, 27198, 27296, 27216, 27227, 27189, 27278, 27257, 27197, 27176, 27224, 27260, 27281, 27280, 27305, 27287, 27307, 29495, 29522, 27521, 27522, 27527, 27524, 27538, 27539, 27533, 27546, 27547, 27553, 27562, 36715, 36717, 36721, 36722, 36723, 36725, 36726, 36728, 36727, 36729, 36730, 36732, 36734, 36737, 36738, 36740, 36743, 36747, 38348, 38349, 38350, 38351, 38352, 38353, 38354, 38355, 38356, 38357, 38358, 38359, 38360, 38361, 38362, 38363, 38364, 38365, 38366, 38367, 38368, 38369, 38370, 38371, 38372, 38373, 38374, 38375, 38380, 38399, 38407, 38419, 38424, 38427, 38430, 38432, 38435, 38436, 38437, 38438, 38439, 38440, 38441, 38443, 38444, 38445, 38447, 38448, 38455, 38456, 38457, 38458, 38462, 38465, 38467, 38474, 38478, 38479, 38481, 38482, 38483, 38486, 38487, 38488, 38489, 38490, 38492, 38493, 38494, 38496, 38499, 38501, 38502, 38507, 38509, 38510, 38511, 38512, 38513, 38515, 38520, 38521, 38522, 38523, 38524, 38525, 38526, 38527, 38528, 38529, 38530, 38531, 38532, 38535, 38537, 38538, 36749, 36750, 36751, 36760, 36762, 36558, 25099, 25111, 25115, 25119, 25122, 25121, 25125, 25124, 25132, 33255, 29935, 29940, 29951, 29967, 29969, 29971, 25908, 26094, 26095, 26096, 26122, 26137, 26482, 26115, 26133, 26112, 28805, 26359, 26141, 26164, 26161, 26166, 26165, 32774, 26207, 26196, 26177, 26191, 26198, 26209, 26199, 26231, 26244, 26252, 26279, 26269, 26302, 26331, 26332, 26342, 26345, 36146, 36147, 36150, 36155, 36157, 36160, 36165, 36166, 36168, 36169, 36167, 36173, 36181, 36185, 35271, 35274, 35275, 35276, 35278, 35279, 35280, 35281, 29294, 29343, 29277, 29286, 29295, 29310, 29311, 29316, 29323, 29325, 29327, 29330, 25352, 25394, 25520, 38540, 38542, 38545, 38546, 38547, 38549, 38550, 38554, 38555, 38557, 38558, 38559, 38560, 38561, 38562, 38563, 38564, 38565, 38566, 38568, 38569, 38570, 38571, 38572, 38573, 38574, 38575, 38577, 38578, 38580, 38581, 38583, 38584, 38586, 38587, 38591, 38594, 38595, 38600, 38602, 38603, 38608, 38609, 38611, 38612, 38614, 38615, 38616, 38617, 38618, 38619, 38620, 38621, 38622, 38623, 38625, 38626, 38627, 38628, 38629, 38630, 38631, 38635, 38636, 38637, 38638, 38640, 38641, 38642, 38644, 38645, 38648, 38650, 38651, 38652, 38653, 38655, 38658, 38659, 38661, 38666, 38667, 38668, 38672, 38673, 38674, 38676, 38677, 38679, 38680, 38681, 38682, 38683, 38685, 38687, 38688, 25663, 25816, 32772, 27626, 27635, 27645, 27637, 27641, 27653, 27655, 27654, 27661, 27669, 27672, 27673, 27674, 27681, 27689, 27684, 27690, 27698, 25909, 25941, 25963, 29261, 29266, 29270, 29232, 34402, 21014, 32927, 32924, 32915, 32956, 26378, 32957, 32945, 32939, 32941, 32948, 32951, 32999, 33000, 33001, 33002, 32987, 32962, 32964, 32985, 32973, 32983, 26384, 32989, 33003, 33009, 33012, 33005, 33037, 33038, 33010, 33020, 26389, 33042, 35930, 33078, 33054, 33068, 33048, 33074, 33096, 33100, 33107, 33140, 33113, 33114, 33137, 33120, 33129, 33148, 33149, 33133, 33127, 22605, 23221, 33160, 33154, 33169, 28373, 33187, 33194, 33228, 26406, 33226, 33211, 38689, 38690, 38691, 38692, 38693, 38694, 38695, 38696, 38697, 38699, 38700, 38702, 38703, 38705, 38707, 38708, 38709, 38710, 38711, 38714, 38715, 38716, 38717, 38719, 38720, 38721, 38722, 38723, 38724, 38725, 38726, 38727, 38728, 38729, 38730, 38731, 38732, 38733, 38734, 38735, 38736, 38737, 38740, 38741, 38743, 38744, 38746, 38748, 38749, 38751, 38755, 38756, 38758, 38759, 38760, 38762, 38763, 38764, 38765, 38766, 38767, 38768, 38769, 38770, 38773, 38775, 38776, 38777, 38778, 38779, 38781, 38782, 38783, 38784, 38785, 38786, 38787, 38788, 38790, 38791, 38792, 38793, 38794, 38796, 38798, 38799, 38800, 38803, 38805, 38806, 38807, 38809, 38810, 38811, 38812, 38813, 33217, 33190, 27428, 27447, 27449, 27459, 27462, 27481, 39121, 39122, 39123, 39125, 39129, 39130, 27571, 24384, 27586, 35315, 26000, 40785, 26003, 26044, 26054, 26052, 26051, 26060, 26062, 26066, 26070, 28800, 28828, 28822, 28829, 28859, 28864, 28855, 28843, 28849, 28904, 28874, 28944, 28947, 28950, 28975, 28977, 29043, 29020, 29032, 28997, 29042, 29002, 29048, 29050, 29080, 29107, 29109, 29096, 29088, 29152, 29140, 29159, 29177, 29213, 29224, 28780, 28952, 29030, 29113, 25150, 25149, 25155, 25160, 25161, 31035, 31040, 31046, 31049, 31067, 31068, 31059, 31066, 31074, 31063, 31072, 31087, 31079, 31098, 31109, 31114, 31130, 31143, 31155, 24529, 24528, 38814, 38815, 38817, 38818, 38820, 38821, 38822, 38823, 38824, 38825, 38826, 38828, 38830, 38832, 38833, 38835, 38837, 38838, 38839, 38840, 38841, 38842, 38843, 38844, 38845, 38846, 38847, 38848, 38849, 38850, 38851, 38852, 38853, 38854, 38855, 38856, 38857, 38858, 38859, 38860, 38861, 38862, 38863, 38864, 38865, 38866, 38867, 38868, 38869, 38870, 38871, 38872, 38873, 38874, 38875, 38876, 38877, 38878, 38879, 38880, 38881, 38882, 38883, 38884, 38885, 38888, 38894, 38895, 38896, 38897, 38898, 38900, 38903, 38904, 38905, 38906, 38907, 38908, 38909, 38910, 38911, 38912, 38913, 38914, 38915, 38916, 38917, 38918, 38919, 38920, 38921, 38922, 38923, 38924, 38925, 38926, 24636, 24669, 24666, 24679, 24641, 24665, 24675, 24747, 24838, 24845, 24925, 25001, 24989, 25035, 25041, 25094, 32896, 32895, 27795, 27894, 28156, 30710, 30712, 30720, 30729, 30743, 30744, 30737, 26027, 30765, 30748, 30749, 30777, 30778, 30779, 30751, 30780, 30757, 30764, 30755, 30761, 30798, 30829, 30806, 30807, 30758, 30800, 30791, 30796, 30826, 30875, 30867, 30874, 30855, 30876, 30881, 30883, 30898, 30905, 30885, 30932, 30937, 30921, 30956, 30962, 30981, 30964, 30995, 31012, 31006, 31028, 40859, 40697, 40699, 40700, 30449, 30468, 30477, 30457, 30471, 30472, 30490, 30498, 30489, 30509, 30502, 30517, 30520, 30544, 30545, 30535, 30531, 30554, 30568, 38927, 38928, 38929, 38930, 38931, 38932, 38933, 38934, 38935, 38936, 38937, 38938, 38939, 38940, 38941, 38942, 38943, 38944, 38945, 38946, 38947, 38948, 38949, 38950, 38951, 38952, 38953, 38954, 38955, 38956, 38957, 38958, 38959, 38960, 38961, 38962, 38963, 38964, 38965, 38966, 38967, 38968, 38969, 38970, 38971, 38972, 38973, 38974, 38975, 38976, 38977, 38978, 38979, 38980, 38981, 38982, 38983, 38984, 38985, 38986, 38987, 38988, 38989, 38990, 38991, 38992, 38993, 38994, 38995, 38996, 38997, 38998, 38999, 39000, 39001, 39002, 39003, 39004, 39005, 39006, 39007, 39008, 39009, 39010, 39011, 39012, 39013, 39014, 39015, 39016, 39017, 39018, 39019, 39020, 39021, 39022, 30562, 30565, 30591, 30605, 30589, 30592, 30604, 30609, 30623, 30624, 30640, 30645, 30653, 30010, 30016, 30030, 30027, 30024, 30043, 30066, 30073, 30083, 32600, 32609, 32607, 35400, 32616, 32628, 32625, 32633, 32641, 32638, 30413, 30437, 34866, 38021, 38022, 38023, 38027, 38026, 38028, 38029, 38031, 38032, 38036, 38039, 38037, 38042, 38043, 38044, 38051, 38052, 38059, 38058, 38061, 38060, 38063, 38064, 38066, 38068, 38070, 38071, 38072, 38073, 38074, 38076, 38077, 38079, 38084, 38088, 38089, 38090, 38091, 38092, 38093, 38094, 38096, 38097, 38098, 38101, 38102, 38103, 38105, 38104, 38107, 38110, 38111, 38112, 38114, 38116, 38117, 38119, 38120, 38122, 39023, 39024, 39025, 39026, 39027, 39028, 39051, 39054, 39058, 39061, 39065, 39075, 39080, 39081, 39082, 39083, 39084, 39085, 39086, 39087, 39088, 39089, 39090, 39091, 39092, 39093, 39094, 39095, 39096, 39097, 39098, 39099, 39100, 39101, 39102, 39103, 39104, 39105, 39106, 39107, 39108, 39109, 39110, 39111, 39112, 39113, 39114, 39115, 39116, 39117, 39119, 39120, 39124, 39126, 39127, 39131, 39132, 39133, 39136, 39137, 39138, 39139, 39140, 39141, 39142, 39145, 39146, 39147, 39148, 39149, 39150, 39151, 39152, 39153, 39154, 39155, 39156, 39157, 39158, 39159, 39160, 39161, 39162, 39163, 39164, 39165, 39166, 39167, 39168, 39169, 39170, 39171, 39172, 39173, 39174, 39175, 38121, 38123, 38126, 38127, 38131, 38132, 38133, 38135, 38137, 38140, 38141, 38143, 38147, 38146, 38150, 38151, 38153, 38154, 38157, 38158, 38159, 38162, 38163, 38164, 38165, 38166, 38168, 38171, 38173, 38174, 38175, 38178, 38186, 38187, 38185, 38188, 38193, 38194, 38196, 38198, 38199, 38200, 38204, 38206, 38207, 38210, 38197, 38212, 38213, 38214, 38217, 38220, 38222, 38223, 38226, 38227, 38228, 38230, 38231, 38232, 38233, 38235, 38238, 38239, 38237, 38241, 38242, 38244, 38245, 38246, 38247, 38248, 38249, 38250, 38251, 38252, 38255, 38257, 38258, 38259, 38202, 30695, 30700, 38601, 31189, 31213, 31203, 31211, 31238, 23879, 31235, 31234, 31262, 31252, 39176, 39177, 39178, 39179, 39180, 39182, 39183, 39185, 39186, 39187, 39188, 39189, 39190, 39191, 39192, 39193, 39194, 39195, 39196, 39197, 39198, 39199, 39200, 39201, 39202, 39203, 39204, 39205, 39206, 39207, 39208, 39209, 39210, 39211, 39212, 39213, 39215, 39216, 39217, 39218, 39219, 39220, 39221, 39222, 39223, 39224, 39225, 39226, 39227, 39228, 39229, 39230, 39231, 39232, 39233, 39234, 39235, 39236, 39237, 39238, 39239, 39240, 39241, 39242, 39243, 39244, 39245, 39246, 39247, 39248, 39249, 39250, 39251, 39254, 39255, 39256, 39257, 39258, 39259, 39260, 39261, 39262, 39263, 39264, 39265, 39266, 39268, 39270, 39283, 39288, 39289, 39291, 39294, 39298, 39299, 39305, 31289, 31287, 31313, 40655, 39333, 31344, 30344, 30350, 30355, 30361, 30372, 29918, 29920, 29996, 40480, 40482, 40488, 40489, 40490, 40491, 40492, 40498, 40497, 40502, 40504, 40503, 40505, 40506, 40510, 40513, 40514, 40516, 40518, 40519, 40520, 40521, 40523, 40524, 40526, 40529, 40533, 40535, 40538, 40539, 40540, 40542, 40547, 40550, 40551, 40552, 40553, 40554, 40555, 40556, 40561, 40557, 40563, 30098, 30100, 30102, 30112, 30109, 30124, 30115, 30131, 30132, 30136, 30148, 30129, 30128, 30147, 30146, 30166, 30157, 30179, 30184, 30182, 30180, 30187, 30183, 30211, 30193, 30204, 30207, 30224, 30208, 30213, 30220, 30231, 30218, 30245, 30232, 30229, 30233, 39308, 39310, 39322, 39323, 39324, 39325, 39326, 39327, 39328, 39329, 39330, 39331, 39332, 39334, 39335, 39337, 39338, 39339, 39340, 39341, 39342, 39343, 39344, 39345, 39346, 39347, 39348, 39349, 39350, 39351, 39352, 39353, 39354, 39355, 39356, 39357, 39358, 39359, 39360, 39361, 39362, 39363, 39364, 39365, 39366, 39367, 39368, 39369, 39370, 39371, 39372, 39373, 39374, 39375, 39376, 39377, 39378, 39379, 39380, 39381, 39382, 39383, 39384, 39385, 39386, 39387, 39388, 39389, 39390, 39391, 39392, 39393, 39394, 39395, 39396, 39397, 39398, 39399, 39400, 39401, 39402, 39403, 39404, 39405, 39406, 39407, 39408, 39409, 39410, 39411, 39412, 39413, 39414, 39415, 39416, 39417, 30235, 30268, 30242, 30240, 30272, 30253, 30256, 30271, 30261, 30275, 30270, 30259, 30285, 30302, 30292, 30300, 30294, 30315, 30319, 32714, 31462, 31352, 31353, 31360, 31366, 31368, 31381, 31398, 31392, 31404, 31400, 31405, 31411, 34916, 34921, 34930, 34941, 34943, 34946, 34978, 35014, 34999, 35004, 35017, 35042, 35022, 35043, 35045, 35057, 35098, 35068, 35048, 35070, 35056, 35105, 35097, 35091, 35099, 35082, 35124, 35115, 35126, 35137, 35174, 35195, 30091, 32997, 30386, 30388, 30684, 32786, 32788, 32790, 32796, 32800, 32802, 32805, 32806, 32807, 32809, 32808, 32817, 32779, 32821, 32835, 32838, 32845, 32850, 32873, 32881, 35203, 39032, 39040, 39043, 39418, 39419, 39420, 39421, 39422, 39423, 39424, 39425, 39426, 39427, 39428, 39429, 39430, 39431, 39432, 39433, 39434, 39435, 39436, 39437, 39438, 39439, 39440, 39441, 39442, 39443, 39444, 39445, 39446, 39447, 39448, 39449, 39450, 39451, 39452, 39453, 39454, 39455, 39456, 39457, 39458, 39459, 39460, 39461, 39462, 39463, 39464, 39465, 39466, 39467, 39468, 39469, 39470, 39471, 39472, 39473, 39474, 39475, 39476, 39477, 39478, 39479, 39480, 39481, 39482, 39483, 39484, 39485, 39486, 39487, 39488, 39489, 39490, 39491, 39492, 39493, 39494, 39495, 39496, 39497, 39498, 39499, 39500, 39501, 39502, 39503, 39504, 39505, 39506, 39507, 39508, 39509, 39510, 39511, 39512, 39513, 39049, 39052, 39053, 39055, 39060, 39066, 39067, 39070, 39071, 39073, 39074, 39077, 39078, 34381, 34388, 34412, 34414, 34431, 34426, 34428, 34427, 34472, 34445, 34443, 34476, 34461, 34471, 34467, 34474, 34451, 34473, 34486, 34500, 34485, 34510, 34480, 34490, 34481, 34479, 34505, 34511, 34484, 34537, 34545, 34546, 34541, 34547, 34512, 34579, 34526, 34548, 34527, 34520, 34513, 34563, 34567, 34552, 34568, 34570, 34573, 34569, 34595, 34619, 34590, 34597, 34606, 34586, 34622, 34632, 34612, 34609, 34601, 34615, 34623, 34690, 34594, 34685, 34686, 34683, 34656, 34672, 34636, 34670, 34699, 34643, 34659, 34684, 34660, 34649, 34661, 34707, 34735, 34728, 34770, 39514, 39515, 39516, 39517, 39518, 39519, 39520, 39521, 39522, 39523, 39524, 39525, 39526, 39527, 39528, 39529, 39530, 39531, 39538, 39555, 39561, 39565, 39566, 39572, 39573, 39577, 39590, 39593, 39594, 39595, 39596, 39597, 39598, 39599, 39602, 39603, 39604, 39605, 39609, 39611, 39613, 39614, 39615, 39619, 39620, 39622, 39623, 39624, 39625, 39626, 39629, 39630, 39631, 39632, 39634, 39636, 39637, 39638, 39639, 39641, 39642, 39643, 39644, 39645, 39646, 39648, 39650, 39651, 39652, 39653, 39655, 39656, 39657, 39658, 39660, 39662, 39664, 39665, 39666, 39667, 39668, 39669, 39670, 39671, 39672, 39674, 39676, 39677, 39678, 39679, 39680, 39681, 39682, 39684, 39685, 39686, 34758, 34696, 34693, 34733, 34711, 34691, 34731, 34789, 34732, 34741, 34739, 34763, 34771, 34749, 34769, 34752, 34762, 34779, 34794, 34784, 34798, 34838, 34835, 34814, 34826, 34843, 34849, 34873, 34876, 32566, 32578, 32580, 32581, 33296, 31482, 31485, 31496, 31491, 31492, 31509, 31498, 31531, 31503, 31559, 31544, 31530, 31513, 31534, 31537, 31520, 31525, 31524, 31539, 31550, 31518, 31576, 31578, 31557, 31605, 31564, 31581, 31584, 31598, 31611, 31586, 31602, 31601, 31632, 31654, 31655, 31672, 31660, 31645, 31656, 31621, 31658, 31644, 31650, 31659, 31668, 31697, 31681, 31692, 31709, 31706, 31717, 31718, 31722, 31756, 31742, 31740, 31759, 31766, 31755, 39687, 39689, 39690, 39691, 39692, 39693, 39694, 39696, 39697, 39698, 39700, 39701, 39702, 39703, 39704, 39705, 39706, 39707, 39708, 39709, 39710, 39712, 39713, 39714, 39716, 39717, 39718, 39719, 39720, 39721, 39722, 39723, 39724, 39725, 39726, 39728, 39729, 39731, 39732, 39733, 39734, 39735, 39736, 39737, 39738, 39741, 39742, 39743, 39744, 39750, 39754, 39755, 39756, 39758, 39760, 39762, 39763, 39765, 39766, 39767, 39768, 39769, 39770, 39771, 39772, 39773, 39774, 39775, 39776, 39777, 39778, 39779, 39780, 39781, 39782, 39783, 39784, 39785, 39786, 39787, 39788, 39789, 39790, 39791, 39792, 39793, 39794, 39795, 39796, 39797, 39798, 39799, 39800, 39801, 39802, 39803, 31775, 31786, 31782, 31800, 31809, 31808, 33278, 33281, 33282, 33284, 33260, 34884, 33313, 33314, 33315, 33325, 33327, 33320, 33323, 33336, 33339, 33331, 33332, 33342, 33348, 33353, 33355, 33359, 33370, 33375, 33384, 34942, 34949, 34952, 35032, 35039, 35166, 32669, 32671, 32679, 32687, 32688, 32690, 31868, 25929, 31889, 31901, 31900, 31902, 31906, 31922, 31932, 31933, 31937, 31943, 31948, 31949, 31944, 31941, 31959, 31976, 33390, 26280, 32703, 32718, 32725, 32741, 32737, 32742, 32745, 32750, 32755, 31992, 32119, 32166, 32174, 32327, 32411, 40632, 40628, 36211, 36228, 36244, 36241, 36273, 36199, 36205, 35911, 35913, 37194, 37200, 37198, 37199, 37220, 39804, 39805, 39806, 39807, 39808, 39809, 39810, 39811, 39812, 39813, 39814, 39815, 39816, 39817, 39818, 39819, 39820, 39821, 39822, 39823, 39824, 39825, 39826, 39827, 39828, 39829, 39830, 39831, 39832, 39833, 39834, 39835, 39836, 39837, 39838, 39839, 39840, 39841, 39842, 39843, 39844, 39845, 39846, 39847, 39848, 39849, 39850, 39851, 39852, 39853, 39854, 39855, 39856, 39857, 39858, 39859, 39860, 39861, 39862, 39863, 39864, 39865, 39866, 39867, 39868, 39869, 39870, 39871, 39872, 39873, 39874, 39875, 39876, 39877, 39878, 39879, 39880, 39881, 39882, 39883, 39884, 39885, 39886, 39887, 39888, 39889, 39890, 39891, 39892, 39893, 39894, 39895, 39896, 39897, 39898, 39899, 37218, 37217, 37232, 37225, 37231, 37245, 37246, 37234, 37236, 37241, 37260, 37253, 37264, 37261, 37265, 37282, 37283, 37290, 37293, 37294, 37295, 37301, 37300, 37306, 35925, 40574, 36280, 36331, 36357, 36441, 36457, 36277, 36287, 36284, 36282, 36292, 36310, 36311, 36314, 36318, 36302, 36303, 36315, 36294, 36332, 36343, 36344, 36323, 36345, 36347, 36324, 36361, 36349, 36372, 36381, 36383, 36396, 36398, 36387, 36399, 36410, 36416, 36409, 36405, 36413, 36401, 36425, 36417, 36418, 36433, 36434, 36426, 36464, 36470, 36476, 36463, 36468, 36485, 36495, 36500, 36496, 36508, 36510, 35960, 35970, 35978, 35973, 35992, 35988, 26011, 35286, 35294, 35290, 35292, 39900, 39901, 39902, 39903, 39904, 39905, 39906, 39907, 39908, 39909, 39910, 39911, 39912, 39913, 39914, 39915, 39916, 39917, 39918, 39919, 39920, 39921, 39922, 39923, 39924, 39925, 39926, 39927, 39928, 39929, 39930, 39931, 39932, 39933, 39934, 39935, 39936, 39937, 39938, 39939, 39940, 39941, 39942, 39943, 39944, 39945, 39946, 39947, 39948, 39949, 39950, 39951, 39952, 39953, 39954, 39955, 39956, 39957, 39958, 39959, 39960, 39961, 39962, 39963, 39964, 39965, 39966, 39967, 39968, 39969, 39970, 39971, 39972, 39973, 39974, 39975, 39976, 39977, 39978, 39979, 39980, 39981, 39982, 39983, 39984, 39985, 39986, 39987, 39988, 39989, 39990, 39991, 39992, 39993, 39994, 39995, 35301, 35307, 35311, 35390, 35622, 38739, 38633, 38643, 38639, 38662, 38657, 38664, 38671, 38670, 38698, 38701, 38704, 38718, 40832, 40835, 40837, 40838, 40839, 40840, 40841, 40842, 40844, 40702, 40715, 40717, 38585, 38588, 38589, 38606, 38610, 30655, 38624, 37518, 37550, 37576, 37694, 37738, 37834, 37775, 37950, 37995, 40063, 40066, 40069, 40070, 40071, 40072, 31267, 40075, 40078, 40080, 40081, 40082, 40084, 40085, 40090, 40091, 40094, 40095, 40096, 40097, 40098, 40099, 40101, 40102, 40103, 40104, 40105, 40107, 40109, 40110, 40112, 40113, 40114, 40115, 40116, 40117, 40118, 40119, 40122, 40123, 40124, 40125, 40132, 40133, 40134, 40135, 40138, 40139, 39996, 39997, 39998, 39999, 40000, 40001, 40002, 40003, 40004, 40005, 40006, 40007, 40008, 40009, 40010, 40011, 40012, 40013, 40014, 40015, 40016, 40017, 40018, 40019, 40020, 40021, 40022, 40023, 40024, 40025, 40026, 40027, 40028, 40029, 40030, 40031, 40032, 40033, 40034, 40035, 40036, 40037, 40038, 40039, 40040, 40041, 40042, 40043, 40044, 40045, 40046, 40047, 40048, 40049, 40050, 40051, 40052, 40053, 40054, 40055, 40056, 40057, 40058, 40059, 40061, 40062, 40064, 40067, 40068, 40073, 40074, 40076, 40079, 40083, 40086, 40087, 40088, 40089, 40093, 40106, 40108, 40111, 40121, 40126, 40127, 40128, 40129, 40130, 40136, 40137, 40145, 40146, 40154, 40155, 40160, 40161, 40140, 40141, 40142, 40143, 40144, 40147, 40148, 40149, 40151, 40152, 40153, 40156, 40157, 40159, 40162, 38780, 38789, 38801, 38802, 38804, 38831, 38827, 38819, 38834, 38836, 39601, 39600, 39607, 40536, 39606, 39610, 39612, 39617, 39616, 39621, 39618, 39627, 39628, 39633, 39749, 39747, 39751, 39753, 39752, 39757, 39761, 39144, 39181, 39214, 39253, 39252, 39647, 39649, 39654, 39663, 39659, 39675, 39661, 39673, 39688, 39695, 39699, 39711, 39715, 40637, 40638, 32315, 40578, 40583, 40584, 40587, 40594, 37846, 40605, 40607, 40667, 40668, 40669, 40672, 40671, 40674, 40681, 40679, 40677, 40682, 40687, 40738, 40748, 40751, 40761, 40759, 40765, 40766, 40772, 40163, 40164, 40165, 40166, 40167, 40168, 40169, 40170, 40171, 40172, 40173, 40174, 40175, 40176, 40177, 40178, 40179, 40180, 40181, 40182, 40183, 40184, 40185, 40186, 40187, 40188, 40189, 40190, 40191, 40192, 40193, 40194, 40195, 40196, 40197, 40198, 40199, 40200, 40201, 40202, 40203, 40204, 40205, 40206, 40207, 40208, 40209, 40210, 40211, 40212, 40213, 40214, 40215, 40216, 40217, 40218, 40219, 40220, 40221, 40222, 40223, 40224, 40225, 40226, 40227, 40228, 40229, 40230, 40231, 40232, 40233, 40234, 40235, 40236, 40237, 40238, 40239, 40240, 40241, 40242, 40243, 40244, 40245, 40246, 40247, 40248, 40249, 40250, 40251, 40252, 40253, 40254, 40255, 40256, 40257, 40258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40451, 40452, 40453, 40454, 40455, 40456, 40457, 40458, 40459, 40460, 40461, 40462, 40463, 40464, 40465, 40466, 40467, 40468, 40469, 40470, 40471, 40472, 40473, 40474, 40475, 40476, 40477, 40478, 40484, 40487, 40494, 40496, 40500, 40507, 40508, 40512, 40525, 40528, 40530, 40531, 40532, 40534, 40537, 40541, 40543, 40544, 40545, 40546, 40549, 40558, 40559, 40562, 40564, 40565, 40566, 40567, 40568, 40569, 40570, 40571, 40572, 40573, 40576, 40577, 40579, 40580, 40581, 40582, 40585, 40586, 40588, 40589, 40590, 40591, 40592, 40593, 40596, 40597, 40598, 40599, 40600, 40601, 40602, 40603, 40604, 40606, 40608, 40609, 40610, 40611, 40612, 40613, 40615, 40616, 40617, 40618, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40619, 40620, 40621, 40622, 40623, 40624, 40625, 40626, 40627, 40629, 40630, 40631, 40633, 40634, 40636, 40639, 40640, 40641, 40642, 40643, 40645, 40646, 40647, 40648, 40650, 40651, 40652, 40656, 40658, 40659, 40661, 40662, 40663, 40665, 40666, 40670, 40673, 40675, 40676, 40678, 40680, 40683, 40684, 40685, 40686, 40688, 40689, 40690, 40691, 40692, 40693, 40694, 40695, 40696, 40698, 40701, 40703, 40704, 40705, 40706, 40707, 40708, 40709, 40710, 40711, 40712, 40713, 40714, 40716, 40719, 40721, 40722, 40724, 40725, 40726, 40728, 40730, 40731, 40732, 40733, 40734, 40735, 40737, 40739, 40740, 40741, 40742, 40743, 40744, 40745, 40746, 40747, 40749, 40750, 40752, 40753, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40754, 40755, 40756, 40757, 40758, 40760, 40762, 40764, 40767, 40768, 40769, 40770, 40771, 40773, 40774, 40775, 40776, 40777, 40778, 40779, 40780, 40781, 40782, 40783, 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, 40833, 40834, 40845, 40846, 40847, 40848, 40849, 40850, 40851, 40852, 40853, 40854, 40855, 40856, 40860, 40861, 40862, 40865, 40866, 40867, 40868, 40869, 63788, 63865, 63893, 63975, 63985, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64012, 64013, 64014, 64015, 64017, 64019, 64020, 64024, 64031, 64032, 64033, 64035, 64036, 64039, 64040, 64041, 11905, 0, 0, 0, 11908, 13427, 13383, 11912, 11915, 0, 13726, 13850, 13838, 11916, 11927, 14702, 14616, 0, 14799, 14815, 14963, 14800, 0, 0, 15182, 15470, 15584, 11943, 0, 0, 11946, 16470, 16735, 11950, 17207, 11955, 11958, 11959, 0, 17329, 17324, 11963, 17373, 17622, 18017, 17996, 0, 18211, 18217, 18300, 18317, 11978, 18759, 18810, 18813, 18818, 18819, 18821, 18822, 18847, 18843, 18871, 18870, 0, 0, 19619, 19615, 19616, 19617, 19575, 19618, 19731, 19732, 19733, 19734, 19735, 19736, 19737, 19886]); + encode0 = $toNativeArray($kindUint16, [65104, 0, 0, 65108, 0, 0, 0, 65111, 0, 0, 65112, 65117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65131, 0, 0, 65134, 0, 0, 0, 65137, 0, 0, 0, 0, 65139, 0, 0, 65140, 65141, 0, 0, 0, 65145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43402, 43403, 43404, 43405, 43406, 43407, 43408, 43409, 43410, 43411, 43412, 43413, 0, 0, 0, 0, 41377, 41378, 41379, 41384, 0, 41385, 43365, 43414, 41396, 41397, 41398, 41399, 41400, 41401, 41402, 41403, 41406, 41407, 43155, 41470, 41394, 41395, 41404, 41405, 0, 0, 0, 0, 0, 43156, 43157, 0, 0, 43328, 43329, 43330, 43331, 43332, 43333, 43334, 43335, 43336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43401, 0, 0, 42145, 42146, 42147, 42148, 42149, 42150, 42151, 42152, 42153, 42154, 42155, 42156, 42157, 42158, 42159, 42160, 42161, 42162, 42163, 42164, 42165, 42166, 42167, 42168, 42169, 42170, 42171, 42172, 42173, 42174, 42175, 42176, 42177, 42178, 42179, 42180, 42181, 42182, 42183, 42184, 42185, 42186, 42187, 42188, 42189, 42190, 42191, 42192, 42193, 42194, 42195, 42196, 42197, 42198, 42199, 42200, 42201, 42202, 42203, 42204, 42205, 42206, 42207, 42208, 42209, 42210, 42211, 42212, 42213, 42214, 42215, 42216, 42217, 42218, 42219, 42220, 42221, 42222, 42223, 42224, 42225, 42226, 42227, 0, 0, 0, 0, 0, 0, 0, 43361, 43362, 43366, 43367, 0, 0, 42401, 42402, 42403, 42404, 42405, 42406, 42407, 42408, 42409, 42410, 42411, 42412, 42413, 42414, 42415, 42416, 42417, 42418, 42419, 42420, 42421, 42422, 42423, 42424, 42425, 42426, 42427, 42428, 42429, 42430, 42431, 42432, 42433, 42434, 42435, 42436, 42437, 42438, 42439, 42440, 42441, 42442, 42443, 42444, 42445, 42446, 42447, 42448, 42449, 42450, 42451, 42452, 42453, 42454, 42455, 42456, 42457, 42458, 42459, 42460, 42461, 42462, 42463, 42464, 42465, 42466, 42467, 42468, 42469, 42470, 42471, 42472, 42473, 42474, 42475, 42476, 42477, 42478, 42479, 42480, 42481, 42482, 42483, 42484, 42485, 42486, 0, 0, 0, 0, 0, 43360, 43363, 43364, 0, 0, 0, 0, 0, 0, 43205, 43206, 43207, 43208, 43209, 43210, 43211, 43212, 43213, 43214, 43215, 43216, 43217, 43218, 43219, 43220, 43221, 43222, 43223, 43224, 43225, 43226, 43227, 43228, 43229, 43230, 43231, 43232, 43233, 43234, 43235, 43236, 43237, 43238, 43239, 43240, 43241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41701, 41702, 41703, 41704, 41705, 41706, 41707, 41708, 41709, 41710, 0, 0, 0, 0, 0, 0, 0, 43354, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43337, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43338, 43339, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43340, 43341, 43342, 0, 0, 43343, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43344, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43345, 0, 0, 43346, 43347, 0, 0, 43348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65122, 65125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65144, 0, 0, 0, 0, 65143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65152, 0, 0, 0, 0, 0, 65153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65158, 0, 0, 65159, 0, 0, 0, 0, 65160, 65161, 0, 65162, 65163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65165, 0, 0, 0, 65164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65167, 65166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65171, 65172, 65173, 65175, 65170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65176, 65177, 65178, 65179, 65180, 65181, 65182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53947, 46753, 33088, 50911, 33089, 33090, 33091, 52722, 54729, 51453, 51663, 53186, 55458, 45755, 54251, 33092, 55460, 46067, 33093, 55208, 51154, 55463, 51904, 33094, 51184, 45563, 53941, 46292, 46763, 52159, 55465, 33095, 33096, 33097, 46762, 33098, 49597, 53711, 33099, 51621, 55469, 33100, 47350, 53694, 58332, 54992, 33101, 33102, 47073, 33103, 46254, 33104, 49625, 33105, 55484, 33106, 52712, 46500, 52906, 55031, 33107, 49398, 48857, 55471, 33108, 33109, 33110, 50379, 33111, 48835, 33112, 55473, 50100, 53989, 33113, 54958, 52954, 54695, 47861, 47014, 49366, 33114, 50873, 50642, 51143, 33115, 47572, 33116, 46027, 53970, 33117, 33118, 55487, 48837, 50930, 53938, 53168, 53223, 33119, 33120, 33121, 33122, 51945, 33123, 33124, 55488, 33125, 33126, 33127, 33128, 33129, 33130, 49906, 49874, 33131, 51433, 33132, 33133, 33134, 33135, 33136, 33137, 33138, 33139, 33140, 33141, 51116, 33142, 33143, 33144, 33145, 33146, 33147, 33148, 49611, 33149, 54248, 54777, 33150, 51906, 46846, 55457, 54234, 49143, 33152, 54470, 48037, 55489, 52965, 48814, 33153, 33154, 55464, 33155, 53703, 53417, 33156, 33157, 33158, 55485, 55791, 52726, 49082, 33159, 48571, 47781, 53984, 45818, 47840, 50358, 33160, 53229, 48809, 52644, 49601, 33161, 33162, 33163, 51159, 55793, 33164, 55796, 33165, 33166, 33167, 33168, 51403, 55529, 33169, 33170, 33171, 53978, 51890, 51402, 55532, 55530, 55494, 48630, 50893, 46064, 33172, 55531, 48625, 48617, 33173, 51412, 46291, 33174, 33175, 49880, 33176, 45782, 55248, 51915, 52219, 54732, 47286, 53193, 33177, 33178, 33179, 55770, 55536, 51114, 33180, 55534, 33181, 46330, 49646, 53972, 33182, 33183, 55533, 33184, 53959, 55535, 50119, 33185, 33186, 33187, 53750, 33188, 55001, 55538, 33189, 55541, 48382, 48347, 33190, 33191, 33192, 51406, 33193, 47069, 33194, 47042, 33195, 50931, 33196, 33197, 33198, 33199, 33200, 33201, 33202, 55544, 53953, 33203, 33204, 52969, 48319, 47100, 47013, 53469, 33205, 33206, 33207, 33208, 33209, 55002, 54213, 48111, 48097, 55537, 33210, 33211, 51617, 52912, 46251, 33212, 55539, 33213, 51659, 55542, 49879, 55543, 33214, 33215, 52913, 55545, 33216, 33217, 33218, 45742, 47552, 33219, 55715, 33220, 45289, 33221, 49638, 33222, 51692, 33223, 52165, 33224, 52166, 55716, 33225, 33226, 33227, 33228, 33229, 46568, 33230, 33231, 46507, 33232, 33233, 33234, 33235, 33236, 33237, 52923, 46541, 55201, 55284, 54227, 33238, 52453, 33239, 47822, 33240, 55714, 55772, 54240, 55549, 47088, 55287, 55550, 55546, 55713, 50403, 33241, 33242, 54198, 55540, 55773, 33243, 55547, 33244, 50661, 33245, 33246, 49360, 33247, 33248, 53744, 45275, 33249, 33250, 48337, 55718, 33251, 55717, 33252, 33253, 33254, 33255, 55724, 55726, 33256, 55723, 51897, 33257, 33258, 33259, 55721, 54966, 33260, 33261, 33262, 46046, 55720, 33263, 49405, 33264, 51916, 33265, 55722, 33266, 55719, 33267, 33268, 55728, 33269, 33270, 46769, 33271, 33272, 33273, 47529, 33274, 53952, 33275, 33276, 53184, 33277, 33278, 49858, 33344, 48580, 54764, 45792, 51144, 49131, 55725, 33345, 55727, 33346, 52970, 47854, 33347, 33348, 33349, 33350, 33351, 51158, 33352, 33353, 33354, 33355, 33356, 33357, 33358, 33359, 33360, 45539, 33361, 33362, 33363, 46297, 46829, 55732, 33364, 33365, 33366, 33367, 49057, 33368, 33369, 33370, 55774, 51150, 49406, 55736, 33371, 33372, 33373, 33374, 33375, 52183, 47101, 33376, 55733, 33377, 55735, 45475, 54241, 55737, 33378, 53445, 33379, 55734, 33380, 33381, 55729, 33382, 55730, 49577, 55731, 33383, 33384, 48371, 53470, 47273, 33385, 48867, 33386, 55741, 33387, 33388, 33389, 33390, 55738, 33391, 45235, 33392, 33393, 33394, 55746, 33395, 33396, 33397, 33398, 33399, 33400, 33401, 33402, 33403, 33404, 33405, 33406, 33408, 55748, 45494, 33409, 55743, 33410, 33411, 46521, 33412, 48883, 33413, 33414, 33415, 52424, 47858, 53968, 33416, 55747, 33417, 33418, 48616, 33419, 45995, 33420, 33421, 33422, 55749, 48875, 33423, 55750, 55739, 50399, 33424, 55742, 55745, 55744, 33425, 33426, 33427, 33428, 33429, 33430, 33431, 33432, 33433, 33434, 33435, 54702, 33436, 54965, 33437, 51171, 33438, 33439, 33440, 33441, 55752, 33442, 33443, 33444, 48345, 55754, 33445, 33446, 33447, 55740, 33448, 55755, 50859, 33449, 33450, 33451, 33452, 33453, 55753, 33454, 33455, 33456, 33457, 55286, 33458, 52643, 33459, 33460, 33461, 33462, 33463, 33464, 33465, 33466, 48545, 33467, 33468, 33469, 33470, 33471, 33472, 55756, 33473, 33474, 33475, 33476, 33477, 33478, 33479, 33480, 33481, 50620, 52661, 33482, 33483, 33484, 55757, 33485, 33486, 55751, 45989, 49150, 33487, 33488, 33489, 33490, 47285, 33491, 33492, 49404, 33493, 33494, 33495, 33496, 45304, 33497, 33498, 33499, 33500, 33501, 33502, 33503, 33504, 33505, 33506, 33507, 33508, 33509, 33510, 33511, 33512, 33513, 33514, 33515, 33516, 33517, 46326, 33518, 55758, 33519, 55759, 46242, 55760, 33520, 33521, 46303, 33522, 33523, 33524, 33525, 33526, 45249, 33527, 33528, 33529, 33530, 33531, 33532, 33533, 55761, 51637, 33534, 33600, 33601, 33602, 33603, 33604, 33605, 33606, 33607, 33608, 33609, 33610, 33611, 33612, 33613, 33614, 33615, 33616, 33617, 53233, 33618, 33619, 33620, 33621, 33622, 33623, 55762, 33624, 33625, 33626, 49605, 33627, 33628, 33629, 33630, 33631, 33632, 33633, 33634, 33635, 33636, 33637, 55766, 51630, 33638, 33639, 33640, 33641, 55765, 55764, 55767, 33642, 33643, 33644, 33645, 52187, 33646, 48553, 33647, 33648, 33649, 33650, 33651, 50855, 33652, 33653, 33654, 33655, 33656, 33657, 33658, 33659, 33660, 33661, 55763, 55768, 33662, 33664, 33665, 55769, 33666, 33667, 33668, 33669, 33670, 33671, 51429, 33672, 33673, 33674, 33675, 33676, 33677, 33678, 33679, 33680, 33681, 33682, 33683, 33684, 33685, 49372, 33686, 33687, 33688, 33689, 33690, 33691, 33692, 33693, 33694, 33695, 33696, 33697, 33698, 33699, 33700, 33701, 33702, 33703, 33704, 33705, 33706, 33707, 33708, 33709, 33710, 33711, 33712, 33713, 33714, 46841, 55459, 54474, 33715, 54442, 53462, 46052, 54743, 33716, 53192, 47586, 33717, 49099, 33718, 50146, 33719, 33720, 33721, 46802, 33722, 33723, 52675, 55790, 55792, 33724, 33725, 33726, 46515, 33727, 46773, 33728, 33729, 33730, 33731, 33732, 48804, 33733, 33734, 51435, 33735, 33736, 51371, 33737, 33738, 45259, 47531, 49657, 55778, 33739, 49340, 47538, 33740, 47576, 53451, 45560, 50916, 48863, 46564, 55240, 33741, 53752, 48358, 51934, 33742, 33743, 48317, 55782, 55527, 33744, 33745, 50394, 33746, 33747, 47316, 51389, 33748, 33749, 45793, 54489, 33750, 33751, 33752, 33753, 50096, 33754, 33755, 50145, 55970, 51423, 33756, 53428, 33757, 48892, 50601, 33758, 33759, 33760, 47578, 33761, 55971, 33762, 54441, 55972, 33763, 33764, 33765, 33766, 33767, 55803, 46764, 33768, 33769, 47083, 45561, 55804, 46053, 48886, 33770, 49142, 53937, 49380, 33771, 33772, 33773, 46771, 55806, 55805, 33774, 33775, 48827, 33776, 33777, 33778, 50912, 33779, 55228, 55969, 33780, 49593, 33781, 46578, 49640, 33782, 33783, 48373, 33784, 46293, 33785, 33786, 33787, 33788, 33789, 33790, 33856, 33857, 33858, 49629, 33859, 50429, 33860, 33861, 48312, 47026, 33862, 33863, 47087, 33864, 33865, 33866, 33867, 33868, 33869, 55788, 33870, 50878, 33871, 49069, 48075, 33872, 33873, 46538, 33874, 56265, 53463, 33875, 52665, 45244, 46070, 48119, 56266, 47791, 33876, 54500, 46518, 46579, 55510, 51408, 33877, 33878, 47062, 51152, 55511, 33879, 49071, 33880, 33881, 56251, 55512, 33882, 33883, 53452, 48046, 33884, 33885, 33886, 60350, 49616, 49653, 54514, 47317, 46260, 33887, 46069, 33888, 33889, 51646, 33890, 33891, 33892, 50640, 33893, 33894, 33895, 50649, 49403, 33896, 45552, 33897, 55513, 47566, 33898, 46525, 33899, 33900, 55514, 33901, 33902, 54982, 52130, 51375, 51634, 46284, 49100, 33903, 47604, 33904, 55515, 55516, 46823, 48321, 52458, 33905, 33906, 33907, 33908, 33909, 33910, 53239, 33911, 55517, 51120, 33912, 33913, 47568, 48547, 33914, 33915, 52446, 33916, 50890, 33917, 33918, 33920, 33921, 33922, 55520, 33923, 55518, 33924, 33925, 55519, 33926, 33927, 33928, 45310, 33929, 48871, 33930, 51875, 48372, 33931, 33932, 33933, 33934, 47281, 33935, 33936, 47342, 33937, 33938, 33939, 33940, 33941, 33942, 33943, 33944, 33945, 33946, 55522, 33947, 48587, 33948, 55524, 55523, 33949, 33950, 33951, 33952, 33953, 50684, 33954, 33955, 33956, 33957, 33958, 33959, 33960, 55525, 33961, 33962, 55526, 33963, 33964, 33965, 33966, 33967, 33968, 33969, 49574, 33970, 51376, 45292, 47526, 48339, 52977, 56253, 49619, 33971, 33972, 33973, 33974, 46767, 55034, 50604, 48601, 56254, 56255, 33975, 33976, 33977, 49400, 48802, 49357, 33978, 33979, 33980, 33981, 33982, 33983, 33984, 33985, 33986, 33987, 56256, 51910, 33988, 33989, 33990, 45738, 33991, 33992, 33993, 54210, 33994, 50147, 33995, 53675, 33996, 33997, 33998, 33999, 56258, 34000, 49365, 34001, 34002, 34003, 56259, 34004, 49073, 34005, 34006, 34007, 34008, 34009, 34010, 50364, 34011, 34012, 34013, 34014, 51162, 34015, 34016, 34017, 34018, 34019, 34020, 34021, 34022, 34023, 34024, 34025, 56260, 34026, 34027, 34028, 34029, 34030, 34031, 34032, 34033, 55784, 51671, 34034, 34035, 34036, 47540, 52976, 54472, 34037, 34038, 34039, 34040, 45308, 46290, 34041, 53465, 34042, 34043, 34044, 34045, 55785, 34046, 57035, 55787, 34112, 34113, 34114, 34115, 55472, 48047, 45489, 34116, 46039, 55502, 34117, 34118, 54481, 34119, 34120, 48563, 49135, 34121, 53179, 34122, 34123, 55504, 34124, 34125, 34126, 47051, 34127, 34128, 34129, 55505, 34130, 34131, 34132, 34133, 34134, 34135, 34136, 34137, 34138, 34139, 50853, 51192, 53949, 34140, 34141, 55506, 50404, 34142, 51886, 34143, 51111, 34144, 55462, 34145, 51709, 52967, 48092, 45291, 34146, 34147, 34148, 48042, 53421, 34149, 45488, 55268, 55231, 34150, 46501, 49908, 50383, 34151, 34152, 45737, 34153, 45751, 34154, 45541, 57266, 54716, 49064, 49836, 55509, 49841, 34155, 55508, 52948, 34156, 56032, 34157, 52928, 34158, 34159, 55476, 50094, 54177, 52899, 34160, 48308, 51380, 49873, 34161, 48877, 53430, 34162, 56033, 34163, 34164, 34165, 34166, 51172, 34167, 34168, 45991, 34169, 46834, 52476, 49402, 34170, 34171, 49399, 34172, 53689, 53729, 55495, 34173, 34174, 34176, 34177, 34178, 34179, 34180, 45790, 34181, 34182, 49381, 34183, 47857, 34184, 34185, 55496, 34186, 54445, 34187, 34188, 53217, 55497, 34189, 55498, 53187, 34190, 46072, 48839, 34191, 34192, 34193, 34194, 55499, 34195, 34196, 34197, 34198, 34199, 34200, 34201, 56268, 34202, 34203, 34204, 34205, 51365, 34206, 34207, 34208, 53208, 34209, 51454, 45774, 34210, 34211, 34212, 34213, 34214, 54230, 45798, 48304, 54225, 52139, 47028, 34215, 34216, 34217, 47010, 34218, 34219, 51941, 34220, 51361, 51932, 45540, 53488, 34221, 50641, 34222, 34223, 34224, 56261, 46590, 34225, 34226, 49114, 47557, 48868, 49645, 34227, 57270, 57269, 54971, 48592, 54745, 45256, 46755, 49097, 52392, 57267, 51895, 54226, 34228, 55503, 53942, 47813, 52158, 52414, 34229, 57271, 46576, 57268, 34230, 34231, 34232, 54261, 34233, 46036, 47351, 34234, 57274, 34235, 47823, 48298, 46581, 34236, 52652, 50171, 47859, 49396, 52674, 53234, 57272, 53189, 34237, 49856, 57273, 49904, 34238, 34239, 34240, 48893, 34241, 49631, 52684, 54007, 47053, 57281, 34242, 57284, 34243, 34244, 47089, 45257, 46806, 47060, 34245, 47788, 52477, 49108, 52145, 50932, 34246, 54952, 57285, 34247, 52962, 46003, 34248, 34249, 52988, 46261, 34250, 52935, 47856, 34251, 52961, 34252, 53693, 34253, 34254, 57280, 34255, 34256, 46324, 34257, 46026, 34258, 47334, 57275, 34259, 34260, 34261, 34262, 50373, 34263, 57276, 57277, 57278, 50619, 57279, 57282, 54449, 57283, 34264, 51130, 52952, 34265, 34266, 34267, 34268, 34269, 50392, 34270, 57290, 34271, 57295, 34272, 55004, 34273, 34274, 34275, 34276, 34277, 34278, 34279, 34280, 57289, 57306, 52918, 34281, 47815, 57294, 57288, 50654, 34282, 34283, 51691, 47860, 50172, 34284, 34285, 48855, 34286, 57286, 34287, 57293, 34288, 50648, 34289, 34290, 34291, 34292, 54694, 47821, 34293, 48844, 54205, 47296, 34294, 55012, 34295, 57287, 47550, 49063, 34296, 34297, 49660, 57291, 57292, 34298, 57296, 34299, 34300, 34301, 34302, 34368, 57307, 57317, 34369, 57303, 57302, 55241, 57315, 57316, 58859, 53927, 57298, 34370, 49065, 34371, 54491, 34372, 49096, 57300, 34373, 34374, 34375, 53196, 34376, 34377, 57309, 34378, 53706, 34379, 57310, 45223, 50871, 57299, 34380, 47845, 34381, 46815, 52699, 47614, 54485, 34382, 34383, 57311, 53228, 45221, 57319, 57297, 53702, 57301, 57304, 57305, 57308, 34384, 48041, 34385, 57312, 57313, 34386, 57314, 57318, 57320, 54196, 34387, 34388, 34389, 34390, 34391, 47335, 50614, 57322, 51674, 49576, 50372, 34392, 34393, 49118, 53240, 34394, 34395, 34396, 54748, 57326, 34397, 34398, 34399, 34400, 34401, 34402, 45752, 34403, 47839, 57324, 34404, 56257, 34405, 53732, 34406, 34407, 34408, 34409, 52212, 46269, 34410, 45222, 34411, 34412, 34413, 34414, 34415, 57329, 52422, 57330, 34416, 34417, 57325, 34418, 34419, 34420, 34421, 34422, 34423, 57321, 34424, 34425, 34426, 34427, 57323, 34428, 57327, 57328, 48061, 34429, 34430, 57331, 34432, 34433, 57332, 34434, 48035, 34435, 51931, 52904, 57511, 45994, 34436, 57510, 34437, 34438, 34439, 57505, 34440, 34441, 34442, 34443, 57342, 34444, 52697, 57340, 34445, 57338, 34446, 49104, 55236, 34447, 51660, 34448, 34449, 57336, 45217, 34450, 34451, 34452, 34453, 34454, 57341, 34455, 34456, 34457, 34458, 57339, 57506, 34459, 34460, 34461, 34462, 34463, 57512, 34464, 34465, 34466, 34467, 47048, 34468, 34469, 50849, 51638, 49330, 57333, 34470, 34471, 50622, 34472, 55492, 57337, 50422, 34473, 34474, 34475, 34476, 34477, 34478, 57507, 57508, 57509, 53413, 34479, 34480, 57524, 52452, 34481, 57521, 34482, 49062, 57519, 52921, 57515, 51654, 34483, 34484, 49326, 57518, 47853, 47792, 57513, 34485, 34486, 34487, 57334, 34488, 57523, 34489, 34490, 57528, 34491, 34492, 34493, 46253, 57529, 34494, 34495, 53170, 47816, 34496, 57520, 34497, 34498, 34499, 34500, 34501, 34502, 34503, 53498, 34504, 34505, 34506, 34507, 34508, 34509, 34510, 34511, 34512, 57516, 34513, 54523, 34514, 57335, 34515, 50663, 34516, 57517, 34517, 54263, 34518, 57526, 57527, 34519, 34520, 34521, 34522, 34523, 57540, 53473, 34524, 34525, 34526, 57532, 34527, 34528, 57545, 57546, 34529, 34530, 34531, 57534, 57514, 51620, 57537, 34532, 57522, 34533, 34534, 34535, 34536, 34537, 51912, 57539, 34538, 57525, 34539, 52939, 34540, 52163, 57549, 57542, 57538, 34541, 57547, 34542, 57530, 57535, 57536, 34543, 34544, 57541, 34545, 34546, 57543, 57544, 34547, 57548, 34548, 57531, 34549, 34550, 34551, 34552, 34553, 52180, 57557, 34554, 57558, 57554, 34555, 34556, 34557, 34558, 34624, 34625, 57552, 48334, 34626, 34627, 57553, 34628, 47298, 55493, 34629, 34630, 34631, 34632, 34633, 34634, 34635, 34636, 53482, 34637, 34638, 49903, 34639, 34640, 57551, 57533, 34641, 34642, 34643, 57556, 57555, 34644, 34645, 57559, 34646, 34647, 34648, 34649, 57564, 57560, 34650, 34651, 34652, 55030, 46000, 34653, 55276, 34654, 52155, 34655, 34656, 57562, 34657, 52987, 34658, 34659, 34660, 47833, 34661, 34662, 34663, 34664, 34665, 34666, 34667, 34668, 34669, 34670, 34671, 34672, 57569, 57565, 53933, 34673, 34674, 34675, 34676, 34677, 57570, 34678, 34679, 57563, 57561, 57567, 34680, 34681, 57568, 34682, 34683, 34684, 34685, 34686, 57566, 34688, 57572, 34689, 34690, 34691, 50935, 55468, 54507, 57574, 51913, 34692, 34693, 34694, 34695, 57573, 34696, 34697, 34698, 34699, 47297, 34700, 34701, 34702, 34703, 57575, 57576, 34704, 34705, 34706, 34707, 34708, 34709, 34710, 34711, 57577, 57571, 34712, 34713, 34714, 34715, 34716, 34717, 34718, 47807, 52455, 34719, 34720, 34721, 57578, 34722, 34723, 34724, 34725, 34726, 34727, 34728, 34729, 34730, 34731, 34732, 34733, 34734, 34735, 34736, 53241, 34737, 34738, 34739, 34740, 34741, 34742, 34743, 34744, 34745, 34746, 34747, 57579, 34748, 34749, 34750, 34751, 34752, 34753, 34754, 51394, 34755, 34756, 34757, 34758, 48576, 34759, 34760, 34761, 34762, 34763, 34764, 34765, 34766, 34767, 34768, 34769, 34770, 34771, 50386, 34772, 34773, 34774, 34775, 34776, 34777, 34778, 34779, 34780, 57580, 34781, 34782, 57581, 34783, 34784, 51188, 52164, 34785, 57582, 48088, 55478, 54002, 57583, 52677, 34786, 46810, 34787, 34788, 34789, 34790, 34791, 34792, 57585, 34793, 54448, 34794, 34795, 49319, 46289, 34796, 34797, 52903, 57584, 34798, 34799, 34800, 57586, 47564, 34801, 34802, 47610, 52668, 57587, 34803, 34804, 34805, 50900, 57588, 34806, 54450, 34807, 51366, 57590, 57589, 34808, 34809, 34810, 34811, 34812, 34813, 34814, 34880, 34881, 34882, 34883, 34884, 34885, 34886, 34887, 34888, 34889, 57591, 34890, 34891, 52673, 34892, 34893, 34894, 51877, 34895, 34896, 34897, 34898, 54490, 56279, 56281, 34899, 56280, 47591, 56284, 56285, 46552, 34900, 34901, 56282, 34902, 34903, 34904, 34905, 34906, 56283, 45985, 56287, 34907, 34908, 48120, 34909, 54967, 34910, 56288, 34911, 34912, 34913, 34914, 48889, 34915, 34916, 47035, 34917, 56272, 52398, 49074, 48053, 55288, 49107, 34918, 34919, 34920, 34921, 34922, 49129, 34923, 34924, 48353, 52403, 56286, 45267, 52971, 47064, 55225, 50882, 34925, 34926, 49316, 34927, 52409, 34928, 56295, 56289, 50874, 56291, 34929, 56296, 34930, 50679, 34931, 34932, 34933, 56298, 34934, 34935, 56297, 49088, 34936, 34937, 34938, 56294, 56293, 34939, 34940, 34941, 34942, 34944, 46265, 49324, 49826, 56290, 56292, 34945, 34946, 34947, 34948, 53453, 56301, 34949, 34950, 34951, 34952, 34953, 49373, 56306, 34954, 34955, 34956, 34957, 34958, 34959, 34960, 46818, 34961, 34962, 34963, 34964, 56307, 56274, 47544, 54443, 56300, 34965, 49105, 56304, 34966, 56273, 34967, 46566, 34968, 56299, 49125, 34969, 34970, 34971, 56302, 34972, 56305, 34973, 34974, 34975, 56313, 34976, 34977, 34978, 34979, 34980, 34981, 34982, 34983, 34984, 47521, 45219, 34985, 34986, 34987, 34988, 34989, 34990, 34991, 49905, 34992, 34993, 46023, 56303, 34994, 34995, 56312, 34996, 50898, 56308, 34997, 34998, 56309, 56311, 56310, 34999, 35000, 56318, 35001, 54258, 45754, 35002, 35003, 35004, 56317, 35005, 35006, 35007, 35008, 35009, 35010, 35011, 35012, 56484, 35013, 56315, 35014, 35015, 35016, 35017, 56314, 35018, 35019, 35020, 56316, 50656, 48121, 35021, 35022, 56483, 35023, 35024, 56485, 35025, 52419, 35026, 35027, 35028, 46801, 56768, 35029, 35030, 35031, 56481, 35032, 56482, 35033, 35034, 35035, 51125, 35036, 35037, 35038, 46825, 35039, 35040, 35041, 56487, 35042, 35043, 35044, 35045, 56486, 35046, 56489, 45476, 35047, 35048, 46540, 35049, 35050, 35051, 35052, 35053, 49072, 35054, 35055, 35056, 35057, 35058, 53727, 35059, 35060, 35061, 35062, 46786, 35063, 35064, 35065, 35066, 35067, 35068, 35069, 35070, 35136, 35137, 35138, 35139, 35140, 35141, 56488, 35142, 35143, 35144, 35145, 35146, 35147, 35148, 52218, 60403, 35149, 35150, 35151, 52188, 35152, 35153, 52222, 35154, 35155, 35156, 52417, 35157, 35158, 35159, 35160, 35161, 51451, 35162, 35163, 35164, 35165, 35166, 35167, 56490, 35168, 35169, 35170, 35171, 35172, 52462, 56491, 35173, 35174, 35175, 35176, 35177, 35178, 35179, 35180, 35181, 35182, 35183, 35184, 35185, 35186, 35187, 35188, 35189, 56275, 35190, 56495, 56492, 35191, 48819, 35192, 51963, 35193, 35194, 35195, 56493, 35196, 35197, 35198, 35200, 35201, 35202, 35203, 35204, 51658, 50361, 35205, 35206, 35207, 35208, 35209, 51133, 56494, 35210, 35211, 35212, 54518, 53478, 35213, 35214, 35215, 35216, 35217, 35218, 35219, 35220, 50347, 46805, 35221, 35222, 35223, 35224, 35225, 35226, 35227, 35228, 35229, 35230, 35231, 35232, 35233, 35234, 35235, 35236, 35237, 35238, 56276, 35239, 35240, 35241, 35242, 45530, 35243, 35244, 35245, 56277, 35246, 35247, 35248, 35249, 35250, 35251, 35252, 35253, 35254, 35255, 35256, 56278, 35257, 35258, 35259, 47806, 35260, 35261, 35262, 35263, 35264, 35265, 35266, 35267, 35268, 35269, 35270, 35271, 35272, 35273, 51392, 35274, 35275, 35276, 35277, 35278, 35279, 51903, 51401, 35280, 55219, 35281, 51705, 35282, 35283, 49095, 35284, 35285, 47864, 35286, 35287, 53948, 35288, 35289, 35290, 35291, 35292, 35293, 35294, 35295, 58042, 35296, 46246, 35297, 35298, 45496, 35299, 35300, 35301, 35302, 35303, 47284, 35304, 53188, 35305, 35306, 35307, 35308, 55783, 53158, 52706, 35309, 35310, 55789, 46816, 35311, 53945, 35312, 35313, 47547, 35314, 35315, 35316, 35317, 58041, 58039, 35318, 46323, 35319, 52460, 52395, 47090, 35320, 55474, 53739, 47803, 35321, 51879, 35322, 35323, 52663, 35324, 35325, 53956, 49124, 48336, 46817, 35326, 57029, 35392, 35393, 35394, 35395, 57030, 56252, 35396, 53721, 35397, 35398, 50918, 50382, 47086, 35399, 47068, 35400, 35401, 49148, 55264, 35402, 50933, 35403, 35404, 45500, 57032, 48561, 52439, 57034, 35405, 57033, 35406, 35407, 35408, 35409, 35410, 46572, 35411, 51677, 35412, 35413, 45250, 35414, 35415, 35416, 35417, 35418, 35419, 35420, 35421, 35422, 35423, 35424, 35425, 35426, 50606, 50603, 35427, 50380, 35428, 48361, 52221, 35429, 35430, 35431, 47811, 35432, 35433, 35434, 58873, 51431, 58874, 52733, 35435, 55217, 47294, 49896, 35436, 51409, 35437, 35438, 58875, 35439, 35440, 35441, 35442, 46794, 48331, 35443, 35444, 53757, 59041, 35445, 50158, 35446, 35447, 35448, 35449, 59044, 35450, 35451, 35452, 35453, 58878, 59045, 52695, 35454, 35456, 47041, 58876, 58877, 59043, 35457, 35458, 50397, 59048, 35459, 35460, 59047, 35461, 35462, 35463, 35464, 35465, 35466, 50115, 35467, 50910, 35468, 35469, 59050, 35470, 35471, 35472, 35473, 35474, 35475, 35476, 50359, 35477, 35478, 35479, 59042, 51900, 35480, 35481, 35482, 35483, 48611, 47555, 59046, 53461, 52911, 35484, 35485, 59049, 59056, 35486, 53926, 35487, 48554, 59053, 35488, 35489, 35490, 35491, 35492, 59055, 35493, 49361, 35494, 35495, 53964, 35496, 35497, 35498, 48295, 35499, 35500, 35501, 35502, 35503, 35504, 35505, 35506, 35507, 35508, 35509, 35510, 59057, 35511, 54006, 35512, 35513, 35514, 55243, 35515, 52734, 35516, 52702, 49830, 59051, 59052, 48575, 59054, 59059, 35517, 35518, 59058, 35519, 35520, 35521, 35522, 59062, 35523, 59064, 35524, 35525, 35526, 35527, 50415, 35528, 35529, 35530, 50376, 35531, 35532, 48874, 51695, 35533, 35534, 59063, 35535, 46832, 35536, 35537, 35538, 50148, 35539, 35540, 35541, 35542, 35543, 35544, 35545, 54249, 59060, 35546, 59061, 35547, 51362, 35548, 35549, 35550, 35551, 35552, 59069, 35553, 35554, 35555, 59065, 35556, 35557, 35558, 35559, 35560, 50885, 35561, 35562, 52721, 59067, 35563, 35564, 35565, 35566, 35567, 35568, 35569, 35570, 35571, 35572, 59068, 35573, 35574, 35575, 35576, 48105, 35577, 35578, 35579, 35580, 35581, 35582, 35648, 59070, 35649, 35650, 35651, 35652, 59066, 35653, 35654, 49335, 35655, 35656, 35657, 35658, 35659, 35660, 35661, 35662, 35663, 54180, 59071, 51700, 59075, 35664, 35665, 59076, 35666, 35667, 35668, 35669, 53494, 35670, 35671, 35672, 35673, 35674, 35675, 35676, 35677, 35678, 35679, 35680, 35681, 35682, 35683, 35684, 35685, 35686, 35687, 50109, 35688, 35689, 35690, 35691, 35692, 35693, 35694, 50116, 59074, 35695, 35696, 35697, 35698, 35699, 35700, 35701, 35702, 35703, 35704, 35705, 35706, 35707, 35708, 59073, 35709, 35710, 35712, 35713, 35714, 35715, 35716, 59079, 53169, 35717, 60404, 35718, 35719, 59082, 35720, 35721, 35722, 35723, 35724, 59077, 35725, 35726, 48350, 51625, 35727, 35728, 35729, 35730, 35731, 35732, 48309, 35733, 35734, 53203, 35735, 35736, 35737, 35738, 35739, 59080, 35740, 59081, 35741, 59086, 35742, 59088, 35743, 35744, 35745, 59089, 35746, 35747, 35748, 59083, 46549, 35749, 59084, 35750, 35751, 59087, 35752, 35753, 50395, 35754, 59078, 35755, 35756, 35757, 35758, 35759, 59085, 35760, 35761, 35762, 35763, 35764, 35765, 35766, 35767, 35768, 35769, 35770, 35771, 35772, 35773, 35774, 35775, 35776, 35777, 35778, 35779, 35780, 35781, 35782, 59090, 35783, 35784, 35785, 35786, 35787, 35788, 35789, 35790, 35791, 35792, 35793, 35794, 59092, 59091, 35795, 35796, 35797, 35798, 35799, 35800, 35801, 35802, 35803, 35804, 35805, 35806, 35807, 35808, 35809, 35810, 35811, 35812, 35813, 35814, 35815, 35816, 35817, 35818, 35819, 35820, 59093, 35821, 55800, 35822, 35823, 59094, 35824, 35825, 35826, 35827, 35828, 35829, 35830, 35831, 59095, 35832, 35833, 35834, 35835, 35836, 35837, 35838, 35904, 35905, 35906, 35907, 35908, 35909, 35910, 35911, 55251, 59101, 35912, 59102, 49111, 54480, 35913, 55254, 46310, 52207, 59098, 55491, 55246, 53410, 35914, 50127, 35915, 35916, 59103, 48318, 47554, 59099, 53671, 35917, 35918, 47778, 49871, 35919, 55467, 35920, 35921, 35922, 51947, 58862, 35923, 59100, 35924, 47093, 35925, 35926, 35927, 35928, 51430, 35929, 35930, 50421, 35931, 35932, 58802, 50430, 35933, 52220, 58803, 54700, 35934, 54254, 51928, 45234, 35935, 52174, 52714, 35936, 35937, 47850, 35938, 35939, 35940, 58805, 35941, 58804, 35942, 55258, 47577, 55014, 46760, 52720, 53963, 45478, 51893, 35943, 46056, 51699, 49101, 53499, 51922, 58806, 48066, 35944, 35945, 35946, 53212, 47532, 35947, 35948, 35949, 35950, 54487, 35951, 35952, 47782, 53735, 53244, 48338, 35953, 58807, 51421, 35954, 35955, 35956, 49133, 45558, 52190, 35957, 35958, 48325, 35959, 48324, 54010, 50140, 49116, 35960, 35961, 35962, 35963, 47291, 35964, 35965, 35966, 50114, 35968, 47790, 54434, 35969, 35970, 35971, 35972, 35973, 35974, 35975, 35976, 35977, 51166, 50351, 45804, 35978, 47569, 35979, 35980, 58811, 49608, 35981, 35982, 54703, 35983, 35984, 35985, 35986, 35987, 58812, 35988, 58814, 35989, 35990, 35991, 35992, 35993, 35994, 35995, 46311, 46804, 52162, 53680, 46524, 35996, 35997, 51929, 35998, 47074, 35999, 36000, 51684, 36001, 48555, 36002, 36003, 52926, 55280, 36004, 36005, 36006, 36007, 53409, 36008, 51673, 36009, 36010, 46843, 59096, 48354, 36011, 46014, 36012, 51664, 36013, 59097, 45986, 36014, 36015, 36016, 36017, 57036, 36018, 54216, 57037, 36019, 53922, 36020, 36021, 36022, 36023, 57038, 36024, 36025, 36026, 36027, 48845, 36028, 36029, 57039, 36030, 36031, 36032, 51884, 54012, 46047, 58858, 50401, 48801, 52914, 50418, 48854, 50856, 45795, 36033, 36034, 48851, 36035, 36036, 51196, 52459, 48620, 52957, 36037, 36038, 51898, 50881, 58860, 53436, 36039, 36040, 36041, 54713, 36042, 36043, 36044, 58861, 36045, 36046, 36047, 36048, 51956, 36049, 52672, 49861, 36050, 58863, 36051, 49860, 58864, 36052, 36053, 36054, 36055, 36056, 36057, 36058, 58872, 52685, 36059, 51645, 36060, 36061, 36062, 36063, 36064, 36065, 36066, 53977, 57768, 36067, 36068, 36069, 36070, 54252, 36071, 52202, 50929, 36072, 36073, 36074, 36075, 36076, 57772, 36077, 36078, 36079, 57767, 57769, 36080, 36081, 57770, 57775, 36082, 36083, 45805, 36084, 57771, 47322, 57773, 57774, 57776, 46522, 57777, 36085, 36086, 36087, 36088, 36089, 57779, 57784, 36090, 36091, 36092, 36093, 36094, 53714, 36160, 57782, 57781, 49643, 36161, 36162, 36163, 57783, 36164, 54464, 36165, 57778, 36166, 57786, 45238, 36167, 36168, 36169, 36170, 57780, 36171, 49145, 36172, 57785, 36173, 36174, 57787, 36175, 36176, 36177, 36178, 36179, 36180, 57790, 36181, 36182, 36183, 36184, 36185, 36186, 57788, 36187, 36188, 36189, 36190, 36191, 36192, 54981, 36193, 36194, 36195, 36196, 36197, 36198, 36199, 53183, 36200, 36201, 57789, 57791, 49869, 36202, 46827, 36203, 54264, 36204, 36205, 51149, 36206, 36207, 47077, 36208, 36209, 36210, 36211, 36212, 36213, 36214, 36215, 36216, 36217, 48894, 36218, 36219, 36220, 36221, 36222, 36224, 57792, 57793, 36225, 36226, 57799, 46055, 36227, 36228, 36229, 36230, 36231, 36232, 50921, 36233, 36234, 36235, 36236, 36237, 46302, 36238, 53698, 36239, 36240, 36241, 36242, 57800, 36243, 36244, 57798, 36245, 36246, 36247, 36248, 36249, 57797, 36250, 57795, 57794, 36251, 45504, 36252, 36253, 36254, 54712, 57796, 36255, 36256, 36257, 36258, 36259, 57803, 36260, 36261, 36262, 36263, 36264, 36265, 36266, 36267, 57804, 57802, 36268, 36269, 36270, 36271, 36272, 36273, 36274, 36275, 61434, 36276, 36277, 57811, 57810, 51126, 36278, 36279, 36280, 36281, 36282, 36283, 36284, 36285, 36286, 36287, 36288, 57801, 36289, 36290, 57806, 36291, 57808, 36292, 36293, 36294, 36295, 36296, 36297, 36298, 36299, 36300, 36301, 36302, 57812, 36303, 57809, 57805, 36304, 36305, 57807, 36306, 36307, 36308, 36309, 57813, 36310, 36311, 36312, 36313, 36314, 36315, 36316, 36317, 36318, 36319, 36320, 36321, 36322, 57814, 36323, 36324, 36325, 36326, 36327, 36328, 36329, 36330, 36331, 36332, 36333, 36334, 36335, 36336, 36337, 36338, 36339, 36340, 36341, 36342, 36343, 36344, 57815, 36345, 36346, 36347, 57816, 36348, 36349, 36350, 36416, 36417, 36418, 36419, 36420, 36421, 36422, 36423, 36424, 36425, 36426, 36427, 36428, 36429, 36430, 36431, 36432, 36433, 36434, 36435, 36436, 36437, 57818, 36438, 36439, 36440, 36441, 36442, 36443, 36444, 36445, 36446, 36447, 36448, 36449, 36450, 57819, 36451, 36452, 36453, 36454, 36455, 36456, 36457, 52897, 36458, 36459, 36460, 36461, 36462, 36463, 36464, 36465, 36466, 36467, 36468, 36469, 36470, 59357, 36471, 46248, 55005, 36472, 36473, 53682, 46002, 36474, 36475, 47524, 55283, 51145, 48862, 47534, 36476, 52951, 36477, 36478, 45806, 56271, 36480, 48314, 53969, 52168, 45261, 36481, 36482, 53231, 36483, 36484, 36485, 36486, 36487, 55779, 48621, 36488, 36489, 45522, 51920, 45756, 36490, 52135, 47019, 36491, 51878, 36492, 36493, 36494, 53155, 36495, 36496, 57592, 54730, 57595, 36497, 36498, 57594, 50625, 52475, 36499, 49585, 57593, 55011, 45743, 54980, 46555, 36500, 36501, 36502, 36503, 36504, 36505, 36506, 36507, 46328, 54945, 36508, 36509, 36510, 36511, 36512, 53167, 45295, 36513, 36514, 57596, 36515, 36516, 36517, 36518, 36519, 57761, 45987, 36520, 36521, 57597, 57598, 50097, 36522, 36523, 36524, 36525, 50141, 36526, 57762, 47097, 36527, 36528, 36529, 36530, 36531, 36532, 48079, 36533, 36534, 36535, 36536, 36537, 36538, 36539, 57763, 50363, 36540, 36541, 36542, 36543, 36544, 57764, 36545, 36546, 57765, 36547, 36548, 57766, 46257, 36549, 36550, 36551, 36552, 36553, 36554, 36555, 36556, 36557, 36558, 36559, 36560, 36561, 36562, 36563, 47305, 50877, 50410, 36564, 45730, 36565, 53458, 36566, 59355, 48067, 54231, 54212, 36567, 47587, 58063, 36568, 36569, 36570, 55215, 36571, 51180, 45523, 36572, 36573, 46258, 58065, 36574, 36575, 36576, 53490, 49838, 58064, 36577, 49122, 54182, 46551, 58066, 46570, 36578, 50157, 47357, 36579, 47278, 36580, 50643, 47055, 58068, 36581, 36582, 36583, 36584, 58067, 46792, 55289, 36585, 36586, 36587, 36588, 36589, 52645, 36590, 36591, 36592, 36593, 36594, 58072, 36595, 58070, 51964, 49077, 54201, 58069, 36596, 36597, 36598, 36599, 58071, 36600, 36601, 36602, 36603, 36604, 36605, 36606, 36672, 36673, 36674, 49582, 49352, 36675, 36676, 36677, 36678, 36679, 36680, 58075, 58074, 49322, 36681, 36682, 49614, 36683, 36684, 36685, 36686, 58076, 36687, 36688, 36689, 36690, 36691, 36692, 36693, 36694, 36695, 36696, 36697, 36698, 58077, 36699, 58078, 36700, 36701, 36702, 36703, 36704, 36705, 36706, 36707, 36708, 56264, 36709, 53715, 52642, 36710, 36711, 48552, 36712, 36713, 36714, 57027, 55461, 49066, 56269, 53996, 50938, 50602, 36715, 36716, 36717, 57028, 36718, 45527, 57262, 36719, 36720, 36721, 51901, 36722, 57265, 36723, 47533, 36724, 54013, 36725, 47269, 47851, 36726, 36727, 46042, 36728, 36729, 36730, 46556, 54725, 36731, 36732, 36733, 36734, 50134, 53202, 48033, 36736, 58867, 58866, 36737, 36738, 58868, 36739, 52708, 36740, 51445, 36741, 36742, 36743, 36744, 36745, 36746, 36747, 46511, 51135, 36748, 58870, 36749, 36750, 36751, 60592, 36752, 36753, 36754, 36755, 36756, 36757, 36758, 36759, 36760, 36761, 36762, 36763, 36764, 36765, 36766, 58854, 36767, 47593, 46513, 36768, 49852, 58856, 58855, 58857, 36769, 36770, 36771, 36772, 53965, 36773, 36774, 36775, 57834, 53454, 36776, 52654, 36777, 53733, 36778, 36779, 45770, 45547, 36780, 45554, 50669, 36781, 36782, 54723, 54192, 36783, 57820, 36784, 36785, 36786, 57821, 36787, 53979, 36788, 46009, 45515, 36789, 36790, 36791, 52729, 54775, 57822, 36792, 48822, 46333, 36793, 57823, 47836, 57824, 48050, 49865, 57825, 36794, 36795, 36796, 53484, 36797, 52669, 36798, 36799, 57826, 36800, 46531, 50631, 57827, 36801, 36802, 57828, 36803, 36804, 36805, 36806, 54265, 36807, 36808, 36809, 36810, 36811, 36812, 57829, 36813, 53677, 36814, 36815, 57830, 52898, 36816, 36817, 36818, 36819, 36820, 36821, 57831, 36822, 46530, 36823, 36824, 36825, 36826, 57832, 48085, 36827, 36828, 36829, 36830, 36831, 53444, 58080, 45528, 53988, 36832, 36833, 58081, 36834, 36835, 48329, 51404, 36836, 58083, 60670, 60669, 57263, 36837, 36838, 36839, 58082, 54974, 52732, 50086, 36840, 36841, 36842, 58307, 36843, 36844, 54994, 58087, 36845, 36846, 58088, 36847, 36848, 54215, 36849, 36850, 58092, 49132, 36851, 58093, 58085, 36852, 36853, 46016, 36854, 36855, 36856, 50414, 36857, 36858, 58094, 36859, 36860, 53443, 36861, 47862, 58089, 47070, 48051, 52396, 52171, 58084, 58086, 58090, 58091, 36862, 36928, 36929, 58103, 36930, 36931, 58100, 54517, 58099, 36932, 36933, 50605, 36934, 54778, 50626, 45760, 36935, 36936, 58095, 36937, 58098, 49583, 52156, 36938, 36939, 46497, 58105, 36940, 36941, 36942, 48305, 58097, 53460, 54457, 58101, 47574, 58102, 36943, 36944, 36945, 51155, 36946, 36947, 36948, 36949, 36950, 58096, 36951, 36952, 36953, 36954, 36955, 55260, 60833, 36956, 36957, 58104, 36958, 60837, 58110, 51921, 36959, 36960, 36961, 36962, 36963, 36964, 36965, 49589, 36966, 48080, 36967, 36968, 49110, 36969, 47843, 36970, 36971, 52129, 36972, 36973, 36974, 60838, 60835, 36975, 36976, 60834, 36977, 36978, 36979, 36980, 48086, 60839, 53492, 36981, 36982, 60836, 47838, 46839, 58273, 46770, 52465, 47527, 36983, 53154, 51105, 36984, 36985, 49106, 36986, 36987, 46833, 36988, 58106, 58107, 58109, 58108, 50389, 58274, 36989, 54209, 36990, 36992, 36993, 58279, 51140, 36994, 36995, 36996, 36997, 53156, 36998, 36999, 58281, 47799, 37000, 37001, 37002, 37003, 58280, 37004, 48090, 37005, 58275, 37006, 37007, 37008, 58276, 58282, 37009, 58278, 37010, 52978, 54214, 37011, 37012, 48060, 37013, 37014, 54467, 37015, 50426, 37016, 37017, 60840, 53500, 58277, 37018, 50165, 37019, 58285, 45487, 37020, 58290, 37021, 37022, 37023, 48322, 37024, 37025, 58284, 46527, 37026, 37027, 37028, 37029, 37030, 37031, 37032, 37033, 51177, 58288, 37034, 37035, 37036, 48810, 52719, 37037, 37038, 37039, 37040, 37041, 48115, 37042, 37043, 37044, 52456, 37045, 37046, 58287, 37047, 58289, 37048, 53159, 58286, 37049, 52905, 48093, 37050, 37051, 37052, 37053, 37054, 46571, 48869, 45778, 46029, 37055, 45497, 58283, 45777, 46508, 47583, 46824, 37056, 37057, 53227, 58295, 37058, 48076, 37059, 37060, 51399, 53450, 37061, 37062, 37063, 37064, 37065, 58296, 46062, 37066, 37067, 37068, 37069, 60841, 37070, 54266, 54244, 37071, 37072, 37073, 60842, 58297, 53986, 37074, 37075, 37076, 37077, 37078, 58293, 37079, 37080, 37081, 37082, 54238, 37083, 37084, 37085, 37086, 47312, 58291, 37087, 37088, 58294, 47071, 37089, 58292, 49314, 37090, 37091, 37092, 58298, 37093, 37094, 37095, 37096, 37097, 37098, 37099, 37100, 37101, 37102, 37103, 37104, 37105, 37106, 37107, 37108, 37109, 37110, 37111, 54456, 37112, 37113, 37114, 37115, 37116, 37117, 37118, 37184, 46280, 37185, 58299, 37186, 48069, 37187, 51703, 37188, 37189, 51685, 37190, 37191, 37192, 50365, 37193, 37194, 37195, 37196, 37197, 37198, 37199, 60843, 37200, 37201, 37202, 37203, 49917, 37204, 37205, 37206, 37207, 48091, 49070, 37208, 37209, 37210, 37211, 37212, 37213, 37214, 52927, 37215, 37216, 37217, 37218, 58300, 37219, 49078, 37220, 37221, 37222, 37223, 37224, 37225, 37226, 37227, 37228, 37229, 37230, 37231, 37232, 37233, 37234, 37235, 37236, 37237, 37238, 45551, 37239, 37240, 54519, 37241, 37242, 37243, 37244, 37245, 58302, 37246, 37248, 37249, 37250, 37251, 37252, 37253, 37254, 60845, 37255, 37256, 37257, 37258, 37259, 37260, 37261, 37262, 37263, 58303, 47785, 60844, 37264, 37265, 58301, 37266, 37267, 37268, 37269, 37270, 37271, 37272, 37273, 37274, 37275, 58304, 37276, 37277, 37278, 37279, 37280, 37281, 47798, 37282, 37283, 37284, 46766, 37285, 37286, 37287, 37288, 37289, 53432, 37290, 45251, 60846, 37291, 37292, 37293, 37294, 37295, 60847, 49345, 37296, 58305, 37297, 37298, 37299, 37300, 37301, 37302, 37303, 37304, 37305, 37306, 37307, 37308, 37309, 37310, 37311, 37312, 37313, 50611, 37314, 37315, 37316, 37317, 37318, 37319, 37320, 37321, 37322, 37323, 37324, 37325, 37326, 37327, 58306, 37328, 37329, 37330, 37331, 37332, 37333, 37334, 37335, 37336, 56498, 37337, 37338, 37339, 37340, 37341, 37342, 60848, 37343, 47338, 37344, 52972, 60071, 53479, 51961, 51414, 53175, 46025, 52946, 48612, 37345, 37346, 58334, 48114, 60072, 54717, 37347, 50909, 60073, 37348, 37349, 37350, 60074, 37351, 60076, 60075, 37352, 60078, 60077, 37353, 37354, 37355, 37356, 48600, 37357, 60079, 37358, 49854, 37359, 37360, 37361, 37362, 46273, 46327, 37363, 37364, 48039, 37365, 37366, 37367, 37368, 37369, 60646, 60645, 47039, 52217, 45538, 37370, 60647, 37371, 37372, 37373, 51656, 60648, 60649, 37374, 51926, 57040, 45765, 54522, 37440, 37441, 50891, 45255, 46322, 51411, 37442, 37443, 37444, 52688, 37445, 37446, 49080, 37447, 37448, 37449, 37450, 37451, 37452, 37453, 49115, 37454, 37455, 51108, 54964, 37456, 49321, 57041, 51624, 53743, 50596, 45287, 46006, 51397, 37457, 37458, 45282, 37459, 37460, 47094, 37461, 37462, 50682, 37463, 37464, 46835, 37465, 54738, 46032, 48316, 37466, 37467, 37468, 45997, 37469, 37470, 37471, 37472, 48881, 45265, 37473, 37474, 37475, 37476, 37477, 37478, 53974, 51939, 55205, 37479, 52662, 46774, 49081, 54747, 37480, 47271, 50647, 37481, 37482, 37483, 57042, 49113, 49877, 51136, 37484, 48036, 45480, 37485, 37486, 50666, 37487, 37488, 50683, 52391, 37489, 37490, 37491, 37492, 45479, 37493, 37494, 37495, 46550, 37496, 37497, 37498, 50344, 37499, 57043, 53690, 46057, 37500, 50162, 37501, 37502, 47095, 37504, 55028, 46499, 45808, 50356, 50409, 49325, 57044, 37505, 45288, 50628, 49632, 37506, 47573, 37507, 48860, 52696, 45262, 37508, 52687, 57046, 48848, 55230, 57045, 54736, 45277, 37509, 37510, 50402, 37511, 37512, 49827, 48368, 37513, 54197, 49337, 50593, 45734, 54513, 37514, 37515, 49320, 51907, 57047, 54780, 37516, 47536, 37517, 51373, 52137, 37518, 57049, 49085, 37519, 37520, 37521, 37522, 50868, 55207, 51888, 50371, 37523, 46038, 47570, 37524, 37525, 37526, 37527, 54968, 60156, 45236, 37528, 37529, 37530, 37531, 49126, 37532, 37533, 52468, 37534, 37535, 37536, 37537, 52698, 37538, 37539, 37540, 54975, 49870, 37541, 52942, 52386, 53422, 50387, 46514, 57048, 54773, 48311, 48083, 37542, 37543, 45220, 37544, 50610, 46316, 37545, 37546, 37547, 54769, 37548, 37549, 60157, 37550, 37551, 37552, 37553, 37554, 37555, 57050, 52646, 37556, 37557, 52716, 37558, 37559, 37560, 37561, 52966, 57052, 37562, 52657, 49318, 37563, 37564, 55229, 37565, 57051, 45254, 47796, 51667, 50419, 48872, 37566, 37567, 37568, 37569, 45750, 37570, 37571, 37572, 37573, 37574, 37575, 37576, 37577, 49356, 52208, 37578, 48369, 48059, 46519, 37579, 37580, 37581, 50677, 37582, 57062, 37583, 37584, 37585, 57059, 48861, 37586, 37587, 57055, 37588, 37589, 37590, 37591, 46263, 48605, 37592, 37593, 57056, 50413, 37594, 37595, 37596, 37597, 53190, 37598, 46560, 37599, 37600, 37601, 37602, 46814, 51930, 46580, 57061, 37603, 54726, 37604, 57057, 52429, 50942, 37605, 50629, 37606, 37607, 37608, 53940, 37609, 48882, 37610, 37611, 37612, 37613, 37614, 37615, 37616, 49875, 37617, 52413, 46008, 37618, 48595, 37619, 49112, 52678, 53722, 46315, 37620, 57060, 57053, 57063, 37621, 60158, 37622, 37623, 49840, 57058, 37624, 37625, 54976, 46503, 37626, 45812, 37627, 57064, 37628, 57074, 37629, 37630, 37696, 37697, 37698, 57069, 37699, 57073, 37700, 37701, 51424, 37702, 37703, 37704, 55265, 57071, 50152, 52449, 37705, 45797, 37706, 37707, 37708, 53950, 37709, 37710, 37711, 37712, 37713, 37714, 37715, 57070, 37716, 57067, 52949, 37717, 46247, 37718, 37719, 37720, 37721, 37722, 49067, 48830, 37723, 37724, 48594, 37725, 37726, 37727, 37728, 57065, 37729, 54446, 37730, 57054, 37731, 57066, 37732, 37733, 37734, 37735, 49343, 37736, 57068, 45811, 47337, 49831, 37737, 37738, 48577, 37739, 37740, 37741, 37742, 37743, 57077, 57080, 37744, 37745, 45739, 46244, 37746, 37747, 46314, 51622, 37748, 37749, 37750, 37751, 37752, 37753, 57078, 52177, 37754, 47331, 37755, 57079, 57082, 37756, 37757, 37758, 37760, 57081, 37761, 37762, 37763, 52418, 37764, 45281, 46318, 37765, 37766, 37767, 37768, 37769, 37770, 58810, 37771, 37772, 37773, 37774, 37775, 53423, 37776, 37777, 45803, 37778, 60321, 37779, 57076, 37780, 37781, 51683, 57075, 45274, 53921, 45559, 37782, 52399, 37783, 37784, 37785, 37786, 37787, 37788, 37789, 57072, 37790, 52132, 37791, 37792, 37793, 54698, 37794, 37795, 37796, 37797, 37798, 57083, 37799, 37800, 37801, 37802, 37803, 37804, 37805, 37806, 46301, 37807, 50342, 37808, 37809, 37810, 57085, 37811, 37812, 37813, 37814, 37815, 37816, 37817, 37818, 37819, 37820, 50174, 50337, 57249, 37821, 37822, 37823, 37824, 37825, 37826, 37827, 49612, 37828, 57084, 48879, 37829, 50866, 37830, 37831, 37832, 37833, 37834, 37835, 37836, 37837, 37838, 46021, 51446, 37839, 37840, 52154, 57086, 37841, 37842, 57252, 37843, 37844, 37845, 37846, 55218, 37847, 37848, 37849, 37850, 37851, 46007, 37852, 37853, 37854, 37855, 49603, 37856, 37857, 51147, 45733, 46313, 37858, 55211, 37859, 37860, 37861, 37862, 50412, 37863, 57250, 57251, 37864, 57253, 37865, 47795, 37866, 37867, 37868, 57254, 37869, 49374, 37870, 37871, 51651, 37872, 37873, 37874, 37875, 37876, 37877, 37878, 45785, 51174, 37879, 57255, 37880, 51164, 37881, 37882, 37883, 37884, 57256, 60322, 37885, 37886, 37952, 37953, 37954, 52179, 37955, 37956, 37957, 57258, 37958, 57257, 37959, 45761, 37960, 37961, 37962, 37963, 37964, 37965, 37966, 37967, 37968, 37969, 37970, 37971, 37972, 37973, 37974, 37975, 37976, 37977, 37978, 37979, 37980, 37981, 37982, 37983, 37984, 50634, 37985, 37986, 37987, 37988, 37989, 37990, 37991, 37992, 57259, 37993, 37994, 37995, 37996, 37997, 37998, 37999, 38000, 54492, 38001, 38002, 38003, 38004, 38005, 51393, 38006, 38007, 38008, 38009, 38010, 38011, 38012, 38013, 38014, 38016, 38017, 38018, 57260, 38019, 38020, 38021, 38022, 38023, 48880, 38024, 38025, 57261, 54951, 38026, 38027, 38028, 38029, 60087, 60342, 51925, 38030, 55548, 47300, 38031, 47525, 38032, 38033, 47045, 54782, 38034, 38035, 38036, 38037, 38038, 47562, 38039, 38040, 53415, 62669, 38041, 38042, 46544, 38043, 38044, 50164, 38045, 48840, 38046, 38047, 38048, 60343, 45245, 38049, 38050, 48588, 38051, 49586, 38052, 45526, 45992, 38053, 38054, 38055, 47314, 51618, 38056, 38057, 46808, 38058, 38059, 38060, 38061, 60344, 48820, 38062, 38063, 38064, 51965, 38065, 51139, 38066, 54779, 38067, 38068, 47091, 38069, 38070, 38071, 38072, 38073, 38074, 38075, 38076, 38077, 38078, 38079, 38080, 38081, 38082, 38083, 52932, 38084, 38085, 38086, 54699, 45555, 38087, 38088, 38089, 60595, 45279, 38090, 60597, 38091, 38092, 38093, 46775, 38094, 49615, 38095, 62970, 53425, 38096, 38097, 54757, 38098, 52947, 38099, 38100, 48623, 46050, 38101, 47275, 38102, 54710, 38103, 60861, 38104, 46799, 38105, 52153, 53442, 38106, 38107, 38108, 38109, 38110, 38111, 38112, 38113, 47037, 38114, 38115, 60598, 51881, 38116, 38117, 38118, 50644, 38119, 60601, 60600, 49859, 60599, 38120, 38121, 38122, 38123, 53501, 60602, 38124, 60603, 55269, 38125, 38126, 60604, 38127, 38128, 38129, 60605, 50924, 38130, 38131, 38132, 38133, 38134, 38135, 38136, 38137, 52958, 38138, 48328, 38139, 38140, 51413, 46505, 48841, 54972, 54503, 38141, 38142, 53678, 53489, 60088, 60089, 60090, 47797, 38208, 38209, 38210, 38211, 51889, 49141, 38212, 38213, 52730, 38214, 38215, 38216, 38217, 38218, 60096, 38219, 45242, 60094, 38220, 38221, 49317, 38222, 38223, 38224, 60091, 38225, 45821, 38226, 50167, 48104, 38227, 38228, 38229, 53975, 52980, 60095, 38230, 38231, 38232, 60092, 38233, 38234, 38235, 60099, 38236, 53447, 54195, 38237, 38238, 38239, 38240, 46266, 38241, 50113, 55282, 38242, 38243, 38244, 38245, 54737, 38246, 51911, 38247, 60101, 38248, 38249, 60100, 60103, 60102, 38250, 38251, 38252, 38253, 38254, 55015, 38255, 53204, 38256, 38257, 60107, 38258, 48078, 38259, 38260, 38261, 38262, 38263, 38264, 38265, 48634, 51662, 38266, 38267, 60108, 38268, 38269, 51641, 53246, 60106, 54478, 60109, 60111, 38270, 38272, 52717, 38273, 38274, 38275, 38276, 60105, 38277, 60110, 38278, 38279, 52974, 38280, 48094, 38281, 46015, 38282, 38283, 38284, 38285, 38286, 50901, 48816, 52986, 38287, 38288, 38289, 51175, 38290, 48807, 60112, 38291, 38292, 54983, 38293, 38294, 38295, 49600, 38296, 38297, 38298, 54493, 38299, 60113, 38300, 38301, 53182, 38302, 38303, 38304, 38305, 60114, 38306, 38307, 38308, 38309, 51950, 38310, 38311, 38312, 38313, 50607, 45237, 38314, 38315, 38316, 38317, 38318, 60116, 38319, 38320, 38321, 38322, 38323, 38324, 38325, 38326, 38327, 60115, 62687, 38328, 38329, 38330, 38331, 38332, 50362, 38333, 38334, 38335, 38336, 38337, 45481, 38338, 38339, 38340, 38341, 58847, 38342, 38343, 38344, 38345, 60117, 38346, 38347, 38348, 38349, 38350, 38351, 38352, 38353, 38354, 38355, 38356, 38357, 38358, 38359, 38360, 38361, 38362, 38363, 38364, 38365, 38366, 38367, 38368, 38369, 38370, 38371, 51951, 38372, 60118, 60119, 50904, 38373, 38374, 38375, 38376, 38377, 38378, 38379, 38380, 60120, 38381, 38382, 60121, 38383, 38384, 38385, 38386, 38387, 38388, 54459, 38389, 51194, 53943, 47356, 38390, 38391, 60098, 38392, 45788, 38393, 38394, 49916, 38395, 54520, 52454, 55278, 38396, 38397, 38398, 38464, 38465, 38466, 38467, 54466, 54224, 60355, 50675, 38468, 47102, 38469, 38470, 60372, 38471, 38472, 38473, 52151, 60382, 38474, 49354, 38475, 38476, 38477, 52731, 38478, 45999, 38479, 50906, 38480, 38481, 38482, 38483, 38484, 38485, 60412, 38486, 50366, 38487, 52916, 50345, 45502, 54525, 38488, 51957, 38489, 55020, 38490, 38491, 50899, 46820, 38492, 38493, 38494, 38495, 48122, 38496, 38497, 53472, 38498, 38499, 51633, 38500, 54483, 51368, 38501, 38502, 47307, 38503, 59582, 51644, 38504, 38505, 59579, 38506, 49390, 53459, 45764, 46309, 38507, 59580, 38508, 38509, 54728, 38510, 38511, 38512, 38513, 38514, 46789, 38515, 59581, 51960, 47324, 52469, 38516, 38517, 38518, 49332, 38519, 38520, 53742, 59583, 59586, 38521, 38522, 47804, 38523, 45485, 48604, 38524, 60093, 59587, 38525, 59590, 38526, 59595, 38528, 38529, 38530, 38531, 59596, 38532, 52169, 45285, 38533, 48299, 38534, 38535, 47545, 38536, 38537, 59585, 38538, 52727, 38539, 59594, 38540, 38541, 38542, 38543, 52982, 38544, 38545, 38546, 38547, 54765, 38548, 49622, 59588, 38549, 50102, 38550, 47611, 54950, 59592, 38551, 38552, 38553, 51936, 54502, 38554, 59584, 38555, 59589, 59591, 38556, 51129, 47075, 38557, 59593, 38558, 49117, 59602, 38559, 38560, 59607, 38561, 59605, 48348, 48335, 59611, 38562, 38563, 38564, 38565, 38566, 38567, 38568, 38569, 59614, 38570, 59610, 45562, 38571, 38572, 38573, 38574, 38575, 38576, 38577, 38578, 38579, 38580, 45272, 50355, 47308, 50914, 51390, 51425, 38581, 38582, 38583, 59599, 59604, 59606, 38584, 47601, 59608, 55285, 38585, 50427, 38586, 59612, 38587, 38588, 45801, 38589, 38590, 38591, 59601, 38592, 38593, 48365, 38594, 38595, 49090, 59597, 55033, 38596, 49656, 45809, 38597, 38598, 38599, 38600, 38601, 38602, 38603, 38604, 59615, 38605, 51905, 59609, 38606, 38607, 38608, 38609, 54692, 38610, 45546, 54715, 59598, 59600, 46768, 59603, 38611, 59613, 49336, 38612, 51959, 38613, 52136, 38614, 38615, 50908, 49397, 38616, 38617, 38618, 38619, 38620, 59625, 38621, 38622, 38623, 53411, 38624, 38625, 38626, 38627, 38628, 38629, 38630, 59634, 55018, 38631, 38632, 38633, 38634, 38635, 38636, 38637, 59616, 59617, 38638, 38639, 38640, 53753, 47819, 47353, 38641, 38642, 47345, 54484, 59631, 38643, 59630, 59628, 47600, 52434, 59622, 52902, 49138, 38644, 45240, 59633, 59632, 38645, 55232, 38646, 59620, 38647, 52649, 51619, 38648, 48056, 48603, 59626, 38649, 38650, 38651, 38652, 38653, 38654, 38720, 38721, 38722, 38723, 59618, 59619, 59621, 46517, 59623, 51141, 59627, 59629, 48560, 55214, 38724, 59640, 38725, 38726, 38727, 38728, 38729, 38730, 38731, 38732, 59637, 38733, 52656, 59638, 38734, 38735, 38736, 38737, 38738, 38739, 38740, 38741, 38742, 49594, 38743, 59624, 38744, 50103, 45296, 38745, 38746, 38747, 38748, 38749, 38750, 38751, 38752, 59636, 38753, 38754, 38755, 59639, 38756, 38757, 38758, 47523, 38759, 38760, 38761, 38762, 38763, 38764, 38765, 38766, 38767, 38768, 51666, 38769, 38770, 38771, 50126, 52960, 49382, 38772, 38773, 38774, 38775, 52211, 38776, 52445, 53429, 38777, 38778, 51937, 38779, 59635, 38780, 38781, 38782, 38784, 38785, 38786, 38787, 38788, 38789, 38790, 48364, 38791, 59641, 38792, 38793, 38794, 38795, 38796, 38797, 50142, 38798, 50917, 38799, 47607, 38800, 38801, 38802, 38803, 45300, 38804, 38805, 55256, 38806, 38807, 48300, 38808, 50671, 38809, 38810, 38811, 38812, 38813, 52420, 38814, 38815, 59814, 38816, 38817, 38818, 38819, 38820, 38821, 38822, 38823, 38824, 38825, 51629, 38826, 59810, 49378, 38827, 38828, 38829, 49091, 38830, 38831, 38832, 59646, 47575, 38833, 59643, 38834, 38835, 38836, 38837, 59812, 38838, 38839, 38840, 53966, 38841, 38842, 38843, 38844, 38845, 59811, 38846, 54962, 55221, 38847, 59815, 38848, 48567, 38849, 38850, 38851, 38852, 38853, 38854, 38855, 38856, 38857, 38858, 38859, 38860, 59644, 59645, 38861, 38862, 38863, 59809, 38864, 38865, 38866, 38867, 38868, 38869, 38870, 38871, 52694, 38872, 38873, 53932, 38874, 38875, 38876, 59826, 38877, 38878, 38879, 38880, 59817, 38881, 38882, 38883, 46250, 38884, 46267, 38885, 38886, 59819, 38887, 38888, 38889, 38890, 38891, 38892, 38893, 38894, 38895, 38896, 38897, 38898, 38899, 38900, 38901, 38902, 38903, 53416, 38904, 38905, 59813, 38906, 38907, 46078, 38908, 38909, 59820, 49379, 38910, 59818, 38976, 38977, 59833, 38978, 38979, 59832, 38980, 38981, 38982, 38983, 59822, 38984, 38985, 59642, 38986, 38987, 59816, 38988, 38989, 38990, 38991, 38992, 49068, 59825, 59834, 38993, 38994, 49829, 38995, 38996, 38997, 59823, 38998, 47301, 38999, 59821, 39000, 54236, 59828, 59829, 59831, 39001, 39002, 39003, 59847, 39004, 39005, 39006, 39007, 39008, 39009, 49350, 59845, 39010, 39011, 59824, 39012, 39013, 59835, 45297, 39014, 39015, 39016, 39017, 39018, 39019, 39020, 39021, 39022, 39023, 59836, 54693, 39024, 39025, 59838, 39026, 59839, 39027, 39028, 39029, 59841, 39030, 39031, 49649, 39032, 39033, 51382, 39034, 39035, 39036, 59837, 39037, 39038, 39040, 39041, 39042, 59842, 39043, 39044, 39045, 39046, 39047, 39048, 39049, 39050, 59843, 39051, 59827, 39052, 59830, 39053, 48049, 39054, 39055, 39056, 59840, 39057, 39058, 39059, 39060, 39061, 39062, 48375, 39063, 39064, 39065, 59844, 59846, 39066, 39067, 39068, 39069, 39070, 39071, 39072, 39073, 39074, 39075, 39076, 39077, 59850, 39078, 39079, 39080, 39081, 59854, 39082, 39083, 39084, 39085, 39086, 39087, 39088, 39089, 39090, 39091, 45787, 39092, 59848, 39093, 39094, 39095, 39096, 39097, 39098, 39099, 39100, 39101, 39102, 47022, 39103, 39104, 39105, 39106, 39107, 39108, 39109, 39110, 39111, 39112, 39113, 39114, 59851, 59852, 39115, 39116, 39117, 39118, 39119, 39120, 54721, 39121, 50339, 39122, 39123, 39124, 39125, 39126, 39127, 59864, 39128, 47841, 39129, 39130, 39131, 39132, 59849, 39133, 54179, 39134, 39135, 39136, 59860, 39137, 39138, 39139, 39140, 39141, 39142, 39143, 59863, 59856, 39144, 39145, 39146, 39147, 39148, 59855, 39149, 39150, 51137, 39151, 39152, 39153, 39154, 39155, 39156, 39157, 39158, 59858, 39159, 39160, 39161, 39162, 39163, 39164, 39165, 59865, 46024, 39166, 59859, 39232, 39233, 39234, 39235, 39236, 53232, 39237, 39238, 39239, 59853, 39240, 39241, 39242, 39243, 39244, 39245, 39246, 39247, 39248, 39249, 39250, 46071, 39251, 39252, 39253, 39254, 39255, 39256, 39257, 59862, 39258, 39259, 59866, 39260, 39261, 39262, 52404, 39263, 39264, 39265, 53165, 39266, 39267, 39268, 39269, 39270, 39271, 39272, 39273, 39274, 59861, 39275, 59868, 59867, 39276, 39277, 39278, 39279, 39280, 59870, 39281, 39282, 39283, 39284, 39285, 39286, 39287, 39288, 59857, 39289, 39290, 39291, 39292, 39293, 39294, 39296, 39297, 59869, 39298, 59871, 50122, 39299, 39300, 39301, 39302, 39303, 39304, 39305, 39306, 39307, 39308, 39309, 39310, 39311, 39312, 39313, 39314, 39315, 39316, 39317, 39318, 39319, 39320, 39321, 39322, 39323, 39324, 39325, 39326, 39327, 39328, 39329, 39330, 39331, 39332, 39333, 39334, 39335, 39336, 39337, 39338, 39339, 39340, 39341, 39342, 39343, 39344, 39345, 39346, 39347, 39348, 39349, 39350, 39351, 39352, 39353, 39354, 39355, 39356, 39357, 39358, 39359, 39360, 39361, 39362, 39363, 39364, 39365, 39366, 39367, 39368, 39369, 39370, 39371, 39372, 39373, 39374, 39375, 39376, 39377, 39378, 39379, 39380, 39381, 39382, 39383, 39384, 39385, 39386, 39387, 39388, 39389, 39390, 39391, 39392, 39393, 39394, 39395, 39396, 39397, 39398, 39399, 39400, 39401, 39402, 39403, 39404, 39405, 39406, 39407, 39408, 39409, 39410, 39411, 39412, 39413, 51127, 46286, 48054, 53440, 60579, 39414, 39415, 50615, 39416, 39417, 39418, 39419, 39420, 39421, 39422, 39488, 39489, 39490, 54267, 39491, 39492, 39493, 39494, 60580, 39495, 60581, 50907, 39496, 39497, 39498, 49134, 39499, 39500, 39501, 39502, 60582, 39503, 39504, 60583, 53418, 39505, 51128, 39506, 39507, 47336, 39508, 39509, 39510, 39511, 39512, 39513, 39514, 39515, 39516, 39517, 39518, 39519, 60584, 39520, 39521, 39522, 39523, 39524, 39525, 39526, 39527, 54969, 54781, 46283, 45757, 52964, 50919, 39528, 39529, 52705, 39530, 39531, 39532, 39533, 39534, 39535, 39536, 39537, 39538, 39539, 39540, 39541, 39542, 39543, 46325, 39544, 52160, 48351, 39545, 39546, 39547, 39548, 59874, 59875, 53738, 59877, 39549, 46329, 59876, 39550, 53683, 51938, 45776, 39552, 59880, 39553, 39554, 39555, 39556, 59878, 59879, 39557, 39558, 54963, 39559, 39560, 39561, 59881, 59882, 39562, 39563, 39564, 39565, 39566, 59883, 39567, 39568, 39569, 39570, 39571, 39572, 39573, 39574, 59884, 39575, 39576, 39577, 39578, 39579, 39580, 39581, 39582, 60591, 50617, 46798, 39583, 54003, 39584, 39585, 39586, 39587, 39588, 39589, 39590, 46574, 39591, 48089, 60593, 39592, 39593, 53987, 39594, 39595, 39596, 39597, 39598, 52963, 39599, 50360, 39600, 50111, 39601, 39602, 46782, 55481, 45512, 45519, 45521, 50686, 39603, 45520, 39604, 50091, 39605, 39606, 39607, 39608, 39609, 54705, 39610, 39611, 39612, 39613, 39614, 39615, 39616, 39617, 60324, 47809, 39618, 39619, 39620, 52410, 39621, 39622, 39623, 60325, 39624, 60327, 39625, 39626, 39627, 60328, 39628, 39629, 39630, 60326, 39631, 39632, 39633, 39634, 39635, 39636, 39637, 60329, 60331, 60330, 39638, 39639, 39640, 39641, 39642, 60332, 39643, 51919, 55477, 50161, 39644, 50085, 50936, 60333, 50378, 39645, 60334, 60335, 60336, 47061, 39646, 39647, 39648, 47098, 39649, 60337, 51170, 39650, 60339, 39651, 47780, 53749, 45233, 60338, 60340, 39652, 39653, 39654, 46506, 49864, 51176, 39655, 60341, 39656, 52142, 58335, 39657, 39658, 54208, 39659, 39660, 39661, 39662, 55771, 39663, 39664, 52641, 54957, 51187, 39665, 39666, 39667, 55776, 48099, 39668, 47802, 58338, 39669, 39670, 39671, 39672, 39673, 53163, 39674, 39675, 39676, 58336, 51655, 39677, 47801, 39678, 39744, 39745, 53684, 58337, 51434, 47535, 48557, 46040, 52955, 39746, 39747, 52416, 39748, 39749, 39750, 58344, 58345, 52724, 39751, 39752, 39753, 39754, 39755, 52397, 39756, 48307, 39757, 58346, 39758, 58347, 39759, 39760, 53466, 39761, 39762, 39763, 50939, 47066, 39764, 39765, 51167, 53962, 52950, 39766, 58340, 58348, 39767, 51698, 46017, 39768, 39769, 58343, 39770, 39771, 50915, 58341, 39772, 39773, 60851, 58342, 39774, 39775, 39776, 39777, 51635, 39778, 50662, 39779, 39780, 39781, 47541, 39782, 50107, 39783, 58339, 50621, 49572, 49881, 45783, 39784, 58349, 48038, 50349, 39785, 58352, 48858, 39786, 39787, 58363, 58357, 47827, 39788, 39789, 39790, 39791, 47056, 54221, 39792, 54990, 54739, 47553, 54708, 53720, 39793, 39794, 39795, 39796, 53433, 51190, 39797, 39798, 39799, 51370, 45748, 39800, 50138, 39801, 39802, 39803, 58350, 39804, 39805, 58364, 58351, 47016, 58359, 58356, 39806, 39808, 39809, 47034, 39810, 39811, 50594, 39812, 58358, 50653, 45736, 50940, 39813, 50400, 39814, 39815, 55202, 39816, 49377, 58361, 39817, 39818, 58362, 58365, 52393, 58355, 39819, 54206, 39820, 45507, 60852, 58353, 58354, 39821, 58360, 53434, 50883, 54515, 58366, 39822, 39823, 48608, 39824, 39825, 58535, 39826, 39827, 58534, 39828, 39829, 39830, 53747, 58531, 39831, 58537, 39832, 39833, 39834, 51447, 39835, 39836, 39837, 39838, 53172, 39839, 58536, 58542, 49893, 39840, 39841, 46772, 39842, 39843, 39844, 39845, 39846, 39847, 48626, 39848, 58530, 39849, 39850, 47849, 58538, 39851, 39852, 58540, 39853, 39854, 46845, 55006, 58546, 39855, 58541, 39856, 39857, 39858, 58529, 39859, 48110, 52701, 51106, 50633, 39860, 39861, 49655, 39862, 58532, 39863, 51123, 48556, 48573, 58533, 39864, 55239, 45794, 39865, 58539, 48323, 58543, 39866, 48107, 58544, 50600, 58545, 39867, 39868, 39869, 39870, 54755, 49059, 39871, 58554, 39872, 58551, 39873, 58555, 39874, 39875, 58557, 39876, 39877, 50902, 39878, 39879, 47814, 49355, 39880, 39881, 39882, 47265, 58548, 39883, 39884, 39885, 39886, 54433, 39887, 39888, 47779, 48638, 39889, 39890, 39891, 58556, 39892, 39893, 39894, 39895, 39896, 52671, 39897, 39898, 50425, 39899, 39900, 53243, 51686, 39901, 39902, 54207, 39903, 53201, 39904, 39905, 58547, 39906, 58552, 58553, 52457, 39907, 39908, 39909, 39910, 39911, 52430, 39912, 49364, 58549, 49584, 58550, 52944, 39913, 48065, 46547, 39914, 51443, 48551, 54727, 51628, 47266, 58570, 39915, 39916, 58572, 53700, 39917, 39918, 53946, 39919, 39920, 47789, 39921, 39922, 47828, 39923, 39924, 39925, 39926, 39927, 39928, 58563, 46573, 39929, 39930, 39931, 55245, 58560, 53245, 58559, 39932, 39933, 39934, 49628, 52426, 40000, 40001, 40002, 40003, 51943, 40004, 40005, 40006, 40007, 50391, 40008, 52436, 58568, 40009, 40010, 40011, 58567, 58561, 40012, 58564, 46509, 40013, 40014, 54233, 40015, 58566, 40016, 40017, 40018, 40019, 54009, 46307, 40020, 48052, 40021, 40022, 51694, 40023, 46270, 40024, 40025, 40026, 48108, 40027, 53709, 40028, 52461, 60853, 40029, 40030, 40031, 40032, 40033, 40034, 40035, 40036, 51173, 40037, 40038, 40039, 40040, 54440, 40041, 58571, 55253, 58562, 40042, 48549, 58565, 40043, 40044, 54246, 40045, 58569, 51704, 40046, 40047, 58558, 40048, 40049, 54245, 40050, 40051, 51198, 46793, 40052, 54524, 45747, 58583, 40053, 40054, 40055, 52930, 40056, 58573, 40057, 52924, 40058, 47323, 40059, 40060, 58582, 40061, 49098, 40062, 40064, 40065, 54222, 40066, 50156, 40067, 40068, 40069, 40070, 40071, 40072, 40073, 40074, 50632, 58584, 40075, 40076, 40077, 40078, 40079, 40080, 40081, 40082, 52676, 58575, 40083, 40084, 40085, 40086, 58580, 58581, 40087, 47870, 40088, 53222, 40089, 40090, 54719, 40091, 40092, 40093, 58578, 40094, 40095, 40096, 40097, 40098, 40099, 40100, 40101, 40102, 40103, 40104, 58576, 40105, 40106, 58574, 40107, 40108, 40109, 40110, 40111, 40112, 40113, 40114, 40115, 40116, 40117, 40118, 40119, 40120, 40121, 52709, 51882, 40122, 40123, 40124, 49315, 40125, 48550, 58579, 40126, 40127, 47304, 40128, 40129, 40130, 40131, 40132, 58599, 54452, 40133, 40134, 40135, 40136, 40137, 40138, 40139, 58587, 40140, 40141, 40142, 49647, 40143, 40144, 58601, 40145, 40146, 53991, 40147, 40148, 58591, 40149, 58592, 40150, 40151, 53162, 40152, 40153, 40154, 40155, 52189, 40156, 58586, 58577, 40157, 58597, 40158, 51420, 58595, 40159, 40160, 50407, 58594, 40161, 58593, 40162, 40163, 40164, 46076, 58600, 40165, 40166, 40167, 40168, 46561, 40169, 40170, 40171, 55244, 40172, 40173, 40174, 58598, 40175, 48044, 40176, 55250, 52431, 60408, 40177, 58596, 40178, 40179, 47606, 40180, 40181, 40182, 54989, 58585, 58588, 49914, 58590, 40183, 49867, 49348, 49872, 40184, 45557, 52402, 40185, 40186, 40187, 40188, 40189, 40190, 40256, 40257, 40258, 40259, 46542, 40260, 40261, 40262, 40263, 58607, 40264, 40265, 40266, 40267, 40268, 40269, 40270, 40271, 50863, 40272, 40273, 40274, 50913, 40275, 40276, 58613, 40277, 40278, 40279, 40280, 40281, 49833, 40282, 40283, 40284, 49388, 53725, 58606, 40285, 40286, 40287, 40288, 40289, 40290, 40291, 40292, 40293, 40294, 50350, 40295, 40296, 40297, 58605, 40298, 40299, 40300, 40301, 58614, 58612, 49918, 40302, 58589, 40303, 58608, 40304, 51966, 40305, 54724, 40306, 40307, 58609, 40308, 40309, 40310, 40311, 40312, 40313, 40314, 53754, 40315, 40316, 40317, 40318, 40320, 40321, 40322, 58603, 58604, 40323, 40324, 40325, 58610, 40326, 52907, 40327, 40328, 40329, 40330, 40331, 40332, 40333, 40334, 40335, 40336, 50635, 40337, 40338, 40339, 51121, 40340, 49850, 40341, 40342, 40343, 58602, 40344, 40345, 40346, 49610, 40347, 40348, 40349, 40350, 40351, 40352, 52406, 46001, 40353, 40354, 40355, 58619, 40356, 58611, 40357, 40358, 40359, 58618, 40360, 58621, 40361, 58620, 40362, 40363, 40364, 40365, 40366, 40367, 40368, 46030, 40369, 40370, 40371, 46010, 58615, 40372, 40373, 58617, 58616, 50668, 40374, 40375, 40376, 40377, 40378, 40379, 40380, 40381, 40382, 40383, 40384, 40385, 40386, 49341, 40387, 40388, 40389, 40390, 54504, 40391, 40392, 40393, 40394, 40395, 58786, 40396, 40397, 40398, 40399, 40400, 40401, 40402, 40403, 40404, 40405, 40406, 45252, 40407, 40408, 58788, 40409, 40410, 58787, 40411, 40412, 40413, 40414, 40415, 40416, 48292, 40417, 58789, 40418, 40419, 40420, 40421, 40422, 40423, 58785, 40424, 40425, 40426, 40427, 40428, 40429, 40430, 58622, 45556, 40431, 40432, 40433, 40434, 40435, 40436, 40437, 40438, 40439, 40440, 40441, 58792, 40442, 58793, 58790, 40443, 40444, 40445, 40446, 40512, 40513, 40514, 40515, 40516, 40517, 40518, 40519, 58791, 58794, 40520, 40521, 40522, 40523, 40524, 40525, 40526, 40527, 40528, 40529, 40530, 40531, 40532, 40533, 40534, 40535, 40536, 40537, 40538, 40539, 40540, 40541, 40542, 40543, 40544, 40545, 40546, 40547, 40548, 40549, 40550, 40551, 40552, 50905, 40553, 40554, 40555, 40556, 40557, 40558, 40559, 40560, 58795, 58797, 40561, 40562, 40563, 40564, 40565, 40566, 40567, 58796, 40568, 40569, 40570, 40571, 40572, 40573, 40574, 40576, 40577, 40578, 40579, 40580, 40581, 40582, 40583, 40584, 40585, 58799, 40586, 40587, 40588, 58798, 40589, 40590, 40591, 40592, 40593, 40594, 40595, 40596, 40597, 40598, 40599, 40600, 40601, 40602, 40603, 40604, 40605, 40606, 47584, 40607, 40608, 58800, 40609, 40610, 40611, 40612, 40613, 40614, 40615, 40616, 40617, 40618, 40619, 40620, 40621, 40622, 58801, 40623, 40624, 40625, 40626, 40627, 40628, 40629, 40630, 40631, 40632, 40633, 40634, 48112, 60641, 50160, 40635, 46534, 48082, 40636, 40637, 40638, 40639, 49641, 54510, 40640, 48836, 40641, 40642, 40643, 55238, 40644, 54486, 45779, 60606, 40645, 40646, 40647, 40648, 60097, 40649, 40650, 40651, 49839, 46262, 40652, 40653, 40654, 53719, 40655, 40656, 40657, 46004, 40658, 51378, 49083, 60608, 40659, 40660, 54987, 40661, 40662, 60607, 60609, 40663, 40664, 40665, 40666, 40667, 40668, 40669, 40670, 40671, 40672, 40673, 40674, 40675, 60613, 48870, 52415, 50650, 48828, 40676, 60614, 40677, 45566, 40678, 40679, 40680, 60612, 54696, 46563, 40681, 60610, 49590, 46051, 40682, 40683, 60611, 52152, 49347, 52478, 40684, 40685, 40686, 40687, 49618, 40688, 60616, 40689, 40690, 40691, 40692, 40693, 40694, 40695, 40696, 40697, 40698, 40699, 40700, 40701, 47846, 49363, 40702, 55026, 40768, 40769, 40770, 53708, 40771, 40772, 40773, 40774, 49086, 40775, 47027, 51669, 60615, 48098, 40776, 52428, 48637, 51400, 40777, 53161, 40778, 40779, 40780, 40781, 40782, 40783, 40784, 52713, 40785, 50667, 40786, 40787, 40788, 47081, 40789, 40790, 40791, 40792, 40793, 40794, 40795, 40796, 40797, 40798, 40799, 53705, 47800, 40800, 40801, 40802, 40803, 40804, 60617, 40805, 40806, 60618, 40807, 48064, 60619, 40808, 60642, 45498, 47065, 40809, 40810, 40811, 40812, 40813, 40814, 40815, 40816, 40817, 40818, 40819, 48569, 40820, 40821, 40822, 40823, 40824, 40825, 40826, 40827, 60620, 53734, 60621, 40828, 40829, 40830, 40832, 51387, 40833, 40834, 40835, 40836, 40837, 40838, 40839, 40840, 40841, 40842, 40843, 40844, 40845, 40846, 60625, 40847, 40848, 40849, 40850, 60627, 40851, 48077, 40852, 48357, 40853, 40854, 40855, 40856, 40857, 40858, 40859, 40860, 40861, 40862, 40863, 40864, 40865, 60623, 40866, 51639, 40867, 40868, 40869, 40870, 40871, 50106, 40872, 60643, 54741, 60624, 40873, 40874, 40875, 40876, 40877, 55027, 40878, 40879, 40880, 60626, 60622, 40881, 40882, 40883, 40884, 60628, 40885, 60629, 40886, 40887, 51647, 40888, 40889, 40890, 40891, 40892, 40893, 53160, 40894, 40895, 40896, 40897, 40898, 53468, 40899, 40900, 40901, 40902, 53676, 40903, 40904, 40905, 40906, 51419, 40907, 40908, 40909, 60630, 52981, 40910, 40911, 40912, 40913, 40914, 51948, 60634, 40915, 40916, 40917, 40918, 40919, 40920, 40921, 60633, 40922, 40923, 40924, 45246, 40925, 40926, 40927, 40928, 40929, 40930, 60631, 40931, 60632, 40932, 40933, 40934, 60644, 40935, 40936, 40937, 40938, 40939, 40940, 40941, 40942, 40943, 51388, 40944, 40945, 40946, 40947, 40948, 40949, 40950, 40951, 40952, 40953, 49607, 40954, 40955, 40956, 40957, 40958, 60636, 53728, 41024, 41025, 41026, 41027, 41028, 41029, 41030, 41031, 41032, 41033, 60635, 41034, 41035, 41036, 41037, 54511, 41038, 60637, 41039, 41040, 41041, 41042, 41043, 41044, 56262, 41045, 41046, 41047, 41048, 41049, 41050, 41051, 41052, 41053, 41054, 60638, 41055, 41056, 41057, 41058, 41059, 41060, 41061, 41062, 41063, 41064, 41065, 41066, 45484, 41067, 41068, 41069, 41070, 41071, 41072, 41073, 41074, 41075, 41076, 41077, 41078, 41079, 41080, 41081, 41082, 41083, 41084, 41085, 41086, 41088, 41089, 60639, 41090, 41091, 41092, 41093, 41094, 41095, 41096, 41097, 41098, 41099, 60640, 41100, 55206, 41101, 50624, 41102, 41103, 41104, 60348, 45230, 41105, 41106, 41107, 48884, 47288, 53935, 45270, 46585, 41108, 55475, 41109, 52140, 41110, 58333, 41111, 41112, 41113, 41114, 41115, 41116, 41117, 50860, 45286, 41118, 41119, 41120, 50630, 60345, 41121, 41122, 41123, 41124, 60346, 41125, 41126, 41127, 60347, 41128, 41129, 53696, 41130, 50595, 41131, 60146, 41132, 50354, 41133, 50357, 49358, 41134, 41135, 41136, 60147, 50369, 41137, 52975, 41138, 41139, 41140, 41141, 60144, 60148, 41142, 41143, 51708, 41144, 41145, 51107, 41146, 41147, 41148, 52440, 52990, 41149, 41150, 41151, 60149, 60150, 53164, 49383, 41152, 41153, 60151, 41154, 41155, 41156, 41157, 41158, 46783, 60152, 41159, 60153, 41160, 60154, 41161, 41162, 60155, 41163, 41164, 41165, 41166, 41167, 41168, 41169, 41170, 41171, 41172, 41173, 41174, 60145, 41175, 41176, 41177, 41178, 41179, 41180, 41181, 41182, 41183, 41184, 41185, 41186, 51374, 57835, 41187, 47032, 57836, 41188, 41189, 41190, 57837, 41191, 55220, 57838, 57839, 54220, 41192, 41193, 41194, 41195, 41196, 41197, 41198, 57841, 49137, 57840, 46546, 41199, 41200, 41201, 45495, 41202, 41203, 41204, 41205, 57843, 57842, 41206, 47868, 41207, 57844, 41208, 41209, 41210, 41211, 47543, 41212, 48849, 41213, 41214, 43584, 43585, 50428, 43586, 47837, 48582, 43587, 43588, 43589, 43590, 43591, 43592, 57845, 57847, 43593, 43594, 46784, 53185, 51880, 57846, 54776, 54268, 57848, 57852, 57849, 43595, 43596, 57850, 49386, 43597, 57854, 58017, 49351, 43598, 43599, 43600, 43601, 57851, 43602, 57853, 43603, 43604, 43605, 43606, 43607, 43608, 58021, 43609, 43610, 43611, 49620, 43612, 43613, 43614, 43615, 58019, 43616, 58024, 45822, 58018, 43617, 43618, 43619, 50125, 45762, 58023, 58022, 43620, 43621, 58020, 58025, 43622, 43623, 58027, 43624, 43625, 43626, 53449, 55021, 50088, 58028, 43627, 53207, 43628, 43629, 58030, 43630, 43631, 47855, 43632, 43633, 59872, 58029, 58026, 43634, 43635, 43636, 43637, 48043, 54451, 43638, 43639, 43640, 43641, 43642, 43643, 43644, 43645, 43646, 43648, 43649, 43650, 43651, 58032, 43652, 43653, 58031, 43654, 59873, 43655, 43656, 43657, 43658, 58033, 43659, 43660, 43661, 43662, 43663, 43664, 43665, 43666, 58034, 43667, 43668, 43669, 43670, 43671, 43672, 43673, 43674, 43675, 43676, 43677, 58035, 52385, 43678, 58036, 43679, 43680, 43840, 43841, 43842, 43843, 43844, 43845, 43846, 43847, 43848, 43849, 43850, 43851, 58037, 43852, 43853, 43854, 43855, 43856, 53502, 43857, 43858, 49866, 43859, 54257, 43860, 52725, 43861, 43862, 59360, 43863, 43864, 59361, 43865, 43866, 43867, 43868, 48833, 43869, 43870, 43871, 43872, 49898, 43873, 43874, 43875, 59364, 43876, 43877, 59363, 43878, 43879, 43880, 43881, 43882, 43883, 52710, 43884, 50101, 43885, 43886, 59362, 48055, 53206, 43887, 49633, 59369, 43888, 43889, 43890, 59368, 43891, 43892, 59380, 45731, 43893, 43894, 43895, 43896, 59370, 43897, 59366, 43898, 43899, 43900, 43901, 43902, 59372, 59371, 51642, 43904, 43905, 54756, 43906, 59365, 47017, 59367, 43907, 43908, 43909, 43910, 43911, 43912, 43913, 59374, 43914, 43915, 43916, 43917, 59379, 43918, 55017, 43919, 43920, 43921, 43922, 59373, 43923, 59378, 43924, 59377, 43925, 43926, 43927, 45280, 43928, 43929, 43930, 43931, 59381, 43932, 43933, 43934, 43935, 43936, 44096, 44097, 44098, 44099, 44100, 44101, 44102, 44103, 44104, 44105, 44106, 51186, 44107, 49349, 49389, 44108, 44109, 49648, 59376, 44110, 44111, 44112, 44113, 59382, 52214, 44114, 44115, 44116, 44117, 44118, 44119, 44120, 44121, 44122, 59554, 59553, 44123, 44124, 44125, 44126, 44127, 44128, 55233, 44129, 44130, 59386, 59385, 44131, 59387, 44132, 59383, 44133, 59390, 44134, 59389, 44135, 59388, 44136, 44137, 49621, 51161, 50685, 50627, 44138, 44139, 44140, 44141, 44142, 51181, 44143, 44144, 44145, 44146, 59555, 44147, 44148, 44149, 44150, 44151, 44152, 44153, 44154, 44155, 44156, 44157, 44158, 44160, 44161, 44162, 44163, 44164, 44165, 44166, 59558, 44167, 59557, 44168, 59559, 47863, 59384, 59556, 44169, 51440, 51626, 44170, 44171, 44172, 44173, 44174, 44175, 44176, 44177, 44178, 44179, 44180, 44181, 44182, 59561, 44183, 44184, 47589, 44185, 44186, 44187, 44188, 44189, 53758, 59560, 44190, 44191, 44192, 44352, 44353, 44354, 59562, 44355, 59565, 59566, 44356, 49575, 44357, 44358, 44359, 59567, 44360, 44361, 44362, 59568, 44363, 44364, 59564, 44365, 59572, 44366, 44367, 44368, 44369, 44370, 44371, 44372, 44373, 44374, 44375, 44376, 59563, 44377, 59569, 44378, 44379, 44380, 44381, 44382, 44383, 44384, 44385, 59573, 59570, 59571, 44386, 44387, 44388, 44389, 44390, 44391, 44392, 44393, 44394, 44395, 44396, 44397, 44398, 44399, 44400, 44401, 59575, 44402, 44403, 44404, 44405, 44406, 44407, 44408, 44409, 44410, 44411, 44412, 44413, 44414, 44416, 44417, 44418, 44419, 44420, 44421, 44422, 44423, 44424, 44425, 59574, 44426, 44427, 44428, 44429, 44430, 44431, 44432, 44433, 44434, 47567, 44435, 61612, 44436, 61613, 44437, 50864, 45290, 51391, 44438, 52703, 44439, 44440, 44441, 44442, 44443, 44444, 44445, 52941, 60081, 44446, 44447, 44448, 44608, 60082, 44609, 50879, 46281, 44610, 44611, 44612, 44613, 44614, 44615, 44616, 60083, 44617, 44618, 44619, 44620, 54759, 44621, 44622, 44623, 44624, 44625, 44626, 44627, 44628, 56825, 44629, 60084, 44630, 60085, 44631, 60086, 44632, 44633, 44634, 44635, 47306, 57264, 51701, 44636, 52464, 44637, 44638, 51706, 44639, 44640, 44641, 44642, 44643, 51707, 44644, 44645, 54211, 52134, 44646, 47270, 61614, 45506, 44647, 58808, 52463, 54217, 48343, 51690, 44648, 46567, 44649, 50384, 46569, 44650, 61102, 48045, 44651, 44652, 59358, 44653, 61103, 44654, 44655, 44656, 44657, 45993, 44658, 44659, 61106, 44660, 44661, 61105, 48615, 44662, 61104, 52919, 44663, 44664, 44665, 44666, 50639, 44667, 44668, 44669, 44670, 49652, 56270, 61107, 53491, 44672, 44673, 44674, 44675, 44676, 44677, 44678, 44679, 49876, 50920, 44680, 44681, 44682, 47020, 44683, 44684, 44685, 44686, 44687, 44688, 44689, 61108, 44690, 46059, 44691, 44692, 44693, 48123, 61109, 44694, 44695, 44696, 44697, 44698, 59356, 44699, 44700, 44701, 61110, 44702, 44703, 48558, 44704, 44864, 44865, 44866, 61922, 44867, 44868, 44869, 51944, 44870, 53961, 61658, 44871, 61659, 44872, 61660, 49606, 44873, 47341, 48846, 44874, 44875, 61662, 44876, 50609, 61661, 53745, 44877, 61664, 45260, 48618, 44878, 44879, 44880, 44881, 44882, 53983, 61663, 44883, 46255, 47080, 61670, 61669, 50851, 61665, 61666, 46275, 44884, 44885, 61667, 54766, 44886, 44887, 52443, 48850, 48306, 44888, 44889, 44890, 61672, 61671, 61668, 45729, 44891, 54946, 54200, 48823, 51372, 44892, 44893, 61674, 44894, 44895, 44896, 44897, 53751, 44898, 54988, 47835, 61673, 44899, 46779, 44900, 44901, 52660, 44902, 44903, 50854, 44904, 44905, 44906, 49569, 61675, 61678, 44907, 61677, 61680, 61676, 44908, 48062, 61679, 44909, 44910, 44911, 44912, 52405, 61682, 44913, 44914, 46037, 44915, 44916, 44917, 44918, 45524, 44919, 44920, 61683, 44921, 44922, 61684, 61686, 46305, 44923, 61681, 44924, 61687, 44925, 44926, 44928, 44929, 61690, 44930, 61688, 44931, 44932, 44933, 61685, 44934, 44935, 44936, 44937, 61693, 44938, 61689, 61692, 61694, 44939, 61857, 44940, 44941, 44942, 52929, 61860, 44943, 61859, 44944, 49654, 61691, 51933, 44945, 44946, 46321, 45553, 52401, 44947, 61862, 44948, 44949, 61863, 44950, 44951, 61868, 54734, 61865, 44952, 44953, 51379, 44954, 44955, 44956, 61858, 44957, 61867, 61864, 61861, 44958, 44959, 61866, 44960, 45120, 45121, 45122, 45123, 45124, 45125, 45126, 45225, 61869, 45127, 45128, 45129, 45130, 45131, 45132, 61871, 45133, 61873, 45134, 45135, 45136, 45137, 45138, 61872, 45139, 61870, 45140, 45141, 45142, 45143, 53666, 45144, 45145, 45146, 45147, 45148, 45149, 45150, 61874, 45151, 45152, 45153, 61875, 45154, 45155, 45156, 45157, 45158, 45159, 45160, 45161, 47599, 45162, 45163, 46535, 45164, 45271, 45273, 45165, 45166, 45167, 54509, 45168, 46532, 45169, 48596, 48074, 61607, 45170, 45171, 47326, 45172, 45173, 61608, 45174, 45175, 45224, 45176, 61609, 45177, 45178, 52718, 45179, 45180, 61610, 45181, 45182, 45184, 45185, 45186, 45187, 45188, 45189, 45190, 45191, 61611, 45192, 45193, 45194, 45195, 45196, 45197, 45198, 45199, 45200, 50852, 45201, 45202, 55013, 61924, 45203, 61925, 45204, 45205, 45206, 45207, 45208, 45209, 45210, 45211, 45212, 45213, 50163, 45214, 45215, 54235, 45216, 45376, 54993, 50664, 45377, 54191, 45378, 53990, 45379, 45380, 61121, 45243, 54709, 53710, 48352, 47824, 45381, 49144, 45382, 47303, 46529, 50636, 45383, 45384, 51874, 45385, 45386, 45387, 50123, 45388, 45389, 45390, 45391, 45392, 61122, 45393, 45394, 45395, 45396, 45397, 45398, 45399, 45400, 50367, 46754, 45401, 60908, 50084, 45402, 54961, 45403, 45404, 45405, 53216, 60911, 45406, 45407, 50638, 45408, 46812, 45409, 45410, 51873, 45411, 45412, 60909, 45413, 45414, 60912, 60913, 50108, 45415, 49076, 45416, 60910, 45417, 45418, 45419, 45420, 45421, 45422, 45423, 45424, 45425, 45426, 45427, 60916, 60914, 45428, 45429, 45430, 45431, 54758, 50143, 45432, 60915, 45433, 45434, 45435, 60918, 45436, 54691, 53667, 45437, 45438, 45440, 60917, 45441, 50128, 45442, 45443, 45444, 45445, 45446, 60919, 49140, 48876, 60920, 45447, 52471, 45448, 53723, 45449, 45450, 45451, 55237, 54774, 45452, 60924, 45453, 45454, 45455, 60923, 45456, 45457, 45458, 45459, 45460, 45461, 45462, 45463, 60921, 60922, 45464, 45465, 45466, 45467, 45468, 45469, 45470, 45471, 60925, 48806, 45472, 45632, 45633, 45634, 45635, 52143, 61089, 46781, 45636, 61090, 50368, 45637, 60926, 45638, 45639, 48606, 45767, 45640, 45641, 45642, 45643, 45644, 45645, 45646, 45647, 45648, 45649, 45650, 45651, 46787, 45652, 45653, 45654, 61093, 55482, 61091, 61094, 45655, 45656, 45657, 50153, 46066, 45658, 45659, 45660, 45661, 45662, 45663, 61095, 61092, 53177, 45664, 45665, 61096, 49911, 45666, 45667, 45668, 45669, 45670, 45671, 45672, 45673, 45674, 45675, 45676, 45677, 61097, 61098, 45678, 57003, 45679, 45680, 50867, 45681, 51142, 45682, 55029, 46537, 45683, 52146, 45684, 45685, 45686, 61099, 45687, 45688, 52651, 45689, 61100, 45690, 45691, 45692, 45693, 45694, 54704, 45696, 61101, 45697, 63172, 45698, 45699, 45700, 45701, 45702, 45703, 45704, 45705, 45706, 45707, 45708, 45709, 45710, 56263, 45711, 45712, 45713, 45714, 45715, 45716, 45717, 45718, 45719, 46243, 45720, 45721, 45722, 50092, 61926, 45723, 45724, 45725, 45726, 45727, 51896, 53971, 45728, 54954, 45888, 61426, 45889, 48856, 45890, 48579, 61427, 46796, 45227, 45891, 45892, 45893, 45894, 51887, 45895, 45896, 60854, 45897, 60855, 45898, 45899, 45900, 45901, 52985, 47023, 49139, 60856, 49899, 51632, 45902, 45903, 45904, 45905, 45906, 45907, 60857, 45908, 45909, 50934, 49075, 45910, 45911, 45912, 60860, 50680, 45913, 53712, 45914, 55209, 60858, 60859, 45915, 53730, 45916, 60863, 60864, 45917, 60868, 45918, 45919, 45920, 60872, 45921, 60870, 60878, 54760, 45922, 60873, 45923, 45924, 60871, 60862, 45925, 45926, 50665, 45927, 45928, 45929, 50886, 45930, 45931, 51689, 54482, 60865, 60866, 60867, 60869, 45932, 49401, 45933, 46241, 45934, 45935, 45936, 45937, 47592, 45938, 60880, 45939, 45940, 45941, 45942, 60881, 45943, 60874, 45944, 60879, 45945, 52984, 45946, 45947, 52150, 60876, 60877, 45948, 45949, 45950, 45952, 45953, 53237, 45954, 45955, 45956, 45957, 45958, 45959, 45960, 45961, 45962, 45963, 45964, 45965, 60882, 49650, 54194, 60875, 51383, 45966, 45967, 45968, 45969, 45970, 45971, 45972, 45973, 48367, 45974, 45975, 45976, 45977, 50672, 45978, 45979, 45980, 45981, 45982, 45983, 45984, 46144, 46145, 46146, 60886, 46147, 46575, 46148, 46149, 49845, 45229, 52201, 46150, 46151, 45486, 46152, 60884, 46153, 46154, 46155, 52715, 46562, 46156, 60885, 60883, 60887, 46157, 46158, 46586, 46159, 60888, 46160, 60889, 46161, 60892, 46162, 45516, 46163, 46164, 46165, 46166, 46167, 46168, 46169, 46170, 50678, 48366, 60890, 52412, 45802, 46171, 46172, 46173, 46174, 60891, 46175, 46176, 46177, 46178, 50411, 46179, 46180, 46277, 46181, 46182, 46183, 45301, 46184, 46185, 46186, 60895, 49370, 46312, 46187, 46188, 46189, 46190, 50637, 46191, 46192, 46193, 60893, 49092, 46194, 46195, 46196, 60894, 46197, 46198, 46199, 46200, 46201, 46202, 46203, 46204, 46205, 46206, 46208, 46209, 46210, 46211, 50341, 46212, 46213, 46214, 60896, 46215, 46216, 46217, 46218, 46219, 60897, 46220, 60899, 46221, 46222, 49623, 46223, 46224, 48071, 46225, 46226, 46227, 46228, 46229, 46230, 48568, 46231, 46232, 46233, 60898, 46234, 46235, 46236, 46237, 46238, 46239, 46240, 46400, 46401, 46402, 46403, 46404, 46405, 60900, 46406, 46407, 46408, 46409, 46410, 46411, 46412, 46413, 46414, 46415, 60902, 46416, 46417, 46418, 46419, 46420, 60901, 46421, 46422, 46423, 46424, 46425, 46426, 46427, 46428, 46429, 46430, 46431, 46432, 46433, 46434, 46435, 60903, 46436, 46437, 46438, 46439, 46440, 51902, 60650, 49393, 46441, 51687, 46442, 60651, 50926, 46443, 46444, 46445, 46446, 60652, 46447, 50925, 60653, 46448, 46449, 46450, 46451, 46452, 46453, 46454, 46455, 46456, 60656, 46457, 46458, 55270, 60659, 46459, 46460, 60657, 60654, 60655, 55203, 51697, 52206, 60660, 46461, 60658, 46462, 46464, 53225, 46465, 60662, 50865, 46466, 46467, 46468, 46469, 48320, 46470, 60661, 46471, 46472, 46473, 46474, 46475, 46476, 46477, 46523, 48118, 46478, 60663, 46479, 46480, 46481, 46482, 46483, 55799, 48635, 46484, 46485, 49851, 60664, 46486, 46487, 46488, 46489, 60665, 46490, 46491, 46492, 46493, 47267, 46494, 46495, 46496, 46656, 46657, 46658, 46659, 46660, 46661, 46662, 60666, 46663, 46664, 46665, 46666, 46667, 46668, 46669, 46670, 46671, 46672, 46673, 46674, 60667, 46675, 46676, 46677, 46678, 46679, 46680, 46681, 46682, 46683, 46684, 46685, 60668, 46686, 46687, 46688, 46689, 46690, 54253, 55470, 49387, 46691, 51165, 47820, 46692, 53475, 52157, 46693, 52666, 46694, 46695, 47313, 46696, 46697, 45564, 46698, 51183, 46699, 54998, 46700, 46701, 46702, 49094, 50155, 46703, 46704, 61429, 46705, 46706, 50136, 46707, 46708, 46709, 46710, 46711, 46712, 55266, 46713, 46714, 46715, 61431, 46035, 46716, 51160, 53741, 46717, 54984, 46718, 61432, 46720, 61430, 46721, 48125, 46022, 46722, 46723, 46724, 46725, 46726, 46727, 46728, 48597, 46729, 46730, 53958, 46731, 48096, 46732, 46733, 53153, 46734, 61436, 61435, 46735, 46736, 61433, 46737, 46738, 46739, 46740, 46028, 46741, 51668, 52144, 46742, 46743, 46744, 46745, 46746, 61438, 46747, 46748, 45278, 46749, 46750, 54985, 46751, 46752, 46912, 61437, 46913, 46061, 46914, 46915, 63189, 46916, 46917, 46918, 46919, 46920, 46921, 46922, 46923, 46924, 46925, 46926, 46927, 46928, 46929, 46930, 52936, 46931, 46932, 46933, 61602, 46934, 61601, 46935, 46526, 48346, 48124, 46936, 47333, 46937, 46938, 46939, 46940, 46941, 46942, 50370, 46943, 46944, 46945, 46946, 46947, 46948, 46949, 46950, 46951, 46952, 61603, 46953, 46954, 46955, 46956, 46957, 52203, 46958, 46959, 46960, 46961, 46962, 46963, 46964, 46965, 46966, 46967, 46968, 46969, 46970, 46971, 46972, 46973, 46974, 46976, 46977, 46978, 46979, 46980, 46981, 46982, 61606, 46983, 46984, 46985, 53672, 46986, 48831, 51182, 61878, 61879, 49109, 46987, 46988, 46989, 46990, 46249, 61880, 52667, 46991, 51156, 54701, 46992, 61881, 46993, 61882, 46994, 46995, 46996, 46997, 51151, 46998, 46999, 47000, 53924, 54991, 47001, 47002, 61883, 48593, 46256, 48829, 47003, 47004, 47005, 46300, 52945, 47006, 49119, 61885, 47007, 47008, 47168, 47169, 49146, 61884, 47170, 61887, 47171, 47172, 47173, 61886, 61888, 47174, 47175, 47176, 47177, 47178, 61889, 47179, 47180, 47181, 47182, 47183, 47184, 47185, 47186, 47187, 47188, 47189, 49662, 47190, 47191, 47192, 47193, 47194, 47195, 47196, 47197, 47198, 47199, 47200, 49570, 47201, 47202, 47203, 47204, 47205, 47206, 47207, 47208, 47209, 47210, 51962, 47211, 47212, 54718, 47213, 47214, 47215, 47216, 48826, 48825, 54722, 47217, 47218, 49058, 47219, 52655, 61877, 47220, 47221, 47222, 47223, 47224, 47225, 48607, 47226, 46795, 47227, 47228, 47229, 47230, 47232, 47233, 47234, 47235, 47236, 55025, 62403, 47237, 47238, 62404, 47239, 47309, 47240, 47241, 47242, 62406, 62407, 47243, 45258, 47244, 62405, 47245, 62409, 52209, 47246, 47247, 47248, 62411, 47249, 53414, 47250, 47251, 45514, 62408, 47252, 47253, 47254, 62415, 47255, 46545, 47256, 47257, 62423, 47258, 62418, 47259, 47260, 47261, 62420, 62419, 47099, 47262, 45503, 47263, 62414, 62410, 46554, 47264, 62416, 47424, 47425, 62417, 47426, 62421, 47427, 47428, 47429, 47430, 62413, 47431, 48355, 47432, 49661, 47433, 62422, 47434, 47435, 47436, 47437, 47438, 47439, 62426, 47440, 62412, 47441, 46536, 47442, 48622, 62428, 47443, 47444, 47012, 49136, 55038, 52658, 47445, 46320, 47446, 45791, 47447, 62424, 47448, 62425, 51640, 47449, 62429, 47450, 47451, 62430, 47452, 62433, 47453, 47454, 47455, 47456, 47457, 47458, 47459, 47460, 47461, 47462, 47463, 62431, 47464, 47465, 62435, 62434, 47466, 47467, 62427, 47468, 49130, 47469, 46063, 47470, 62432, 47471, 47472, 51113, 47473, 48370, 47474, 47475, 47476, 47477, 62443, 47478, 47479, 47480, 47481, 47482, 47483, 47484, 47551, 47485, 47486, 62436, 47488, 47489, 47490, 45741, 48126, 47491, 52195, 47492, 47493, 47494, 47495, 62445, 62441, 47496, 47497, 47498, 47580, 62446, 47499, 47500, 47501, 62437, 62438, 62442, 49889, 62444, 62447, 62440, 48381, 47502, 47503, 47504, 53220, 47505, 47506, 62448, 47507, 47508, 47509, 62439, 47510, 47511, 47512, 47513, 47514, 47515, 47516, 47517, 62450, 47518, 47519, 47520, 47680, 55213, 50858, 47681, 47682, 47683, 47684, 62451, 47685, 47686, 47687, 47688, 62449, 47689, 49832, 47690, 47691, 47692, 47693, 47694, 47325, 62453, 47695, 47696, 62452, 47697, 47698, 47699, 46299, 47700, 47701, 47702, 62454, 62455, 47703, 47704, 47705, 62456, 47706, 47707, 47708, 49338, 47709, 47710, 49385, 47711, 47712, 47713, 47714, 47715, 50673, 47716, 47717, 47718, 47719, 62459, 47720, 62458, 47721, 47722, 47723, 47724, 47725, 47726, 47727, 47728, 46296, 47729, 47730, 47731, 62462, 62457, 47732, 47733, 62460, 47734, 47735, 47736, 47737, 47738, 47739, 62461, 47740, 47741, 47742, 47744, 47745, 47746, 47747, 47748, 62625, 47749, 47750, 47751, 47752, 47753, 47754, 62627, 48073, 47755, 47756, 62626, 47757, 47758, 47759, 47760, 47761, 47762, 47763, 47764, 47765, 47766, 47767, 47768, 47769, 62628, 47770, 47771, 47772, 47773, 47774, 47775, 45758, 62630, 62629, 47776, 47936, 47937, 47938, 47939, 47940, 47941, 47942, 47943, 47944, 47945, 48302, 47946, 47947, 47948, 47949, 47950, 47951, 47952, 47953, 47954, 47955, 47956, 47957, 47958, 47959, 47960, 47961, 47962, 47963, 47964, 47965, 47966, 47967, 47968, 47969, 47970, 47971, 47972, 47973, 47974, 47975, 47976, 47977, 47978, 47979, 47980, 47981, 47982, 50135, 55777, 47983, 47984, 47985, 47986, 47987, 47988, 49376, 62668, 55249, 47989, 47990, 47991, 47992, 47993, 47994, 47995, 47996, 47997, 47998, 48000, 47067, 48001, 48002, 48003, 48004, 48005, 48006, 48007, 62670, 49571, 48008, 48009, 50889, 48010, 46294, 54707, 48011, 48012, 48013, 62672, 62671, 62673, 52186, 48014, 48015, 62674, 48016, 54465, 55008, 48017, 48018, 48019, 48020, 47072, 48021, 48022, 48023, 49592, 48024, 48025, 49595, 62675, 48812, 48026, 48027, 48028, 48029, 48030, 46306, 48031, 48032, 62676, 62677, 48811, 48192, 48193, 62678, 48194, 48195, 48196, 62683, 48197, 62679, 62682, 48198, 47869, 48199, 62680, 62681, 48200, 48201, 48202, 48203, 48204, 48205, 48206, 47330, 52423, 62684, 48207, 45786, 48208, 48209, 50131, 48210, 48211, 54499, 49079, 48212, 48213, 48214, 48215, 48216, 48217, 48218, 62685, 48219, 48220, 48221, 48222, 48223, 48224, 50612, 48225, 48226, 48227, 48228, 48229, 48230, 48231, 48232, 62697, 48233, 48234, 53173, 48235, 48236, 48237, 48238, 48239, 48240, 48241, 48242, 48243, 48244, 48245, 48246, 48247, 48248, 52937, 48249, 48250, 48251, 48252, 48253, 48254, 48256, 48257, 48258, 48259, 48260, 48261, 48262, 48263, 48264, 48265, 48266, 48267, 48268, 48269, 48270, 52184, 48271, 52215, 48272, 48273, 48274, 48275, 48628, 48276, 48277, 48278, 55247, 48279, 48280, 48281, 49371, 48282, 48283, 48284, 48285, 48286, 48287, 48288, 48448, 48449, 48450, 48451, 48452, 48453, 48454, 48455, 48456, 48457, 48458, 48459, 48460, 48461, 48462, 48463, 48464, 48465, 48466, 48467, 48468, 48469, 48470, 48471, 48472, 48473, 48474, 48475, 48476, 48477, 48478, 48479, 48480, 48481, 48482, 48483, 48484, 48485, 48486, 48487, 48488, 48489, 48490, 48491, 48492, 48493, 48494, 48495, 48496, 48497, 48498, 48499, 48500, 48501, 48502, 53493, 48503, 48504, 48505, 48506, 48507, 48508, 48509, 48510, 62698, 48512, 48513, 48514, 48515, 48516, 48517, 48518, 48519, 48520, 48521, 48522, 48523, 48524, 48525, 48526, 48527, 48528, 48529, 48530, 48531, 48532, 48533, 48534, 48535, 48536, 48537, 48538, 48539, 48540, 48541, 48542, 48543, 48544, 48704, 48705, 48706, 48707, 48708, 48709, 48710, 48711, 48712, 48713, 48714, 48715, 48716, 62699, 48717, 48718, 48719, 48720, 48721, 48722, 48723, 62700, 48724, 48725, 48726, 48727, 48728, 48729, 48730, 48731, 48732, 48733, 48734, 48735, 48736, 48737, 48738, 48739, 48740, 48741, 48742, 48743, 48744, 48745, 48746, 48747, 48748, 48749, 48750, 48751, 48752, 48753, 48754, 48755, 48756, 48757, 48758, 48759, 48760, 48761, 48762, 48763, 48764, 48765, 48766, 48768, 48769, 48770, 48771, 48772, 48773, 48774, 48775, 48776, 48777, 48778, 48779, 48780, 48781, 48782, 48783, 48784, 48785, 48786, 48787, 48788, 48789, 48790, 48791, 48792, 48793, 48794, 48795, 48796, 48797, 48798, 48799, 48800, 48960, 48961, 48962, 48963, 48964, 48965, 48966, 48967, 48968, 48969, 48970, 48971, 48972, 48973, 48974, 48975, 48976, 48977, 48978, 48979, 48980, 48981, 48982, 48983, 48984, 48985, 48986, 48987, 48988, 48989, 48990, 48991, 48992, 48993, 48994, 48995, 48996, 48997, 48998, 48999, 49000, 49001, 49002, 49003, 49004, 49005, 49006, 49007, 49008, 49009, 49010, 49011, 49012, 49013, 49014, 49015, 49016, 49017, 49018, 49019, 49020, 49021, 49022, 49024, 63459, 49025, 49026, 49027, 49028, 49029, 47025, 49030, 49031, 49032, 49033, 49034, 62701, 49035, 49036, 49037, 49038, 49039, 49040, 49041, 49042, 49043, 49044, 49045, 49046, 49047, 49048, 49049, 49050, 49051, 49052, 49053, 49054, 49055, 49056, 49216, 49217, 49218, 49219, 49220, 49221, 49222, 49223, 49224, 49225, 49226, 49227, 49228, 49229, 49230, 49231, 49232, 49233, 49234, 49235, 49236, 49237, 49238, 49239, 49240, 49241, 49242, 49243, 49244, 49245, 49246, 49247, 49248, 49249, 49250, 49251, 55275, 49252, 49253, 49254, 49255, 49256, 49257, 49258, 49259, 49260, 49261, 49262, 49263, 49264, 49265, 49266, 49267, 49268, 49269, 49270, 49271, 49272, 49273, 49274, 49275, 62702, 49276, 49277, 49278, 59129, 48832, 59130, 47852, 59131, 53195, 59132, 54460, 48310, 59133, 59134, 48333, 51410, 52915, 59297, 49280, 46271, 59298, 51636, 47321, 50377, 49281, 55261, 49882, 47063, 54973, 52934, 47044, 49282, 49283, 50598, 59299, 53215, 59300, 59301, 59302, 49591, 55273, 51696, 53176, 54959, 54997, 59303, 45293, 59304, 59305, 51676, 53999, 48813, 59306, 45299, 51422, 48609, 59307, 51398, 49284, 59308, 48102, 47352, 53668, 59309, 49895, 48888, 48586, 52659, 59310, 59311, 48878, 53477, 49285, 52199, 52432, 48332, 59312, 48296, 53495, 59313, 49286, 53496, 59314, 59315, 46274, 59316, 59317, 51710, 52908, 50144, 59319, 45505, 46065, 49287, 59320, 59321, 55259, 54720, 59322, 49868, 55226, 59323, 59324, 59325, 48362, 50149, 49346, 59326, 59327, 48297, 49288, 59328, 59329, 59318, 46800, 59330, 49289, 59331, 59332, 48058, 46558, 49862, 45536, 59333, 54453, 59334, 47295, 59336, 59335, 47084, 49290, 59337, 45816, 59338, 59339, 59340, 59341, 59342, 59343, 59344, 54183, 52213, 59345, 59346, 59347, 59348, 51657, 59349, 59350, 59351, 59352, 59353, 48585, 59354, 62398, 49291, 47319, 49292, 51377, 49293, 49294, 49295, 49296, 49297, 49298, 49299, 62399, 49300, 62400, 62401, 49301, 49302, 49303, 49304, 49305, 49306, 49307, 49308, 49309, 49310, 47582, 52728, 49311, 49312, 55528, 47793, 49472, 49886, 61111, 49473, 47011, 49474, 49475, 49476, 49477, 61113, 49478, 61112, 45269, 49479, 49480, 49481, 49482, 49483, 61115, 54742, 55279, 49484, 49485, 49486, 54979, 49487, 49488, 61117, 51952, 49489, 61116, 49490, 49491, 49492, 49493, 61118, 49494, 49495, 49496, 49497, 61120, 49498, 49499, 61119, 49500, 49501, 49502, 49503, 49504, 49505, 49506, 49507, 53746, 49508, 51132, 49509, 50112, 49510, 49511, 49512, 49513, 49514, 47329, 49515, 49516, 49517, 49518, 49519, 49639, 49520, 49521, 62662, 53471, 62663, 49522, 53211, 49523, 49524, 51386, 49525, 49526, 62664, 49527, 49528, 49529, 49530, 49531, 49532, 49533, 62665, 62666, 49534, 62667, 49536, 49537, 49538, 49539, 49540, 55802, 47358, 49541, 49542, 58865, 54256, 49543, 62688, 49544, 52940, 49545, 49546, 49547, 46049, 49548, 49549, 49550, 49551, 61876, 49552, 53998, 49553, 62689, 49554, 49555, 49556, 49557, 49558, 53224, 62690, 49559, 49560, 51148, 49561, 49562, 49563, 49564, 49565, 49566, 46548, 46308, 62692, 49567, 49568, 49728, 62691, 62693, 49729, 49730, 62694, 49731, 49732, 49733, 49734, 62695, 49735, 47794, 45247, 49736, 62696, 49737, 49738, 49739, 49740, 49741, 49742, 49743, 47021, 53997, 49744, 49745, 49746, 53931, 49359, 49747, 49084, 60323, 54751, 60104, 49748, 49749, 49750, 49751, 61939, 46840, 52131, 49752, 49753, 50381, 49754, 61927, 49755, 61928, 47355, 61929, 47812, 54469, 45266, 49756, 49757, 61930, 49758, 49759, 49760, 61931, 49761, 61932, 49762, 49763, 61933, 61934, 61935, 61937, 61936, 50645, 49764, 49765, 49766, 49767, 49768, 49769, 61938, 49770, 46842, 49771, 61940, 53934, 57031, 52170, 49772, 49773, 46044, 49774, 46498, 49775, 47522, 49776, 49777, 50420, 61941, 49778, 49779, 61942, 49780, 49781, 49782, 49604, 49659, 54960, 61943, 49783, 49784, 49785, 49786, 61944, 49787, 49578, 49788, 49789, 49790, 50872, 49792, 48859, 49793, 49794, 49795, 49796, 49797, 49798, 49799, 49800, 49801, 49802, 49803, 49804, 49805, 49806, 61945, 46287, 49807, 49808, 49809, 49810, 49811, 49812, 61946, 49813, 49814, 49815, 49816, 49817, 49818, 49819, 49820, 49821, 49822, 49823, 49824, 49984, 60850, 60849, 49985, 49986, 52192, 53982, 49987, 52161, 54744, 49988, 51426, 49989, 49375, 48289, 49990, 49991, 49992, 49993, 49994, 49995, 60353, 49996, 49997, 53412, 49998, 55010, 49999, 46791, 47320, 60352, 47310, 50000, 60351, 45990, 47561, 54955, 50001, 47092, 47050, 50002, 50003, 50004, 48359, 47038, 60358, 50005, 60359, 45241, 49103, 50006, 60357, 54269, 50007, 60360, 50008, 50009, 60361, 50010, 50011, 47054, 50012, 60354, 60356, 51702, 54999, 54733, 53426, 60367, 52920, 60368, 50013, 46504, 50014, 50015, 50016, 50017, 50018, 45491, 60370, 52389, 50019, 50020, 50021, 50022, 50023, 50024, 50025, 50646, 60371, 50026, 60369, 50655, 60366, 51876, 60373, 45307, 50027, 50028, 47866, 50029, 50030, 55479, 61923, 50031, 60362, 60363, 60364, 60365, 60374, 59072, 60377, 50032, 49128, 53960, 60375, 60380, 47340, 60376, 50033, 48570, 50034, 53464, 50035, 45239, 50036, 60381, 50396, 50037, 50038, 50039, 50040, 54956, 50041, 50042, 50043, 46304, 50044, 50045, 49910, 48313, 50046, 50048, 60378, 60379, 54496, 50922, 50388, 60383, 50599, 55797, 50049, 45745, 50050, 60388, 50051, 48581, 50052, 50053, 50054, 60386, 50055, 50056, 50057, 50058, 50059, 50060, 50061, 50062, 50063, 50064, 50065, 50066, 50067, 60387, 50068, 50069, 47276, 50070, 52689, 60389, 50071, 50072, 50073, 60385, 50074, 49587, 50075, 50076, 50077, 50078, 50079, 50850, 50080, 50240, 50241, 50242, 50243, 50244, 50245, 52467, 50246, 60390, 50247, 49328, 53944, 60391, 50248, 50249, 50250, 47279, 47277, 50251, 60392, 51131, 52723, 50252, 50253, 50254, 60394, 60395, 50255, 50256, 50257, 50258, 50259, 60397, 50260, 50261, 50262, 50263, 53448, 50264, 60402, 50265, 60398, 50266, 50267, 50268, 60401, 51449, 50269, 53756, 60396, 50270, 50271, 60393, 50272, 50273, 50274, 50275, 47289, 53209, 50405, 60399, 60400, 52442, 52680, 45298, 50276, 60406, 50277, 50278, 50279, 50280, 50281, 60405, 50282, 45746, 50283, 50284, 50285, 50286, 47328, 50287, 60407, 50288, 50289, 50290, 50291, 50292, 50293, 45548, 50294, 50295, 52421, 50340, 53157, 50296, 50297, 50298, 50299, 50300, 60409, 50301, 50302, 60578, 50304, 50674, 50305, 60410, 50306, 50307, 50308, 50309, 50310, 50311, 50312, 50313, 51653, 50314, 50315, 50316, 50317, 50318, 50319, 58079, 60414, 50320, 50321, 50322, 50323, 52686, 60577, 45531, 54199, 50324, 50325, 53980, 50326, 50327, 50328, 60413, 50329, 60411, 50330, 50331, 50332, 50333, 50334, 50335, 50336, 50496, 50497, 50498, 50499, 50500, 50501, 50502, 50503, 50504, 50505, 50506, 50507, 50508, 50509, 50510, 46012, 50511, 50512, 50513, 60080, 50514, 50515, 55252, 50516, 62635, 46068, 50517, 50518, 50519, 50520, 50521, 54977, 54978, 50522, 50523, 50524, 50525, 50526, 50527, 54761, 48842, 50528, 62631, 50529, 53928, 62632, 62633, 50530, 62634, 48843, 54239, 50531, 50532, 50533, 50534, 50535, 51680, 51681, 50536, 50537, 62402, 50538, 51942, 50539, 52466, 50540, 50541, 50542, 50543, 50544, 50545, 58038, 52148, 50546, 52968, 55003, 50547, 62637, 62638, 62639, 50548, 50549, 50550, 50551, 62642, 50552, 47805, 62643, 45283, 62640, 50553, 62641, 48546, 45781, 50554, 62646, 62647, 46822, 45744, 53199, 62644, 46252, 50555, 62645, 50556, 50557, 62648, 50558, 50560, 50561, 50562, 50563, 62649, 50564, 50565, 52647, 50566, 62650, 50567, 62651, 50568, 50569, 50570, 62652, 50571, 50572, 50573, 50574, 50575, 50576, 50577, 50578, 52178, 50579, 62653, 50580, 50581, 50582, 50583, 62654, 50584, 50585, 50586, 50587, 50588, 50589, 50590, 50591, 62655, 50592, 50752, 50753, 50754, 50755, 62686, 49596, 48360, 50756, 51627, 53726, 58869, 50757, 50758, 50759, 50760, 56499, 53973, 50761, 50762, 56500, 45228, 56501, 50763, 50764, 48602, 50765, 56505, 50766, 50767, 50768, 55490, 50769, 56503, 54259, 50770, 51670, 56506, 56502, 50771, 56507, 50082, 50772, 50773, 50774, 50775, 56508, 56517, 56509, 50776, 50777, 52959, 54949, 50778, 56527, 50779, 56525, 50780, 50781, 56530, 48614, 49835, 50782, 56504, 56523, 56526, 56510, 47058, 45253, 56519, 53438, 56513, 48040, 50783, 47036, 56524, 50784, 50785, 56518, 56511, 51163, 50786, 50787, 50788, 53695, 56512, 50789, 50790, 56522, 50791, 50792, 56528, 50793, 50794, 52909, 56514, 50795, 56515, 56520, 56521, 45780, 56529, 52181, 50796, 54455, 56539, 56543, 52390, 56550, 50797, 50151, 56540, 50798, 50799, 49089, 56537, 50800, 45306, 47542, 56549, 56531, 50801, 56516, 56534, 51444, 49120, 50802, 50803, 50804, 50805, 51643, 50806, 50807, 50808, 45501, 50809, 54178, 50810, 50811, 56538, 50812, 50813, 56533, 50814, 50875, 50816, 56542, 50817, 50818, 50819, 50820, 50821, 55234, 50095, 47030, 51153, 50089, 56546, 56536, 56555, 56532, 50822, 50823, 56541, 50824, 48805, 56535, 50825, 56544, 50826, 50827, 56547, 56548, 50828, 56568, 50829, 50830, 56545, 56738, 56551, 50831, 50832, 50833, 50834, 50835, 50836, 50837, 50838, 50839, 50840, 48363, 46276, 50841, 50842, 50083, 45799, 56570, 50843, 56562, 50844, 56559, 50845, 56572, 56558, 54000, 45800, 50846, 51415, 51427, 56571, 50847, 56557, 50848, 51008, 51009, 56567, 51010, 51011, 56565, 51012, 51013, 48803, 56564, 51014, 45789, 51015, 51016, 51017, 51018, 51019, 56563, 48374, 56552, 48068, 51020, 49395, 51021, 51022, 51023, 51024, 51025, 48340, 56553, 56554, 51026, 56561, 56566, 56569, 46516, 51027, 51417, 48103, 56574, 56573, 54187, 56737, 56739, 56741, 54001, 56740, 56742, 56743, 53929, 51028, 51029, 51030, 51031, 51032, 51033, 51034, 47817, 56745, 51035, 51036, 56758, 56753, 56756, 51037, 51038, 51039, 51040, 51041, 51042, 51043, 56752, 50894, 51044, 51045, 49394, 51046, 51047, 51048, 51049, 51631, 51050, 51051, 51052, 56556, 56750, 51053, 51054, 51055, 51056, 56759, 51057, 51058, 56560, 56751, 51059, 56760, 51060, 56748, 51061, 51062, 51063, 51064, 51065, 51066, 51067, 56761, 56755, 56749, 50346, 51068, 51069, 51070, 51072, 56744, 49331, 49579, 56746, 56747, 51073, 56754, 48113, 56757, 54184, 56762, 51074, 56763, 50087, 51075, 51076, 56786, 56764, 51077, 51078, 51079, 56785, 51080, 47549, 51081, 51082, 48853, 51083, 48890, 51084, 51085, 47818, 51086, 51087, 51088, 51089, 56778, 51090, 56773, 51091, 56767, 51092, 51093, 51094, 45771, 56771, 51095, 56779, 45732, 56789, 51096, 51097, 51098, 56766, 51099, 51100, 51101, 50896, 56784, 51102, 51103, 51104, 51264, 51265, 56788, 49634, 47046, 51266, 51267, 51268, 51269, 51270, 56782, 56783, 51271, 51272, 51273, 56772, 51274, 51275, 51276, 56765, 51277, 56781, 52433, 51278, 56777, 51279, 51280, 51281, 51282, 56770, 50120, 50876, 52910, 56780, 51283, 56776, 51284, 51285, 51286, 51287, 51288, 51289, 56769, 51290, 51291, 51292, 56774, 49884, 51293, 51294, 51295, 51296, 51297, 51298, 54185, 54186, 56787, 53236, 51448, 51299, 51300, 51301, 51302, 51303, 51304, 51305, 51306, 56806, 51307, 51308, 51309, 51310, 51311, 51312, 56775, 51313, 51314, 51315, 56800, 49892, 51316, 51317, 51318, 51319, 51320, 51321, 51322, 51323, 56801, 51324, 51325, 51326, 51328, 51329, 51330, 51331, 51332, 51333, 51334, 56791, 51335, 51336, 51337, 51338, 51339, 55032, 51340, 56793, 56792, 47344, 56790, 51341, 51342, 51343, 51344, 50895, 51345, 46765, 51346, 51347, 51348, 51349, 51350, 56802, 51351, 47865, 54497, 56807, 51352, 51353, 51354, 46288, 51355, 56794, 51356, 49147, 56803, 51357, 56799, 51358, 56797, 51359, 51360, 51520, 51521, 51522, 51523, 51524, 46553, 51525, 51526, 51527, 51528, 56795, 56796, 56798, 51529, 48559, 56804, 51530, 56805, 51531, 51532, 51533, 51534, 51535, 51536, 51537, 51538, 56821, 51539, 50121, 51540, 51541, 52194, 51542, 51543, 51544, 51545, 56818, 51546, 51547, 51548, 51549, 51550, 51551, 51552, 51553, 51554, 51555, 51556, 51557, 51558, 55521, 51559, 51560, 50897, 51561, 56820, 51562, 51563, 51564, 54772, 56819, 56816, 51565, 51566, 56812, 51567, 56815, 51568, 56808, 51569, 51570, 53486, 51571, 51572, 51573, 51574, 51416, 56814, 51575, 51576, 56809, 51577, 51578, 56810, 52210, 51579, 56813, 51580, 51581, 45517, 51582, 51584, 51585, 51586, 51587, 51588, 49334, 51589, 48315, 56817, 51590, 51591, 56823, 51592, 56822, 56811, 51593, 51594, 51595, 51596, 51597, 50670, 51598, 51599, 51600, 56827, 51601, 51602, 51603, 51604, 51605, 51606, 51607, 51608, 51609, 51610, 51611, 56996, 51612, 51613, 56995, 51614, 51615, 51616, 51776, 51777, 51778, 51779, 51780, 51781, 51782, 51783, 51784, 56824, 51785, 51786, 51787, 51788, 50159, 51789, 49915, 51790, 51791, 51792, 54753, 51793, 51794, 52917, 51795, 51796, 51797, 51798, 56829, 51799, 45772, 51800, 51801, 51802, 51803, 51804, 51805, 51806, 51807, 51808, 50408, 51935, 51809, 51810, 51811, 51812, 51813, 51814, 51815, 51816, 51817, 51818, 51134, 56826, 56828, 56830, 56994, 45226, 45518, 51819, 51820, 51821, 51822, 51823, 57004, 51824, 51825, 51826, 51827, 56998, 48566, 51439, 51828, 51829, 51830, 51831, 51832, 51833, 51834, 51835, 51836, 51837, 51838, 56993, 51840, 51841, 56997, 51842, 51843, 51844, 51845, 57001, 51846, 51847, 51848, 51849, 51850, 57000, 51851, 51852, 51853, 56999, 51854, 51855, 51856, 51857, 51858, 51859, 51860, 51861, 51862, 57005, 51863, 54476, 51864, 51865, 51866, 51867, 57011, 57002, 57006, 51868, 51869, 49369, 51870, 51871, 51872, 52032, 52033, 45473, 57014, 52034, 57009, 52035, 52036, 52037, 52038, 52039, 52040, 52041, 57010, 52042, 52043, 52044, 52045, 52046, 52047, 52048, 52049, 52050, 52051, 52052, 53670, 57013, 52053, 52054, 52055, 52056, 52057, 52058, 52059, 57007, 52060, 52061, 52062, 57008, 52063, 53437, 52064, 52065, 52066, 57012, 51949, 57017, 52067, 52068, 52069, 52070, 52071, 52072, 57016, 52073, 57015, 52074, 52075, 52076, 52077, 52078, 52079, 52080, 57019, 52081, 52082, 52083, 52084, 52085, 52086, 52087, 48613, 52088, 52089, 52090, 52091, 52092, 45784, 50154, 52093, 52094, 57018, 52096, 50618, 52097, 52098, 52099, 52100, 52101, 52102, 57020, 52103, 52104, 52105, 52106, 52107, 52108, 52109, 52441, 52110, 52111, 52112, 52113, 47018, 52114, 52115, 52116, 52117, 52118, 52119, 52120, 52121, 52122, 52123, 52124, 52125, 52126, 52127, 52128, 52288, 52289, 54501, 52290, 52291, 52292, 57021, 52293, 52294, 52295, 52296, 52297, 57023, 52298, 52299, 52300, 52301, 52302, 52303, 52304, 52305, 52306, 52307, 52308, 50338, 52309, 52310, 52311, 52312, 57025, 52313, 52314, 52315, 52316, 52317, 52318, 52319, 52320, 52321, 52322, 52323, 52324, 52325, 52326, 52327, 52328, 57022, 52329, 57024, 52330, 52331, 52332, 52333, 52334, 52335, 52336, 52337, 52338, 52339, 52340, 52341, 52342, 52343, 54714, 52344, 52345, 52346, 57026, 52347, 52348, 52349, 52350, 52352, 52353, 52354, 52355, 52356, 52357, 52358, 52359, 52360, 52361, 52362, 52363, 62126, 48034, 49842, 50608, 49863, 52364, 52365, 62127, 52366, 52367, 52368, 52369, 52370, 53481, 52371, 52372, 52373, 54237, 52374, 52375, 52376, 60349, 52377, 52378, 52379, 52380, 52381, 52382, 52383, 52384, 46054, 62128, 52544, 62129, 52545, 52546, 51885, 52547, 52548, 52549, 52550, 52551, 52552, 52553, 47847, 62131, 62133, 62132, 52196, 53178, 62130, 51892, 53967, 49900, 52554, 52555, 52556, 52557, 52558, 52559, 52560, 52931, 62136, 45302, 62135, 52561, 52562, 52563, 52564, 52565, 62142, 52566, 45775, 52567, 52568, 52569, 52570, 52571, 52572, 53697, 62138, 52573, 52574, 52575, 52576, 52577, 62140, 54505, 52578, 52579, 62139, 62134, 62143, 62141, 52580, 62137, 52581, 52582, 62151, 62148, 62150, 52583, 52584, 62154, 62146, 62144, 52585, 52586, 52587, 62149, 52588, 52589, 52590, 52591, 52592, 55035, 52593, 52594, 52595, 62145, 52596, 51193, 51679, 52597, 62152, 47558, 46512, 52598, 52599, 62147, 62153, 62160, 62166, 52600, 52601, 48087, 52602, 52603, 52604, 62165, 52700, 52605, 55019, 52606, 52608, 62162, 62164, 52609, 52610, 52611, 52612, 47346, 52613, 52614, 52615, 52616, 62155, 52617, 52618, 52619, 62158, 49913, 52620, 54749, 62156, 62157, 62159, 62163, 52621, 52622, 52623, 62169, 54204, 52624, 52625, 52626, 52627, 46826, 52628, 51953, 52629, 47076, 62167, 52630, 52631, 52632, 62168, 62170, 62173, 62171, 52633, 52634, 62172, 52635, 52636, 52637, 52638, 53713, 62161, 52639, 52681, 52640, 52943, 54953, 52800, 62179, 52801, 50139, 52802, 62176, 52803, 52804, 49327, 62188, 62174, 52805, 62177, 52806, 52807, 52808, 62184, 52809, 52810, 52811, 52812, 62178, 52813, 52814, 62183, 52815, 52816, 62182, 52817, 52818, 62185, 52819, 52820, 52821, 62175, 52822, 52823, 62180, 62186, 52824, 52825, 52826, 52827, 52828, 52829, 52830, 54188, 62181, 45813, 52831, 52832, 62194, 52833, 53419, 52834, 52835, 52836, 52837, 62197, 52838, 52839, 52840, 48072, 52841, 62201, 52842, 52843, 52844, 52845, 52846, 52847, 62192, 52848, 52849, 62198, 62200, 62202, 52850, 52851, 52852, 52853, 52854, 52855, 52856, 52857, 62195, 52858, 62193, 52859, 52860, 52861, 47867, 52862, 46587, 52864, 52865, 52866, 52867, 62191, 62199, 62189, 62190, 52868, 52869, 52870, 62187, 62374, 52871, 62371, 52872, 52873, 62370, 52874, 52875, 62196, 52876, 51418, 52877, 52878, 52879, 52880, 52881, 62203, 52882, 52883, 52884, 62373, 52885, 52886, 52887, 52888, 52889, 52890, 52891, 50168, 52892, 52893, 52894, 52895, 52896, 53056, 53057, 53058, 62205, 53059, 53060, 62375, 62377, 62372, 53061, 62204, 53062, 53063, 53064, 62379, 53065, 62378, 53066, 53067, 53068, 53069, 49885, 53070, 53071, 62382, 53072, 53073, 62384, 53074, 53075, 53076, 53077, 53078, 62369, 53079, 53080, 53081, 62385, 62380, 53082, 53083, 53084, 53085, 53086, 62383, 62206, 62381, 53087, 53088, 53089, 53090, 53091, 53092, 53093, 62386, 53094, 53095, 53096, 53097, 62388, 53098, 53099, 53100, 53101, 62376, 53102, 53103, 53104, 53105, 62387, 53106, 53107, 53108, 62389, 53109, 53110, 53111, 53112, 53113, 53114, 53115, 53116, 53117, 53118, 53431, 53120, 53121, 53122, 53123, 62392, 53124, 53125, 53126, 53127, 55801, 53128, 53129, 53130, 53131, 53132, 53133, 62393, 53134, 53135, 53136, 53137, 53138, 53139, 53140, 53141, 62391, 53142, 51428, 62390, 53143, 53144, 53145, 53146, 62394, 53147, 53148, 53149, 53150, 53151, 62395, 46272, 53152, 53312, 53313, 53314, 53315, 53316, 53317, 53318, 53319, 53320, 53321, 53322, 53323, 53324, 53325, 61123, 53326, 53327, 53328, 53329, 53330, 53331, 62396, 53332, 53333, 62397, 53334, 53335, 53336, 53674, 53337, 53338, 53339, 62636, 53446, 53340, 53341, 53342, 53343, 53344, 53345, 53456, 53724, 53346, 53347, 53348, 53349, 53350, 53351, 53198, 53352, 53353, 48598, 53354, 53699, 53355, 53356, 53357, 53358, 53359, 53360, 53361, 47842, 57833, 53954, 61890, 45753, 53362, 53363, 45549, 61891, 53364, 51648, 46020, 53365, 55794, 53366, 52133, 53367, 61892, 53368, 53369, 53370, 53371, 54996, 53372, 53373, 53374, 53376, 53377, 61893, 62656, 61894, 53378, 54444, 61895, 53379, 45248, 62657, 53380, 53381, 62658, 53382, 53383, 46332, 53384, 50651, 53385, 53386, 53387, 53388, 52411, 53389, 53390, 53391, 53476, 53392, 53393, 53394, 53395, 53396, 52704, 53397, 53398, 53399, 53400, 53401, 61896, 53402, 55795, 53403, 53404, 53405, 53406, 53407, 53408, 45499, 53568, 53166, 53569, 53570, 53571, 47268, 53572, 53573, 53574, 53575, 53576, 61898, 53577, 53578, 53579, 53580, 61899, 53581, 53582, 53583, 53584, 45763, 49617, 53585, 53586, 55216, 61897, 53587, 53588, 61900, 53589, 53590, 53591, 53592, 61902, 53593, 53594, 53595, 55798, 53596, 53985, 54435, 53597, 53598, 62659, 51385, 53599, 53600, 53601, 53602, 53603, 62660, 53604, 53605, 61901, 61903, 49123, 61904, 53606, 53607, 61908, 53608, 53609, 53610, 53611, 53612, 53613, 53614, 61910, 61905, 53615, 51665, 50657, 53616, 53617, 53618, 49891, 47612, 53619, 53620, 61907, 53621, 61909, 53622, 53623, 53624, 47571, 53625, 53626, 53627, 53628, 53629, 53630, 53632, 61915, 53633, 53634, 53635, 53636, 53637, 47830, 53638, 45309, 61913, 53639, 53640, 53641, 53642, 53643, 61912, 61906, 61914, 53644, 53645, 53646, 53647, 53648, 61911, 53649, 53650, 53651, 51436, 53652, 53653, 53654, 53655, 52682, 61917, 53656, 53657, 53658, 53659, 58813, 53660, 53661, 53662, 61916, 53663, 61918, 53664, 53824, 53825, 53826, 53827, 53828, 53829, 53830, 53831, 53832, 61919, 53833, 53834, 53221, 53835, 53836, 53837, 53838, 53839, 53840, 53841, 53842, 53843, 53844, 53845, 53846, 53847, 53848, 53849, 53850, 53851, 53852, 53853, 53854, 53855, 53856, 53857, 53858, 53859, 62661, 48627, 53860, 53861, 53862, 53863, 53864, 53865, 61920, 53866, 53867, 53868, 53869, 53870, 53871, 53872, 53873, 53874, 53875, 53876, 53877, 53878, 53879, 53880, 53881, 53882, 53883, 53884, 53885, 61921, 53886, 53888, 53889, 52983, 53890, 53930, 53891, 61947, 53892, 53893, 47282, 53894, 53895, 53896, 53897, 53898, 53899, 53900, 53901, 53902, 53903, 53904, 53905, 53906, 53907, 53908, 53909, 53910, 53911, 53912, 53913, 53914, 53915, 53916, 53917, 53918, 53919, 53920, 54080, 54081, 54082, 54083, 54084, 54085, 54086, 54087, 54088, 54089, 54090, 54091, 54092, 54093, 54094, 54095, 54096, 54097, 54098, 54099, 54100, 54101, 54102, 54103, 54104, 54105, 54106, 54107, 54108, 54109, 54110, 48379, 47579, 54111, 47590, 50137, 51923, 60136, 49344, 48885, 60137, 60138, 60139, 54112, 60140, 60141, 60142, 60143, 48583, 54113, 54114, 54115, 62971, 54116, 54117, 54118, 62973, 54119, 62974, 54120, 62972, 54121, 54122, 54123, 54124, 48610, 54125, 63137, 46245, 54126, 54127, 54128, 54129, 63138, 54130, 54131, 54132, 63139, 54133, 54134, 54135, 60594, 54136, 54137, 54138, 54139, 54140, 54141, 54142, 54144, 54145, 54146, 54147, 54148, 53716, 54149, 54150, 54151, 54152, 54153, 54154, 55786, 54155, 54156, 54157, 54158, 54159, 54160, 54161, 54162, 54163, 54164, 54165, 54166, 54167, 54168, 54169, 54170, 54171, 54172, 54173, 54174, 54175, 54176, 54336, 54337, 54338, 54339, 54340, 54341, 54342, 54343, 54344, 54345, 54346, 54347, 54348, 54349, 54350, 54351, 54352, 54353, 54354, 54355, 54356, 54357, 54358, 54359, 54360, 54361, 54362, 54363, 54364, 54365, 54366, 54367, 63140, 54368, 54369, 54370, 54371, 54372, 54373, 54374, 54375, 54376, 61114, 54377, 54378, 54379, 54380, 54381, 54382, 54383, 54384, 54385, 54386, 54387, 54388, 54389, 54390, 54391, 54392, 54393, 54394, 54395, 54396, 54397, 54398, 54400, 54401, 54402, 54403, 54404, 54405, 54406, 54407, 54408, 54409, 54410, 54411, 54412, 54413, 54414, 54415, 54416, 54417, 54418, 54419, 54420, 54421, 54422, 54423, 54424, 54425, 54706, 54426, 54427, 54428, 54429, 54430, 54431, 54432, 54592, 54593, 54594, 54595, 54596, 54597, 54598, 54599, 54270, 52444, 54600, 54601, 54602, 54603, 54604, 54605, 54606, 54607, 51908, 54608, 54609, 54610, 54611, 54612, 54613, 54614, 54615, 54616, 54617, 54618, 54619, 54620, 54621, 54622, 54623, 54624, 54625, 54626, 54627, 54628, 54629, 54630, 54631, 54632, 54633, 54634, 54635, 54636, 54637, 54638, 54639, 54640, 54641, 54642, 54643, 54644, 54645, 54646, 54647, 54648, 54649, 54650, 54651, 54652, 54653, 54654, 54656, 54657, 54658, 54659, 54660, 54661, 54662, 54663, 54664, 54665, 54666, 54667, 54668, 54669, 54670, 54671, 54672, 54673, 54674, 54675, 54676, 54677, 54678, 54679, 54680, 54681, 54682, 54683, 54684, 54685, 54686, 54687, 54688, 54848, 54849, 54850, 54851, 54852, 54853, 54854, 54855, 54856, 54857, 54858, 54859, 54860, 54861, 54862, 54863, 54864, 54865, 54866, 54867, 54868, 54869, 54870, 54871, 54872, 54873, 54874, 54875, 54876, 54877, 54878, 54879, 54880, 54881, 54882, 58816, 54883, 54884, 54885, 54886, 54887, 54888, 54889, 54890, 54891, 54892, 54893, 54894, 54895, 54896, 54897, 54898, 54899, 54900, 54901, 54902, 54903, 54904, 54905, 54906, 54907, 54908, 54909, 54910, 54912, 54913, 63141, 54914, 54915, 54916, 54917, 54918, 54919, 54920, 54921, 54922, 54923, 54924, 54925, 54926, 54927, 54928, 54929, 54930, 54931, 54932, 54933, 54934, 54935, 54936, 54937, 54938, 54939, 54940, 54941, 54942, 54943, 54944, 55104, 55105, 55106, 55107, 55108, 55109, 55110, 55111, 55112, 55113, 55114, 55115, 55116, 55117, 55118, 55119, 55120, 55121, 55122, 55123, 55124, 55125, 55126, 55127, 55128, 55129, 55130, 55131, 55132, 55133, 55134, 55135, 48815, 55136, 55137, 55138, 55139, 55140, 50857, 55141, 55142, 55143, 55144, 55145, 55146, 55147, 55148, 55149, 55150, 55151, 55152, 55153, 55154, 55155, 55156, 55157, 55158, 55159, 55160, 55161, 55162, 55163, 55164, 55165, 55166, 55168, 55169, 55170, 55171, 55172, 55173, 55174, 55175, 55176, 55177, 55178, 55179, 55180, 55181, 55182, 55183, 55184, 55185, 55186, 55187, 55188, 55189, 55190, 55191, 55192, 55973, 48326, 46761, 47292, 51407, 48293, 55974, 55975, 52438, 51395, 55976, 50941, 55193, 53685, 53993, 53686, 48327, 55194, 48562, 48100, 55977, 55978, 53704, 55979, 53485, 46831, 49883, 55195, 52175, 47085, 51688, 47043, 48887, 54948, 55980, 55981, 50880, 55271, 51894, 55196, 54697, 52191, 54767, 55982, 55007, 46282, 55984, 55983, 55197, 53995, 55985, 55986, 55987, 51924, 55988, 51883, 55989, 55990, 46031, 55023, 55991, 48048, 46510, 55992, 55993, 47598, 53679, 53992, 55994, 47299, 53226, 45807, 55995, 55996, 55198, 48619, 52956, 54255, 55997, 52979, 55998, 54229, 48101, 55999, 52149, 52176, 56000, 51179, 55022, 56001, 50613, 46785, 56002, 47052, 49102, 56003, 56004, 52141, 56005, 46583, 56006, 49602, 55227, 56007, 52408, 55199, 53994, 50353, 56008, 46589, 48081, 56009, 53427, 56010, 56011, 52925, 56012, 56013, 56014, 45815, 56017, 56015, 53736, 56016, 50133, 56018, 55200, 56019, 56020, 56021, 53435, 53925, 45305, 56022, 51115, 56023, 48631, 50081, 56024, 56025, 50173, 52407, 56026, 56027, 49342, 50903, 56028, 56029, 51124, 56030, 56031, 47560, 55360, 55361, 55362, 55363, 55364, 55365, 55366, 55367, 55368, 48109, 55369, 55370, 55371, 55372, 46777, 62712, 55373, 62713, 55374, 55375, 52707, 55376, 55377, 55378, 55379, 55380, 55381, 55382, 55383, 62905, 55384, 55385, 55386, 55387, 60384, 55388, 55389, 55390, 55391, 55392, 55393, 53235, 48063, 55394, 55395, 55396, 55397, 55398, 55399, 55400, 47808, 54437, 55401, 55402, 55403, 55404, 55405, 55406, 55407, 57817, 55408, 55409, 55410, 55411, 62964, 45482, 45810, 55412, 55413, 55414, 55415, 55416, 55417, 55418, 62965, 55419, 55420, 62967, 55421, 55422, 55424, 47825, 62966, 55425, 50098, 55426, 55427, 55428, 55429, 55430, 55431, 55432, 62969, 55433, 55434, 55435, 62968, 55436, 55437, 55438, 55439, 55440, 55441, 55442, 55443, 55444, 55445, 55446, 55447, 55448, 55449, 55450, 55451, 55452, 55453, 55454, 55455, 55456, 55616, 55617, 55618, 55619, 55620, 55621, 55622, 55623, 55624, 55625, 55626, 55627, 55628, 55629, 55630, 55631, 55632, 55633, 55634, 55635, 55636, 55637, 55638, 55639, 55640, 55641, 55642, 55643, 55644, 55645, 55646, 55647, 55648, 55649, 55650, 55651, 55652, 55653, 55654, 55655, 55656, 55657, 55658, 55659, 55660, 55661, 55662, 55663, 55664, 55665, 55666, 55667, 55668, 55669, 55670, 55671, 55672, 55673, 55674, 55675, 55676, 55677, 55678, 55680, 55681, 55682, 55683, 55684, 55685, 55686, 55687, 55688, 55689, 55690, 55691, 55692, 55693, 55694, 55695, 55696, 55697, 55698, 55699, 55700, 55701, 55702, 55703, 55704, 55705, 55706, 55707, 55708, 55709, 55710, 55711, 55712, 55872, 55873, 55874, 55875, 55876, 55877, 55878, 55879, 55880, 55881, 55882, 55883, 55884, 55885, 55886, 45492, 54762, 47290, 55887, 47537, 45766, 54512, 53197, 45276, 54731, 48117, 54986, 47031, 52400, 50870, 45537, 47546, 55036, 47585, 47009, 48378, 60122, 60123, 52473, 47603, 60124, 46331, 50099, 47057, 47832, 60125, 54516, 60126, 48342, 48095, 60127, 49630, 49848, 54495, 55242, 60128, 60129, 60132, 60130, 60131, 51678, 47283, 46788, 60133, 51946, 51661, 46285, 55888, 55889, 58073, 50658, 60134, 49333, 55890, 55224, 60135, 55212, 51452, 55507, 55501, 54494, 55891, 54521, 51652, 54190, 47315, 46048, 55892, 51682, 62710, 55893, 55894, 55895, 47829, 55896, 62711, 55897, 55898, 55263, 55899, 55900, 62705, 47280, 54740, 47311, 50928, 55901, 55902, 55903, 55904, 55905, 55906, 55907, 55908, 55909, 46019, 55910, 55911, 62706, 45996, 55912, 55913, 55914, 55915, 54461, 51191, 55916, 55917, 55918, 55919, 55920, 62708, 55921, 55922, 62707, 55923, 55924, 55925, 55926, 55927, 55928, 55929, 55930, 55931, 55932, 52427, 55933, 55934, 55936, 51364, 55937, 55938, 55939, 55940, 55941, 55942, 55943, 55944, 55945, 55946, 55947, 55948, 55949, 62709, 55950, 55267, 50623, 62912, 55951, 55952, 62907, 55953, 62915, 55954, 62914, 55955, 54970, 62913, 55956, 55957, 55958, 54462, 62916, 55959, 62924, 55960, 55961, 55962, 55963, 45263, 46584, 55964, 62921, 62922, 55965, 50652, 55966, 55967, 55968, 56128, 62917, 62918, 56129, 56130, 62919, 62923, 56131, 48864, 62920, 47354, 56132, 56133, 56134, 62928, 62931, 56135, 56136, 56137, 49127, 56138, 47602, 62908, 62925, 56139, 56140, 49847, 56141, 56142, 56143, 52472, 56144, 48377, 56145, 62926, 62927, 62929, 46821, 62930, 56146, 62933, 56147, 56148, 56149, 56150, 56151, 56152, 56153, 62909, 56154, 56155, 56156, 62932, 54203, 56157, 46060, 56158, 56159, 52388, 56160, 56161, 56162, 56163, 62934, 56164, 56165, 56166, 56167, 56168, 56169, 56170, 56171, 62935, 48865, 62936, 56172, 56173, 52447, 62939, 56174, 56175, 56176, 56177, 56178, 45768, 55257, 56179, 62937, 56180, 62938, 62940, 56181, 62946, 56182, 56183, 56184, 62944, 56185, 56186, 56187, 62943, 62941, 56188, 56189, 62945, 56190, 56192, 62942, 62948, 62949, 56193, 52451, 56194, 56195, 58815, 46520, 62947, 62952, 52387, 56196, 56197, 56198, 56199, 56200, 62950, 62951, 56201, 56202, 56203, 56204, 56205, 56206, 62910, 56207, 56208, 56209, 56210, 56211, 56212, 56213, 56214, 56215, 56216, 56217, 56218, 45508, 56219, 56220, 62911, 56221, 56222, 46533, 45796, 56223, 62956, 62953, 56224, 46807, 56384, 62957, 56385, 62954, 56386, 56387, 56388, 56389, 56390, 62955, 56391, 56392, 46298, 56393, 54506, 56394, 56395, 56396, 62958, 56397, 46073, 56398, 56399, 56400, 56401, 56402, 56403, 56404, 62959, 62961, 56405, 56406, 56407, 62960, 56408, 56409, 56410, 56411, 56412, 56413, 56414, 62962, 56415, 62963, 56416, 56417, 56418, 56419, 56420, 56421, 56422, 56423, 56424, 56425, 56426, 56427, 51693, 47530, 56428, 56429, 51195, 56430, 56431, 46819, 56432, 56433, 56434, 56435, 56436, 56437, 56438, 52425, 56439, 56440, 56441, 56442, 56443, 56444, 56445, 56446, 56448, 56449, 56450, 56451, 56452, 56453, 56454, 56455, 56456, 56457, 56458, 60070, 56459, 56460, 56461, 56462, 56463, 56464, 56465, 56466, 56467, 56468, 56469, 56470, 56471, 56472, 56473, 56474, 56475, 56476, 56477, 56478, 56479, 56480, 56640, 56641, 56642, 56643, 56644, 56645, 56646, 56647, 56648, 56649, 56650, 56651, 56652, 56653, 56654, 56655, 56656, 56657, 56658, 56659, 56660, 56661, 56662, 56663, 56664, 56665, 56666, 56667, 56668, 56669, 56670, 56671, 56672, 56673, 56674, 56675, 56676, 56677, 56678, 56679, 56680, 56681, 56682, 56683, 56684, 56685, 56686, 56687, 56688, 56689, 56690, 56691, 56692, 56693, 56694, 56695, 56696, 56697, 56698, 56699, 56700, 56701, 56702, 56704, 56705, 56706, 56707, 56708, 56709, 56710, 56711, 56712, 56713, 56714, 56715, 56716, 56717, 56718, 56719, 56720, 56721, 56722, 56723, 56724, 56725, 56726, 56727, 56728, 56729, 56730, 56731, 56732, 56733, 56734, 56735, 56736, 56896, 56897, 56898, 56899, 56900, 56901, 56902, 56903, 56904, 56905, 56906, 56907, 56908, 56909, 56910, 56911, 56912, 56913, 56914, 56915, 56916, 56917, 56918, 56919, 56920, 56921, 56922, 56923, 56924, 56925, 56926, 56927, 56928, 46005, 54526, 47596, 53497, 56929, 59885, 55210, 59886, 49878, 51437, 47844, 59887, 59888, 59889, 55009, 59890, 59891, 59893, 59892, 59894, 59895, 51169, 59896, 54488, 59897, 48590, 56930, 59898, 59899, 48591, 59900, 47272, 49598, 59901, 45490, 48084, 47605, 59902, 56931, 60065, 60066, 60067, 47096, 48301, 56932, 51940, 57550, 54447, 53181, 54711, 60068, 54750, 60069, 53441, 47548, 56933, 46279, 45529, 56934, 56935, 56936, 49329, 56937, 56938, 56939, 56940, 45542, 45543, 56941, 45544, 56942, 56943, 56944, 56945, 46013, 51432, 56946, 56947, 56948, 56949, 58817, 56950, 56951, 45535, 56952, 56953, 56954, 49609, 46319, 56955, 56956, 51112, 54232, 56957, 50937, 53688, 56958, 47613, 49909, 56960, 56961, 56962, 56963, 56964, 54189, 56965, 54475, 48636, 56966, 58818, 47029, 58819, 56967, 56968, 48057, 54754, 56969, 48632, 54454, 52901, 49580, 46041, 56970, 56971, 52470, 56972, 58822, 58820, 58824, 56973, 58826, 58823, 46543, 50888, 56974, 46588, 58821, 56975, 51958, 56976, 56977, 58825, 56978, 56979, 56980, 50132, 45509, 48291, 56981, 56982, 56983, 55223, 56984, 56985, 52683, 52173, 51914, 52435, 58828, 58827, 50406, 56986, 56987, 53665, 53687, 58829, 56988, 58832, 56989, 52664, 55024, 58831, 46557, 56990, 52670, 56991, 58833, 46778, 56992, 57152, 52648, 47588, 57153, 51909, 46033, 52185, 54508, 58834, 47082, 57154, 57155, 57156, 58830, 57157, 57158, 57159, 57160, 57161, 57162, 58837, 46334, 58838, 57163, 57164, 57165, 57166, 57167, 58835, 58836, 57168, 53981, 57169, 57170, 49887, 45510, 57171, 54242, 57172, 57173, 46813, 52204, 57174, 58839, 57175, 57176, 54262, 57177, 57178, 57179, 57180, 57181, 45545, 57182, 46836, 58842, 58840, 58841, 46528, 57183, 57184, 57185, 53957, 58844, 57186, 57187, 58846, 57188, 57189, 57190, 57191, 57192, 57193, 58845, 51122, 57194, 53923, 57195, 57196, 58843, 57197, 57198, 57199, 57200, 54498, 54746, 57201, 57202, 57203, 57204, 57205, 58848, 55281, 57206, 57207, 57208, 57209, 57210, 57211, 57212, 58849, 57213, 45532, 53755, 57214, 58850, 58852, 57216, 57217, 57218, 57219, 58851, 57220, 57221, 58853, 57222, 57223, 57224, 57225, 57226, 53976, 57227, 46539, 57228, 59359, 57229, 56053, 57230, 56056, 57231, 56054, 57232, 56055, 57233, 57234, 57235, 56058, 53455, 50375, 57236, 57237, 45294, 57238, 57239, 57240, 53424, 57241, 56057, 57242, 54218, 47786, 56226, 51185, 57243, 56060, 56059, 51675, 56061, 57244, 56225, 55262, 56062, 49626, 57245, 57246, 56229, 57247, 57248, 54260, 57408, 57409, 56231, 56228, 57410, 56232, 57411, 57412, 48572, 57413, 57414, 57415, 49353, 56227, 56230, 54947, 57416, 56233, 57417, 57418, 57419, 56237, 57420, 57421, 57422, 56238, 56236, 47810, 57423, 57424, 57425, 49060, 56235, 57426, 57427, 57428, 56234, 54471, 45759, 57429, 57430, 56239, 57431, 47609, 57432, 56240, 57433, 57434, 57435, 57436, 46011, 57437, 57438, 57439, 46502, 57440, 57441, 57442, 57443, 46780, 56241, 57444, 57445, 57446, 46837, 57447, 56242, 57448, 57449, 57450, 57451, 57452, 57453, 57454, 57455, 57456, 57457, 57458, 57459, 57460, 57461, 57462, 57463, 57464, 57465, 57466, 57467, 45513, 57468, 57469, 57470, 57472, 56244, 57473, 57474, 57475, 56243, 56245, 57476, 57477, 57478, 57479, 57480, 57481, 57482, 57483, 57484, 57485, 57486, 56247, 57487, 56246, 57488, 57489, 57490, 57491, 57492, 57493, 57494, 56248, 57495, 57496, 57497, 57498, 57499, 57500, 57501, 57502, 57503, 56249, 57504, 57664, 56250, 57665, 57666, 54223, 62714, 51189, 55235, 50660, 62716, 62717, 62715, 57667, 48838, 57668, 57669, 57670, 57671, 53487, 57672, 57673, 47059, 57674, 57675, 54477, 52394, 57676, 57677, 62882, 62881, 47784, 62718, 52182, 57678, 57679, 57680, 62884, 49362, 57681, 46058, 57682, 52650, 62885, 62883, 48564, 62888, 57683, 62889, 48589, 50104, 49121, 52193, 62890, 57684, 57685, 57686, 62886, 62887, 50416, 57687, 57688, 57689, 57690, 57691, 62892, 57692, 46268, 57693, 55277, 57694, 46295, 62891, 62894, 57695, 57696, 62893, 62895, 53457, 57697, 57698, 57699, 57700, 57701, 57702, 57703, 50129, 51369, 57704, 57705, 57706, 57707, 57708, 57709, 62896, 62897, 57710, 57711, 57712, 57713, 57714, 57715, 62898, 57716, 57717, 62899, 62900, 62901, 57718, 57719, 57720, 57721, 62903, 62902, 57722, 57723, 57724, 57725, 62904, 57726, 57728, 57729, 57730, 57731, 57732, 57733, 57734, 57735, 57736, 57737, 57738, 45769, 57739, 54228, 51917, 57740, 49391, 55000, 53936, 49599, 57741, 48624, 57742, 57743, 57744, 57745, 57746, 57747, 57748, 57749, 57750, 57751, 47274, 57752, 57753, 57754, 57755, 57756, 57757, 57758, 57759, 57760, 57920, 57921, 57922, 57923, 57924, 57925, 57926, 57927, 57928, 57929, 57930, 57931, 57932, 57933, 57934, 57935, 57936, 57937, 57938, 57939, 57940, 57941, 57942, 57943, 57944, 57945, 57946, 57947, 57948, 57949, 57950, 57951, 57952, 57953, 57954, 57955, 57956, 57957, 57958, 57959, 57960, 57961, 57962, 57963, 57964, 57965, 57966, 57967, 57968, 57969, 57970, 57971, 57972, 57973, 57974, 57975, 57976, 57977, 57978, 57979, 57980, 57981, 57982, 57984, 57985, 57986, 57987, 57988, 57989, 57990, 57991, 57992, 57993, 57994, 57995, 57996, 57997, 57998, 57999, 58000, 58001, 58002, 58003, 58004, 58005, 58006, 58007, 58008, 58009, 58010, 58011, 58012, 58013, 58014, 58015, 58016, 58176, 58177, 58178, 58179, 58180, 58181, 58182, 58183, 58184, 58185, 58186, 58187, 58188, 58189, 58190, 58191, 58192, 58193, 58194, 58195, 58196, 58197, 58198, 58199, 58200, 58201, 58202, 58203, 58204, 58205, 58206, 58207, 58208, 58209, 58210, 58211, 58212, 58213, 58214, 58215, 58216, 58217, 58218, 58219, 58220, 58221, 48376, 58222, 58223, 58224, 58225, 58226, 58227, 58228, 58229, 58230, 58231, 58232, 58233, 58234, 58235, 58236, 58237, 58238, 58240, 58241, 58242, 58243, 58244, 58245, 58246, 58247, 63174, 58248, 58249, 58250, 58251, 58252, 58253, 58254, 58255, 58256, 58257, 58258, 58259, 58260, 58261, 58262, 58263, 58264, 58265, 58266, 58267, 58268, 58269, 58270, 58271, 58272, 58432, 58433, 58434, 58435, 58436, 58437, 63175, 58438, 58439, 58440, 58441, 58442, 58443, 58444, 58445, 58446, 58447, 58448, 58449, 58450, 58451, 58452, 58453, 58454, 58455, 58456, 58457, 58458, 58459, 58460, 58461, 58462, 63176, 58463, 58464, 58465, 58466, 58467, 58468, 58469, 58470, 58471, 58472, 58473, 58474, 58475, 58476, 58477, 58478, 58479, 58480, 58481, 58482, 58483, 58484, 58485, 58486, 58487, 58488, 58489, 58490, 58491, 58492, 58493, 58494, 58496, 58497, 58498, 58499, 58500, 58501, 58502, 58503, 58504, 58505, 58506, 58507, 58508, 58509, 58510, 58511, 58512, 58513, 58514, 58515, 58516, 58517, 58518, 58519, 58520, 58521, 58522, 58523, 58524, 58525, 58526, 58527, 58528, 58688, 58689, 58690, 58691, 58692, 58693, 58694, 58695, 58696, 58697, 58698, 58699, 58700, 58701, 58702, 58703, 58704, 58705, 58706, 58707, 58708, 58709, 58710, 58711, 58712, 58713, 58714, 58715, 58716, 58717, 58718, 58719, 58720, 58721, 58722, 58723, 58724, 58725, 58726, 58727, 58728, 58729, 58730, 58731, 58732, 58733, 58734, 58735, 58736, 58737, 58738, 58739, 63177, 58740, 58741, 58742, 58743, 58744, 58745, 58746, 58747, 58748, 58749, 58750, 58752, 58753, 58754, 58755, 58756, 58757, 58758, 58759, 58760, 58761, 58762, 58763, 58764, 58765, 58766, 58767, 58768, 58769, 58770, 58771, 58772, 58773, 58774, 58775, 58776, 58777, 58778, 58779, 58780, 58781, 58782, 58783, 63178, 58784, 58944, 58945, 58946, 58947, 58948, 58949, 58950, 58951, 58952, 58953, 58954, 58955, 58956, 58957, 58958, 58959, 58960, 58961, 58962, 58963, 58964, 58965, 58966, 58967, 58968, 58969, 58970, 58971, 58972, 58973, 58974, 58975, 58976, 58977, 58978, 63180, 58979, 58980, 58981, 58982, 58983, 58984, 58985, 58986, 58987, 58988, 58989, 58990, 58991, 58992, 58993, 58994, 58995, 58996, 58997, 58998, 58999, 59000, 59001, 59002, 59003, 59004, 59005, 59006, 59008, 59009, 59010, 59011, 59012, 59013, 59014, 59015, 59016, 59017, 59018, 59019, 59020, 59021, 59022, 59023, 59024, 59025, 59026, 59027, 59028, 59029, 59030, 59031, 59032, 59033, 59034, 59035, 59036, 59037, 63179, 59038, 59039, 59040, 59200, 59201, 59202, 59203, 59204, 59205, 59206, 59207, 63465, 59208, 59209, 59210, 59211, 59212, 59213, 59214, 59215, 59216, 59217, 59218, 59219, 59220, 59221, 59222, 59223, 59224, 59225, 59226, 59227, 59228, 59229, 59230, 59231, 59232, 59233, 59234, 59235, 59236, 59237, 59238, 59239, 59240, 59241, 59242, 59243, 59244, 59245, 59246, 59247, 59248, 59249, 59250, 59251, 59252, 59253, 59254, 59255, 59256, 59257, 59258, 59259, 59260, 59261, 59262, 59264, 59265, 59266, 59267, 59268, 59269, 59270, 59271, 59272, 59273, 59274, 59275, 59276, 59277, 59278, 59279, 59280, 59281, 59282, 59283, 59284, 59285, 59286, 59287, 59288, 59289, 59290, 59291, 59292, 59293, 59294, 59295, 59296, 59456, 59457, 59458, 59459, 59460, 59461, 59462, 59463, 59464, 59465, 59466, 59467, 59468, 59469, 59470, 63181, 59471, 59472, 59473, 59474, 59475, 59476, 59477, 59478, 59479, 59480, 59481, 59482, 59483, 59484, 59485, 59486, 59487, 59488, 59489, 59490, 59491, 59492, 59493, 59494, 59495, 59496, 59497, 59498, 59499, 59500, 59501, 59502, 59503, 59504, 59505, 59506, 59507, 59508, 59509, 59510, 59511, 59512, 59513, 59514, 63182, 59515, 59516, 59517, 59518, 59520, 59521, 59522, 59523, 59524, 59525, 59526, 59527, 59528, 59529, 59530, 59531, 59532, 59533, 59534, 59535, 59536, 59537, 59538, 59539, 59540, 61124, 61125, 61126, 54763, 46756, 61128, 61127, 61129, 61130, 51109, 61131, 61132, 59541, 47024, 46582, 61133, 61135, 59542, 61134, 59543, 47302, 61136, 61137, 61138, 46811, 45998, 54995, 50374, 45493, 47318, 61139, 61140, 54463, 51157, 48891, 52953, 47539, 61142, 61141, 61144, 61143, 50597, 61145, 61146, 51118, 61147, 51119, 61148, 45735, 61149, 61150, 61151, 61152, 61153, 55274, 61154, 61155, 48344, 61156, 54219, 52474, 45740, 49637, 61157, 51110, 50093, 59544, 61158, 61159, 61160, 61161, 61162, 61163, 61164, 59545, 61165, 61166, 61167, 59546, 59547, 61168, 61169, 61170, 61172, 61171, 59548, 61173, 52653, 49857, 61174, 61175, 61176, 54689, 61177, 53171, 61178, 61179, 59549, 61180, 61181, 61345, 61182, 61346, 47349, 50170, 61347, 61348, 48578, 53951, 45817, 61349, 61350, 61351, 54008, 61352, 55037, 61353, 50892, 59550, 61354, 61355, 49588, 61356, 53242, 52216, 61358, 61357, 46074, 47608, 61359, 61360, 53474, 61361, 61362, 47078, 53439, 61363, 61364, 61365, 51441, 52448, 61366, 61367, 61368, 61369, 61370, 54752, 61371, 46317, 50090, 61372, 59551, 61373, 61374, 61375, 59552, 52989, 61376, 49888, 46264, 55222, 48629, 59712, 53191, 61379, 61377, 61378, 61380, 46759, 48380, 48866, 50124, 61381, 61382, 59713, 61383, 61391, 61384, 61385, 61386, 51138, 61425, 46797, 61387, 59714, 61388, 61389, 46790, 50110, 61390, 59715, 61392, 61393, 61394, 54770, 59716, 61395, 50423, 59717, 61396, 50424, 61397, 61398, 47332, 45303, 61399, 61400, 61401, 59718, 61402, 61403, 61404, 61405, 59719, 61406, 48821, 61409, 61407, 61408, 59720, 61410, 61411, 49613, 61412, 61413, 61414, 61415, 61416, 61417, 61418, 61419, 61420, 49368, 59721, 61421, 49581, 61422, 61423, 61424, 59722, 59723, 53218, 59724, 59725, 59726, 59727, 59728, 59729, 59730, 59731, 45988, 59732, 59733, 59734, 59735, 59736, 59737, 59738, 59739, 59740, 59741, 59742, 59743, 59744, 59745, 59746, 59747, 59748, 59749, 59750, 59751, 59752, 59753, 59754, 59755, 59756, 59757, 59758, 59759, 59760, 59761, 59762, 59763, 59764, 59765, 59766, 59767, 59768, 59769, 59770, 59771, 59772, 59773, 59774, 59776, 59777, 59778, 59779, 59780, 59781, 59782, 59783, 59784, 59785, 59786, 59787, 59788, 59789, 59790, 59791, 59792, 59793, 59794, 59795, 59796, 59797, 59798, 59799, 59800, 59801, 59802, 59803, 59804, 59805, 59806, 59807, 59808, 59968, 59969, 59970, 59971, 59972, 59973, 59974, 59975, 59976, 59977, 59978, 59979, 59980, 59981, 59982, 59983, 59984, 59985, 59986, 59987, 59988, 59989, 59990, 59991, 59992, 59993, 59994, 59995, 50117, 58309, 51649, 58310, 59996, 45525, 52938, 46259, 51442, 58311, 53200, 58312, 48356, 58313, 58314, 50118, 54690, 50390, 47595, 52933, 58315, 50166, 58316, 59997, 47015, 47347, 47826, 58317, 58318, 54468, 58319, 59998, 58320, 53707, 58321, 58322, 58323, 58324, 53718, 58325, 45819, 49339, 58326, 59999, 49323, 58327, 58328, 58329, 60000, 58330, 58331, 60001, 47287, 56034, 60002, 46803, 60003, 56036, 56035, 60004, 60005, 60006, 60007, 60008, 60009, 60010, 56038, 60011, 60012, 60013, 51438, 60014, 60015, 56037, 47040, 53748, 54005, 54771, 48599, 60016, 60017, 60018, 60019, 55272, 56040, 56039, 60020, 45218, 52691, 60021, 56041, 60022, 47293, 48330, 49853, 49828, 46018, 56042, 60023, 49834, 50352, 48565, 60024, 60025, 53214, 60026, 60027, 60028, 56043, 51650, 60029, 60030, 60032, 60033, 60034, 45533, 60035, 60036, 60037, 56044, 60038, 46776, 54458, 60039, 46077, 60040, 60041, 56045, 54473, 53205, 50659, 60042, 56046, 60043, 60044, 60045, 60046, 60047, 56047, 60048, 56048, 49642, 52437, 53213, 60049, 60050, 60051, 60052, 60053, 60054, 60055, 60056, 60057, 60058, 60059, 60060, 60061, 54247, 49825, 60062, 56049, 60063, 60064, 52197, 60224, 56050, 60225, 52198, 54014, 60226, 60227, 60228, 47348, 60229, 60230, 56051, 45231, 53174, 60231, 60232, 54735, 60233, 60234, 60235, 60236, 60237, 60238, 60239, 60240, 60241, 60242, 52205, 60243, 60244, 60245, 60246, 60247, 60248, 60249, 60250, 56052, 60251, 60252, 58308, 60253, 60254, 49573, 60255, 60256, 63167, 60257, 60258, 63168, 63169, 50385, 60259, 51384, 53731, 60260, 60261, 53467, 53701, 48303, 47565, 60262, 61428, 60263, 60264, 46278, 54202, 63170, 46075, 60265, 60266, 63171, 60267, 60268, 46577, 60269, 60270, 60271, 60272, 60273, 60274, 60275, 60276, 60277, 60278, 63173, 60279, 60280, 60281, 60282, 60283, 60284, 60285, 54250, 63143, 53673, 60286, 60288, 60289, 60290, 63145, 60291, 60292, 60293, 63144, 60294, 60295, 49635, 49367, 60296, 45474, 60297, 60298, 60299, 60300, 52973, 60301, 53480, 63147, 60302, 60303, 53238, 60304, 63146, 54768, 63148, 50105, 60305, 60306, 60307, 48116, 63150, 63149, 60308, 60309, 60310, 50398, 60311, 60312, 49624, 60313, 60314, 60315, 60316, 60317, 52138, 60318, 53180, 60319, 60320, 60480, 60481, 60482, 60483, 60484, 60485, 60486, 60487, 60488, 63151, 60489, 60490, 63152, 60491, 60492, 63153, 60493, 49846, 60494, 60495, 60496, 60497, 60498, 45268, 50681, 60499, 60500, 60501, 60502, 63154, 60503, 60504, 60505, 60506, 60507, 60508, 60509, 60510, 60511, 60512, 60513, 60514, 60515, 60516, 60517, 60518, 60519, 60520, 60521, 51168, 63142, 60522, 60523, 48824, 60524, 60525, 48818, 60526, 46565, 60527, 60528, 47047, 60529, 49087, 50130, 50150, 60530, 60531, 55500, 60532, 60533, 60534, 47343, 60535, 60536, 60537, 60538, 60539, 60540, 60541, 60542, 60544, 48633, 53669, 60545, 45264, 60546, 60547, 60548, 60549, 60550, 63408, 60551, 60552, 60553, 60554, 60555, 60556, 60557, 60558, 63409, 60559, 60560, 60561, 60562, 60563, 53420, 60564, 45232, 60565, 60566, 60567, 63410, 63411, 60568, 63412, 60569, 60570, 60571, 51146, 60572, 60573, 60574, 60575, 60576, 60736, 60737, 48847, 60738, 60739, 63415, 60740, 60741, 60742, 60743, 60744, 60745, 60746, 63414, 60747, 45534, 60748, 63413, 60749, 60750, 63416, 60751, 63417, 60752, 60753, 60754, 60755, 60756, 60757, 60758, 60759, 60760, 60761, 60762, 60763, 60764, 60765, 60766, 60767, 60768, 60769, 60770, 60771, 60772, 60773, 60774, 60775, 60776, 60777, 60778, 60779, 60780, 60781, 60782, 60783, 60784, 60785, 60786, 60787, 60788, 60789, 60790, 60791, 60792, 60793, 60794, 60795, 60796, 60797, 60798, 60800, 60801, 52900, 51405, 60802, 47787, 59576, 59577, 59578, 48834, 60803, 60804, 60805, 60806, 60807, 54004, 60808, 54479, 51672, 60809, 60810, 60811, 60812, 60813, 60814, 60815, 60816, 60817, 60818, 60819, 60820, 60821, 60822, 60823, 60824, 60825, 60826, 60827, 60828, 60829, 60830, 60831, 60832, 60992, 60993, 60994, 60995, 60996, 60997, 60998, 60999, 61000, 61001, 61002, 61003, 61004, 61005, 61006, 61007, 61008, 61009, 61010, 61011, 61012, 61013, 61014, 61015, 61016, 61017, 61018, 61019, 61020, 61021, 61022, 61023, 61024, 61025, 61026, 61027, 61028, 61029, 61030, 61031, 61032, 61033, 61034, 61035, 61036, 61037, 61038, 61039, 61040, 61041, 61042, 61043, 61044, 61045, 61046, 61047, 61048, 61049, 61050, 61051, 61052, 61053, 61054, 61056, 61057, 61058, 61059, 61060, 61061, 61062, 61063, 61064, 61065, 61066, 61067, 61068, 61069, 61070, 61071, 61072, 61073, 61074, 61075, 61076, 61077, 61078, 61079, 61080, 61081, 61082, 61083, 61084, 61085, 61086, 61087, 61088, 61248, 61249, 61250, 61251, 61252, 61253, 53939, 46757, 51178, 61948, 53230, 52147, 53483, 59375, 52711, 47563, 46809, 61949, 45284, 52172, 61950, 54436, 49837, 49644, 50884, 48817, 62113, 48341, 61254, 62114, 62115, 61255, 62116, 53955, 50869, 61256, 52679, 62117, 61257, 54193, 49093, 52450, 61258, 62118, 62119, 53717, 46830, 62120, 62121, 46559, 62122, 62123, 61259, 45820, 62124, 62125, 51367, 61260, 61261, 61262, 61263, 61264, 61265, 61266, 61267, 61268, 61269, 61270, 61271, 61272, 61273, 61274, 61275, 61276, 61277, 61278, 61279, 61280, 61281, 61282, 61283, 61284, 61285, 61286, 61287, 61288, 61289, 61290, 61291, 61292, 61293, 61294, 61295, 61296, 61297, 47079, 61298, 61299, 60585, 60586, 60587, 61300, 60588, 61301, 61302, 50862, 60589, 60590, 61303, 61304, 61305, 47049, 51891, 61306, 61307, 61308, 61309, 61310, 61312, 61313, 58040, 63439, 61314, 61315, 61316, 61317, 61318, 61319, 61320, 61321, 61322, 61323, 61324, 61325, 61326, 61327, 61328, 61329, 61330, 61331, 61332, 61333, 61334, 61335, 61336, 61337, 61338, 61339, 61340, 61341, 61342, 61343, 61344, 61504, 61505, 61506, 61507, 61508, 63440, 61509, 61510, 45773, 61511, 61512, 61513, 61514, 61515, 61516, 61517, 61518, 61519, 61520, 61521, 61522, 61523, 61524, 61525, 61526, 61527, 61528, 61529, 61530, 61531, 61532, 61533, 61534, 61535, 61536, 61537, 61538, 61539, 63441, 61540, 61541, 61542, 61543, 61544, 61545, 61546, 61547, 61548, 61549, 61550, 61551, 61552, 61553, 61554, 61555, 61556, 61557, 61558, 61559, 61560, 61561, 61562, 61563, 61564, 61565, 61566, 61568, 61569, 61570, 61571, 61572, 61573, 61574, 61575, 61576, 61577, 63443, 63442, 61578, 61579, 61580, 61581, 61582, 61583, 61584, 61585, 61586, 61587, 61588, 61589, 61590, 58043, 61591, 48290, 61592, 58044, 58045, 58046, 58047, 58048, 58049, 47033, 54011, 48548, 51918, 45477, 52167, 61593, 58050, 46844, 51396, 58051, 61594, 61595, 48584, 61596, 45565, 58052, 61597, 46838, 58053, 50393, 61598, 61599, 58054, 53210, 47581, 58055, 49313, 61600, 58056, 45814, 61760, 58057, 61761, 49651, 58058, 58059, 49912, 58060, 58061, 58062, 51927, 55480, 55781, 53219, 61762, 61763, 61764, 61765, 61766, 61767, 61768, 61769, 61770, 61771, 61772, 61605, 61773, 61774, 56496, 61775, 61776, 61777, 61778, 61779, 61780, 61781, 61782, 61783, 61784, 61785, 61786, 61787, 61788, 61789, 61790, 61791, 61792, 61793, 61794, 61795, 61796, 61797, 61798, 61799, 61800, 61801, 61802, 61803, 61804, 61805, 61806, 61807, 61808, 61809, 61810, 61811, 61812, 61813, 61814, 61815, 61816, 61817, 61818, 61819, 61820, 61821, 61822, 61824, 61825, 61826, 61827, 61828, 61829, 61830, 61831, 61832, 61833, 61834, 61835, 61836, 61837, 61838, 61839, 61840, 61841, 61842, 61843, 61844, 61845, 61846, 61847, 61848, 61849, 61850, 61851, 61852, 61853, 61854, 61855, 61856, 62016, 62017, 62018, 62019, 62020, 62021, 62022, 62023, 62024, 62025, 62026, 62027, 62028, 62029, 62030, 62031, 62032, 62033, 62034, 62035, 62036, 62037, 62038, 62039, 62040, 62041, 62042, 62043, 62044, 62045, 62046, 62047, 62048, 62049, 62050, 62051, 62052, 62053, 62054, 62055, 62056, 62057, 62058, 62059, 62060, 62061, 62062, 62063, 62064, 62065, 62066, 62067, 62068, 62069, 62070, 62071, 62072, 62073, 62074, 62075, 62076, 62077, 62078, 62080, 62081, 62082, 62083, 62084, 62085, 62086, 62087, 62088, 62089, 62090, 62091, 62092, 62093, 62094, 62095, 62096, 62097, 62098, 62099, 62100, 62101, 62102, 62103, 62104, 62105, 62106, 62107, 62108, 62109, 62110, 62111, 62112, 62272, 62273, 62274, 62275, 62276, 62277, 62278, 62279, 62280, 62281, 62282, 62283, 62284, 62285, 62286, 62287, 62288, 62289, 49901, 54438, 52692, 53681, 46043, 51197, 62290, 45749, 49855, 59104, 51899, 59105, 59106, 48852, 59107, 55204, 52693, 59109, 48349, 59108, 59110, 59111, 49902, 62291, 48574, 59112, 49894, 47783, 59113, 62292, 59114, 46034, 53737, 62293, 62294, 49061, 59115, 50927, 59116, 59117, 62295, 62296, 59118, 50861, 59119, 62297, 51623, 59120, 59121, 59122, 58809, 59123, 59124, 49890, 59125, 59126, 55016, 59127, 62298, 59128, 47559, 62299, 62300, 62301, 62302, 62303, 62304, 62305, 63419, 63418, 62306, 62307, 62308, 62309, 63422, 63420, 47777, 62310, 63423, 62311, 63424, 62312, 62313, 62314, 63426, 63425, 63428, 62315, 62316, 63427, 62317, 62318, 62319, 62320, 62321, 63429, 63430, 62322, 62323, 62324, 62325, 63431, 62326, 52200, 62327, 62328, 62329, 62330, 47327, 62331, 62332, 62333, 62334, 62336, 62337, 63444, 62338, 63445, 62339, 62340, 62341, 62342, 63446, 62343, 62344, 62345, 62346, 63448, 62347, 63450, 62348, 63447, 62349, 62350, 62351, 62352, 62353, 62354, 62355, 62356, 62357, 63451, 62358, 63449, 62359, 62360, 62361, 62362, 62363, 62364, 62365, 55255, 62366, 62367, 62368, 62528, 63452, 62529, 62530, 62531, 62532, 62533, 62534, 63453, 62535, 62536, 62537, 63454, 62538, 62539, 62540, 62541, 62542, 62543, 62544, 62545, 62546, 62547, 62548, 63455, 62549, 62550, 62551, 63456, 62552, 62553, 62554, 62555, 62556, 62557, 62558, 62559, 62560, 62561, 62562, 56267, 62563, 62564, 55466, 62565, 62566, 62567, 62568, 62569, 62570, 62571, 62572, 58871, 47597, 62573, 62574, 62575, 62576, 49149, 48106, 63433, 50887, 63432, 62577, 63434, 63436, 63435, 62578, 62579, 62580, 63437, 62581, 52922, 62582, 63438, 62583, 62584, 50343, 62585, 62586, 62587, 62588, 62589, 62590, 62592, 62593, 62594, 62595, 62596, 62597, 62598, 62599, 62600, 62601, 62602, 62603, 62604, 62605, 62606, 62607, 62608, 62609, 62610, 62611, 62612, 62613, 62614, 62615, 62616, 62617, 62618, 62619, 62620, 62621, 62622, 62623, 62624, 62784, 62785, 62786, 62787, 62788, 62789, 62790, 62791, 62792, 62793, 62794, 62795, 62796, 62797, 62798, 62799, 62800, 62801, 62802, 62803, 62804, 62805, 62806, 62807, 62808, 62809, 62810, 62811, 62812, 62813, 62814, 62815, 62816, 62817, 62818, 62819, 62820, 62821, 62822, 62823, 62824, 62825, 62826, 62827, 62828, 62829, 62830, 62831, 62832, 62833, 62834, 62835, 62836, 62837, 62838, 62839, 62840, 62841, 62842, 62843, 62844, 62845, 62846, 62848, 62849, 62850, 62851, 62852, 62853, 62854, 62855, 62856, 62857, 62858, 62859, 62860, 62861, 62862, 62863, 62864, 62865, 62866, 62867, 62868, 62869, 62870, 62871, 62872, 62873, 62874, 62875, 62876, 62877, 62878, 62879, 62880, 63040, 63041, 63042, 63043, 63044, 63045, 63046, 63047, 63048, 63049, 63050, 63051, 63052, 63053, 63054, 63055, 63056, 63057, 63058, 63059, 63060, 63061, 63062, 63063, 63064, 63065, 63066, 63067, 63068, 63069, 63070, 63071, 63072, 63073, 63074, 63075, 63076, 63077, 63078, 63079, 63080, 63081, 63082, 63083, 63084, 63085, 63086, 63087, 63088, 63089, 63090, 63091, 63092, 63093, 63094, 63095, 63096, 63097, 63098, 63099, 63100, 63101, 63102, 63104, 63105, 63106, 63107, 63108, 63109, 63110, 63111, 63112, 63113, 63114, 63115, 63116, 63117, 63118, 63119, 63120, 63121, 63122, 63123, 63124, 63125, 63126, 63127, 63128, 63129, 63130, 63131, 63132, 63133, 63134, 63135, 63136, 63296, 63297, 63298, 63299, 63300, 63301, 63302, 63303, 63304, 63305, 63306, 63307, 63308, 63309, 63310, 63311, 63312, 63313, 63314, 63315, 63316, 63317, 63318, 63319, 63320, 63321, 63322, 63323, 63324, 63325, 63326, 63327, 63328, 63329, 63330, 63331, 63332, 63333, 63334, 63335, 63336, 63337, 63338, 63339, 63340, 63341, 63342, 63343, 63344, 63345, 63346, 63347, 63348, 63349, 63350, 63351, 63352, 63353, 63354, 63355, 63356, 63357, 63358, 63360, 54243, 63361, 63362, 63183, 63363, 49843, 63184, 63364, 63365, 63185, 63186, 63187, 63188, 63366, 63367, 63190, 63368, 45483, 63191, 63369, 63192, 63193, 63194, 63370, 63195, 63196, 63371, 63372, 63373, 63374, 63197, 63198, 53194, 63375, 63199, 63200, 63201, 63202, 63203, 63204, 49392, 63205, 63206, 63207, 63208, 63209, 63376, 63210, 63377, 63211, 63212, 63378, 63213, 63214, 63215, 63216, 63217, 63218, 63219, 63220, 48808, 63379, 63221, 63222, 63223, 63224, 63380, 63381, 63382, 63383, 63384, 51450, 63225, 63226, 63227, 63228, 63385, 63386, 63229, 63230, 63393, 63394, 63395, 63396, 63397, 63387, 63388, 63398, 63399, 63400, 45550, 63401, 63402, 63403, 63389, 63390, 63404, 63405, 49627, 63406, 63391, 63392, 63407, 63552, 63553, 63554, 63555, 63556, 63557, 63558, 63559, 63560, 63561, 63562, 63563, 63564, 63565, 63566, 63567, 63568, 63569, 63570, 63571, 63572, 63573, 63574, 63575, 63576, 63577, 63578, 63579, 63580, 63581, 63582, 63583, 63584, 63585, 63586, 63587, 63588, 63589, 63590, 63591, 63592, 63593, 63594, 63595, 63596, 63597, 63598, 63599, 63600, 63601, 63602, 63603, 63604, 63605, 63606, 63607, 63608, 63609, 63610, 63611, 63612, 63613, 63614, 63616, 63617, 63618, 63619, 63620, 63621, 63622, 63623, 63624, 63625, 63626, 63627, 63628, 63629, 63630, 63631, 63632, 63633, 63634, 63635, 63636, 63637, 63638, 63639, 63640, 63641, 63642, 63643, 63644, 63645, 63646, 63647, 63648, 63808, 63809, 63810, 63811, 63812, 63813, 63814, 63815, 63816, 63817, 63818, 63819, 63820, 63821, 63822, 63823, 63824, 63825, 63826, 63827, 63828, 63829, 63830, 63831, 63832, 63833, 63834, 63835, 63836, 63837, 63838, 63839, 63840, 63841, 63842, 63843, 63844, 63845, 63846, 63847, 63848, 63849, 63850, 63851, 63852, 63853, 63854, 63855, 63856, 63857, 63858, 63859, 63860, 63861, 63862, 63863, 63864, 63865, 63866, 63867, 63868, 63869, 63870, 63872, 63873, 63874, 63875, 63876, 63877, 63878, 63879, 63880, 63881, 63882, 63883, 63884, 63885, 63886, 63887, 63888, 63889, 63890, 63891, 63892, 63893, 63894, 63895, 63896, 63897, 63898, 63899, 63900, 63901, 63902, 63903, 63904, 64064, 64065, 64066, 64067, 64068, 64069, 64070, 64071, 64072, 64073, 64074, 64075, 64076, 64077, 64078, 64079, 64080, 64081, 64082, 64083, 64084, 64085, 64086, 64087, 64088, 64089, 64090, 64091, 64092, 64093, 64094, 64095, 64096, 64097, 64098, 64099, 64100, 64101, 64102, 64103, 64104, 64105, 64106, 64107, 64108, 64109, 64110, 64111, 64112, 64113, 64114, 64115, 64116, 64117, 64118, 64119, 64120, 64121, 64122, 64123, 64124, 64125, 64126, 64128, 64129, 64130, 64131, 64132, 64133, 64134, 64135, 64136, 64137, 64138, 64139, 64140, 64141, 64142, 64143, 64144, 64145, 64146, 64147, 64148, 64149, 64150, 64151, 64152, 64153, 64154, 64155, 64156, 64157, 64158, 64159, 64160, 64320, 64321, 64322, 64323, 64324, 64325, 64326, 64327, 64328, 64329, 64330, 64331, 64332, 64333, 64334, 64335, 64336, 64337, 64338, 64339, 64340, 64341, 64342, 64343, 64344, 64345, 64346, 64347, 50417, 61615, 48294, 61616, 50169, 64348, 50616, 53691, 64349, 61617, 61618, 61619, 61620, 61621, 53692, 64350, 53740, 64351, 61623, 61622, 54439, 64352, 52690, 61624, 61626, 61625, 61627, 61628, 64353, 64354, 47339, 61629, 47848, 64355, 61630, 61631, 48873, 61632, 46828, 61633, 61634, 61635, 61636, 51381, 61637, 61638, 64356, 61639, 50676, 64357, 61640, 64358, 64359, 64360, 61641, 64361, 61642, 63421, 64362, 61643, 61644, 61645, 64363, 61646, 64364, 64365, 64366, 64367, 61647, 47831, 64368, 61648, 61649, 61650, 61651, 61652, 61653, 61654, 61656, 64369, 64370, 54181, 61655, 64371, 61657, 64372, 64373, 64374, 64375, 64376, 64377, 64378, 64379, 64380, 64381, 62906, 49849, 64382, 64384, 63460, 64385, 64386, 64387, 64388, 63461, 63462, 64389, 64390, 63463, 64391, 64392, 64393, 64394, 64395, 64396, 63464, 49844, 64397, 64398, 64399, 64400, 64401, 64402, 64403, 64404, 64405, 63466, 64406, 63467, 64407, 64408, 64409, 64410, 64411, 64412, 49907, 64413, 64414, 64415, 64416, 64576, 64577, 64578, 64579, 64580, 64581, 64582, 64583, 64584, 62704, 64585, 64586, 64587, 62703, 64588, 64589, 49897, 64590, 63457, 63458, 64591, 64592, 64593, 64594, 64595, 48070, 64596, 64597, 64598, 64599, 55780, 64600, 64601, 64602, 51954, 49384, 61604, 64603, 47834, 64604, 64605, 51117, 64606, 64607, 64608, 50348, 64609, 64610, 63468, 63469, 63470, 64611, 63472, 63471, 64612, 63473, 64613, 64614, 63476, 64615, 63475, 64616, 63474, 63477, 64617, 64618, 64619, 64620, 63478, 64621, 64622, 64623, 64624, 64625, 64626, 64627, 64628, 64629, 60905, 64630, 60906, 60907, 64631, 63164, 64632, 64633, 64634, 64635, 64636, 64637, 64638, 64640, 64641, 64642, 64643, 64644, 63165, 64645, 63166, 46758, 64646, 55486, 64647, 64648, 47556, 64649, 64650, 64651, 55483, 64652, 56497, 64653, 64654, 64655, 64656, 64657, 64658, 51955, 64659, 63479, 64660, 64661, 64662, 64663, 64664, 64665, 64666, 64667, 64668, 63480, 64669, 64670, 63481, 64671, 64672, 64832, 64833, 64834, 64835, 64836, 63483, 64837, 63482, 64838, 45511, 64839, 63484, 63485, 64840, 64841, 64842, 64843, 64844, 63486, 64845, 64846, 64847, 64848, 64849, 64850, 64851, 64852, 64853, 64854, 64855, 50923, 60596, 64856, 64857, 64858, 64859, 64860, 64861, 64862, 64863, 64864, 64865, 64866, 64867, 64868, 64869, 64870, 64871, 64872, 64873, 64874, 64875, 64876, 64877, 64878, 64879, 64880, 64881, 64882, 64883, 64884, 64885, 64886, 64887, 64888, 64889, 64890, 64891, 64892, 64893, 64894, 64896, 64897, 64898, 64899, 64900, 64901, 46045, 63155, 64902, 64903, 63156, 49636, 63157, 63158, 63159, 63160, 63161, 63162, 51363, 63163, 64904, 64905, 64906, 64907, 64908, 64909, 64910, 64911, 64912, 64913, 64914, 64915, 49658, 47528, 60904, 64916, 64917, 64918, 47594, 55775, 64919, 64920, 64921, 64922, 64923]); + encode1 = $toNativeArray($kindUint16, [43356, 0, 0, 43075, 41386, 43076, 41388, 0, 41390, 41391, 0, 0, 41392, 41393, 0, 0, 0, 0, 0, 0, 0, 43077, 41389, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41451, 0, 41444, 41445, 0, 43078, 0, 0, 0, 0, 0, 41465, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41699, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41446, 0, 43079, 0, 0, 0, 43080, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41453, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43353, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41713, 41714, 41715, 41716, 41717, 41718, 41719, 41720, 41721, 41722, 41723, 41724, 0, 0, 0, 0, 41633, 41634, 41635, 41636, 41637, 41638, 41639, 41640, 41641, 41642, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41467, 41468, 41466, 41469, 0, 0, 43081, 43082, 43083, 43084, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41418, 0, 0, 0, 0, 0, 0, 41415, 0, 41414, 0, 0, 0, 43085, 0, 0, 0, 0, 41420, 0, 0, 41432, 41438, 43086, 41423, 0, 0, 43087, 0, 41422, 0, 41412, 41413, 41417, 41416, 41426, 0, 0, 41427, 0, 0, 0, 0, 0, 41440, 41439, 41411, 41419, 0, 0, 0, 0, 0, 41431, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41430, 0, 0, 0, 41429, 0, 0, 0, 0, 0, 43088, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41433, 41428, 0, 0, 41436, 41437, 43089, 43090, 0, 0, 0, 0, 0, 0, 41434, 41435, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43154, 0, 0, 0, 41425, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41421, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41424, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41689, 41690, 41691, 41692, 41693, 41694, 41695, 41696, 41697, 41698, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41669, 41670, 41671, 41672, 41673, 41674, 41675, 41676, 41677, 41678, 41679, 41680, 41681, 41682, 41683, 41684, 41685, 41686, 41687, 41688, 41649, 41650, 41651, 41652, 41653, 41654, 41655, 41656, 41657, 41658, 41659, 41660, 41661, 41662, 41663, 41664, 41665, 41666, 41667, 41668, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43428, 43429, 43430, 43431, 43432, 43433, 43434, 43435, 43436, 43437, 43438, 43439, 43440, 43441, 43442, 43443, 43444, 43445, 43446, 43447, 43448, 43449, 43450, 43451, 43452, 43453, 43454, 43455, 43456, 43457, 43458, 43459, 43460, 43461, 43462, 43463, 43464, 43465, 43466, 43467, 43468, 43469, 43470, 43471, 43472, 43473, 43474, 43475, 43476, 43477, 43478, 43479, 43480, 43481, 43482, 43483, 43484, 43485, 43486, 43487, 43488, 43489, 43490, 43491, 43492, 43493, 43494, 43495, 43496, 43497, 43498, 43499, 43500, 43501, 43502, 43503, 0, 0, 0, 0, 43092, 43093, 43094, 43095, 43096, 43097, 43098, 43099, 43100, 43101, 43102, 43103, 43104, 43105, 43106, 43107, 43108, 43109, 43110, 43111, 43112, 43113, 43114, 43115, 43116, 43117, 43118, 43119, 43120, 43121, 43122, 43123, 43124, 43125, 43126, 43127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43128, 43129, 43130, 43131, 43132, 43133, 43134, 43136, 43137, 43138, 43139, 43140, 43141, 43142, 43143, 0, 0, 0, 43144, 43145, 43146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41462, 41461, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41464, 41463, 0, 0, 0, 0, 0, 0, 0, 0, 43147, 43148, 0, 0, 0, 0, 0, 0, 0, 0, 41460, 41459, 0, 0, 0, 41456, 0, 0, 41458, 41457, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43149, 43150, 43151, 43152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41455, 41454, 0, 0, 43153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41442, 0, 41441]); + encode2 = $toNativeArray($kindUint16, [41448, 0, 0, 41452, 41383, 0, 0, 0, 0, 0, 0, 0, 41443, 41408, 0, 0, 0, 0, 0, 41380, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41409, 0, 0, 0, 0, 0, 0, 0, 0, 43172, 43170, 0, 0, 0, 0, 0, 0, 43176, 43174, 43194, 0, 43180, 43178, 0, 0, 0, 0, 43184, 43182, 0, 0, 0, 41410, 0, 43188, 43186, 0, 43193, 0, 0, 0, 0, 43169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43173, 0, 0, 0, 0, 0, 0, 0, 43175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43197, 0, 0, 0, 43198, 0, 0, 0, 0, 43181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43171, 0, 43179, 0, 43183, 0, 43187, 0, 43189, 0, 43190, 0, 43191, 0, 43192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41382, 0, 41381, 43072, 43073, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43074, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42657, 42658, 42659, 42660, 42661, 42662, 42663, 42664, 42665, 42666, 42667, 42668, 42669, 42670, 42671, 42672, 42673, 0, 42674, 42675, 42676, 42677, 42678, 42679, 42680, 0, 0, 0, 0, 0, 0, 0, 42689, 42690, 42691, 42692, 42693, 42694, 42695, 42696, 42697, 42698, 42699, 42700, 42701, 42702, 42703, 42704, 42705, 0, 42706, 42707, 42708, 42709, 42710, 42711, 42712, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42919, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42913, 42914, 42915, 42916, 42917, 42918, 42920, 42921, 42922, 42923, 42924, 42925, 42926, 42927, 42928, 42929, 42930, 42931, 42932, 42933, 42934, 42935, 42936, 42937, 42938, 42939, 42940, 42941, 42942, 42943, 42944, 42945, 42961, 42962, 42963, 42964, 42965, 42966, 42968, 42969, 42970, 42971, 42972, 42973, 42974, 42975, 42976, 42977, 42978, 42979, 42980, 42981, 42982, 42983, 42984, 42985, 42986, 42987, 42988, 42989, 42990, 42991, 42992, 42993, 0, 42967]); + encode3 = $toNativeArray($kindUint16, [43349, 42738, 0, 42740, 42741, 42720, 42721, 42736, 42737, 42722, 42723, 42734, 42735, 42726, 42727, 42724, 42725, 42728, 42729, 42730, 42731, 0, 0, 0, 0, 43368, 43369, 43370, 43371, 43372, 43373, 43374, 43375, 43376, 43377, 0, 43378, 43379, 43380, 43381, 0, 43382, 43383, 43384, 43385, 43386, 43387, 43388, 43389, 43390, 43392, 43393, 43394, 43395, 43396, 0, 43397, 43398, 43399, 43400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41889, 41890, 41891, 41447, 41893, 41894, 41895, 41896, 41897, 41898, 41899, 41900, 41901, 41902, 41903, 41904, 41905, 41906, 41907, 41908, 41909, 41910, 41911, 41912, 41913, 41914, 41915, 41916, 41917, 41918, 41919, 41920, 41921, 41922, 41923, 41924, 41925, 41926, 41927, 41928, 41929, 41930, 41931, 41932, 41933, 41934, 41935, 41936, 41937, 41938, 41939, 41940, 41941, 41942, 41943, 41944, 41945, 41946, 41947, 41948, 41949, 41950, 41951, 41952, 41953, 41954, 41955, 41956, 41957, 41958, 41959, 41960, 41961, 41962, 41963, 41964, 41965, 41966, 41967, 41968, 41969, 41970, 41971, 41972, 41973, 41974, 41975, 41976, 41977, 41978, 41979, 41980, 41981, 41387, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41449, 41450, 43350, 41982, 43351, 41892]); + encode4 = $toNativeArray($kindUint16, [64924, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64925, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64926, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64927, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64928, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65088, 65089, 65090, 65091, 0, 65092, 0, 65093, 65094, 0, 0, 0, 65095, 0, 0, 0, 0, 0, 0, 65096, 65097, 65098, 0, 65099, 65100, 0, 0, 65101, 65102, 65103]); + init(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["golang.org/x/text/encoding/traditionalchinese"] = (function() { + var $pkg = {}, $init, encoding, internal, identifier, transform, utf8, big5Decoder, big5Encoder, sliceType$1, big5, big5$24ptr, decode, encode0, encode1, encode2, encode3, encode4, encode5, encode6, encode7, x, x$1, init; + encoding = $packages["golang.org/x/text/encoding"]; + internal = $packages["golang.org/x/text/encoding/internal"]; + identifier = $packages["golang.org/x/text/encoding/internal/identifier"]; + transform = $packages["golang.org/x/text/transform"]; + utf8 = $packages["unicode/utf8"]; + big5Decoder = $pkg.big5Decoder = $newType(0, $kindStruct, "traditionalchinese.big5Decoder", true, "golang.org/x/text/encoding/traditionalchinese", false, function(NopResetter_) { + this.$val = this; + if (arguments.length === 0) { + this.NopResetter = new transform.NopResetter.ptr(); + return; + } + this.NopResetter = NopResetter_; + }); + big5Encoder = $pkg.big5Encoder = $newType(0, $kindStruct, "traditionalchinese.big5Encoder", true, "golang.org/x/text/encoding/traditionalchinese", false, function(NopResetter_) { + this.$val = this; + if (arguments.length === 0) { + this.NopResetter = new transform.NopResetter.ptr(); + return; + } + this.NopResetter = NopResetter_; + }); + sliceType$1 = $sliceType($Uint8); + big5Decoder.ptr.prototype.Transform = function(dst, src, atEOF) { + var _1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, atEOF, c0, c1, dst, err, i, nDst, nSrc, r, s, size, src, x$2, $s; + /* */ $s = 0; s: while (true) { switch ($s) { case 0: + nDst = 0; + nSrc = 0; + err = $ifaceNil; + _tmp = 0; + _tmp$1 = 0; + _tmp$2 = ""; + r = _tmp; + size = _tmp$1; + s = _tmp$2; + /* while (true) { */ case 1: + /* if (!(nSrc < src.$length)) { break; } */ if(!(nSrc < src.$length)) { $s = 2; continue; } + c0 = ((nSrc < 0 || nSrc >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + nSrc]); + /* */ if (c0 < 128) { $s = 4; continue; } + /* */ if (129 <= c0 && c0 < 255) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (c0 < 128) { */ case 4: + _tmp$3 = ((c0 >> 0)); + _tmp$4 = 1; + r = _tmp$3; + size = _tmp$4; + $s = 7; continue; + /* } else if (129 <= c0 && c0 < 255) { */ case 5: + /* */ if ((nSrc + 1 >> 0) >= src.$length) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if ((nSrc + 1 >> 0) >= src.$length) { */ case 8: + if (!atEOF) { + err = transform.ErrShortSrc; + /* break loop; */ $s = 2; continue s; + } + _tmp$5 = 65533; + _tmp$6 = 1; + r = _tmp$5; + size = _tmp$6; + /* goto write */ $s = 10; continue; + /* } */ case 9: + c1 = (x$2 = nSrc + 1 >> 0, ((x$2 < 0 || x$2 >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x$2])); + /* */ if (64 <= c1 && c1 < 127) { $s = 12; continue; } + /* */ if (161 <= c1 && c1 < 255) { $s = 13; continue; } + /* */ if (c1 < 64) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (64 <= c1 && c1 < 127) { */ case 12: + c1 = c1 - (64) << 24 >>> 24; + $s = 16; continue; + /* } else if (161 <= c1 && c1 < 255) { */ case 13: + c1 = c1 - (98) << 24 >>> 24; + $s = 16; continue; + /* } else if (c1 < 64) { */ case 14: + _tmp$7 = 65533; + _tmp$8 = 1; + r = _tmp$7; + size = _tmp$8; + /* goto write */ $s = 10; continue; + $s = 16; continue; + /* } else { */ case 15: + _tmp$9 = 65533; + _tmp$10 = 2; + r = _tmp$9; + size = _tmp$10; + /* goto write */ $s = 10; continue; + /* } */ case 16: + case 11: + _tmp$11 = 65533; + _tmp$12 = 2; + r = _tmp$11; + size = _tmp$12; + i = ($imul((((c0 - 129 << 24 >>> 24) >> 0)), 157)) + ((c1 >> 0)) >> 0; + /* */ if (i < 19782) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (i < 19782) { */ case 17: + /* */ if (1133 <= i && i < 1167) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (1133 <= i && i < 1167) { */ case 19: + _1 = i; + /* */ if (_1 === (1133)) { $s = 22; continue; } + /* */ if (_1 === (1135)) { $s = 23; continue; } + /* */ if (_1 === (1164)) { $s = 24; continue; } + /* */ if (_1 === (1166)) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (_1 === (1133)) { */ case 22: + s = "\xC3\x8A\xCC\x84"; + /* goto writeStr */ $s = 27; continue; + $s = 26; continue; + /* } else if (_1 === (1135)) { */ case 23: + s = "\xC3\x8A\xCC\x8C"; + /* goto writeStr */ $s = 27; continue; + $s = 26; continue; + /* } else if (_1 === (1164)) { */ case 24: + s = "\xC3\xAA\xCC\x84"; + /* goto writeStr */ $s = 27; continue; + $s = 26; continue; + /* } else if (_1 === (1166)) { */ case 25: + s = "\xC3\xAA\xCC\x8C"; + /* goto writeStr */ $s = 27; continue; + /* } */ case 26: + case 21: + /* } */ case 20: + r = ((((i < 0 || i >= decode.length) ? ($throwRuntimeError("index out of range"), undefined) : decode[i]) >> 0)); + if (r === 0) { + r = 65533; + } + /* } */ case 18: + $s = 7; continue; + /* } else { */ case 6: + _tmp$13 = 65533; + _tmp$14 = 1; + r = _tmp$13; + size = _tmp$14; + /* } */ case 7: + case 3: + /* write: */ case 10: + if ((nDst + utf8.RuneLen(r) >> 0) > dst.$length) { + err = transform.ErrShortDst; + /* break loop; */ $s = 2; continue s; + } + nDst = nDst + (utf8.EncodeRune($subslice(dst, nDst), r)) >> 0; + nSrc = nSrc + (size) >> 0; + /* continue loop; */ $s = 1; continue s; + /* writeStr: */ case 27: + if ((nDst + s.length >> 0) > dst.$length) { + err = transform.ErrShortDst; + /* break loop; */ $s = 2; continue s; + } + nDst = nDst + ($copyString($subslice(dst, nDst), s)) >> 0; + nSrc = nSrc + (size) >> 0; + /* continue loop; */ $s = 1; continue s; + /* } */ $s = 1; continue; case 2: + _tmp$15 = nDst; + _tmp$16 = nSrc; + _tmp$17 = err; + nDst = _tmp$15; + nSrc = _tmp$16; + err = _tmp$17; + $s = -1; return [nDst, nSrc, err]; + /* */ } return; } + }; + big5Decoder.prototype.Transform = function(dst, src, atEOF) { return this.$val.Transform(dst, src, atEOF); }; + big5Encoder.ptr.prototype.Transform = function(dst, src, atEOF) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tuple, atEOF, dst, err, nDst, nSrc, r, size, src, x$10, x$11, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s; + /* */ $s = 0; s: while (true) { switch ($s) { case 0: + nDst = 0; + nSrc = 0; + err = $ifaceNil; + _tmp = 0; + _tmp$1 = 0; + r = _tmp; + size = _tmp$1; + /* while (true) { */ case 1: + /* if (!(nSrc < src.$length)) { break; } */ if(!(nSrc < src.$length)) { $s = 2; continue; } + r = ((((nSrc < 0 || nSrc >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + nSrc]) >> 0)); + /* */ if (r < 128) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (r < 128) { */ case 3: + size = 1; + if (nDst >= dst.$length) { + err = transform.ErrShortDst; + /* break; */ $s = 2; continue; + } + ((nDst < 0 || nDst >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + nDst] = ((r << 24 >>> 24))); + nDst = nDst + (1) >> 0; + nSrc = nSrc + (size) >> 0; + /* continue; */ $s = 1; continue; + $s = 5; continue; + /* } else { */ case 4: + _tuple = utf8.DecodeRune($subslice(src, nSrc)); + r = _tuple[0]; + size = _tuple[1]; + if (size === 1) { + if (!atEOF && !utf8.FullRune($subslice(src, nSrc))) { + err = transform.ErrShortSrc; + /* break; */ $s = 2; continue; + } + } + /* } */ case 5: + /* */ if (r >= 128) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (r >= 128) { */ case 6: + /* */ if (131105 <= r && r < 173738) { $s = 9; continue; } + /* */ if (11904 <= r && r < 40908) { $s = 10; continue; } + /* */ if (7870 <= r && r < 10046) { $s = 11; continue; } + /* */ if (167 <= r && r < 1106) { $s = 12; continue; } + /* */ if (65072 <= r && r < 65518) { $s = 13; continue; } + /* */ if (194597 <= r && r < 195029) { $s = 14; continue; } + /* */ if (63751 <= r && r < 64014) { $s = 15; continue; } + /* */ if (175615 <= r && r < 175616) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (131105 <= r && r < 173738) { */ case 9: + r = (((x$2 = r - 131105 >> 0, ((x$2 < 0 || x$2 >= encode0.length) ? ($throwRuntimeError("index out of range"), undefined) : encode0[x$2])) >> 0)); + /* */ if (!((r === 0))) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (!((r === 0))) { */ case 18: + /* goto write2 */ $s = 20; continue; + /* } */ case 19: + $s = 17; continue; + /* } else if (11904 <= r && r < 40908) { */ case 10: + r = (((x$3 = r - 11904 >> 0, ((x$3 < 0 || x$3 >= encode1.length) ? ($throwRuntimeError("index out of range"), undefined) : encode1[x$3])) >> 0)); + /* */ if (!((r === 0))) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (!((r === 0))) { */ case 21: + /* goto write2 */ $s = 20; continue; + /* } */ case 22: + $s = 17; continue; + /* } else if (7870 <= r && r < 10046) { */ case 11: + r = (((x$4 = r - 7870 >> 0, ((x$4 < 0 || x$4 >= encode2.length) ? ($throwRuntimeError("index out of range"), undefined) : encode2[x$4])) >> 0)); + /* */ if (!((r === 0))) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (!((r === 0))) { */ case 23: + /* goto write2 */ $s = 20; continue; + /* } */ case 24: + $s = 17; continue; + /* } else if (167 <= r && r < 1106) { */ case 12: + r = (((x$5 = r - 167 >> 0, ((x$5 < 0 || x$5 >= encode3.length) ? ($throwRuntimeError("index out of range"), undefined) : encode3[x$5])) >> 0)); + /* */ if (!((r === 0))) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (!((r === 0))) { */ case 25: + /* goto write2 */ $s = 20; continue; + /* } */ case 26: + $s = 17; continue; + /* } else if (65072 <= r && r < 65518) { */ case 13: + r = (((x$6 = r - 65072 >> 0, ((x$6 < 0 || x$6 >= encode4.length) ? ($throwRuntimeError("index out of range"), undefined) : encode4[x$6])) >> 0)); + /* */ if (!((r === 0))) { $s = 27; continue; } + /* */ $s = 28; continue; + /* if (!((r === 0))) { */ case 27: + /* goto write2 */ $s = 20; continue; + /* } */ case 28: + $s = 17; continue; + /* } else if (194597 <= r && r < 195029) { */ case 14: + r = (((x$7 = r - 194597 >> 0, ((x$7 < 0 || x$7 >= encode5.length) ? ($throwRuntimeError("index out of range"), undefined) : encode5[x$7])) >> 0)); + /* */ if (!((r === 0))) { $s = 29; continue; } + /* */ $s = 30; continue; + /* if (!((r === 0))) { */ case 29: + /* goto write2 */ $s = 20; continue; + /* } */ case 30: + $s = 17; continue; + /* } else if (63751 <= r && r < 64014) { */ case 15: + r = (((x$8 = r - 63751 >> 0, ((x$8 < 0 || x$8 >= encode6.length) ? ($throwRuntimeError("index out of range"), undefined) : encode6[x$8])) >> 0)); + /* */ if (!((r === 0))) { $s = 31; continue; } + /* */ $s = 32; continue; + /* if (!((r === 0))) { */ case 31: + /* goto write2 */ $s = 20; continue; + /* } */ case 32: + $s = 17; continue; + /* } else if (175615 <= r && r < 175616) { */ case 16: + r = (((x$9 = r - 175615 >> 0, ((x$9 < 0 || x$9 >= encode7.length) ? ($throwRuntimeError("index out of range"), undefined) : encode7[x$9])) >> 0)); + /* */ if (!((r === 0))) { $s = 33; continue; } + /* */ $s = 34; continue; + /* if (!((r === 0))) { */ case 33: + /* goto write2 */ $s = 20; continue; + /* } */ case 34: + /* } */ case 17: + case 8: + err = new internal.RepertoireError(internal.ErrASCIIReplacement); + /* break; */ $s = 2; continue; + /* } */ case 7: + /* write2: */ case 20: + if ((nDst + 2 >> 0) > dst.$length) { + err = transform.ErrShortDst; + /* break; */ $s = 2; continue; + } + (x$10 = nDst + 0 >> 0, ((x$10 < 0 || x$10 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$10] = (((r >> 8 >> 0) << 24 >>> 24)))); + (x$11 = nDst + 1 >> 0, ((x$11 < 0 || x$11 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$11] = ((r << 24 >>> 24)))); + nDst = nDst + (2) >> 0; + nSrc = nSrc + (size) >> 0; + /* continue; */ $s = 1; continue; + /* } */ $s = 1; continue; case 2: + _tmp$2 = nDst; + _tmp$3 = nSrc; + _tmp$4 = err; + nDst = _tmp$2; + nSrc = _tmp$3; + err = _tmp$4; + $s = -1; return [nDst, nSrc, err]; + /* */ } return; } + }; + big5Encoder.prototype.Transform = function(dst, src, atEOF) { return this.$val.Transform(dst, src, atEOF); }; + init = function() { + if (false) { + $panic(new $String("bad numEncodeTables")); + } + }; + big5Decoder.methods = [{prop: "Transform", name: "Transform", pkg: "", typ: $funcType([sliceType$1, sliceType$1, $Bool], [$Int, $Int, $error], false)}]; + big5Encoder.methods = [{prop: "Transform", name: "Transform", pkg: "", typ: $funcType([sliceType$1, sliceType$1, $Bool], [$Int, $Int, $error], false)}]; + big5Decoder.init("", [{prop: "NopResetter", name: "NopResetter", embedded: true, exported: true, typ: transform.NopResetter, tag: ""}]); + big5Encoder.init("", [{prop: "NopResetter", name: "NopResetter", embedded: true, exported: true, typ: transform.NopResetter, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = encoding.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = internal.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = identifier.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = transform.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + big5 = new internal.Encoding.ptr(new internal.SimpleEncoding.ptr((x = new big5Decoder.ptr(new transform.NopResetter.ptr()), new x.constructor.elem(x)), (x$1 = new big5Encoder.ptr(new transform.NopResetter.ptr()), new x$1.constructor.elem(x$1))), "Big5", 2026); + $pkg.Big5 = big5; + decode = $toNativeArray($kindUint32, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17392, 19506, 17923, 17830, 17784, 160359, 19831, 17843, 162993, 19682, 163013, 15253, 18230, 18244, 19527, 19520, 148159, 144919, 160594, 159371, 159954, 19543, 172881, 18255, 17882, 19589, 162924, 19719, 19108, 18081, 158499, 29221, 154196, 137827, 146950, 147297, 26189, 22267, 0, 32149, 22813, 166841, 15860, 38708, 162799, 23515, 138590, 23204, 13861, 171696, 23249, 23479, 23804, 26478, 34195, 170309, 29793, 29853, 14453, 138579, 145054, 155681, 16108, 153822, 15093, 31484, 40855, 147809, 166157, 143850, 133770, 143966, 17162, 33924, 40854, 37935, 18736, 34323, 22678, 38730, 37400, 31184, 31282, 26208, 27177, 34973, 29772, 31685, 26498, 31276, 21071, 36934, 13542, 29636, 155065, 29894, 40903, 22451, 18735, 21580, 16689, 145038, 22552, 31346, 162661, 35727, 18094, 159368, 16769, 155033, 31662, 140476, 40904, 140481, 140489, 140492, 40905, 34052, 144827, 16564, 40906, 17633, 175615, 25281, 28782, 40907, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12736, 12737, 12738, 12739, 12740, 131340, 12741, 131281, 131277, 12742, 12743, 131275, 139240, 12744, 131274, 12745, 12746, 12747, 12748, 131342, 12749, 12750, 256, 193, 461, 192, 274, 201, 282, 200, 332, 211, 465, 210, 0, 7870, 0, 7872, 202, 257, 225, 462, 224, 593, 275, 233, 283, 232, 299, 237, 464, 236, 333, 243, 466, 242, 363, 250, 468, 249, 470, 472, 474, 476, 252, 0, 7871, 0, 7873, 234, 609, 9178, 9179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172969, 135493, 0, 25866, 0, 0, 20029, 28381, 40270, 37343, 0, 0, 161589, 25745, 20250, 20264, 20392, 20822, 20852, 20892, 20964, 21153, 21160, 21307, 21326, 21457, 21464, 22242, 22768, 22788, 22791, 22834, 22836, 23398, 23454, 23455, 23706, 24198, 24635, 25993, 26622, 26628, 26725, 27982, 28860, 30005, 32420, 32428, 32442, 32455, 32463, 32479, 32518, 32567, 33402, 33487, 33647, 35270, 35774, 35810, 36710, 36711, 36718, 29713, 31996, 32205, 26950, 31433, 21031, 0, 0, 0, 0, 37260, 30904, 37214, 32956, 0, 36107, 33014, 133607, 0, 0, 32927, 40647, 19661, 40393, 40460, 19518, 171510, 159758, 40458, 172339, 13761, 0, 28314, 33342, 29977, 0, 18705, 39532, 39567, 40857, 31111, 164972, 138698, 132560, 142054, 20004, 20097, 20096, 20103, 20159, 20203, 20279, 13388, 20413, 15944, 20483, 20616, 13437, 13459, 13477, 20870, 22789, 20955, 20988, 20997, 20105, 21113, 21136, 21287, 13767, 21417, 13649, 21424, 13651, 21442, 21539, 13677, 13682, 13953, 21651, 21667, 21684, 21689, 21712, 21743, 21784, 21795, 21800, 13720, 21823, 13733, 13759, 21975, 13765, 163204, 21797, 0, 134210, 134421, 151851, 21904, 142534, 14828, 131905, 36422, 150968, 169189, 16467, 164030, 30586, 142392, 14900, 18389, 164189, 158194, 151018, 25821, 134524, 135092, 134357, 135412, 25741, 36478, 134806, 134155, 135012, 142505, 164438, 148691, 0, 134470, 170573, 164073, 18420, 151207, 142530, 39602, 14951, 169460, 16365, 13574, 152263, 169940, 161992, 142660, 40302, 38933, 0, 17369, 155813, 25780, 21731, 142668, 142282, 135287, 14843, 135279, 157402, 157462, 162208, 25834, 151634, 134211, 36456, 139681, 166732, 132913, 0, 18443, 131497, 16378, 22643, 142733, 0, 148936, 132348, 155799, 134988, 134550, 21881, 16571, 17338, 0, 19124, 141926, 135325, 33194, 39157, 134556, 25465, 14846, 141173, 36288, 22177, 25724, 15939, 0, 173569, 134665, 142031, 142537, 0, 135368, 145858, 14738, 14854, 164507, 13688, 155209, 139463, 22098, 134961, 142514, 169760, 13500, 27709, 151099, 0, 0, 161140, 142987, 139784, 173659, 167117, 134778, 134196, 157724, 32659, 135375, 141315, 141625, 13819, 152035, 134796, 135053, 134826, 16275, 134960, 134471, 135503, 134732, 0, 134827, 134057, 134472, 135360, 135485, 16377, 140950, 25650, 135085, 144372, 161337, 142286, 134526, 134527, 142417, 142421, 14872, 134808, 135367, 134958, 173618, 158544, 167122, 167321, 167114, 38314, 21708, 33476, 21945, 0, 171715, 39974, 39606, 161630, 142830, 28992, 33133, 33004, 23580, 157042, 33076, 14231, 21343, 164029, 37302, 134906, 134671, 134775, 134907, 13789, 151019, 13833, 134358, 22191, 141237, 135369, 134672, 134776, 135288, 135496, 164359, 136277, 134777, 151120, 142756, 23124, 135197, 135198, 135413, 135414, 22428, 134673, 161428, 164557, 135093, 134779, 151934, 14083, 135094, 135552, 152280, 172733, 149978, 137274, 147831, 164476, 22681, 21096, 13850, 153405, 31666, 23400, 18432, 19244, 40743, 18919, 39967, 39821, 154484, 143677, 22011, 13810, 22153, 20008, 22786, 138177, 194680, 38737, 131206, 20059, 20155, 13630, 23587, 24401, 24516, 14586, 25164, 25909, 27514, 27701, 27706, 28780, 29227, 20012, 29357, 149737, 32594, 31035, 31993, 32595, 156266, 13505, 0, 156491, 32770, 32896, 157202, 158033, 21341, 34916, 35265, 161970, 35744, 36125, 38021, 38264, 38271, 38376, 167439, 38886, 39029, 39118, 39134, 39267, 170000, 40060, 40479, 40644, 27503, 63751, 20023, 131207, 38429, 25143, 38050, 0, 20539, 28158, 171123, 40870, 15817, 34959, 147790, 28791, 23797, 19232, 152013, 13657, 154928, 24866, 166450, 36775, 37366, 29073, 26393, 29626, 144001, 172295, 15499, 137600, 19216, 30948, 29698, 20910, 165647, 16393, 27235, 172730, 16931, 34319, 133743, 31274, 170311, 166634, 38741, 28749, 21284, 139390, 37876, 30425, 166371, 40871, 30685, 20131, 20464, 20668, 20015, 20247, 40872, 21556, 32139, 22674, 22736, 138678, 24210, 24217, 24514, 141074, 25995, 144377, 26905, 27203, 146531, 27903, 0, 29184, 148741, 29580, 16091, 150035, 23317, 29881, 35715, 154788, 153237, 31379, 31724, 31939, 32364, 33528, 34199, 40873, 34960, 40874, 36537, 40875, 36815, 34143, 39392, 37409, 40876, 167353, 136255, 16497, 17058, 23066, 0, 0, 0, 39016, 26475, 17014, 22333, 0, 34262, 149883, 33471, 160013, 19585, 159092, 23931, 158485, 159678, 40877, 40878, 23446, 40879, 26343, 32347, 28247, 31178, 15752, 17603, 143958, 141206, 17306, 17718, 0, 23765, 146202, 35577, 23672, 15634, 144721, 23928, 40882, 29015, 17752, 147692, 138787, 19575, 14712, 13386, 131492, 158785, 35532, 20404, 131641, 22975, 33132, 38998, 170234, 24379, 134047, 0, 139713, 166253, 16642, 18107, 168057, 16135, 40883, 172469, 16632, 14294, 18167, 158790, 16764, 165554, 160767, 17773, 14548, 152730, 17761, 17691, 19849, 19579, 19830, 17898, 16328, 150287, 13921, 17630, 17597, 16877, 23870, 23880, 23894, 15868, 14351, 23972, 23993, 14368, 14392, 24130, 24253, 24357, 24451, 14600, 14612, 14655, 14669, 24791, 24893, 23781, 14729, 25015, 25017, 25039, 14776, 25132, 25232, 25317, 25368, 14840, 22193, 14851, 25570, 25595, 25607, 25690, 14923, 25792, 23829, 22049, 40863, 14999, 25990, 15037, 26111, 26195, 15090, 26258, 15138, 26390, 15170, 26532, 26624, 15192, 26698, 26756, 15218, 15217, 15227, 26889, 26947, 29276, 26980, 27039, 27013, 15292, 27094, 15325, 27237, 27252, 27249, 27266, 15340, 27289, 15346, 27307, 27317, 27348, 27382, 27521, 27585, 27626, 27765, 27818, 15563, 27906, 27910, 27942, 28033, 15599, 28068, 28081, 28181, 28184, 28201, 28294, 166336, 28347, 28386, 28378, 40831, 28392, 28393, 28452, 28468, 15686, 147265, 28545, 28606, 15722, 15733, 29111, 23705, 15754, 28716, 15761, 28752, 28756, 28783, 28799, 28809, 131877, 17345, 13809, 134872, 147159, 22462, 159443, 28990, 153568, 13902, 27042, 166889, 23412, 31305, 153825, 169177, 31333, 31357, 154028, 31419, 31408, 31426, 31427, 29137, 156813, 16842, 31450, 31453, 31466, 16879, 21682, 154625, 31499, 31573, 31529, 152334, 154878, 31650, 31599, 33692, 154548, 158847, 31696, 33825, 31634, 31672, 154912, 15789, 154725, 33938, 31738, 31750, 31797, 154817, 31812, 31875, 149634, 31910, 26237, 148856, 31945, 31943, 31974, 31860, 31987, 31989, 31950, 32359, 17693, 159300, 32093, 159446, 29837, 32137, 32171, 28981, 32179, 32210, 147543, 155689, 32228, 15635, 32245, 137209, 32229, 164717, 32285, 155937, 155994, 32366, 32402, 17195, 37996, 32295, 32576, 32577, 32583, 31030, 156368, 39393, 32663, 156497, 32675, 136801, 131176, 17756, 145254, 17667, 164666, 32762, 156809, 32773, 32776, 32797, 32808, 32815, 172167, 158915, 32827, 32828, 32865, 141076, 18825, 157222, 146915, 157416, 26405, 32935, 166472, 33031, 33050, 22704, 141046, 27775, 156824, 151480, 25831, 136330, 33304, 137310, 27219, 150117, 150165, 17530, 33321, 133901, 158290, 146814, 20473, 136445, 34018, 33634, 158474, 149927, 144688, 137075, 146936, 33450, 26907, 194964, 16859, 34123, 33488, 33562, 134678, 137140, 14017, 143741, 144730, 33403, 33506, 33560, 147083, 159139, 158469, 158615, 144846, 15807, 33565, 21996, 33669, 17675, 159141, 33708, 33729, 33747, 13438, 159444, 27223, 34138, 13462, 159298, 143087, 33880, 154596, 33905, 15827, 17636, 27303, 33866, 146613, 31064, 33960, 158614, 159351, 159299, 34014, 33807, 33681, 17568, 33939, 34020, 154769, 16960, 154816, 17731, 34100, 23282, 159385, 17703, 34163, 17686, 26559, 34326, 165413, 165435, 34241, 159880, 34306, 136578, 159949, 194994, 17770, 34344, 13896, 137378, 21495, 160666, 34430, 34673, 172280, 34798, 142375, 34737, 34778, 34831, 22113, 34412, 26710, 17935, 34885, 34886, 161248, 146873, 161252, 34910, 34972, 18011, 34996, 34997, 25537, 35013, 30583, 161551, 35207, 35210, 35238, 35241, 35239, 35260, 166437, 35303, 162084, 162493, 35484, 30611, 37374, 35472, 162393, 31465, 162618, 147343, 18195, 162616, 29052, 35596, 35615, 152624, 152933, 35647, 35660, 35661, 35497, 150138, 35728, 35739, 35503, 136927, 17941, 34895, 35995, 163156, 163215, 195028, 14117, 163155, 36054, 163224, 163261, 36114, 36099, 137488, 36059, 28764, 36113, 150729, 16080, 36215, 36265, 163842, 135188, 149898, 15228, 164284, 160012, 31463, 36525, 36534, 36547, 37588, 36633, 36653, 164709, 164882, 36773, 37635, 172703, 133712, 36787, 18730, 166366, 165181, 146875, 24312, 143970, 36857, 172052, 165564, 165121, 140069, 14720, 159447, 36919, 165180, 162494, 36961, 165228, 165387, 37032, 165651, 37060, 165606, 37038, 37117, 37223, 15088, 37289, 37316, 31916, 166195, 138889, 37390, 27807, 37441, 37474, 153017, 37561, 166598, 146587, 166668, 153051, 134449, 37676, 37739, 166625, 166891, 28815, 23235, 166626, 166629, 18789, 37444, 166892, 166969, 166911, 37747, 37979, 36540, 38277, 38310, 37926, 38304, 28662, 17081, 140922, 165592, 135804, 146990, 18911, 27676, 38523, 38550, 16748, 38563, 159445, 25050, 38582, 30965, 166624, 38589, 21452, 18849, 158904, 131700, 156688, 168111, 168165, 150225, 137493, 144138, 38705, 34370, 38710, 18959, 17725, 17797, 150249, 28789, 23361, 38683, 38748, 168405, 38743, 23370, 168427, 38751, 37925, 20688, 143543, 143548, 38793, 38815, 38833, 38846, 38848, 38866, 38880, 152684, 38894, 29724, 169011, 38911, 38901, 168989, 162170, 19153, 38964, 38963, 38987, 39014, 15118, 160117, 15697, 132656, 147804, 153350, 39114, 39095, 39112, 39111, 19199, 159015, 136915, 21936, 39137, 39142, 39148, 37752, 39225, 150057, 19314, 170071, 170245, 39413, 39436, 39483, 39440, 39512, 153381, 14020, 168113, 170965, 39648, 39650, 170757, 39668, 19470, 39700, 39725, 165376, 20532, 39732, 158120, 14531, 143485, 39760, 39744, 171326, 23109, 137315, 39822, 148043, 39938, 39935, 39948, 171624, 40404, 171959, 172434, 172459, 172257, 172323, 172511, 40318, 40323, 172340, 40462, 26760, 40388, 139611, 172435, 172576, 137531, 172595, 40249, 172217, 172724, 40592, 40597, 40606, 40610, 19764, 40618, 40623, 148324, 40641, 15200, 14821, 15645, 20274, 14270, 166955, 40706, 40712, 19350, 37924, 159138, 40727, 40726, 40761, 22175, 22154, 40773, 39352, 168075, 38898, 33919, 40802, 40809, 31452, 40846, 29206, 19390, 149877, 149947, 29047, 150008, 148296, 150097, 29598, 166874, 137466, 31135, 166270, 167478, 37737, 37875, 166468, 37612, 37761, 37835, 166252, 148665, 29207, 16107, 30578, 31299, 28880, 148595, 148472, 29054, 137199, 28835, 137406, 144793, 16071, 137349, 152623, 137208, 14114, 136955, 137273, 14049, 137076, 137425, 155467, 14115, 136896, 22363, 150053, 136190, 135848, 136134, 136374, 34051, 145062, 34051, 33877, 149908, 160101, 146993, 152924, 147195, 159826, 17652, 145134, 170397, 159526, 26617, 14131, 15381, 15847, 22636, 137506, 26640, 16471, 145215, 147681, 147595, 147727, 158753, 21707, 22174, 157361, 22162, 135135, 134056, 134669, 37830, 166675, 37788, 20216, 20779, 14361, 148534, 20156, 132197, 131967, 20299, 20362, 153169, 23144, 131499, 132043, 14745, 131850, 132116, 13365, 20265, 131776, 167603, 131701, 35546, 131596, 20120, 20685, 20749, 20386, 20227, 150030, 147082, 20290, 20526, 20588, 20609, 20428, 20453, 20568, 20732, 20825, 20827, 20829, 20830, 28278, 144789, 147001, 147135, 28018, 137348, 147081, 20904, 20931, 132576, 17629, 132259, 132242, 132241, 36218, 166556, 132878, 21081, 21156, 133235, 21217, 37742, 18042, 29068, 148364, 134176, 149932, 135396, 27089, 134685, 29817, 16094, 29849, 29716, 29782, 29592, 19342, 150204, 147597, 21456, 13700, 29199, 147657, 21940, 131909, 21709, 134086, 22301, 37469, 38644, 37734, 22493, 22413, 22399, 13886, 22731, 23193, 166470, 136954, 137071, 136976, 23084, 22968, 37519, 23166, 23247, 23058, 153926, 137715, 137313, 148117, 14069, 27909, 29763, 23073, 155267, 23169, 166871, 132115, 37856, 29836, 135939, 28933, 18802, 37896, 166395, 37821, 14240, 23582, 23710, 24158, 24136, 137622, 137596, 146158, 24269, 23375, 137475, 137476, 14081, 137376, 14045, 136958, 14035, 33066, 166471, 138682, 144498, 166312, 24332, 24334, 137511, 137131, 23147, 137019, 23364, 34324, 161277, 34912, 24702, 141408, 140843, 24539, 16056, 140719, 140734, 168072, 159603, 25024, 131134, 131142, 140827, 24985, 24984, 24693, 142491, 142599, 149204, 168269, 25713, 149093, 142186, 14889, 142114, 144464, 170218, 142968, 25399, 173147, 25782, 25393, 25553, 149987, 142695, 25252, 142497, 25659, 25963, 26994, 15348, 143502, 144045, 149897, 144043, 21773, 144096, 137433, 169023, 26318, 144009, 143795, 15072, 16784, 152964, 166690, 152975, 136956, 152923, 152613, 30958, 143619, 137258, 143924, 13412, 143887, 143746, 148169, 26254, 159012, 26219, 19347, 26160, 161904, 138731, 26211, 144082, 144097, 26142, 153714, 14545, 145466, 145340, 15257, 145314, 144382, 29904, 15254, 26511, 149034, 26806, 26654, 15300, 27326, 14435, 145365, 148615, 27187, 27218, 27337, 27397, 137490, 25873, 26776, 27212, 15319, 27258, 27479, 147392, 146586, 37792, 37618, 166890, 166603, 37513, 163870, 166364, 37991, 28069, 28427, 149996, 28007, 147327, 15759, 28164, 147516, 23101, 28170, 22599, 27940, 30786, 28987, 148250, 148086, 28913, 29264, 29319, 29332, 149391, 149285, 20857, 150180, 132587, 29818, 147192, 144991, 150090, 149783, 155617, 16134, 16049, 150239, 166947, 147253, 24743, 16115, 29900, 29756, 37767, 29751, 17567, 159210, 17745, 30083, 16227, 150745, 150790, 16216, 30037, 30323, 173510, 15129, 29800, 166604, 149931, 149902, 15099, 15821, 150094, 16127, 149957, 149747, 37370, 22322, 37698, 166627, 137316, 20703, 152097, 152039, 30584, 143922, 30478, 30479, 30587, 149143, 145281, 14942, 149744, 29752, 29851, 16063, 150202, 150215, 16584, 150166, 156078, 37639, 152961, 30750, 30861, 30856, 30930, 29648, 31065, 161601, 153315, 16654, 31131, 33942, 31141, 27181, 147194, 31290, 31220, 16750, 136934, 16690, 37429, 31217, 134476, 149900, 131737, 146874, 137070, 13719, 21867, 13680, 13994, 131540, 134157, 31458, 23129, 141045, 154287, 154268, 23053, 131675, 30960, 23082, 154566, 31486, 16889, 31837, 31853, 16913, 154547, 155324, 155302, 31949, 150009, 137136, 31886, 31868, 31918, 27314, 32220, 32263, 32211, 32590, 156257, 155996, 162632, 32151, 155266, 17002, 158581, 133398, 26582, 131150, 144847, 22468, 156690, 156664, 149858, 32733, 31527, 133164, 154345, 154947, 31500, 155150, 39398, 34373, 39523, 27164, 144447, 14818, 150007, 157101, 39455, 157088, 33920, 160039, 158929, 17642, 33079, 17410, 32966, 33033, 33090, 157620, 39107, 158274, 33378, 33381, 158289, 33875, 159143, 34320, 160283, 23174, 16767, 137280, 23339, 137377, 23268, 137432, 34464, 195004, 146831, 34861, 160802, 23042, 34926, 20293, 34951, 35007, 35046, 35173, 35149, 153219, 35156, 161669, 161668, 166901, 166873, 166812, 166393, 16045, 33955, 18165, 18127, 14322, 35389, 35356, 169032, 24397, 37419, 148100, 26068, 28969, 28868, 137285, 40301, 35999, 36073, 163292, 22938, 30659, 23024, 17262, 14036, 36394, 36519, 150537, 36656, 36682, 17140, 27736, 28603, 140065, 18587, 28537, 28299, 137178, 39913, 14005, 149807, 37051, 37015, 21873, 18694, 37307, 37892, 166475, 16482, 166652, 37927, 166941, 166971, 34021, 35371, 38297, 38311, 38295, 38294, 167220, 29765, 16066, 149759, 150082, 148458, 16103, 143909, 38543, 167655, 167526, 167525, 16076, 149997, 150136, 147438, 29714, 29803, 16124, 38721, 168112, 26695, 18973, 168083, 153567, 38749, 37736, 166281, 166950, 166703, 156606, 37562, 23313, 35689, 18748, 29689, 147995, 38811, 38769, 39224, 134950, 24001, 166853, 150194, 38943, 169178, 37622, 169431, 37349, 17600, 166736, 150119, 166756, 39132, 166469, 16128, 37418, 18725, 33812, 39227, 39245, 162566, 15869, 39323, 19311, 39338, 39516, 166757, 153800, 27279, 39457, 23294, 39471, 170225, 19344, 170312, 39356, 19389, 19351, 37757, 22642, 135938, 22562, 149944, 136424, 30788, 141087, 146872, 26821, 15741, 37976, 14631, 24912, 141185, 141675, 24839, 40015, 40019, 40059, 39989, 39952, 39807, 39887, 171565, 39839, 172533, 172286, 40225, 19630, 147716, 40472, 19632, 40204, 172468, 172269, 172275, 170287, 40357, 33981, 159250, 159711, 158594, 34300, 17715, 159140, 159364, 159216, 33824, 34286, 159232, 145367, 155748, 31202, 144796, 144960, 18733, 149982, 15714, 37851, 37566, 37704, 131775, 30905, 37495, 37965, 20452, 13376, 36964, 152925, 30781, 30804, 30902, 30795, 137047, 143817, 149825, 13978, 20338, 28634, 28633, 28702, 28702, 21524, 147893, 22459, 22771, 22410, 40214, 22487, 28980, 13487, 147884, 29163, 158784, 151447, 23336, 137141, 166473, 24844, 23246, 23051, 17084, 148616, 14124, 19323, 166396, 37819, 37816, 137430, 134941, 33906, 158912, 136211, 148218, 142374, 148417, 22932, 146871, 157505, 32168, 155995, 155812, 149945, 149899, 166394, 37605, 29666, 16105, 29876, 166755, 137375, 16097, 150195, 27352, 29683, 29691, 16086, 150078, 150164, 137177, 150118, 132007, 136228, 149989, 29768, 149782, 28837, 149878, 37508, 29670, 37727, 132350, 37681, 166606, 166422, 37766, 166887, 153045, 18741, 166530, 29035, 149827, 134399, 22180, 132634, 134123, 134328, 21762, 31172, 137210, 32254, 136898, 150096, 137298, 17710, 37889, 14090, 166592, 149933, 22960, 137407, 137347, 160900, 23201, 14050, 146779, 14000, 37471, 23161, 166529, 137314, 37748, 15565, 133812, 19094, 14730, 20724, 15721, 15692, 136092, 29045, 17147, 164376, 28175, 168164, 17643, 27991, 163407, 28775, 27823, 15574, 147437, 146989, 28162, 28428, 15727, 132085, 30033, 14012, 13512, 18048, 16090, 18545, 22980, 37486, 18750, 36673, 166940, 158656, 22546, 22472, 14038, 136274, 28926, 148322, 150129, 143331, 135856, 140221, 26809, 26983, 136088, 144613, 162804, 145119, 166531, 145366, 144378, 150687, 27162, 145069, 158903, 33854, 17631, 17614, 159014, 159057, 158850, 159710, 28439, 160009, 33597, 137018, 33773, 158848, 159827, 137179, 22921, 23170, 137139, 23137, 23153, 137477, 147964, 14125, 23023, 137020, 14023, 29070, 37776, 26266, 148133, 23150, 23083, 148115, 27179, 147193, 161590, 148571, 148170, 28957, 148057, 166369, 20400, 159016, 23746, 148686, 163405, 148413, 27148, 148054, 135940, 28838, 28979, 148457, 15781, 27871, 194597, 150095, 32357, 23019, 23855, 15859, 24412, 150109, 137183, 32164, 33830, 21637, 146170, 144128, 131604, 22398, 133333, 132633, 16357, 139166, 172726, 28675, 168283, 23920, 29583, 31955, 166489, 168992, 20424, 32743, 29389, 29456, 162548, 29496, 29497, 153334, 29505, 29512, 16041, 162584, 36972, 29173, 149746, 29665, 33270, 16074, 30476, 16081, 27810, 22269, 29721, 29726, 29727, 16098, 16112, 16116, 16122, 29907, 16142, 16211, 30018, 30061, 30066, 30093, 16252, 30152, 30172, 16320, 30285, 16343, 30324, 16348, 30330, 151388, 29064, 22051, 35200, 22633, 16413, 30531, 16441, 26465, 16453, 13787, 30616, 16490, 16495, 23646, 30654, 30667, 22770, 30744, 28857, 30748, 16552, 30777, 30791, 30801, 30822, 33864, 152885, 31027, 26627, 31026, 16643, 16649, 31121, 31129, 36795, 31238, 36796, 16743, 31377, 16818, 31420, 33401, 16836, 31439, 31451, 16847, 20001, 31586, 31596, 31611, 31762, 31771, 16992, 17018, 31867, 31900, 17036, 31928, 17044, 31981, 36755, 28864, 134351, 32207, 32212, 32208, 32253, 32686, 32692, 29343, 17303, 32800, 32805, 31545, 32814, 32817, 32852, 15820, 22452, 28832, 32951, 33001, 17389, 33036, 29482, 33038, 33042, 30048, 33044, 17409, 15161, 33110, 33113, 33114, 17427, 22586, 33148, 33156, 17445, 33171, 17453, 33189, 22511, 33217, 33252, 33364, 17551, 33446, 33398, 33482, 33496, 33535, 17584, 33623, 38505, 27018, 33797, 28917, 33892, 24803, 33928, 17668, 33982, 34017, 34040, 34064, 34104, 34130, 17723, 34159, 34160, 34272, 17783, 34418, 34450, 34482, 34543, 38469, 34699, 17926, 17943, 34990, 35071, 35108, 35143, 35217, 162151, 35369, 35384, 35476, 35508, 35921, 36052, 36082, 36124, 18328, 22623, 36291, 18413, 20206, 36410, 21976, 22356, 36465, 22005, 36528, 18487, 36558, 36578, 36580, 36589, 36594, 36791, 36801, 36810, 36812, 36915, 39364, 18605, 39136, 37395, 18718, 37416, 37464, 37483, 37553, 37550, 37567, 37603, 37611, 37619, 37620, 37629, 37699, 37764, 37805, 18757, 18769, 40639, 37911, 21249, 37917, 37933, 37950, 18794, 37972, 38009, 38189, 38306, 18855, 38388, 38451, 18917, 26528, 18980, 38720, 18997, 38834, 38850, 22100, 19172, 24808, 39097, 19225, 39153, 22596, 39182, 39193, 20916, 39196, 39223, 39234, 39261, 39266, 19312, 39365, 19357, 39484, 39695, 31363, 39785, 39809, 39901, 39921, 39924, 19565, 39968, 14191, 138178, 40265, 39994, 40702, 22096, 40339, 40381, 40384, 40444, 38134, 36790, 40571, 40620, 40625, 40637, 40646, 38108, 40674, 40689, 40696, 31432, 40772, 131220, 131767, 132000, 26906, 38083, 22956, 132311, 22592, 38081, 14265, 132565, 132629, 132726, 136890, 22359, 29043, 133826, 133837, 134079, 21610, 194619, 134091, 21662, 134139, 134203, 134227, 134245, 134268, 24807, 134285, 22138, 134325, 134365, 134381, 134511, 134578, 134600, 26965, 39983, 34725, 134660, 134670, 134871, 135056, 134957, 134771, 23584, 135100, 24075, 135260, 135247, 135286, 26398, 135291, 135304, 135318, 13895, 135359, 135379, 135471, 135483, 21348, 33965, 135907, 136053, 135990, 35713, 136567, 136729, 137155, 137159, 20088, 28859, 137261, 137578, 137773, 137797, 138282, 138352, 138412, 138952, 25283, 138965, 139029, 29080, 26709, 139333, 27113, 14024, 139900, 140247, 140282, 141098, 141425, 141647, 33533, 141671, 141715, 142037, 35237, 142056, 36768, 142094, 38840, 142143, 38983, 39613, 142412, 0, 142472, 142519, 154600, 142600, 142610, 142775, 142741, 142914, 143220, 143308, 143411, 143462, 144159, 144350, 24497, 26184, 26303, 162425, 144743, 144883, 29185, 149946, 30679, 144922, 145174, 32391, 131910, 22709, 26382, 26904, 146087, 161367, 155618, 146961, 147129, 161278, 139418, 18640, 19128, 147737, 166554, 148206, 148237, 147515, 148276, 148374, 150085, 132554, 20946, 132625, 22943, 138920, 15294, 146687, 148484, 148694, 22408, 149108, 14747, 149295, 165352, 170441, 14178, 139715, 35678, 166734, 39382, 149522, 149755, 150037, 29193, 150208, 134264, 22885, 151205, 151430, 132985, 36570, 151596, 21135, 22335, 29041, 152217, 152601, 147274, 150183, 21948, 152646, 152686, 158546, 37332, 13427, 152895, 161330, 152926, 18200, 152930, 152934, 153543, 149823, 153693, 20582, 13563, 144332, 24798, 153859, 18300, 166216, 154286, 154505, 154630, 138640, 22433, 29009, 28598, 155906, 162834, 36950, 156082, 151450, 35682, 156674, 156746, 23899, 158711, 36662, 156804, 137500, 35562, 150006, 156808, 147439, 156946, 19392, 157119, 157365, 141083, 37989, 153569, 24981, 23079, 194765, 20411, 22201, 148769, 157436, 20074, 149812, 38486, 28047, 158909, 13848, 35191, 157593, 157806, 156689, 157790, 29151, 157895, 31554, 168128, 133649, 157990, 37124, 158009, 31301, 40432, 158202, 39462, 158253, 13919, 156777, 131105, 31107, 158260, 158555, 23852, 144665, 33743, 158621, 18128, 158884, 30011, 34917, 159150, 22710, 14108, 140685, 159819, 160205, 15444, 160384, 160389, 37505, 139642, 160395, 37680, 160486, 149968, 27705, 38047, 160848, 134904, 34855, 35061, 141606, 164979, 137137, 28344, 150058, 137248, 14756, 14009, 23568, 31203, 17727, 26294, 171181, 170148, 35139, 161740, 161880, 22230, 16607, 136714, 14753, 145199, 164072, 136133, 29101, 33638, 162269, 168360, 23143, 19639, 159919, 166315, 162301, 162314, 162571, 163174, 147834, 31555, 31102, 163849, 28597, 172767, 27139, 164632, 21410, 159239, 37823, 26678, 38749, 164207, 163875, 158133, 136173, 143919, 163912, 23941, 166960, 163971, 22293, 38947, 166217, 23979, 149896, 26046, 27093, 21458, 150181, 147329, 15377, 26422, 163984, 164084, 164142, 139169, 164175, 164233, 164271, 164378, 164614, 164655, 164746, 13770, 164968, 165546, 18682, 25574, 166230, 30728, 37461, 166328, 17394, 166375, 17375, 166376, 166726, 166868, 23032, 166921, 36619, 167877, 168172, 31569, 168208, 168252, 15863, 168286, 150218, 36816, 29327, 22155, 169191, 169449, 169392, 169400, 169778, 170193, 170313, 170346, 170435, 170536, 170766, 171354, 171419, 32415, 171768, 171811, 19620, 38215, 172691, 29090, 172799, 19857, 36882, 173515, 19868, 134300, 36798, 21953, 36794, 140464, 36793, 150163, 17673, 32383, 28502, 27313, 20202, 13540, 166700, 161949, 14138, 36480, 137205, 163876, 166764, 166809, 162366, 157359, 15851, 161365, 146615, 153141, 153942, 20122, 155265, 156248, 22207, 134765, 36366, 23405, 147080, 150686, 25566, 25296, 137206, 137339, 25904, 22061, 154698, 21530, 152337, 15814, 171416, 19581, 22050, 22046, 32585, 155352, 22901, 146752, 34672, 19996, 135146, 134473, 145082, 33047, 40286, 36120, 30267, 40005, 30286, 30649, 37701, 21554, 33096, 33527, 22053, 33074, 33816, 32957, 21994, 31074, 22083, 21526, 134813, 13774, 22021, 22001, 26353, 164578, 13869, 30004, 22000, 21946, 21655, 21874, 134209, 134294, 24272, 151880, 134774, 142434, 134818, 40619, 32090, 21982, 135285, 25245, 38765, 21652, 36045, 29174, 37238, 25596, 25529, 25598, 21865, 142147, 40050, 143027, 20890, 13535, 134567, 20903, 21581, 21790, 21779, 30310, 36397, 157834, 30129, 32950, 34820, 34694, 35015, 33206, 33820, 135361, 17644, 29444, 149254, 23440, 33547, 157843, 22139, 141044, 163119, 147875, 163187, 159440, 160438, 37232, 135641, 37384, 146684, 173737, 134828, 134905, 29286, 138402, 18254, 151490, 163833, 135147, 16634, 40029, 25887, 142752, 18675, 149472, 171388, 135148, 134666, 24674, 161187, 135149, 0, 155720, 135559, 29091, 32398, 40272, 19994, 19972, 13687, 23309, 27826, 21351, 13996, 14812, 21373, 13989, 149016, 22682, 150382, 33325, 21579, 22442, 154261, 133497, 0, 14930, 140389, 29556, 171692, 19721, 39917, 146686, 171824, 19547, 151465, 169374, 171998, 33884, 146870, 160434, 157619, 145184, 25390, 32037, 147191, 146988, 14890, 36872, 21196, 15988, 13946, 17897, 132238, 30272, 23280, 134838, 30842, 163630, 22695, 16575, 22140, 39819, 23924, 30292, 173108, 40581, 19681, 30201, 14331, 24857, 143578, 148466, 0, 22109, 135849, 22439, 149859, 171526, 21044, 159918, 13741, 27722, 40316, 31830, 39737, 22494, 137068, 23635, 25811, 169168, 156469, 160100, 34477, 134440, 159010, 150242, 134513, 0, 20990, 139023, 23950, 38659, 138705, 40577, 36940, 31519, 39682, 23761, 31651, 25192, 25397, 39679, 31695, 39722, 31870, 39726, 31810, 31878, 39957, 31740, 39689, 40727, 39963, 149822, 40794, 21875, 23491, 20477, 40600, 20466, 21088, 15878, 21201, 22375, 20566, 22967, 24082, 38856, 40363, 36700, 21609, 38836, 39232, 38842, 21292, 24880, 26924, 21466, 39946, 40194, 19515, 38465, 27008, 20646, 30022, 137069, 39386, 21107, 0, 37209, 38529, 37212, 0, 37201, 167575, 25471, 159011, 27338, 22033, 37262, 30074, 25221, 132092, 29519, 31856, 154657, 146685, 0, 149785, 30422, 39837, 20010, 134356, 33726, 34882, 0, 23626, 27072, 20717, 22394, 21023, 24053, 20174, 27697, 131570, 20281, 21660, 21722, 21146, 36226, 13822, 24332, 13811, 0, 27474, 37244, 40869, 39831, 38958, 39092, 39610, 40616, 40580, 29050, 31508, 0, 27642, 34840, 32632, 0, 22048, 173642, 36471, 40787, 0, 36308, 36431, 40476, 36353, 25218, 164733, 36392, 36469, 31443, 150135, 31294, 30936, 27882, 35431, 30215, 166490, 40742, 27854, 34774, 30147, 172722, 30803, 194624, 36108, 29410, 29553, 35629, 29442, 29937, 36075, 150203, 34351, 24506, 34976, 17591, 0, 137275, 159237, 0, 35454, 140571, 0, 24829, 30311, 39639, 40260, 37742, 39823, 34805, 0, 34831, 36087, 29484, 38689, 39856, 13782, 29362, 19463, 31825, 39242, 155993, 24921, 19460, 40598, 24957, 0, 22367, 24943, 25254, 25145, 25294, 14940, 25058, 21418, 144373, 25444, 26626, 13778, 23895, 166850, 36826, 167481, 0, 20697, 138566, 30982, 21298, 38456, 134971, 16485, 0, 30718, 0, 31938, 155418, 31962, 31277, 32870, 32867, 32077, 29957, 29938, 35220, 33306, 26380, 32866, 160902, 32859, 29936, 33027, 30500, 35209, 157644, 30035, 159441, 34729, 34766, 33224, 34700, 35401, 36013, 35651, 30507, 29944, 34010, 13877, 27058, 36262, 0, 35241, 29800, 28089, 34753, 147473, 29927, 15835, 29046, 24740, 24988, 15569, 29026, 24695, 0, 32625, 166701, 29264, 24809, 19326, 21024, 15384, 146631, 155351, 161366, 152881, 137540, 135934, 170243, 159196, 159917, 23745, 156077, 166415, 145015, 131310, 157766, 151310, 17762, 23327, 156492, 40784, 40614, 156267, 12288, 65292, 12289, 12290, 65294, 8231, 65307, 65306, 65311, 65281, 65072, 8230, 8229, 65104, 65105, 65106, 183, 65108, 65109, 65110, 65111, 65372, 8211, 65073, 8212, 65075, 9588, 65076, 65103, 65288, 65289, 65077, 65078, 65371, 65373, 65079, 65080, 12308, 12309, 65081, 65082, 12304, 12305, 65083, 65084, 12298, 12299, 65085, 65086, 12296, 12297, 65087, 65088, 12300, 12301, 65089, 65090, 12302, 12303, 65091, 65092, 65113, 65114, 65115, 65116, 65117, 65118, 8216, 8217, 8220, 8221, 12317, 12318, 8245, 8242, 65283, 65286, 65290, 8251, 167, 12291, 9675, 9679, 9651, 9650, 9678, 9734, 9733, 9671, 9670, 9633, 9632, 9661, 9660, 12963, 8453, 175, 65507, 65343, 717, 65097, 65098, 65101, 65102, 65099, 65100, 65119, 65120, 65121, 65291, 65293, 215, 247, 177, 8730, 65308, 65310, 65309, 8806, 8807, 8800, 8734, 8786, 8801, 65122, 65123, 65124, 65125, 65126, 65374, 8745, 8746, 8869, 8736, 8735, 8895, 13266, 13265, 8747, 8750, 8757, 8756, 9792, 9794, 8853, 8857, 8593, 8595, 8592, 8594, 8598, 8599, 8601, 8600, 8741, 8739, 65295, 65340, 8725, 65128, 65284, 65509, 12306, 65504, 65505, 65285, 65312, 8451, 8457, 65129, 65130, 65131, 13269, 13212, 13213, 13214, 13262, 13217, 13198, 13199, 13252, 176, 20825, 20827, 20830, 20829, 20833, 20835, 21991, 29929, 31950, 9601, 9602, 9603, 9604, 9605, 9606, 9607, 9608, 9615, 9614, 9613, 9612, 9611, 9610, 9609, 9532, 9524, 9516, 9508, 9500, 9620, 9472, 9474, 9621, 9484, 9488, 9492, 9496, 9581, 9582, 9584, 9583, 9552, 9566, 9578, 9569, 9698, 9699, 9701, 9700, 9585, 9586, 9587, 65296, 65297, 65298, 65299, 65300, 65301, 65302, 65303, 65304, 65305, 8544, 8545, 8546, 8547, 8548, 8549, 8550, 8551, 8552, 8553, 12321, 12322, 12323, 12324, 12325, 12326, 12327, 12328, 12329, 21313, 21316, 21317, 65313, 65314, 65315, 65316, 65317, 65318, 65319, 65320, 65321, 65322, 65323, 65324, 65325, 65326, 65327, 65328, 65329, 65330, 65331, 65332, 65333, 65334, 65335, 65336, 65337, 65338, 65345, 65346, 65347, 65348, 65349, 65350, 65351, 65352, 65353, 65354, 65355, 65356, 65357, 65358, 65359, 65360, 65361, 65362, 65363, 65364, 65365, 65366, 65367, 65368, 65369, 65370, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 963, 964, 965, 966, 967, 968, 969, 12549, 12550, 12551, 12552, 12553, 12554, 12555, 12556, 12557, 12558, 12559, 12560, 12561, 12562, 12563, 12564, 12565, 12566, 12567, 12568, 12569, 12570, 12571, 12572, 12573, 12574, 12575, 12576, 12577, 12578, 12579, 12580, 12581, 12582, 12583, 12584, 12585, 729, 713, 714, 711, 715, 9216, 9217, 9218, 9219, 9220, 9221, 9222, 9223, 9224, 9225, 9226, 9227, 9228, 9229, 9230, 9231, 9232, 9233, 9234, 9235, 9236, 9237, 9238, 9239, 9240, 9241, 9242, 9243, 9244, 9245, 9246, 9247, 9249, 8364, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19968, 20057, 19969, 19971, 20035, 20061, 20102, 20108, 20154, 20799, 20837, 20843, 20960, 20992, 20993, 21147, 21269, 21313, 21340, 21448, 19977, 19979, 19976, 19978, 20011, 20024, 20961, 20037, 20040, 20063, 20062, 20110, 20129, 20800, 20995, 21242, 21315, 21449, 21475, 22303, 22763, 22805, 22823, 22899, 23376, 23377, 23379, 23544, 23567, 23586, 23608, 23665, 24029, 24037, 24049, 24050, 24051, 24062, 24178, 24318, 24331, 24339, 25165, 19985, 19984, 19981, 20013, 20016, 20025, 20043, 23609, 20104, 20113, 20117, 20114, 20116, 20130, 20161, 20160, 20163, 20166, 20167, 20173, 20170, 20171, 20164, 20803, 20801, 20839, 20845, 20846, 20844, 20887, 20982, 20998, 20999, 21000, 21243, 21246, 21247, 21270, 21305, 21320, 21319, 21317, 21342, 21380, 21451, 21450, 21453, 22764, 22825, 22827, 22826, 22829, 23380, 23569, 23588, 23610, 23663, 24052, 24187, 24319, 24340, 24341, 24515, 25096, 25142, 25163, 25166, 25903, 25991, 26007, 26020, 26041, 26085, 26352, 26376, 26408, 27424, 27490, 27513, 27595, 27604, 27611, 27663, 27700, 28779, 29226, 29238, 29243, 29255, 29273, 29275, 29356, 29579, 19993, 19990, 19989, 19988, 19992, 20027, 20045, 20047, 20046, 20197, 20184, 20180, 20181, 20182, 20183, 20195, 20196, 20185, 20190, 20805, 20804, 20873, 20874, 20908, 20985, 20986, 20984, 21002, 21152, 21151, 21253, 21254, 21271, 21277, 20191, 21322, 21321, 21345, 21344, 21359, 21358, 21435, 21487, 21476, 21491, 21484, 21486, 21481, 21480, 21500, 21496, 21493, 21483, 21478, 21482, 21490, 21489, 21488, 21477, 21485, 21499, 22235, 22234, 22806, 22830, 22833, 22900, 22902, 23381, 23427, 23612, 24040, 24039, 24038, 24066, 24067, 24179, 24188, 24321, 24344, 24343, 24517, 25098, 25171, 25172, 25170, 25169, 26021, 26086, 26414, 26412, 26410, 26411, 26413, 27491, 27597, 27665, 27664, 27704, 27713, 27712, 27710, 29359, 29572, 29577, 29916, 29926, 29976, 29983, 29992, 29993, 30000, 30001, 30002, 30003, 30091, 30333, 30382, 30399, 30446, 30683, 30690, 30707, 31034, 31166, 31348, 31435, 19998, 19999, 20050, 20051, 20073, 20121, 20132, 20134, 20133, 20223, 20233, 20249, 20234, 20245, 20237, 20240, 20241, 20239, 20210, 20214, 20219, 20208, 20211, 20221, 20225, 20235, 20809, 20807, 20806, 20808, 20840, 20849, 20877, 20912, 21015, 21009, 21010, 21006, 21014, 21155, 21256, 21281, 21280, 21360, 21361, 21513, 21519, 21516, 21514, 21520, 21505, 21515, 21508, 21521, 21517, 21512, 21507, 21518, 21510, 21522, 22240, 22238, 22237, 22323, 22320, 22312, 22317, 22316, 22319, 22313, 22809, 22810, 22839, 22840, 22916, 22904, 22915, 22909, 22905, 22914, 22913, 23383, 23384, 23431, 23432, 23429, 23433, 23546, 23574, 23673, 24030, 24070, 24182, 24180, 24335, 24347, 24537, 24534, 25102, 25100, 25101, 25104, 25187, 25179, 25176, 25910, 26089, 26088, 26092, 26093, 26354, 26355, 26377, 26429, 26420, 26417, 26421, 27425, 27492, 27515, 27670, 27741, 27735, 27737, 27743, 27744, 27728, 27733, 27745, 27739, 27725, 27726, 28784, 29279, 29277, 30334, 31481, 31859, 31992, 32566, 32650, 32701, 32769, 32771, 32780, 32786, 32819, 32895, 32905, 32907, 32908, 33251, 33258, 33267, 33276, 33292, 33307, 33311, 33390, 33394, 33406, 34411, 34880, 34892, 34915, 35199, 38433, 20018, 20136, 20301, 20303, 20295, 20311, 20318, 20276, 20315, 20309, 20272, 20304, 20305, 20285, 20282, 20280, 20291, 20308, 20284, 20294, 20323, 20316, 20320, 20271, 20302, 20278, 20313, 20317, 20296, 20314, 20812, 20811, 20813, 20853, 20918, 20919, 21029, 21028, 21033, 21034, 21032, 21163, 21161, 21162, 21164, 21283, 21363, 21365, 21533, 21549, 21534, 21566, 21542, 21582, 21543, 21574, 21571, 21555, 21576, 21570, 21531, 21545, 21578, 21561, 21563, 21560, 21550, 21557, 21558, 21536, 21564, 21568, 21553, 21547, 21535, 21548, 22250, 22256, 22244, 22251, 22346, 22353, 22336, 22349, 22343, 22350, 22334, 22352, 22351, 22331, 22767, 22846, 22941, 22930, 22952, 22942, 22947, 22937, 22934, 22925, 22948, 22931, 22922, 22949, 23389, 23388, 23386, 23387, 23436, 23435, 23439, 23596, 23616, 23617, 23615, 23614, 23696, 23697, 23700, 23692, 24043, 24076, 24207, 24199, 24202, 24311, 24324, 24351, 24420, 24418, 24439, 24441, 24536, 24524, 24535, 24525, 24561, 24555, 24568, 24554, 25106, 25105, 25220, 25239, 25238, 25216, 25206, 25225, 25197, 25226, 25212, 25214, 25209, 25203, 25234, 25199, 25240, 25198, 25237, 25235, 25233, 25222, 25913, 25915, 25912, 26097, 26356, 26463, 26446, 26447, 26448, 26449, 26460, 26454, 26462, 26441, 26438, 26464, 26451, 26455, 27493, 27599, 27714, 27742, 27801, 27777, 27784, 27785, 27781, 27803, 27754, 27770, 27792, 27760, 27788, 27752, 27798, 27794, 27773, 27779, 27762, 27774, 27764, 27782, 27766, 27789, 27796, 27800, 27778, 28790, 28796, 28797, 28792, 29282, 29281, 29280, 29380, 29378, 29590, 29996, 29995, 30007, 30008, 30338, 30447, 30691, 31169, 31168, 31167, 31350, 31995, 32597, 32918, 32915, 32925, 32920, 32923, 32922, 32946, 33391, 33426, 33419, 33421, 35211, 35282, 35328, 35895, 35910, 35925, 35997, 36196, 36208, 36275, 36523, 36554, 36763, 36784, 36802, 36806, 36805, 36804, 24033, 37009, 37026, 37034, 37030, 37027, 37193, 37318, 37324, 38450, 38446, 38449, 38442, 38444, 20006, 20054, 20083, 20107, 20123, 20126, 20139, 20140, 20335, 20381, 20365, 20339, 20351, 20332, 20379, 20363, 20358, 20355, 20336, 20341, 20360, 20329, 20347, 20374, 20350, 20367, 20369, 20346, 20820, 20818, 20821, 20841, 20855, 20854, 20856, 20925, 20989, 21051, 21048, 21047, 21050, 21040, 21038, 21046, 21057, 21182, 21179, 21330, 21332, 21331, 21329, 21350, 21367, 21368, 21369, 21462, 21460, 21463, 21619, 21621, 21654, 21624, 21653, 21632, 21627, 21623, 21636, 21650, 21638, 21628, 21648, 21617, 21622, 21644, 21658, 21602, 21608, 21643, 21629, 21646, 22266, 22403, 22391, 22378, 22377, 22369, 22374, 22372, 22396, 22812, 22857, 22855, 22856, 22852, 22868, 22974, 22971, 22996, 22969, 22958, 22993, 22982, 22992, 22989, 22987, 22995, 22986, 22959, 22963, 22994, 22981, 23391, 23396, 23395, 23447, 23450, 23448, 23452, 23449, 23451, 23578, 23624, 23621, 23622, 23735, 23713, 23736, 23721, 23723, 23729, 23731, 24088, 24090, 24086, 24085, 24091, 24081, 24184, 24218, 24215, 24220, 24213, 24214, 24310, 24358, 24359, 24361, 24448, 24449, 24447, 24444, 24541, 24544, 24573, 24565, 24575, 24591, 24596, 24623, 24629, 24598, 24618, 24597, 24609, 24615, 24617, 24619, 24603, 25110, 25109, 25151, 25150, 25152, 25215, 25289, 25292, 25284, 25279, 25282, 25273, 25298, 25307, 25259, 25299, 25300, 25291, 25288, 25256, 25277, 25276, 25296, 25305, 25287, 25293, 25269, 25306, 25265, 25304, 25302, 25303, 25286, 25260, 25294, 25918, 26023, 26044, 26106, 26132, 26131, 26124, 26118, 26114, 26126, 26112, 26127, 26133, 26122, 26119, 26381, 26379, 26477, 26507, 26517, 26481, 26524, 26483, 26487, 26503, 26525, 26519, 26479, 26480, 26495, 26505, 26494, 26512, 26485, 26522, 26515, 26492, 26474, 26482, 27427, 27494, 27495, 27519, 27667, 27675, 27875, 27880, 27891, 27825, 27852, 27877, 27827, 27837, 27838, 27836, 27874, 27819, 27861, 27859, 27832, 27844, 27833, 27841, 27822, 27863, 27845, 27889, 27839, 27835, 27873, 27867, 27850, 27820, 27887, 27868, 27862, 27872, 28821, 28814, 28818, 28810, 28825, 29228, 29229, 29240, 29256, 29287, 29289, 29376, 29390, 29401, 29399, 29392, 29609, 29608, 29599, 29611, 29605, 30013, 30109, 30105, 30106, 30340, 30402, 30450, 30452, 30693, 30717, 31038, 31040, 31041, 31177, 31176, 31354, 31353, 31482, 31998, 32596, 32652, 32651, 32773, 32954, 32933, 32930, 32945, 32929, 32939, 32937, 32948, 32938, 32943, 33253, 33278, 33293, 33459, 33437, 33433, 33453, 33469, 33439, 33465, 33457, 33452, 33445, 33455, 33464, 33443, 33456, 33470, 33463, 34382, 34417, 21021, 34920, 36555, 36814, 36820, 36817, 37045, 37048, 37041, 37046, 37319, 37329, 38263, 38272, 38428, 38464, 38463, 38459, 38468, 38466, 38585, 38632, 38738, 38750, 20127, 20141, 20142, 20449, 20405, 20399, 20415, 20448, 20433, 20431, 20445, 20419, 20406, 20440, 20447, 20426, 20439, 20398, 20432, 20420, 20418, 20442, 20430, 20446, 20407, 20823, 20882, 20881, 20896, 21070, 21059, 21066, 21069, 21068, 21067, 21063, 21191, 21193, 21187, 21185, 21261, 21335, 21371, 21402, 21467, 21676, 21696, 21672, 21710, 21705, 21688, 21670, 21683, 21703, 21698, 21693, 21674, 21697, 21700, 21704, 21679, 21675, 21681, 21691, 21673, 21671, 21695, 22271, 22402, 22411, 22432, 22435, 22434, 22478, 22446, 22419, 22869, 22865, 22863, 22862, 22864, 23004, 23000, 23039, 23011, 23016, 23043, 23013, 23018, 23002, 23014, 23041, 23035, 23401, 23459, 23462, 23460, 23458, 23461, 23553, 23630, 23631, 23629, 23627, 23769, 23762, 24055, 24093, 24101, 24095, 24189, 24224, 24230, 24314, 24328, 24365, 24421, 24456, 24453, 24458, 24459, 24455, 24460, 24457, 24594, 24605, 24608, 24613, 24590, 24616, 24653, 24688, 24680, 24674, 24646, 24643, 24684, 24683, 24682, 24676, 25153, 25308, 25366, 25353, 25340, 25325, 25345, 25326, 25341, 25351, 25329, 25335, 25327, 25324, 25342, 25332, 25361, 25346, 25919, 25925, 26027, 26045, 26082, 26149, 26157, 26144, 26151, 26159, 26143, 26152, 26161, 26148, 26359, 26623, 26579, 26609, 26580, 26576, 26604, 26550, 26543, 26613, 26601, 26607, 26564, 26577, 26548, 26586, 26597, 26552, 26575, 26590, 26611, 26544, 26585, 26594, 26589, 26578, 27498, 27523, 27526, 27573, 27602, 27607, 27679, 27849, 27915, 27954, 27946, 27969, 27941, 27916, 27953, 27934, 27927, 27963, 27965, 27966, 27958, 27931, 27893, 27961, 27943, 27960, 27945, 27950, 27957, 27918, 27947, 28843, 28858, 28851, 28844, 28847, 28845, 28856, 28846, 28836, 29232, 29298, 29295, 29300, 29417, 29408, 29409, 29623, 29642, 29627, 29618, 29645, 29632, 29619, 29978, 29997, 30031, 30028, 30030, 30027, 30123, 30116, 30117, 30114, 30115, 30328, 30342, 30343, 30344, 30408, 30406, 30403, 30405, 30465, 30457, 30456, 30473, 30475, 30462, 30460, 30471, 30684, 30722, 30740, 30732, 30733, 31046, 31049, 31048, 31047, 31161, 31162, 31185, 31186, 31179, 31359, 31361, 31487, 31485, 31869, 32002, 32005, 32000, 32009, 32007, 32004, 32006, 32568, 32654, 32703, 32772, 32784, 32781, 32785, 32822, 32982, 32997, 32986, 32963, 32964, 32972, 32993, 32987, 32974, 32990, 32996, 32989, 33268, 33314, 33511, 33539, 33541, 33507, 33499, 33510, 33540, 33509, 33538, 33545, 33490, 33495, 33521, 33537, 33500, 33492, 33489, 33502, 33491, 33503, 33519, 33542, 34384, 34425, 34427, 34426, 34893, 34923, 35201, 35284, 35336, 35330, 35331, 35998, 36000, 36212, 36211, 36276, 36557, 36556, 36848, 36838, 36834, 36842, 36837, 36845, 36843, 36836, 36840, 37066, 37070, 37057, 37059, 37195, 37194, 37325, 38274, 38480, 38475, 38476, 38477, 38754, 38761, 38859, 38893, 38899, 38913, 39080, 39131, 39135, 39318, 39321, 20056, 20147, 20492, 20493, 20515, 20463, 20518, 20517, 20472, 20521, 20502, 20486, 20540, 20511, 20506, 20498, 20497, 20474, 20480, 20500, 20520, 20465, 20513, 20491, 20505, 20504, 20467, 20462, 20525, 20522, 20478, 20523, 20489, 20860, 20900, 20901, 20898, 20941, 20940, 20934, 20939, 21078, 21084, 21076, 21083, 21085, 21290, 21375, 21407, 21405, 21471, 21736, 21776, 21761, 21815, 21756, 21733, 21746, 21766, 21754, 21780, 21737, 21741, 21729, 21769, 21742, 21738, 21734, 21799, 21767, 21757, 21775, 22275, 22276, 22466, 22484, 22475, 22467, 22537, 22799, 22871, 22872, 22874, 23057, 23064, 23068, 23071, 23067, 23059, 23020, 23072, 23075, 23081, 23077, 23052, 23049, 23403, 23640, 23472, 23475, 23478, 23476, 23470, 23477, 23481, 23480, 23556, 23633, 23637, 23632, 23789, 23805, 23803, 23786, 23784, 23792, 23798, 23809, 23796, 24046, 24109, 24107, 24235, 24237, 24231, 24369, 24466, 24465, 24464, 24665, 24675, 24677, 24656, 24661, 24685, 24681, 24687, 24708, 24735, 24730, 24717, 24724, 24716, 24709, 24726, 25159, 25331, 25352, 25343, 25422, 25406, 25391, 25429, 25410, 25414, 25423, 25417, 25402, 25424, 25405, 25386, 25387, 25384, 25421, 25420, 25928, 25929, 26009, 26049, 26053, 26178, 26185, 26191, 26179, 26194, 26188, 26181, 26177, 26360, 26388, 26389, 26391, 26657, 26680, 26696, 26694, 26707, 26681, 26690, 26708, 26665, 26803, 26647, 26700, 26705, 26685, 26612, 26704, 26688, 26684, 26691, 26666, 26693, 26643, 26648, 26689, 27530, 27529, 27575, 27683, 27687, 27688, 27686, 27684, 27888, 28010, 28053, 28040, 28039, 28006, 28024, 28023, 27993, 28051, 28012, 28041, 28014, 27994, 28020, 28009, 28044, 28042, 28025, 28037, 28005, 28052, 28874, 28888, 28900, 28889, 28872, 28879, 29241, 29305, 29436, 29433, 29437, 29432, 29431, 29574, 29677, 29705, 29678, 29664, 29674, 29662, 30036, 30045, 30044, 30042, 30041, 30142, 30149, 30151, 30130, 30131, 30141, 30140, 30137, 30146, 30136, 30347, 30384, 30410, 30413, 30414, 30505, 30495, 30496, 30504, 30697, 30768, 30759, 30776, 30749, 30772, 30775, 30757, 30765, 30752, 30751, 30770, 31061, 31056, 31072, 31071, 31062, 31070, 31069, 31063, 31066, 31204, 31203, 31207, 31199, 31206, 31209, 31192, 31364, 31368, 31449, 31494, 31505, 31881, 32033, 32023, 32011, 32010, 32032, 32034, 32020, 32016, 32021, 32026, 32028, 32013, 32025, 32027, 32570, 32607, 32660, 32709, 32705, 32774, 32792, 32789, 32793, 32791, 32829, 32831, 33009, 33026, 33008, 33029, 33005, 33012, 33030, 33016, 33011, 33032, 33021, 33034, 33020, 33007, 33261, 33260, 33280, 33296, 33322, 33323, 33320, 33324, 33467, 33579, 33618, 33620, 33610, 33592, 33616, 33609, 33589, 33588, 33615, 33586, 33593, 33590, 33559, 33600, 33585, 33576, 33603, 34388, 34442, 34474, 34451, 34468, 34473, 34444, 34467, 34460, 34928, 34935, 34945, 34946, 34941, 34937, 35352, 35344, 35342, 35340, 35349, 35338, 35351, 35347, 35350, 35343, 35345, 35912, 35962, 35961, 36001, 36002, 36215, 36524, 36562, 36564, 36559, 36785, 36865, 36870, 36855, 36864, 36858, 36852, 36867, 36861, 36869, 36856, 37013, 37089, 37085, 37090, 37202, 37197, 37196, 37336, 37341, 37335, 37340, 37337, 38275, 38498, 38499, 38497, 38491, 38493, 38500, 38488, 38494, 38587, 39138, 39340, 39592, 39640, 39717, 39730, 39740, 20094, 20602, 20605, 20572, 20551, 20547, 20556, 20570, 20553, 20581, 20598, 20558, 20565, 20597, 20596, 20599, 20559, 20495, 20591, 20589, 20828, 20885, 20976, 21098, 21103, 21202, 21209, 21208, 21205, 21264, 21263, 21273, 21311, 21312, 21310, 21443, 26364, 21830, 21866, 21862, 21828, 21854, 21857, 21827, 21834, 21809, 21846, 21839, 21845, 21807, 21860, 21816, 21806, 21852, 21804, 21859, 21811, 21825, 21847, 22280, 22283, 22281, 22495, 22533, 22538, 22534, 22496, 22500, 22522, 22530, 22581, 22519, 22521, 22816, 22882, 23094, 23105, 23113, 23142, 23146, 23104, 23100, 23138, 23130, 23110, 23114, 23408, 23495, 23493, 23492, 23490, 23487, 23494, 23561, 23560, 23559, 23648, 23644, 23645, 23815, 23814, 23822, 23835, 23830, 23842, 23825, 23849, 23828, 23833, 23844, 23847, 23831, 24034, 24120, 24118, 24115, 24119, 24247, 24248, 24246, 24245, 24254, 24373, 24375, 24407, 24428, 24425, 24427, 24471, 24473, 24478, 24472, 24481, 24480, 24476, 24703, 24739, 24713, 24736, 24744, 24779, 24756, 24806, 24765, 24773, 24763, 24757, 24796, 24764, 24792, 24789, 24774, 24799, 24760, 24794, 24775, 25114, 25115, 25160, 25504, 25511, 25458, 25494, 25506, 25509, 25463, 25447, 25496, 25514, 25457, 25513, 25481, 25475, 25499, 25451, 25512, 25476, 25480, 25497, 25505, 25516, 25490, 25487, 25472, 25467, 25449, 25448, 25466, 25949, 25942, 25937, 25945, 25943, 21855, 25935, 25944, 25941, 25940, 26012, 26011, 26028, 26063, 26059, 26060, 26062, 26205, 26202, 26212, 26216, 26214, 26206, 26361, 21207, 26395, 26753, 26799, 26786, 26771, 26805, 26751, 26742, 26801, 26791, 26775, 26800, 26755, 26820, 26797, 26758, 26757, 26772, 26781, 26792, 26783, 26785, 26754, 27442, 27578, 27627, 27628, 27691, 28046, 28092, 28147, 28121, 28082, 28129, 28108, 28132, 28155, 28154, 28165, 28103, 28107, 28079, 28113, 28078, 28126, 28153, 28088, 28151, 28149, 28101, 28114, 28186, 28085, 28122, 28139, 28120, 28138, 28145, 28142, 28136, 28102, 28100, 28074, 28140, 28095, 28134, 28921, 28937, 28938, 28925, 28911, 29245, 29309, 29313, 29468, 29467, 29462, 29459, 29465, 29575, 29701, 29706, 29699, 29702, 29694, 29709, 29920, 29942, 29943, 29980, 29986, 30053, 30054, 30050, 30064, 30095, 30164, 30165, 30133, 30154, 30157, 30350, 30420, 30418, 30427, 30519, 30526, 30524, 30518, 30520, 30522, 30827, 30787, 30798, 31077, 31080, 31085, 31227, 31378, 31381, 31520, 31528, 31515, 31532, 31526, 31513, 31518, 31534, 31890, 31895, 31893, 32070, 32067, 32113, 32046, 32057, 32060, 32064, 32048, 32051, 32068, 32047, 32066, 32050, 32049, 32573, 32670, 32666, 32716, 32718, 32722, 32796, 32842, 32838, 33071, 33046, 33059, 33067, 33065, 33072, 33060, 33282, 33333, 33335, 33334, 33337, 33678, 33694, 33688, 33656, 33698, 33686, 33725, 33707, 33682, 33674, 33683, 33673, 33696, 33655, 33659, 33660, 33670, 33703, 34389, 24426, 34503, 34496, 34486, 34500, 34485, 34502, 34507, 34481, 34479, 34505, 34899, 34974, 34952, 34987, 34962, 34966, 34957, 34955, 35219, 35215, 35370, 35357, 35363, 35365, 35377, 35373, 35359, 35355, 35362, 35913, 35930, 36009, 36012, 36011, 36008, 36010, 36007, 36199, 36198, 36286, 36282, 36571, 36575, 36889, 36877, 36890, 36887, 36899, 36895, 36893, 36880, 36885, 36894, 36896, 36879, 36898, 36886, 36891, 36884, 37096, 37101, 37117, 37207, 37326, 37365, 37350, 37347, 37351, 37357, 37353, 38281, 38506, 38517, 38515, 38520, 38512, 38516, 38518, 38519, 38508, 38592, 38634, 38633, 31456, 31455, 38914, 38915, 39770, 40165, 40565, 40575, 40613, 40635, 20642, 20621, 20613, 20633, 20625, 20608, 20630, 20632, 20634, 26368, 20977, 21106, 21108, 21109, 21097, 21214, 21213, 21211, 21338, 21413, 21883, 21888, 21927, 21884, 21898, 21917, 21912, 21890, 21916, 21930, 21908, 21895, 21899, 21891, 21939, 21934, 21919, 21822, 21938, 21914, 21947, 21932, 21937, 21886, 21897, 21931, 21913, 22285, 22575, 22570, 22580, 22564, 22576, 22577, 22561, 22557, 22560, 22777, 22778, 22880, 23159, 23194, 23167, 23186, 23195, 23207, 23411, 23409, 23506, 23500, 23507, 23504, 23562, 23563, 23601, 23884, 23888, 23860, 23879, 24061, 24133, 24125, 24128, 24131, 24190, 24266, 24257, 24258, 24260, 24380, 24429, 24489, 24490, 24488, 24785, 24801, 24754, 24758, 24800, 24860, 24867, 24826, 24853, 24816, 24827, 24820, 24936, 24817, 24846, 24822, 24841, 24832, 24850, 25119, 25161, 25507, 25484, 25551, 25536, 25577, 25545, 25542, 25549, 25554, 25571, 25552, 25569, 25558, 25581, 25582, 25462, 25588, 25578, 25563, 25682, 25562, 25593, 25950, 25958, 25954, 25955, 26001, 26000, 26031, 26222, 26224, 26228, 26230, 26223, 26257, 26234, 26238, 26231, 26366, 26367, 26399, 26397, 26874, 26837, 26848, 26840, 26839, 26885, 26847, 26869, 26862, 26855, 26873, 26834, 26866, 26851, 26827, 26829, 26893, 26898, 26894, 26825, 26842, 26990, 26875, 27454, 27450, 27453, 27544, 27542, 27580, 27631, 27694, 27695, 27692, 28207, 28216, 28244, 28193, 28210, 28263, 28234, 28192, 28197, 28195, 28187, 28251, 28248, 28196, 28246, 28270, 28205, 28198, 28271, 28212, 28237, 28218, 28204, 28227, 28189, 28222, 28363, 28297, 28185, 28238, 28259, 28228, 28274, 28265, 28255, 28953, 28954, 28966, 28976, 28961, 28982, 29038, 28956, 29260, 29316, 29312, 29494, 29477, 29492, 29481, 29754, 29738, 29747, 29730, 29733, 29749, 29750, 29748, 29743, 29723, 29734, 29736, 29989, 29990, 30059, 30058, 30178, 30171, 30179, 30169, 30168, 30174, 30176, 30331, 30332, 30358, 30355, 30388, 30428, 30543, 30701, 30813, 30828, 30831, 31245, 31240, 31243, 31237, 31232, 31384, 31383, 31382, 31461, 31459, 31561, 31574, 31558, 31568, 31570, 31572, 31565, 31563, 31567, 31569, 31903, 31909, 32094, 32080, 32104, 32085, 32043, 32110, 32114, 32097, 32102, 32098, 32112, 32115, 21892, 32724, 32725, 32779, 32850, 32901, 33109, 33108, 33099, 33105, 33102, 33081, 33094, 33086, 33100, 33107, 33140, 33298, 33308, 33769, 33795, 33784, 33805, 33760, 33733, 33803, 33729, 33775, 33777, 33780, 33879, 33802, 33776, 33804, 33740, 33789, 33778, 33738, 33848, 33806, 33796, 33756, 33799, 33748, 33759, 34395, 34527, 34521, 34541, 34516, 34523, 34532, 34512, 34526, 34903, 35009, 35010, 34993, 35203, 35222, 35387, 35424, 35413, 35422, 35388, 35393, 35412, 35419, 35408, 35398, 35380, 35386, 35382, 35414, 35937, 35970, 36015, 36028, 36019, 36029, 36033, 36027, 36032, 36020, 36023, 36022, 36031, 36024, 36234, 36229, 36225, 36302, 36317, 36299, 36314, 36305, 36300, 36315, 36294, 36603, 36600, 36604, 36764, 36910, 36917, 36913, 36920, 36914, 36918, 37122, 37109, 37129, 37118, 37219, 37221, 37327, 37396, 37397, 37411, 37385, 37406, 37389, 37392, 37383, 37393, 38292, 38287, 38283, 38289, 38291, 38290, 38286, 38538, 38542, 38539, 38525, 38533, 38534, 38541, 38514, 38532, 38593, 38597, 38596, 38598, 38599, 38639, 38642, 38860, 38917, 38918, 38920, 39143, 39146, 39151, 39145, 39154, 39149, 39342, 39341, 40643, 40653, 40657, 20098, 20653, 20661, 20658, 20659, 20677, 20670, 20652, 20663, 20667, 20655, 20679, 21119, 21111, 21117, 21215, 21222, 21220, 21218, 21219, 21295, 21983, 21992, 21971, 21990, 21966, 21980, 21959, 21969, 21987, 21988, 21999, 21978, 21985, 21957, 21958, 21989, 21961, 22290, 22291, 22622, 22609, 22616, 22615, 22618, 22612, 22635, 22604, 22637, 22602, 22626, 22610, 22603, 22887, 23233, 23241, 23244, 23230, 23229, 23228, 23219, 23234, 23218, 23913, 23919, 24140, 24185, 24265, 24264, 24338, 24409, 24492, 24494, 24858, 24847, 24904, 24863, 24819, 24859, 24825, 24833, 24840, 24910, 24908, 24900, 24909, 24894, 24884, 24871, 24845, 24838, 24887, 25121, 25122, 25619, 25662, 25630, 25642, 25645, 25661, 25644, 25615, 25628, 25620, 25613, 25654, 25622, 25623, 25606, 25964, 26015, 26032, 26263, 26249, 26247, 26248, 26262, 26244, 26264, 26253, 26371, 27028, 26989, 26970, 26999, 26976, 26964, 26997, 26928, 27010, 26954, 26984, 26987, 26974, 26963, 27001, 27014, 26973, 26979, 26971, 27463, 27506, 27584, 27583, 27603, 27645, 28322, 28335, 28371, 28342, 28354, 28304, 28317, 28359, 28357, 28325, 28312, 28348, 28346, 28331, 28369, 28310, 28316, 28356, 28372, 28330, 28327, 28340, 29006, 29017, 29033, 29028, 29001, 29031, 29020, 29036, 29030, 29004, 29029, 29022, 28998, 29032, 29014, 29242, 29266, 29495, 29509, 29503, 29502, 29807, 29786, 29781, 29791, 29790, 29761, 29759, 29785, 29787, 29788, 30070, 30072, 30208, 30192, 30209, 30194, 30193, 30202, 30207, 30196, 30195, 30430, 30431, 30555, 30571, 30566, 30558, 30563, 30585, 30570, 30572, 30556, 30565, 30568, 30562, 30702, 30862, 30896, 30871, 30872, 30860, 30857, 30844, 30865, 30867, 30847, 31098, 31103, 31105, 33836, 31165, 31260, 31258, 31264, 31252, 31263, 31262, 31391, 31392, 31607, 31680, 31584, 31598, 31591, 31921, 31923, 31925, 32147, 32121, 32145, 32129, 32143, 32091, 32622, 32617, 32618, 32626, 32681, 32680, 32676, 32854, 32856, 32902, 32900, 33137, 33136, 33144, 33125, 33134, 33139, 33131, 33145, 33146, 33126, 33285, 33351, 33922, 33911, 33853, 33841, 33909, 33894, 33899, 33865, 33900, 33883, 33852, 33845, 33889, 33891, 33897, 33901, 33862, 34398, 34396, 34399, 34553, 34579, 34568, 34567, 34560, 34558, 34555, 34562, 34563, 34566, 34570, 34905, 35039, 35028, 35033, 35036, 35032, 35037, 35041, 35018, 35029, 35026, 35228, 35299, 35435, 35442, 35443, 35430, 35433, 35440, 35463, 35452, 35427, 35488, 35441, 35461, 35437, 35426, 35438, 35436, 35449, 35451, 35390, 35432, 35938, 35978, 35977, 36042, 36039, 36040, 36036, 36018, 36035, 36034, 36037, 36321, 36319, 36328, 36335, 36339, 36346, 36330, 36324, 36326, 36530, 36611, 36617, 36606, 36618, 36767, 36786, 36939, 36938, 36947, 36930, 36948, 36924, 36949, 36944, 36935, 36943, 36942, 36941, 36945, 36926, 36929, 37138, 37143, 37228, 37226, 37225, 37321, 37431, 37463, 37432, 37437, 37440, 37438, 37467, 37451, 37476, 37457, 37428, 37449, 37453, 37445, 37433, 37439, 37466, 38296, 38552, 38548, 38549, 38605, 38603, 38601, 38602, 38647, 38651, 38649, 38646, 38742, 38772, 38774, 38928, 38929, 38931, 38922, 38930, 38924, 39164, 39156, 39165, 39166, 39347, 39345, 39348, 39649, 40169, 40578, 40718, 40723, 40736, 20711, 20718, 20709, 20694, 20717, 20698, 20693, 20687, 20689, 20721, 20686, 20713, 20834, 20979, 21123, 21122, 21297, 21421, 22014, 22016, 22043, 22039, 22013, 22036, 22022, 22025, 22029, 22030, 22007, 22038, 22047, 22024, 22032, 22006, 22296, 22294, 22645, 22654, 22659, 22675, 22666, 22649, 22661, 22653, 22781, 22821, 22818, 22820, 22890, 22889, 23265, 23270, 23273, 23255, 23254, 23256, 23267, 23413, 23518, 23527, 23521, 23525, 23526, 23528, 23522, 23524, 23519, 23565, 23650, 23940, 23943, 24155, 24163, 24149, 24151, 24148, 24275, 24278, 24330, 24390, 24432, 24505, 24903, 24895, 24907, 24951, 24930, 24931, 24927, 24922, 24920, 24949, 25130, 25735, 25688, 25684, 25764, 25720, 25695, 25722, 25681, 25703, 25652, 25709, 25723, 25970, 26017, 26071, 26070, 26274, 26280, 26269, 27036, 27048, 27029, 27073, 27054, 27091, 27083, 27035, 27063, 27067, 27051, 27060, 27088, 27085, 27053, 27084, 27046, 27075, 27043, 27465, 27468, 27699, 28467, 28436, 28414, 28435, 28404, 28457, 28478, 28448, 28460, 28431, 28418, 28450, 28415, 28399, 28422, 28465, 28472, 28466, 28451, 28437, 28459, 28463, 28552, 28458, 28396, 28417, 28402, 28364, 28407, 29076, 29081, 29053, 29066, 29060, 29074, 29246, 29330, 29334, 29508, 29520, 29796, 29795, 29802, 29808, 29805, 29956, 30097, 30247, 30221, 30219, 30217, 30227, 30433, 30435, 30596, 30589, 30591, 30561, 30913, 30879, 30887, 30899, 30889, 30883, 31118, 31119, 31117, 31278, 31281, 31402, 31401, 31469, 31471, 31649, 31637, 31627, 31605, 31639, 31645, 31636, 31631, 31672, 31623, 31620, 31929, 31933, 31934, 32187, 32176, 32156, 32189, 32190, 32160, 32202, 32180, 32178, 32177, 32186, 32162, 32191, 32181, 32184, 32173, 32210, 32199, 32172, 32624, 32736, 32737, 32735, 32862, 32858, 32903, 33104, 33152, 33167, 33160, 33162, 33151, 33154, 33255, 33274, 33287, 33300, 33310, 33355, 33993, 33983, 33990, 33988, 33945, 33950, 33970, 33948, 33995, 33976, 33984, 34003, 33936, 33980, 34001, 33994, 34623, 34588, 34619, 34594, 34597, 34612, 34584, 34645, 34615, 34601, 35059, 35074, 35060, 35065, 35064, 35069, 35048, 35098, 35055, 35494, 35468, 35486, 35491, 35469, 35489, 35475, 35492, 35498, 35493, 35496, 35480, 35473, 35482, 35495, 35946, 35981, 35980, 36051, 36049, 36050, 36203, 36249, 36245, 36348, 36628, 36626, 36629, 36627, 36771, 36960, 36952, 36956, 36963, 36953, 36958, 36962, 36957, 36955, 37145, 37144, 37150, 37237, 37240, 37239, 37236, 37496, 37504, 37509, 37528, 37526, 37499, 37523, 37532, 37544, 37500, 37521, 38305, 38312, 38313, 38307, 38309, 38308, 38553, 38556, 38555, 38604, 38610, 38656, 38780, 38789, 38902, 38935, 38936, 39087, 39089, 39171, 39173, 39180, 39177, 39361, 39599, 39600, 39654, 39745, 39746, 40180, 40182, 40179, 40636, 40763, 40778, 20740, 20736, 20731, 20725, 20729, 20738, 20744, 20745, 20741, 20956, 21127, 21128, 21129, 21133, 21130, 21232, 21426, 22062, 22075, 22073, 22066, 22079, 22068, 22057, 22099, 22094, 22103, 22132, 22070, 22063, 22064, 22656, 22687, 22686, 22707, 22684, 22702, 22697, 22694, 22893, 23305, 23291, 23307, 23285, 23308, 23304, 23534, 23532, 23529, 23531, 23652, 23653, 23965, 23956, 24162, 24159, 24161, 24290, 24282, 24287, 24285, 24291, 24288, 24392, 24433, 24503, 24501, 24950, 24935, 24942, 24925, 24917, 24962, 24956, 24944, 24939, 24958, 24999, 24976, 25003, 24974, 25004, 24986, 24996, 24980, 25006, 25134, 25705, 25711, 25721, 25758, 25778, 25736, 25744, 25776, 25765, 25747, 25749, 25769, 25746, 25774, 25773, 25771, 25754, 25772, 25753, 25762, 25779, 25973, 25975, 25976, 26286, 26283, 26292, 26289, 27171, 27167, 27112, 27137, 27166, 27161, 27133, 27169, 27155, 27146, 27123, 27138, 27141, 27117, 27153, 27472, 27470, 27556, 27589, 27590, 28479, 28540, 28548, 28497, 28518, 28500, 28550, 28525, 28507, 28536, 28526, 28558, 28538, 28528, 28516, 28567, 28504, 28373, 28527, 28512, 28511, 29087, 29100, 29105, 29096, 29270, 29339, 29518, 29527, 29801, 29835, 29827, 29822, 29824, 30079, 30240, 30249, 30239, 30244, 30246, 30241, 30242, 30362, 30394, 30436, 30606, 30599, 30604, 30609, 30603, 30923, 30917, 30906, 30922, 30910, 30933, 30908, 30928, 31295, 31292, 31296, 31293, 31287, 31291, 31407, 31406, 31661, 31665, 31684, 31668, 31686, 31687, 31681, 31648, 31692, 31946, 32224, 32244, 32239, 32251, 32216, 32236, 32221, 32232, 32227, 32218, 32222, 32233, 32158, 32217, 32242, 32249, 32629, 32631, 32687, 32745, 32806, 33179, 33180, 33181, 33184, 33178, 33176, 34071, 34109, 34074, 34030, 34092, 34093, 34067, 34065, 34083, 34081, 34068, 34028, 34085, 34047, 34054, 34690, 34676, 34678, 34656, 34662, 34680, 34664, 34649, 34647, 34636, 34643, 34907, 34909, 35088, 35079, 35090, 35091, 35093, 35082, 35516, 35538, 35527, 35524, 35477, 35531, 35576, 35506, 35529, 35522, 35519, 35504, 35542, 35533, 35510, 35513, 35547, 35916, 35918, 35948, 36064, 36062, 36070, 36068, 36076, 36077, 36066, 36067, 36060, 36074, 36065, 36205, 36255, 36259, 36395, 36368, 36381, 36386, 36367, 36393, 36383, 36385, 36382, 36538, 36637, 36635, 36639, 36649, 36646, 36650, 36636, 36638, 36645, 36969, 36974, 36968, 36973, 36983, 37168, 37165, 37159, 37169, 37255, 37257, 37259, 37251, 37573, 37563, 37559, 37610, 37548, 37604, 37569, 37555, 37564, 37586, 37575, 37616, 37554, 38317, 38321, 38660, 38662, 38663, 38665, 38752, 38797, 38795, 38799, 38945, 38955, 38940, 39091, 39178, 39187, 39186, 39192, 39389, 39376, 39391, 39387, 39377, 39381, 39378, 39385, 39607, 39662, 39663, 39719, 39749, 39748, 39799, 39791, 40198, 40201, 40195, 40617, 40638, 40654, 22696, 40786, 20754, 20760, 20756, 20752, 20757, 20864, 20906, 20957, 21137, 21139, 21235, 22105, 22123, 22137, 22121, 22116, 22136, 22122, 22120, 22117, 22129, 22127, 22124, 22114, 22134, 22721, 22718, 22727, 22725, 22894, 23325, 23348, 23416, 23536, 23566, 24394, 25010, 24977, 25001, 24970, 25037, 25014, 25022, 25034, 25032, 25136, 25797, 25793, 25803, 25787, 25788, 25818, 25796, 25799, 25794, 25805, 25791, 25810, 25812, 25790, 25972, 26310, 26313, 26297, 26308, 26311, 26296, 27197, 27192, 27194, 27225, 27243, 27224, 27193, 27204, 27234, 27233, 27211, 27207, 27189, 27231, 27208, 27481, 27511, 27653, 28610, 28593, 28577, 28611, 28580, 28609, 28583, 28595, 28608, 28601, 28598, 28582, 28576, 28596, 29118, 29129, 29136, 29138, 29128, 29141, 29113, 29134, 29145, 29148, 29123, 29124, 29544, 29852, 29859, 29848, 29855, 29854, 29922, 29964, 29965, 30260, 30264, 30266, 30439, 30437, 30624, 30622, 30623, 30629, 30952, 30938, 30956, 30951, 31142, 31309, 31310, 31302, 31308, 31307, 31418, 31705, 31761, 31689, 31716, 31707, 31713, 31721, 31718, 31957, 31958, 32266, 32273, 32264, 32283, 32291, 32286, 32285, 32265, 32272, 32633, 32690, 32752, 32753, 32750, 32808, 33203, 33193, 33192, 33275, 33288, 33368, 33369, 34122, 34137, 34120, 34152, 34153, 34115, 34121, 34157, 34154, 34142, 34691, 34719, 34718, 34722, 34701, 34913, 35114, 35122, 35109, 35115, 35105, 35242, 35238, 35558, 35578, 35563, 35569, 35584, 35548, 35559, 35566, 35582, 35585, 35586, 35575, 35565, 35571, 35574, 35580, 35947, 35949, 35987, 36084, 36420, 36401, 36404, 36418, 36409, 36405, 36667, 36655, 36664, 36659, 36776, 36774, 36981, 36980, 36984, 36978, 36988, 36986, 37172, 37266, 37664, 37686, 37624, 37683, 37679, 37666, 37628, 37675, 37636, 37658, 37648, 37670, 37665, 37653, 37678, 37657, 38331, 38567, 38568, 38570, 38613, 38670, 38673, 38678, 38669, 38675, 38671, 38747, 38748, 38758, 38808, 38960, 38968, 38971, 38967, 38957, 38969, 38948, 39184, 39208, 39198, 39195, 39201, 39194, 39405, 39394, 39409, 39608, 39612, 39675, 39661, 39720, 39825, 40213, 40227, 40230, 40232, 40210, 40219, 40664, 40660, 40845, 40860, 20778, 20767, 20769, 20786, 21237, 22158, 22144, 22160, 22149, 22151, 22159, 22741, 22739, 22737, 22734, 23344, 23338, 23332, 23418, 23607, 23656, 23996, 23994, 23997, 23992, 24171, 24396, 24509, 25033, 25026, 25031, 25062, 25035, 25138, 25140, 25806, 25802, 25816, 25824, 25840, 25830, 25836, 25841, 25826, 25837, 25986, 25987, 26329, 26326, 27264, 27284, 27268, 27298, 27292, 27355, 27299, 27262, 27287, 27280, 27296, 27484, 27566, 27610, 27656, 28632, 28657, 28639, 28640, 28635, 28644, 28651, 28655, 28544, 28652, 28641, 28649, 28629, 28654, 28656, 29159, 29151, 29166, 29158, 29157, 29165, 29164, 29172, 29152, 29237, 29254, 29552, 29554, 29865, 29872, 29862, 29864, 30278, 30274, 30284, 30442, 30643, 30634, 30640, 30636, 30631, 30637, 30703, 30967, 30970, 30964, 30959, 30977, 31143, 31146, 31319, 31423, 31751, 31757, 31742, 31735, 31756, 31712, 31968, 31964, 31966, 31970, 31967, 31961, 31965, 32302, 32318, 32326, 32311, 32306, 32323, 32299, 32317, 32305, 32325, 32321, 32308, 32313, 32328, 32309, 32319, 32303, 32580, 32755, 32764, 32881, 32882, 32880, 32879, 32883, 33222, 33219, 33210, 33218, 33216, 33215, 33213, 33225, 33214, 33256, 33289, 33393, 34218, 34180, 34174, 34204, 34193, 34196, 34223, 34203, 34183, 34216, 34186, 34407, 34752, 34769, 34739, 34770, 34758, 34731, 34747, 34746, 34760, 34763, 35131, 35126, 35140, 35128, 35133, 35244, 35598, 35607, 35609, 35611, 35594, 35616, 35613, 35588, 35600, 35905, 35903, 35955, 36090, 36093, 36092, 36088, 36091, 36264, 36425, 36427, 36424, 36426, 36676, 36670, 36674, 36677, 36671, 36991, 36989, 36996, 36993, 36994, 36992, 37177, 37283, 37278, 37276, 37709, 37762, 37672, 37749, 37706, 37733, 37707, 37656, 37758, 37740, 37723, 37744, 37722, 37716, 38346, 38347, 38348, 38344, 38342, 38577, 38584, 38614, 38684, 38686, 38816, 38867, 38982, 39094, 39221, 39425, 39423, 39854, 39851, 39850, 39853, 40251, 40255, 40587, 40655, 40670, 40668, 40669, 40667, 40766, 40779, 21474, 22165, 22190, 22745, 22744, 23352, 24413, 25059, 25139, 25844, 25842, 25854, 25862, 25850, 25851, 25847, 26039, 26332, 26406, 27315, 27308, 27331, 27323, 27320, 27330, 27310, 27311, 27487, 27512, 27567, 28681, 28683, 28670, 28678, 28666, 28689, 28687, 29179, 29180, 29182, 29176, 29559, 29557, 29863, 29887, 29973, 30294, 30296, 30290, 30653, 30655, 30651, 30652, 30990, 31150, 31329, 31330, 31328, 31428, 31429, 31787, 31783, 31786, 31774, 31779, 31777, 31975, 32340, 32341, 32350, 32346, 32353, 32338, 32345, 32584, 32761, 32763, 32887, 32886, 33229, 33231, 33290, 34255, 34217, 34253, 34256, 34249, 34224, 34234, 34233, 34214, 34799, 34796, 34802, 34784, 35206, 35250, 35316, 35624, 35641, 35628, 35627, 35920, 36101, 36441, 36451, 36454, 36452, 36447, 36437, 36544, 36681, 36685, 36999, 36995, 37000, 37291, 37292, 37328, 37780, 37770, 37782, 37794, 37811, 37806, 37804, 37808, 37784, 37786, 37783, 38356, 38358, 38352, 38357, 38626, 38620, 38617, 38619, 38622, 38692, 38819, 38822, 38829, 38905, 38989, 38991, 38988, 38990, 38995, 39098, 39230, 39231, 39229, 39214, 39333, 39438, 39617, 39683, 39686, 39759, 39758, 39757, 39882, 39881, 39933, 39880, 39872, 40273, 40285, 40288, 40672, 40725, 40748, 20787, 22181, 22750, 22751, 22754, 23541, 40848, 24300, 25074, 25079, 25078, 25077, 25856, 25871, 26336, 26333, 27365, 27357, 27354, 27347, 28699, 28703, 28712, 28698, 28701, 28693, 28696, 29190, 29197, 29272, 29346, 29560, 29562, 29885, 29898, 29923, 30087, 30086, 30303, 30305, 30663, 31001, 31153, 31339, 31337, 31806, 31807, 31800, 31805, 31799, 31808, 32363, 32365, 32377, 32361, 32362, 32645, 32371, 32694, 32697, 32696, 33240, 34281, 34269, 34282, 34261, 34276, 34277, 34295, 34811, 34821, 34829, 34809, 34814, 35168, 35167, 35158, 35166, 35649, 35676, 35672, 35657, 35674, 35662, 35663, 35654, 35673, 36104, 36106, 36476, 36466, 36487, 36470, 36460, 36474, 36468, 36692, 36686, 36781, 37002, 37003, 37297, 37294, 37857, 37841, 37855, 37827, 37832, 37852, 37853, 37846, 37858, 37837, 37848, 37860, 37847, 37864, 38364, 38580, 38627, 38698, 38695, 38753, 38876, 38907, 39006, 39000, 39003, 39100, 39237, 39241, 39446, 39449, 39693, 39912, 39911, 39894, 39899, 40329, 40289, 40306, 40298, 40300, 40594, 40599, 40595, 40628, 21240, 22184, 22199, 22198, 22196, 22204, 22756, 23360, 23363, 23421, 23542, 24009, 25080, 25082, 25880, 25876, 25881, 26342, 26407, 27372, 28734, 28720, 28722, 29200, 29563, 29903, 30306, 30309, 31014, 31018, 31020, 31019, 31431, 31478, 31820, 31811, 31821, 31983, 31984, 36782, 32381, 32380, 32386, 32588, 32768, 33242, 33382, 34299, 34297, 34321, 34298, 34310, 34315, 34311, 34314, 34836, 34837, 35172, 35258, 35320, 35696, 35692, 35686, 35695, 35679, 35691, 36111, 36109, 36489, 36481, 36485, 36482, 37300, 37323, 37912, 37891, 37885, 38369, 38704, 39108, 39250, 39249, 39336, 39467, 39472, 39479, 39477, 39955, 39949, 40569, 40629, 40680, 40751, 40799, 40803, 40801, 20791, 20792, 22209, 22208, 22210, 22804, 23660, 24013, 25084, 25086, 25885, 25884, 26005, 26345, 27387, 27396, 27386, 27570, 28748, 29211, 29351, 29910, 29908, 30313, 30675, 31824, 32399, 32396, 32700, 34327, 34349, 34330, 34851, 34850, 34849, 34847, 35178, 35180, 35261, 35700, 35703, 35709, 36115, 36490, 36493, 36491, 36703, 36783, 37306, 37934, 37939, 37941, 37946, 37944, 37938, 37931, 38370, 38712, 38713, 38706, 38911, 39015, 39013, 39255, 39493, 39491, 39488, 39486, 39631, 39764, 39761, 39981, 39973, 40367, 40372, 40386, 40376, 40605, 40687, 40729, 40796, 40806, 40807, 20796, 20795, 22216, 22218, 22217, 23423, 24020, 24018, 24398, 25087, 25892, 27402, 27489, 28753, 28760, 29568, 29924, 30090, 30318, 30316, 31155, 31840, 31839, 32894, 32893, 33247, 35186, 35183, 35324, 35712, 36118, 36119, 36497, 36499, 36705, 37192, 37956, 37969, 37970, 38717, 38718, 38851, 38849, 39019, 39253, 39509, 39501, 39634, 39706, 40009, 39985, 39998, 39995, 40403, 40407, 40756, 40812, 40810, 40852, 22220, 24022, 25088, 25891, 25899, 25898, 26348, 27408, 29914, 31434, 31844, 31843, 31845, 32403, 32406, 32404, 33250, 34360, 34367, 34865, 35722, 37008, 37007, 37987, 37984, 37988, 38760, 39023, 39260, 39514, 39515, 39511, 39635, 39636, 39633, 40020, 40023, 40022, 40421, 40607, 40692, 22225, 22761, 25900, 28766, 30321, 30322, 30679, 32592, 32648, 34870, 34873, 34914, 35731, 35730, 35734, 33399, 36123, 37312, 37994, 38722, 38728, 38724, 38854, 39024, 39519, 39714, 39768, 40031, 40441, 40442, 40572, 40573, 40711, 40823, 40818, 24307, 27414, 28771, 31852, 31854, 34875, 35264, 36513, 37313, 38002, 38000, 39025, 39262, 39638, 39715, 40652, 28772, 30682, 35738, 38007, 38857, 39522, 39525, 32412, 35740, 36522, 37317, 38013, 38014, 38012, 40055, 40056, 40695, 35924, 38015, 40474, 29224, 39530, 39729, 40475, 40478, 31858, 9312, 9313, 9314, 9315, 9316, 9317, 9318, 9319, 9320, 9321, 9332, 9333, 9334, 9335, 9336, 9337, 9338, 9339, 9340, 9341, 8560, 8561, 8562, 8563, 8564, 8565, 8566, 8567, 8568, 8569, 20022, 20031, 20101, 20128, 20866, 20886, 20907, 21241, 21304, 21353, 21430, 22794, 23424, 24027, 12083, 24191, 24308, 24400, 24417, 25908, 26080, 30098, 30326, 36789, 38582, 168, 710, 12541, 12542, 12445, 12446, 12291, 20189, 12293, 12294, 12295, 12540, 65339, 65341, 10045, 12353, 12354, 12355, 12356, 12357, 12358, 12359, 12360, 12361, 12362, 12363, 12364, 12365, 12366, 12367, 12368, 12369, 12370, 12371, 12372, 12373, 12374, 12375, 12376, 12377, 12378, 12379, 12380, 12381, 12382, 12383, 12384, 12385, 12386, 12387, 12388, 12389, 12390, 12391, 12392, 12393, 12394, 12395, 12396, 12397, 12398, 12399, 12400, 12401, 12402, 12403, 12404, 12405, 12406, 12407, 12408, 12409, 12410, 12411, 12412, 12413, 12414, 12415, 12416, 12417, 12418, 12419, 12420, 12421, 12422, 12423, 12424, 12425, 12426, 12427, 12428, 12429, 12430, 12431, 12432, 12433, 12434, 12435, 12449, 12450, 12451, 12452, 12453, 12454, 12455, 12456, 12457, 12458, 12459, 12460, 12461, 12462, 12463, 12464, 12465, 12466, 12467, 12468, 12469, 12470, 12471, 12472, 12473, 12474, 12475, 12476, 12477, 12478, 12479, 12480, 12481, 12482, 12483, 12484, 12485, 12486, 12487, 12488, 12489, 12490, 12491, 12492, 12493, 12494, 12495, 12496, 12497, 12498, 12499, 12500, 12501, 12502, 12503, 12504, 12505, 12506, 12507, 12508, 12509, 12510, 12511, 12512, 12513, 12514, 12515, 12516, 12517, 12518, 12519, 12520, 12521, 12522, 12523, 12524, 12525, 12526, 12527, 12528, 12529, 12530, 12531, 12532, 12533, 12534, 1040, 1041, 1042, 1043, 1044, 1045, 1025, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1105, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 8679, 8632, 8633, 12751, 131276, 20058, 131210, 20994, 17553, 40880, 20872, 40881, 161287, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65506, 65508, 65287, 65282, 12849, 8470, 8481, 12443, 12444, 11904, 11908, 11910, 11911, 11912, 11914, 11916, 11917, 11925, 11932, 11933, 11941, 11943, 11946, 11948, 11950, 11958, 11964, 11966, 11974, 11978, 11980, 11981, 11983, 11990, 11991, 11998, 12003, 0, 0, 0, 643, 592, 603, 596, 629, 339, 248, 331, 650, 618, 20034, 20060, 20981, 21274, 21378, 19975, 19980, 20039, 20109, 22231, 64012, 23662, 24435, 19983, 20871, 19982, 20014, 20115, 20162, 20169, 20168, 20888, 21244, 21356, 21433, 22304, 22787, 22828, 23568, 24063, 26081, 27571, 27596, 27668, 29247, 20017, 20028, 20200, 20188, 20201, 20193, 20189, 20186, 21004, 21276, 21324, 22306, 22307, 22807, 22831, 23425, 23428, 23570, 23611, 23668, 23667, 24068, 24192, 24194, 24521, 25097, 25168, 27669, 27702, 27715, 27711, 27707, 29358, 29360, 29578, 31160, 32906, 38430, 20238, 20248, 20268, 20213, 20244, 20209, 20224, 20215, 20232, 20253, 20226, 20229, 20258, 20243, 20228, 20212, 20242, 20913, 21011, 21001, 21008, 21158, 21282, 21279, 21325, 21386, 21511, 22241, 22239, 22318, 22314, 22324, 22844, 22912, 22908, 22917, 22907, 22910, 22903, 22911, 23382, 23573, 23589, 23676, 23674, 23675, 23678, 24031, 24181, 24196, 24322, 24346, 24436, 24533, 24532, 24527, 25180, 25182, 25188, 25185, 25190, 25186, 25177, 25184, 25178, 25189, 26095, 26094, 26430, 26425, 26424, 26427, 26426, 26431, 26428, 26419, 27672, 27718, 27730, 27740, 27727, 27722, 27732, 27723, 27724, 28785, 29278, 29364, 29365, 29582, 29994, 30335, 31349, 32593, 33400, 33404, 33408, 33405, 33407, 34381, 35198, 37017, 37015, 37016, 37019, 37012, 38434, 38436, 38432, 38435, 20310, 20283, 20322, 20297, 20307, 20324, 20286, 20327, 20306, 20319, 20289, 20312, 20269, 20275, 20287, 20321, 20879, 20921, 21020, 21022, 21025, 21165, 21166, 21257, 21347, 21362, 21390, 21391, 21552, 21559, 21546, 21588, 21573, 21529, 21532, 21541, 21528, 21565, 21583, 21569, 21544, 21540, 21575, 22254, 22247, 22245, 22337, 22341, 22348, 22345, 22347, 22354, 22790, 22848, 22950, 22936, 22944, 22935, 22926, 22946, 22928, 22927, 22951, 22945, 23438, 23442, 23592, 23594, 23693, 23695, 23688, 23691, 23689, 23698, 23690, 23686, 23699, 23701, 24032, 24074, 24078, 24203, 24201, 24204, 24200, 24205, 24325, 24349, 24440, 24438, 24530, 24529, 24528, 24557, 24552, 24558, 24563, 24545, 24548, 24547, 24570, 24559, 24567, 24571, 24576, 24564, 25146, 25219, 25228, 25230, 25231, 25236, 25223, 25201, 25211, 25210, 25200, 25217, 25224, 25207, 25213, 25202, 25204, 25911, 26096, 26100, 26099, 26098, 26101, 26437, 26439, 26457, 26453, 26444, 26440, 26461, 26445, 26458, 26443, 27600, 27673, 27674, 27768, 27751, 27755, 27780, 27787, 27791, 27761, 27759, 27753, 27802, 27757, 27783, 27797, 27804, 27750, 27763, 27749, 27771, 27790, 28788, 28794, 29283, 29375, 29373, 29379, 29382, 29377, 29370, 29381, 29589, 29591, 29587, 29588, 29586, 30010, 30009, 30100, 30101, 30337, 31037, 32820, 32917, 32921, 32912, 32914, 32924, 33424, 33423, 33413, 33422, 33425, 33427, 33418, 33411, 33412, 35960, 36809, 36799, 37023, 37025, 37029, 37022, 37031, 37024, 38448, 38440, 38447, 38445, 20019, 20376, 20348, 20357, 20349, 20352, 20359, 20342, 20340, 20361, 20356, 20343, 20300, 20375, 20330, 20378, 20345, 20353, 20344, 20368, 20380, 20372, 20382, 20370, 20354, 20373, 20331, 20334, 20894, 20924, 20926, 21045, 21042, 21043, 21062, 21041, 21180, 21258, 21259, 21308, 21394, 21396, 21639, 21631, 21633, 21649, 21634, 21640, 21611, 21626, 21630, 21605, 21612, 21620, 21606, 21645, 21615, 21601, 21600, 21656, 21603, 21607, 21604, 22263, 22265, 22383, 22386, 22381, 22379, 22385, 22384, 22390, 22400, 22389, 22395, 22387, 22388, 22370, 22376, 22397, 22796, 22853, 22965, 22970, 22991, 22990, 22962, 22988, 22977, 22966, 22972, 22979, 22998, 22961, 22973, 22976, 22984, 22964, 22983, 23394, 23397, 23443, 23445, 23620, 23623, 23726, 23716, 23712, 23733, 23727, 23720, 23724, 23711, 23715, 23725, 23714, 23722, 23719, 23709, 23717, 23734, 23728, 23718, 24087, 24084, 24089, 24360, 24354, 24355, 24356, 24404, 24450, 24446, 24445, 24542, 24549, 24621, 24614, 24601, 24626, 24587, 24628, 24586, 24599, 24627, 24602, 24606, 24620, 24610, 24589, 24592, 24622, 24595, 24593, 24588, 24585, 24604, 25108, 25149, 25261, 25268, 25297, 25278, 25258, 25270, 25290, 25262, 25267, 25263, 25275, 25257, 25264, 25272, 25917, 26024, 26043, 26121, 26108, 26116, 26130, 26120, 26107, 26115, 26123, 26125, 26117, 26109, 26129, 26128, 26358, 26378, 26501, 26476, 26510, 26514, 26486, 26491, 26520, 26502, 26500, 26484, 26509, 26508, 26490, 26527, 26513, 26521, 26499, 26493, 26497, 26488, 26489, 26516, 27429, 27520, 27518, 27614, 27677, 27795, 27884, 27883, 27886, 27865, 27830, 27860, 27821, 27879, 27831, 27856, 27842, 27834, 27843, 27846, 27885, 27890, 27858, 27869, 27828, 27786, 27805, 27776, 27870, 27840, 27952, 27853, 27847, 27824, 27897, 27855, 27881, 27857, 28820, 28824, 28805, 28819, 28806, 28804, 28817, 28822, 28802, 28826, 28803, 29290, 29398, 29387, 29400, 29385, 29404, 29394, 29396, 29402, 29388, 29393, 29604, 29601, 29613, 29606, 29602, 29600, 29612, 29597, 29917, 29928, 30015, 30016, 30014, 30092, 30104, 30383, 30451, 30449, 30448, 30453, 30712, 30716, 30713, 30715, 30714, 30711, 31042, 31039, 31173, 31352, 31355, 31483, 31861, 31997, 32821, 32911, 32942, 32931, 32952, 32949, 32941, 33312, 33440, 33472, 33451, 33434, 33432, 33435, 33461, 33447, 33454, 33468, 33438, 33466, 33460, 33448, 33441, 33449, 33474, 33444, 33475, 33462, 33442, 34416, 34415, 34413, 34414, 35926, 36818, 36811, 36819, 36813, 36822, 36821, 36823, 37042, 37044, 37039, 37043, 37040, 38457, 38461, 38460, 38458, 38467, 20429, 20421, 20435, 20402, 20425, 20427, 20417, 20436, 20444, 20441, 20411, 20403, 20443, 20423, 20438, 20410, 20416, 20409, 20460, 21060, 21065, 21184, 21186, 21309, 21372, 21399, 21398, 21401, 21400, 21690, 21665, 21677, 21669, 21711, 21699, 33549, 21687, 21678, 21718, 21686, 21701, 21702, 21664, 21616, 21692, 21666, 21694, 21618, 21726, 21680, 22453, 22430, 22431, 22436, 22412, 22423, 22429, 22427, 22420, 22424, 22415, 22425, 22437, 22426, 22421, 22772, 22797, 22867, 23009, 23006, 23022, 23040, 23025, 23005, 23034, 23037, 23036, 23030, 23012, 23026, 23031, 23003, 23017, 23027, 23029, 23008, 23038, 23028, 23021, 23464, 23628, 23760, 23768, 23756, 23767, 23755, 23771, 23774, 23770, 23753, 23751, 23754, 23766, 23763, 23764, 23759, 23752, 23750, 23758, 23775, 23800, 24057, 24097, 24098, 24099, 24096, 24100, 24240, 24228, 24226, 24219, 24227, 24229, 24327, 24366, 24406, 24454, 24631, 24633, 24660, 24690, 24670, 24645, 24659, 24647, 24649, 24667, 24652, 24640, 24642, 24671, 24612, 24644, 24664, 24678, 24686, 25154, 25155, 25295, 25357, 25355, 25333, 25358, 25347, 25323, 25337, 25359, 25356, 25336, 25334, 25344, 25363, 25364, 25338, 25365, 25339, 25328, 25921, 25923, 26026, 26047, 26166, 26145, 26162, 26165, 26140, 26150, 26146, 26163, 26155, 26170, 26141, 26164, 26169, 26158, 26383, 26384, 26561, 26610, 26568, 26554, 26588, 26555, 26616, 26584, 26560, 26551, 26565, 26603, 26596, 26591, 26549, 26573, 26547, 26615, 26614, 26606, 26595, 26562, 26553, 26574, 26599, 26608, 26546, 26620, 26566, 26605, 26572, 26542, 26598, 26587, 26618, 26569, 26570, 26563, 26602, 26571, 27432, 27522, 27524, 27574, 27606, 27608, 27616, 27680, 27681, 27944, 27956, 27949, 27935, 27964, 27967, 27922, 27914, 27866, 27955, 27908, 27929, 27962, 27930, 27921, 27904, 27933, 27970, 27905, 27928, 27959, 27907, 27919, 27968, 27911, 27936, 27948, 27912, 27938, 27913, 27920, 28855, 28831, 28862, 28849, 28848, 28833, 28852, 28853, 28841, 29249, 29257, 29258, 29292, 29296, 29299, 29294, 29386, 29412, 29416, 29419, 29407, 29418, 29414, 29411, 29573, 29644, 29634, 29640, 29637, 29625, 29622, 29621, 29620, 29675, 29631, 29639, 29630, 29635, 29638, 29624, 29643, 29932, 29934, 29998, 30023, 30024, 30119, 30122, 30329, 30404, 30472, 30467, 30468, 30469, 30474, 30455, 30459, 30458, 30695, 30696, 30726, 30737, 30738, 30725, 30736, 30735, 30734, 30729, 30723, 30739, 31050, 31052, 31051, 31045, 31044, 31189, 31181, 31183, 31190, 31182, 31360, 31358, 31441, 31488, 31489, 31866, 31864, 31865, 31871, 31872, 31873, 32003, 32008, 32001, 32600, 32657, 32653, 32702, 32775, 32782, 32783, 32788, 32823, 32984, 32967, 32992, 32977, 32968, 32962, 32976, 32965, 32995, 32985, 32988, 32970, 32981, 32969, 32975, 32983, 32998, 32973, 33279, 33313, 33428, 33497, 33534, 33529, 33543, 33512, 33536, 33493, 33594, 33515, 33494, 33524, 33516, 33505, 33522, 33525, 33548, 33531, 33526, 33520, 33514, 33508, 33504, 33530, 33523, 33517, 34423, 34420, 34428, 34419, 34881, 34894, 34919, 34922, 34921, 35283, 35332, 35335, 36210, 36835, 36833, 36846, 36832, 37105, 37053, 37055, 37077, 37061, 37054, 37063, 37067, 37064, 37332, 37331, 38484, 38479, 38481, 38483, 38474, 38478, 20510, 20485, 20487, 20499, 20514, 20528, 20507, 20469, 20468, 20531, 20535, 20524, 20470, 20471, 20503, 20508, 20512, 20519, 20533, 20527, 20529, 20494, 20826, 20884, 20883, 20938, 20932, 20933, 20936, 20942, 21089, 21082, 21074, 21086, 21087, 21077, 21090, 21197, 21262, 21406, 21798, 21730, 21783, 21778, 21735, 21747, 21732, 21786, 21759, 21764, 21768, 21739, 21777, 21765, 21745, 21770, 21755, 21751, 21752, 21728, 21774, 21763, 21771, 22273, 22274, 22476, 22578, 22485, 22482, 22458, 22470, 22461, 22460, 22456, 22454, 22463, 22471, 22480, 22457, 22465, 22798, 22858, 23065, 23062, 23085, 23086, 23061, 23055, 23063, 23050, 23070, 23091, 23404, 23463, 23469, 23468, 23555, 23638, 23636, 23788, 23807, 23790, 23793, 23799, 23808, 23801, 24105, 24104, 24232, 24238, 24234, 24236, 24371, 24368, 24423, 24669, 24666, 24679, 24641, 24738, 24712, 24704, 24722, 24705, 24733, 24707, 24725, 24731, 24727, 24711, 24732, 24718, 25113, 25158, 25330, 25360, 25430, 25388, 25412, 25413, 25398, 25411, 25572, 25401, 25419, 25418, 25404, 25385, 25409, 25396, 25432, 25428, 25433, 25389, 25415, 25395, 25434, 25425, 25400, 25431, 25408, 25416, 25930, 25926, 26054, 26051, 26052, 26050, 26186, 26207, 26183, 26193, 26386, 26387, 26655, 26650, 26697, 26674, 26675, 26683, 26699, 26703, 26646, 26673, 26652, 26677, 26667, 26669, 26671, 26702, 26692, 26676, 26653, 26642, 26644, 26662, 26664, 26670, 26701, 26682, 26661, 26656, 27436, 27439, 27437, 27441, 27444, 27501, 32898, 27528, 27622, 27620, 27624, 27619, 27618, 27623, 27685, 28026, 28003, 28004, 28022, 27917, 28001, 28050, 27992, 28002, 28013, 28015, 28049, 28045, 28143, 28031, 28038, 27998, 28007, 28000, 28055, 28016, 28028, 27999, 28034, 28056, 27951, 28008, 28043, 28030, 28032, 28036, 27926, 28035, 28027, 28029, 28021, 28048, 28892, 28883, 28881, 28893, 28875, 32569, 28898, 28887, 28882, 28894, 28896, 28884, 28877, 28869, 28870, 28871, 28890, 28878, 28897, 29250, 29304, 29303, 29302, 29440, 29434, 29428, 29438, 29430, 29427, 29435, 29441, 29651, 29657, 29669, 29654, 29628, 29671, 29667, 29673, 29660, 29650, 29659, 29652, 29661, 29658, 29655, 29656, 29672, 29918, 29919, 29940, 29941, 29985, 30043, 30047, 30128, 30145, 30139, 30148, 30144, 30143, 30134, 30138, 30346, 30409, 30493, 30491, 30480, 30483, 30482, 30499, 30481, 30485, 30489, 30490, 30498, 30503, 30755, 30764, 30754, 30773, 30767, 30760, 30766, 30763, 30753, 30761, 30771, 30762, 30769, 31060, 31067, 31055, 31068, 31059, 31058, 31057, 31211, 31212, 31200, 31214, 31213, 31210, 31196, 31198, 31197, 31366, 31369, 31365, 31371, 31372, 31370, 31367, 31448, 31504, 31492, 31507, 31493, 31503, 31496, 31498, 31502, 31497, 31506, 31876, 31889, 31882, 31884, 31880, 31885, 31877, 32030, 32029, 32017, 32014, 32024, 32022, 32019, 32031, 32018, 32015, 32012, 32604, 32609, 32606, 32608, 32605, 32603, 32662, 32658, 32707, 32706, 32704, 32790, 32830, 32825, 33018, 33010, 33017, 33013, 33025, 33019, 33024, 33281, 33327, 33317, 33587, 33581, 33604, 33561, 33617, 33573, 33622, 33599, 33601, 33574, 33564, 33570, 33602, 33614, 33563, 33578, 33544, 33596, 33613, 33558, 33572, 33568, 33591, 33583, 33577, 33607, 33605, 33612, 33619, 33566, 33580, 33611, 33575, 33608, 34387, 34386, 34466, 34472, 34454, 34445, 34449, 34462, 34439, 34455, 34438, 34443, 34458, 34437, 34469, 34457, 34465, 34471, 34453, 34456, 34446, 34461, 34448, 34452, 34883, 34884, 34925, 34933, 34934, 34930, 34944, 34929, 34943, 34927, 34947, 34942, 34932, 34940, 35346, 35911, 35927, 35963, 36004, 36003, 36214, 36216, 36277, 36279, 36278, 36561, 36563, 36862, 36853, 36866, 36863, 36859, 36868, 36860, 36854, 37078, 37088, 37081, 37082, 37091, 37087, 37093, 37080, 37083, 37079, 37084, 37092, 37200, 37198, 37199, 37333, 37346, 37338, 38492, 38495, 38588, 39139, 39647, 39727, 20095, 20592, 20586, 20577, 20574, 20576, 20563, 20555, 20573, 20594, 20552, 20557, 20545, 20571, 20554, 20578, 20501, 20549, 20575, 20585, 20587, 20579, 20580, 20550, 20544, 20590, 20595, 20567, 20561, 20944, 21099, 21101, 21100, 21102, 21206, 21203, 21293, 21404, 21877, 21878, 21820, 21837, 21840, 21812, 21802, 21841, 21858, 21814, 21813, 21808, 21842, 21829, 21772, 21810, 21861, 21838, 21817, 21832, 21805, 21819, 21824, 21835, 22282, 22279, 22523, 22548, 22498, 22518, 22492, 22516, 22528, 22509, 22525, 22536, 22520, 22539, 22515, 22479, 22535, 22510, 22499, 22514, 22501, 22508, 22497, 22542, 22524, 22544, 22503, 22529, 22540, 22513, 22505, 22512, 22541, 22532, 22876, 23136, 23128, 23125, 23143, 23134, 23096, 23093, 23149, 23120, 23135, 23141, 23148, 23123, 23140, 23127, 23107, 23133, 23122, 23108, 23131, 23112, 23182, 23102, 23117, 23097, 23116, 23152, 23145, 23111, 23121, 23126, 23106, 23132, 23410, 23406, 23489, 23488, 23641, 23838, 23819, 23837, 23834, 23840, 23820, 23848, 23821, 23846, 23845, 23823, 23856, 23826, 23843, 23839, 23854, 24126, 24116, 24241, 24244, 24249, 24242, 24243, 24374, 24376, 24475, 24470, 24479, 24714, 24720, 24710, 24766, 24752, 24762, 24787, 24788, 24783, 24804, 24793, 24797, 24776, 24753, 24795, 24759, 24778, 24767, 24771, 24781, 24768, 25394, 25445, 25482, 25474, 25469, 25533, 25502, 25517, 25501, 25495, 25515, 25486, 25455, 25479, 25488, 25454, 25519, 25461, 25500, 25453, 25518, 25468, 25508, 25403, 25503, 25464, 25477, 25473, 25489, 25485, 25456, 25939, 26061, 26213, 26209, 26203, 26201, 26204, 26210, 26392, 26745, 26759, 26768, 26780, 26733, 26734, 26798, 26795, 26966, 26735, 26787, 26796, 26793, 26741, 26740, 26802, 26767, 26743, 26770, 26748, 26731, 26738, 26794, 26752, 26737, 26750, 26779, 26774, 26763, 26784, 26761, 26788, 26744, 26747, 26769, 26764, 26762, 26749, 27446, 27443, 27447, 27448, 27537, 27535, 27533, 27534, 27532, 27690, 28096, 28075, 28084, 28083, 28276, 28076, 28137, 28130, 28087, 28150, 28116, 28160, 28104, 28128, 28127, 28118, 28094, 28133, 28124, 28125, 28123, 28148, 28106, 28093, 28141, 28144, 28090, 28117, 28098, 28111, 28105, 28112, 28146, 28115, 28157, 28119, 28109, 28131, 28091, 28922, 28941, 28919, 28951, 28916, 28940, 28912, 28932, 28915, 28944, 28924, 28927, 28934, 28947, 28928, 28920, 28918, 28939, 28930, 28942, 29310, 29307, 29308, 29311, 29469, 29463, 29447, 29457, 29464, 29450, 29448, 29439, 29455, 29470, 29576, 29686, 29688, 29685, 29700, 29697, 29693, 29703, 29696, 29690, 29692, 29695, 29708, 29707, 29684, 29704, 30052, 30051, 30158, 30162, 30159, 30155, 30156, 30161, 30160, 30351, 30345, 30419, 30521, 30511, 30509, 30513, 30514, 30516, 30515, 30525, 30501, 30523, 30517, 30792, 30802, 30793, 30797, 30794, 30796, 30758, 30789, 30800, 31076, 31079, 31081, 31082, 31075, 31083, 31073, 31163, 31226, 31224, 31222, 31223, 31375, 31380, 31376, 31541, 31559, 31540, 31525, 31536, 31522, 31524, 31539, 31512, 31530, 31517, 31537, 31531, 31533, 31535, 31538, 31544, 31514, 31523, 31892, 31896, 31894, 31907, 32053, 32061, 32056, 32054, 32058, 32069, 32044, 32041, 32065, 32071, 32062, 32063, 32074, 32059, 32040, 32611, 32661, 32668, 32669, 32667, 32714, 32715, 32717, 32720, 32721, 32711, 32719, 32713, 32799, 32798, 32795, 32839, 32835, 32840, 33048, 33061, 33049, 33051, 33069, 33055, 33068, 33054, 33057, 33045, 33063, 33053, 33058, 33297, 33336, 33331, 33338, 33332, 33330, 33396, 33680, 33699, 33704, 33677, 33658, 33651, 33700, 33652, 33679, 33665, 33685, 33689, 33653, 33684, 33705, 33661, 33667, 33676, 33693, 33691, 33706, 33675, 33662, 33701, 33711, 33672, 33687, 33712, 33663, 33702, 33671, 33710, 33654, 33690, 34393, 34390, 34495, 34487, 34498, 34497, 34501, 34490, 34480, 34504, 34489, 34483, 34488, 34508, 34484, 34491, 34492, 34499, 34493, 34494, 34898, 34953, 34965, 34984, 34978, 34986, 34970, 34961, 34977, 34975, 34968, 34983, 34969, 34971, 34967, 34980, 34988, 34956, 34963, 34958, 35202, 35286, 35289, 35285, 35376, 35367, 35372, 35358, 35897, 35899, 35932, 35933, 35965, 36005, 36221, 36219, 36217, 36284, 36290, 36281, 36287, 36289, 36568, 36574, 36573, 36572, 36567, 36576, 36577, 36900, 36875, 36881, 36892, 36876, 36897, 37103, 37098, 37104, 37108, 37106, 37107, 37076, 37099, 37100, 37097, 37206, 37208, 37210, 37203, 37205, 37356, 37364, 37361, 37363, 37368, 37348, 37369, 37354, 37355, 37367, 37352, 37358, 38266, 38278, 38280, 38524, 38509, 38507, 38513, 38511, 38591, 38762, 38916, 39141, 39319, 20635, 20629, 20628, 20638, 20619, 20643, 20611, 20620, 20622, 20637, 20584, 20636, 20626, 20610, 20615, 20831, 20948, 21266, 21265, 21412, 21415, 21905, 21928, 21925, 21933, 21879, 22085, 21922, 21907, 21896, 21903, 21941, 21889, 21923, 21906, 21924, 21885, 21900, 21926, 21887, 21909, 21921, 21902, 22284, 22569, 22583, 22553, 22558, 22567, 22563, 22568, 22517, 22600, 22565, 22556, 22555, 22579, 22591, 22582, 22574, 22585, 22584, 22573, 22572, 22587, 22881, 23215, 23188, 23199, 23162, 23202, 23198, 23160, 23206, 23164, 23205, 23212, 23189, 23214, 23095, 23172, 23178, 23191, 23171, 23179, 23209, 23163, 23165, 23180, 23196, 23183, 23187, 23197, 23530, 23501, 23499, 23508, 23505, 23498, 23502, 23564, 23600, 23863, 23875, 23915, 23873, 23883, 23871, 23861, 23889, 23886, 23893, 23859, 23866, 23890, 23869, 23857, 23897, 23874, 23865, 23881, 23864, 23868, 23858, 23862, 23872, 23877, 24132, 24129, 24408, 24486, 24485, 24491, 24777, 24761, 24780, 24802, 24782, 24772, 24852, 24818, 24842, 24854, 24837, 24821, 24851, 24824, 24828, 24830, 24769, 24835, 24856, 24861, 24848, 24831, 24836, 24843, 25162, 25492, 25521, 25520, 25550, 25573, 25576, 25583, 25539, 25757, 25587, 25546, 25568, 25590, 25557, 25586, 25589, 25697, 25567, 25534, 25565, 25564, 25540, 25560, 25555, 25538, 25543, 25548, 25547, 25544, 25584, 25559, 25561, 25906, 25959, 25962, 25956, 25948, 25960, 25957, 25996, 26013, 26014, 26030, 26064, 26066, 26236, 26220, 26235, 26240, 26225, 26233, 26218, 26226, 26369, 26892, 26835, 26884, 26844, 26922, 26860, 26858, 26865, 26895, 26838, 26871, 26859, 26852, 26870, 26899, 26896, 26867, 26849, 26887, 26828, 26888, 26992, 26804, 26897, 26863, 26822, 26900, 26872, 26832, 26877, 26876, 26856, 26891, 26890, 26903, 26830, 26824, 26845, 26846, 26854, 26868, 26833, 26886, 26836, 26857, 26901, 26917, 26823, 27449, 27451, 27455, 27452, 27540, 27543, 27545, 27541, 27581, 27632, 27634, 27635, 27696, 28156, 28230, 28231, 28191, 28233, 28296, 28220, 28221, 28229, 28258, 28203, 28223, 28225, 28253, 28275, 28188, 28211, 28235, 28224, 28241, 28219, 28163, 28206, 28254, 28264, 28252, 28257, 28209, 28200, 28256, 28273, 28267, 28217, 28194, 28208, 28243, 28261, 28199, 28280, 28260, 28279, 28245, 28281, 28242, 28262, 28213, 28214, 28250, 28960, 28958, 28975, 28923, 28974, 28977, 28963, 28965, 28962, 28978, 28959, 28968, 28986, 28955, 29259, 29274, 29320, 29321, 29318, 29317, 29323, 29458, 29451, 29488, 29474, 29489, 29491, 29479, 29490, 29485, 29478, 29475, 29493, 29452, 29742, 29740, 29744, 29739, 29718, 29722, 29729, 29741, 29745, 29732, 29731, 29725, 29737, 29728, 29746, 29947, 29999, 30063, 30060, 30183, 30170, 30177, 30182, 30173, 30175, 30180, 30167, 30357, 30354, 30426, 30534, 30535, 30532, 30541, 30533, 30538, 30542, 30539, 30540, 30686, 30700, 30816, 30820, 30821, 30812, 30829, 30833, 30826, 30830, 30832, 30825, 30824, 30814, 30818, 31092, 31091, 31090, 31088, 31234, 31242, 31235, 31244, 31236, 31385, 31462, 31460, 31562, 31547, 31556, 31560, 31564, 31566, 31552, 31576, 31557, 31906, 31902, 31912, 31905, 32088, 32111, 32099, 32083, 32086, 32103, 32106, 32079, 32109, 32092, 32107, 32082, 32084, 32105, 32081, 32095, 32078, 32574, 32575, 32613, 32614, 32674, 32672, 32673, 32727, 32849, 32847, 32848, 33022, 32980, 33091, 33098, 33106, 33103, 33095, 33085, 33101, 33082, 33254, 33262, 33271, 33272, 33273, 33284, 33340, 33341, 33343, 33397, 33595, 33743, 33785, 33827, 33728, 33768, 33810, 33767, 33764, 33788, 33782, 33808, 33734, 33736, 33771, 33763, 33727, 33793, 33757, 33765, 33752, 33791, 33761, 33739, 33742, 33750, 33781, 33737, 33801, 33807, 33758, 33809, 33798, 33730, 33779, 33749, 33786, 33735, 33745, 33770, 33811, 33731, 33772, 33774, 33732, 33787, 33751, 33762, 33819, 33755, 33790, 34520, 34530, 34534, 34515, 34531, 34522, 34538, 34525, 34539, 34524, 34540, 34537, 34519, 34536, 34513, 34888, 34902, 34901, 35002, 35031, 35001, 35000, 35008, 35006, 34998, 35004, 34999, 35005, 34994, 35073, 35017, 35221, 35224, 35223, 35293, 35290, 35291, 35406, 35405, 35385, 35417, 35392, 35415, 35416, 35396, 35397, 35410, 35400, 35409, 35402, 35404, 35407, 35935, 35969, 35968, 36026, 36030, 36016, 36025, 36021, 36228, 36224, 36233, 36312, 36307, 36301, 36295, 36310, 36316, 36303, 36309, 36313, 36296, 36311, 36293, 36591, 36599, 36602, 36601, 36582, 36590, 36581, 36597, 36583, 36584, 36598, 36587, 36593, 36588, 36596, 36585, 36909, 36916, 36911, 37126, 37164, 37124, 37119, 37116, 37128, 37113, 37115, 37121, 37120, 37127, 37125, 37123, 37217, 37220, 37215, 37218, 37216, 37377, 37386, 37413, 37379, 37402, 37414, 37391, 37388, 37376, 37394, 37375, 37373, 37382, 37380, 37415, 37378, 37404, 37412, 37401, 37399, 37381, 37398, 38267, 38285, 38284, 38288, 38535, 38526, 38536, 38537, 38531, 38528, 38594, 38600, 38595, 38641, 38640, 38764, 38768, 38766, 38919, 39081, 39147, 40166, 40697, 20099, 20100, 20150, 20669, 20671, 20678, 20654, 20676, 20682, 20660, 20680, 20674, 20656, 20673, 20666, 20657, 20683, 20681, 20662, 20664, 20951, 21114, 21112, 21115, 21116, 21955, 21979, 21964, 21968, 21963, 21962, 21981, 21952, 21972, 21956, 21993, 21951, 21970, 21901, 21967, 21973, 21986, 21974, 21960, 22002, 21965, 21977, 21954, 22292, 22611, 22632, 22628, 22607, 22605, 22601, 22639, 22613, 22606, 22621, 22617, 22629, 22619, 22589, 22627, 22641, 22780, 23239, 23236, 23243, 23226, 23224, 23217, 23221, 23216, 23231, 23240, 23227, 23238, 23223, 23232, 23242, 23220, 23222, 23245, 23225, 23184, 23510, 23512, 23513, 23583, 23603, 23921, 23907, 23882, 23909, 23922, 23916, 23902, 23912, 23911, 23906, 24048, 24143, 24142, 24138, 24141, 24139, 24261, 24268, 24262, 24267, 24263, 24384, 24495, 24493, 24823, 24905, 24906, 24875, 24901, 24886, 24882, 24878, 24902, 24879, 24911, 24873, 24896, 25120, 37224, 25123, 25125, 25124, 25541, 25585, 25579, 25616, 25618, 25609, 25632, 25636, 25651, 25667, 25631, 25621, 25624, 25657, 25655, 25634, 25635, 25612, 25638, 25648, 25640, 25665, 25653, 25647, 25610, 25626, 25664, 25637, 25639, 25611, 25575, 25627, 25646, 25633, 25614, 25967, 26002, 26067, 26246, 26252, 26261, 26256, 26251, 26250, 26265, 26260, 26232, 26400, 26982, 26975, 26936, 26958, 26978, 26993, 26943, 26949, 26986, 26937, 26946, 26967, 26969, 27002, 26952, 26953, 26933, 26988, 26931, 26941, 26981, 26864, 27000, 26932, 26985, 26944, 26991, 26948, 26998, 26968, 26945, 26996, 26956, 26939, 26955, 26935, 26972, 26959, 26961, 26930, 26962, 26927, 27003, 26940, 27462, 27461, 27459, 27458, 27464, 27457, 27547, 64013, 27643, 27644, 27641, 27639, 27640, 28315, 28374, 28360, 28303, 28352, 28319, 28307, 28308, 28320, 28337, 28345, 28358, 28370, 28349, 28353, 28318, 28361, 28343, 28336, 28365, 28326, 28367, 28338, 28350, 28355, 28380, 28376, 28313, 28306, 28302, 28301, 28324, 28321, 28351, 28339, 28368, 28362, 28311, 28334, 28323, 28999, 29012, 29010, 29027, 29024, 28993, 29021, 29026, 29042, 29048, 29034, 29025, 28994, 29016, 28995, 29003, 29040, 29023, 29008, 29011, 28996, 29005, 29018, 29263, 29325, 29324, 29329, 29328, 29326, 29500, 29506, 29499, 29498, 29504, 29514, 29513, 29764, 29770, 29771, 29778, 29777, 29783, 29760, 29775, 29776, 29774, 29762, 29766, 29773, 29780, 29921, 29951, 29950, 29949, 29981, 30073, 30071, 27011, 30191, 30223, 30211, 30199, 30206, 30204, 30201, 30200, 30224, 30203, 30198, 30189, 30197, 30205, 30361, 30389, 30429, 30549, 30559, 30560, 30546, 30550, 30554, 30569, 30567, 30548, 30553, 30573, 30688, 30855, 30874, 30868, 30863, 30852, 30869, 30853, 30854, 30881, 30851, 30841, 30873, 30848, 30870, 30843, 31100, 31106, 31101, 31097, 31249, 31256, 31257, 31250, 31255, 31253, 31266, 31251, 31259, 31248, 31395, 31394, 31390, 31467, 31590, 31588, 31597, 31604, 31593, 31602, 31589, 31603, 31601, 31600, 31585, 31608, 31606, 31587, 31922, 31924, 31919, 32136, 32134, 32128, 32141, 32127, 32133, 32122, 32142, 32123, 32131, 32124, 32140, 32148, 32132, 32125, 32146, 32621, 32619, 32615, 32616, 32620, 32678, 32677, 32679, 32731, 32732, 32801, 33124, 33120, 33143, 33116, 33129, 33115, 33122, 33138, 26401, 33118, 33142, 33127, 33135, 33092, 33121, 33309, 33353, 33348, 33344, 33346, 33349, 34033, 33855, 33878, 33910, 33913, 33935, 33933, 33893, 33873, 33856, 33926, 33895, 33840, 33869, 33917, 33882, 33881, 33908, 33907, 33885, 34055, 33886, 33847, 33850, 33844, 33914, 33859, 33912, 33842, 33861, 33833, 33753, 33867, 33839, 33858, 33837, 33887, 33904, 33849, 33870, 33868, 33874, 33903, 33989, 33934, 33851, 33863, 33846, 33843, 33896, 33918, 33860, 33835, 33888, 33876, 33902, 33872, 34571, 34564, 34551, 34572, 34554, 34518, 34549, 34637, 34552, 34574, 34569, 34561, 34550, 34573, 34565, 35030, 35019, 35021, 35022, 35038, 35035, 35034, 35020, 35024, 35205, 35227, 35295, 35301, 35300, 35297, 35296, 35298, 35292, 35302, 35446, 35462, 35455, 35425, 35391, 35447, 35458, 35460, 35445, 35459, 35457, 35444, 35450, 35900, 35915, 35914, 35941, 35940, 35942, 35974, 35972, 35973, 36044, 36200, 36201, 36241, 36236, 36238, 36239, 36237, 36243, 36244, 36240, 36242, 36336, 36320, 36332, 36337, 36334, 36304, 36329, 36323, 36322, 36327, 36338, 36331, 36340, 36614, 36607, 36609, 36608, 36613, 36615, 36616, 36610, 36619, 36946, 36927, 36932, 36937, 36925, 37136, 37133, 37135, 37137, 37142, 37140, 37131, 37134, 37230, 37231, 37448, 37458, 37424, 37434, 37478, 37427, 37477, 37470, 37507, 37422, 37450, 37446, 37485, 37484, 37455, 37472, 37479, 37487, 37430, 37473, 37488, 37425, 37460, 37475, 37456, 37490, 37454, 37459, 37452, 37462, 37426, 38303, 38300, 38302, 38299, 38546, 38547, 38545, 38551, 38606, 38650, 38653, 38648, 38645, 38771, 38775, 38776, 38770, 38927, 38925, 38926, 39084, 39158, 39161, 39343, 39346, 39344, 39349, 39597, 39595, 39771, 40170, 40173, 40167, 40576, 40701, 20710, 20692, 20695, 20712, 20723, 20699, 20714, 20701, 20708, 20691, 20716, 20720, 20719, 20707, 20704, 20952, 21120, 21121, 21225, 21227, 21296, 21420, 22055, 22037, 22028, 22034, 22012, 22031, 22044, 22017, 22035, 22018, 22010, 22045, 22020, 22015, 22009, 22665, 22652, 22672, 22680, 22662, 22657, 22655, 22644, 22667, 22650, 22663, 22673, 22670, 22646, 22658, 22664, 22651, 22676, 22671, 22782, 22891, 23260, 23278, 23269, 23253, 23274, 23258, 23277, 23275, 23283, 23266, 23264, 23259, 23276, 23262, 23261, 23257, 23272, 23263, 23415, 23520, 23523, 23651, 23938, 23936, 23933, 23942, 23930, 23937, 23927, 23946, 23945, 23944, 23934, 23932, 23949, 23929, 23935, 24152, 24153, 24147, 24280, 24273, 24279, 24270, 24284, 24277, 24281, 24274, 24276, 24388, 24387, 24431, 24502, 24876, 24872, 24897, 24926, 24945, 24947, 24914, 24915, 24946, 24940, 24960, 24948, 24916, 24954, 24923, 24933, 24891, 24938, 24929, 24918, 25129, 25127, 25131, 25643, 25677, 25691, 25693, 25716, 25718, 25714, 25715, 25725, 25717, 25702, 25766, 25678, 25730, 25694, 25692, 25675, 25683, 25696, 25680, 25727, 25663, 25708, 25707, 25689, 25701, 25719, 25971, 26016, 26273, 26272, 26271, 26373, 26372, 26402, 27057, 27062, 27081, 27040, 27086, 27030, 27056, 27052, 27068, 27025, 27033, 27022, 27047, 27021, 27049, 27070, 27055, 27071, 27076, 27069, 27044, 27092, 27065, 27082, 27034, 27087, 27059, 27027, 27050, 27041, 27038, 27097, 27031, 27024, 27074, 27061, 27045, 27078, 27466, 27469, 27467, 27550, 27551, 27552, 27587, 27588, 27646, 28366, 28405, 28401, 28419, 28453, 28408, 28471, 28411, 28462, 28425, 28494, 28441, 28442, 28455, 28440, 28475, 28434, 28397, 28426, 28470, 28531, 28409, 28398, 28461, 28480, 28464, 28476, 28469, 28395, 28423, 28430, 28483, 28421, 28413, 28406, 28473, 28444, 28412, 28474, 28447, 28429, 28446, 28424, 28449, 29063, 29072, 29065, 29056, 29061, 29058, 29071, 29051, 29062, 29057, 29079, 29252, 29267, 29335, 29333, 29331, 29507, 29517, 29521, 29516, 29794, 29811, 29809, 29813, 29810, 29799, 29806, 29952, 29954, 29955, 30077, 30096, 30230, 30216, 30220, 30229, 30225, 30218, 30228, 30392, 30593, 30588, 30597, 30594, 30574, 30592, 30575, 30590, 30595, 30898, 30890, 30900, 30893, 30888, 30846, 30891, 30878, 30885, 30880, 30892, 30882, 30884, 31128, 31114, 31115, 31126, 31125, 31124, 31123, 31127, 31112, 31122, 31120, 31275, 31306, 31280, 31279, 31272, 31270, 31400, 31403, 31404, 31470, 31624, 31644, 31626, 31633, 31632, 31638, 31629, 31628, 31643, 31630, 31621, 31640, 21124, 31641, 31652, 31618, 31931, 31935, 31932, 31930, 32167, 32183, 32194, 32163, 32170, 32193, 32192, 32197, 32157, 32206, 32196, 32198, 32203, 32204, 32175, 32185, 32150, 32188, 32159, 32166, 32174, 32169, 32161, 32201, 32627, 32738, 32739, 32741, 32734, 32804, 32861, 32860, 33161, 33158, 33155, 33159, 33165, 33164, 33163, 33301, 33943, 33956, 33953, 33951, 33978, 33998, 33986, 33964, 33966, 33963, 33977, 33972, 33985, 33997, 33962, 33946, 33969, 34000, 33949, 33959, 33979, 33954, 33940, 33991, 33996, 33947, 33961, 33967, 33960, 34006, 33944, 33974, 33999, 33952, 34007, 34004, 34002, 34011, 33968, 33937, 34401, 34611, 34595, 34600, 34667, 34624, 34606, 34590, 34593, 34585, 34587, 34627, 34604, 34625, 34622, 34630, 34592, 34610, 34602, 34605, 34620, 34578, 34618, 34609, 34613, 34626, 34598, 34599, 34616, 34596, 34586, 34608, 34577, 35063, 35047, 35057, 35058, 35066, 35070, 35054, 35068, 35062, 35067, 35056, 35052, 35051, 35229, 35233, 35231, 35230, 35305, 35307, 35304, 35499, 35481, 35467, 35474, 35471, 35478, 35901, 35944, 35945, 36053, 36047, 36055, 36246, 36361, 36354, 36351, 36365, 36349, 36362, 36355, 36359, 36358, 36357, 36350, 36352, 36356, 36624, 36625, 36622, 36621, 37155, 37148, 37152, 37154, 37151, 37149, 37146, 37156, 37153, 37147, 37242, 37234, 37241, 37235, 37541, 37540, 37494, 37531, 37498, 37536, 37524, 37546, 37517, 37542, 37530, 37547, 37497, 37527, 37503, 37539, 37614, 37518, 37506, 37525, 37538, 37501, 37512, 37537, 37514, 37510, 37516, 37529, 37543, 37502, 37511, 37545, 37533, 37515, 37421, 38558, 38561, 38655, 38744, 38781, 38778, 38782, 38787, 38784, 38786, 38779, 38788, 38785, 38783, 38862, 38861, 38934, 39085, 39086, 39170, 39168, 39175, 39325, 39324, 39363, 39353, 39355, 39354, 39362, 39357, 39367, 39601, 39651, 39655, 39742, 39743, 39776, 39777, 39775, 40177, 40178, 40181, 40615, 20735, 20739, 20784, 20728, 20742, 20743, 20726, 20734, 20747, 20748, 20733, 20746, 21131, 21132, 21233, 21231, 22088, 22082, 22092, 22069, 22081, 22090, 22089, 22086, 22104, 22106, 22080, 22067, 22077, 22060, 22078, 22072, 22058, 22074, 22298, 22699, 22685, 22705, 22688, 22691, 22703, 22700, 22693, 22689, 22783, 23295, 23284, 23293, 23287, 23286, 23299, 23288, 23298, 23289, 23297, 23303, 23301, 23311, 23655, 23961, 23959, 23967, 23954, 23970, 23955, 23957, 23968, 23964, 23969, 23962, 23966, 24169, 24157, 24160, 24156, 32243, 24283, 24286, 24289, 24393, 24498, 24971, 24963, 24953, 25009, 25008, 24994, 24969, 24987, 24979, 25007, 25005, 24991, 24978, 25002, 24993, 24973, 24934, 25011, 25133, 25710, 25712, 25750, 25760, 25733, 25751, 25756, 25743, 25739, 25738, 25740, 25763, 25759, 25704, 25777, 25752, 25974, 25978, 25977, 25979, 26034, 26035, 26293, 26288, 26281, 26290, 26295, 26282, 26287, 27136, 27142, 27159, 27109, 27128, 27157, 27121, 27108, 27168, 27135, 27116, 27106, 27163, 27165, 27134, 27175, 27122, 27118, 27156, 27127, 27111, 27200, 27144, 27110, 27131, 27149, 27132, 27115, 27145, 27140, 27160, 27173, 27151, 27126, 27174, 27143, 27124, 27158, 27473, 27557, 27555, 27554, 27558, 27649, 27648, 27647, 27650, 28481, 28454, 28542, 28551, 28614, 28562, 28557, 28553, 28556, 28514, 28495, 28549, 28506, 28566, 28534, 28524, 28546, 28501, 28530, 28498, 28496, 28503, 28564, 28563, 28509, 28416, 28513, 28523, 28541, 28519, 28560, 28499, 28555, 28521, 28543, 28565, 28515, 28535, 28522, 28539, 29106, 29103, 29083, 29104, 29088, 29082, 29097, 29109, 29085, 29093, 29086, 29092, 29089, 29098, 29084, 29095, 29107, 29336, 29338, 29528, 29522, 29534, 29535, 29536, 29533, 29531, 29537, 29530, 29529, 29538, 29831, 29833, 29834, 29830, 29825, 29821, 29829, 29832, 29820, 29817, 29960, 29959, 30078, 30245, 30238, 30233, 30237, 30236, 30243, 30234, 30248, 30235, 30364, 30365, 30366, 30363, 30605, 30607, 30601, 30600, 30925, 30907, 30927, 30924, 30929, 30926, 30932, 30920, 30915, 30916, 30921, 31130, 31137, 31136, 31132, 31138, 31131, 27510, 31289, 31410, 31412, 31411, 31671, 31691, 31678, 31660, 31694, 31663, 31673, 31690, 31669, 31941, 31944, 31948, 31947, 32247, 32219, 32234, 32231, 32215, 32225, 32259, 32250, 32230, 32246, 32241, 32240, 32238, 32223, 32630, 32684, 32688, 32685, 32749, 32747, 32746, 32748, 32742, 32744, 32868, 32871, 33187, 33183, 33182, 33173, 33186, 33177, 33175, 33302, 33359, 33363, 33362, 33360, 33358, 33361, 34084, 34107, 34063, 34048, 34089, 34062, 34057, 34061, 34079, 34058, 34087, 34076, 34043, 34091, 34042, 34056, 34060, 34036, 34090, 34034, 34069, 34039, 34027, 34035, 34044, 34066, 34026, 34025, 34070, 34046, 34088, 34077, 34094, 34050, 34045, 34078, 34038, 34097, 34086, 34023, 34024, 34032, 34031, 34041, 34072, 34080, 34096, 34059, 34073, 34095, 34402, 34646, 34659, 34660, 34679, 34785, 34675, 34648, 34644, 34651, 34642, 34657, 34650, 34641, 34654, 34669, 34666, 34640, 34638, 34655, 34653, 34671, 34668, 34682, 34670, 34652, 34661, 34639, 34683, 34677, 34658, 34663, 34665, 34906, 35077, 35084, 35092, 35083, 35095, 35096, 35097, 35078, 35094, 35089, 35086, 35081, 35234, 35236, 35235, 35309, 35312, 35308, 35535, 35526, 35512, 35539, 35537, 35540, 35541, 35515, 35543, 35518, 35520, 35525, 35544, 35523, 35514, 35517, 35545, 35902, 35917, 35983, 36069, 36063, 36057, 36072, 36058, 36061, 36071, 36256, 36252, 36257, 36251, 36384, 36387, 36389, 36388, 36398, 36373, 36379, 36374, 36369, 36377, 36390, 36391, 36372, 36370, 36376, 36371, 36380, 36375, 36378, 36652, 36644, 36632, 36634, 36640, 36643, 36630, 36631, 36979, 36976, 36975, 36967, 36971, 37167, 37163, 37161, 37162, 37170, 37158, 37166, 37253, 37254, 37258, 37249, 37250, 37252, 37248, 37584, 37571, 37572, 37568, 37593, 37558, 37583, 37617, 37599, 37592, 37609, 37591, 37597, 37580, 37615, 37570, 37608, 37578, 37576, 37582, 37606, 37581, 37589, 37577, 37600, 37598, 37607, 37585, 37587, 37557, 37601, 37574, 37556, 38268, 38316, 38315, 38318, 38320, 38564, 38562, 38611, 38661, 38664, 38658, 38746, 38794, 38798, 38792, 38864, 38863, 38942, 38941, 38950, 38953, 38952, 38944, 38939, 38951, 39090, 39176, 39162, 39185, 39188, 39190, 39191, 39189, 39388, 39373, 39375, 39379, 39380, 39374, 39369, 39382, 39384, 39371, 39383, 39372, 39603, 39660, 39659, 39667, 39666, 39665, 39750, 39747, 39783, 39796, 39793, 39782, 39798, 39797, 39792, 39784, 39780, 39788, 40188, 40186, 40189, 40191, 40183, 40199, 40192, 40185, 40187, 40200, 40197, 40196, 40579, 40659, 40719, 40720, 20764, 20755, 20759, 20762, 20753, 20958, 21300, 21473, 22128, 22112, 22126, 22131, 22118, 22115, 22125, 22130, 22110, 22135, 22300, 22299, 22728, 22717, 22729, 22719, 22714, 22722, 22716, 22726, 23319, 23321, 23323, 23329, 23316, 23315, 23312, 23318, 23336, 23322, 23328, 23326, 23535, 23980, 23985, 23977, 23975, 23989, 23984, 23982, 23978, 23976, 23986, 23981, 23983, 23988, 24167, 24168, 24166, 24175, 24297, 24295, 24294, 24296, 24293, 24395, 24508, 24989, 25000, 24982, 25029, 25012, 25030, 25025, 25036, 25018, 25023, 25016, 24972, 25815, 25814, 25808, 25807, 25801, 25789, 25737, 25795, 25819, 25843, 25817, 25907, 25983, 25980, 26018, 26312, 26302, 26304, 26314, 26315, 26319, 26301, 26299, 26298, 26316, 26403, 27188, 27238, 27209, 27239, 27186, 27240, 27198, 27229, 27245, 27254, 27227, 27217, 27176, 27226, 27195, 27199, 27201, 27242, 27236, 27216, 27215, 27220, 27247, 27241, 27232, 27196, 27230, 27222, 27221, 27213, 27214, 27206, 27477, 27476, 27478, 27559, 27562, 27563, 27592, 27591, 27652, 27651, 27654, 28589, 28619, 28579, 28615, 28604, 28622, 28616, 28510, 28612, 28605, 28574, 28618, 28584, 28676, 28581, 28590, 28602, 28588, 28586, 28623, 28607, 28600, 28578, 28617, 28587, 28621, 28591, 28594, 28592, 29125, 29122, 29119, 29112, 29142, 29120, 29121, 29131, 29140, 29130, 29127, 29135, 29117, 29144, 29116, 29126, 29146, 29147, 29341, 29342, 29545, 29542, 29543, 29548, 29541, 29547, 29546, 29823, 29850, 29856, 29844, 29842, 29845, 29857, 29963, 30080, 30255, 30253, 30257, 30269, 30259, 30268, 30261, 30258, 30256, 30395, 30438, 30618, 30621, 30625, 30620, 30619, 30626, 30627, 30613, 30617, 30615, 30941, 30953, 30949, 30954, 30942, 30947, 30939, 30945, 30946, 30957, 30943, 30944, 31140, 31300, 31304, 31303, 31414, 31416, 31413, 31409, 31415, 31710, 31715, 31719, 31709, 31701, 31717, 31706, 31720, 31737, 31700, 31722, 31714, 31708, 31723, 31704, 31711, 31954, 31956, 31959, 31952, 31953, 32274, 32289, 32279, 32268, 32287, 32288, 32275, 32270, 32284, 32277, 32282, 32290, 32267, 32271, 32278, 32269, 32276, 32293, 32292, 32579, 32635, 32636, 32634, 32689, 32751, 32810, 32809, 32876, 33201, 33190, 33198, 33209, 33205, 33195, 33200, 33196, 33204, 33202, 33207, 33191, 33266, 33365, 33366, 33367, 34134, 34117, 34155, 34125, 34131, 34145, 34136, 34112, 34118, 34148, 34113, 34146, 34116, 34129, 34119, 34147, 34110, 34139, 34161, 34126, 34158, 34165, 34133, 34151, 34144, 34188, 34150, 34141, 34132, 34149, 34156, 34403, 34405, 34404, 34715, 34703, 34711, 34707, 34706, 34696, 34689, 34710, 34712, 34681, 34695, 34723, 34693, 34704, 34705, 34717, 34692, 34708, 34716, 34714, 34697, 35102, 35110, 35120, 35117, 35118, 35111, 35121, 35106, 35113, 35107, 35119, 35116, 35103, 35313, 35552, 35554, 35570, 35572, 35573, 35549, 35604, 35556, 35551, 35568, 35528, 35550, 35553, 35560, 35583, 35567, 35579, 35985, 35986, 35984, 36085, 36078, 36081, 36080, 36083, 36204, 36206, 36261, 36263, 36403, 36414, 36408, 36416, 36421, 36406, 36412, 36413, 36417, 36400, 36415, 36541, 36662, 36654, 36661, 36658, 36665, 36663, 36660, 36982, 36985, 36987, 36998, 37114, 37171, 37173, 37174, 37267, 37264, 37265, 37261, 37263, 37671, 37662, 37640, 37663, 37638, 37647, 37754, 37688, 37692, 37659, 37667, 37650, 37633, 37702, 37677, 37646, 37645, 37579, 37661, 37626, 37669, 37651, 37625, 37623, 37684, 37634, 37668, 37631, 37673, 37689, 37685, 37674, 37652, 37644, 37643, 37630, 37641, 37632, 37627, 37654, 38332, 38349, 38334, 38329, 38330, 38326, 38335, 38325, 38333, 38569, 38612, 38667, 38674, 38672, 38809, 38807, 38804, 38896, 38904, 38965, 38959, 38962, 39204, 39199, 39207, 39209, 39326, 39406, 39404, 39397, 39396, 39408, 39395, 39402, 39401, 39399, 39609, 39615, 39604, 39611, 39670, 39674, 39673, 39671, 39731, 39808, 39813, 39815, 39804, 39806, 39803, 39810, 39827, 39826, 39824, 39802, 39829, 39805, 39816, 40229, 40215, 40224, 40222, 40212, 40233, 40221, 40216, 40226, 40208, 40217, 40223, 40584, 40582, 40583, 40622, 40621, 40661, 40662, 40698, 40722, 40765, 20774, 20773, 20770, 20772, 20768, 20777, 21236, 22163, 22156, 22157, 22150, 22148, 22147, 22142, 22146, 22143, 22145, 22742, 22740, 22735, 22738, 23341, 23333, 23346, 23331, 23340, 23335, 23334, 23343, 23342, 23419, 23537, 23538, 23991, 24172, 24170, 24510, 24507, 25027, 25013, 25020, 25063, 25056, 25061, 25060, 25064, 25054, 25839, 25833, 25827, 25835, 25828, 25832, 25985, 25984, 26038, 26074, 26322, 27277, 27286, 27265, 27301, 27273, 27295, 27291, 27297, 27294, 27271, 27283, 27278, 27285, 27267, 27304, 27300, 27281, 27263, 27302, 27290, 27269, 27276, 27282, 27483, 27565, 27657, 28620, 28585, 28660, 28628, 28643, 28636, 28653, 28647, 28646, 28638, 28658, 28637, 28642, 28648, 29153, 29169, 29160, 29170, 29156, 29168, 29154, 29555, 29550, 29551, 29847, 29874, 29867, 29840, 29866, 29869, 29873, 29861, 29871, 29968, 29969, 29970, 29967, 30084, 30275, 30280, 30281, 30279, 30372, 30441, 30645, 30635, 30642, 30647, 30646, 30644, 30641, 30632, 30704, 30963, 30973, 30978, 30971, 30972, 30962, 30981, 30969, 30974, 30980, 31147, 31144, 31324, 31323, 31318, 31320, 31316, 31322, 31422, 31424, 31425, 31749, 31759, 31730, 31744, 31743, 31739, 31758, 31732, 31755, 31731, 31746, 31753, 31747, 31745, 31736, 31741, 31750, 31728, 31729, 31760, 31754, 31976, 32301, 32316, 32322, 32307, 38984, 32312, 32298, 32329, 32320, 32327, 32297, 32332, 32304, 32315, 32310, 32324, 32314, 32581, 32639, 32638, 32637, 32756, 32754, 32812, 33211, 33220, 33228, 33226, 33221, 33223, 33212, 33257, 33371, 33370, 33372, 34179, 34176, 34191, 34215, 34197, 34208, 34187, 34211, 34171, 34212, 34202, 34206, 34167, 34172, 34185, 34209, 34170, 34168, 34135, 34190, 34198, 34182, 34189, 34201, 34205, 34177, 34210, 34178, 34184, 34181, 34169, 34166, 34200, 34192, 34207, 34408, 34750, 34730, 34733, 34757, 34736, 34732, 34745, 34741, 34748, 34734, 34761, 34755, 34754, 34764, 34743, 34735, 34756, 34762, 34740, 34742, 34751, 34744, 34749, 34782, 34738, 35125, 35123, 35132, 35134, 35137, 35154, 35127, 35138, 35245, 35247, 35246, 35314, 35315, 35614, 35608, 35606, 35601, 35589, 35595, 35618, 35599, 35602, 35605, 35591, 35597, 35592, 35590, 35612, 35603, 35610, 35919, 35952, 35954, 35953, 35951, 35989, 35988, 36089, 36207, 36430, 36429, 36435, 36432, 36428, 36423, 36675, 36672, 36997, 36990, 37176, 37274, 37282, 37275, 37273, 37279, 37281, 37277, 37280, 37793, 37763, 37807, 37732, 37718, 37703, 37756, 37720, 37724, 37750, 37705, 37712, 37713, 37728, 37741, 37775, 37708, 37738, 37753, 37719, 37717, 37714, 37711, 37745, 37751, 37755, 37729, 37726, 37731, 37735, 37760, 37710, 37721, 38343, 38336, 38345, 38339, 38341, 38327, 38574, 38576, 38572, 38688, 38687, 38680, 38685, 38681, 38810, 38817, 38812, 38814, 38813, 38869, 38868, 38897, 38977, 38980, 38986, 38985, 38981, 38979, 39205, 39211, 39212, 39210, 39219, 39218, 39215, 39213, 39217, 39216, 39320, 39331, 39329, 39426, 39418, 39412, 39415, 39417, 39416, 39414, 39419, 39421, 39422, 39420, 39427, 39614, 39678, 39677, 39681, 39676, 39752, 39834, 39848, 39838, 39835, 39846, 39841, 39845, 39844, 39814, 39842, 39840, 39855, 40243, 40257, 40295, 40246, 40238, 40239, 40241, 40248, 40240, 40261, 40258, 40259, 40254, 40247, 40256, 40253, 32757, 40237, 40586, 40585, 40589, 40624, 40648, 40666, 40699, 40703, 40740, 40739, 40738, 40788, 40864, 20785, 20781, 20782, 22168, 22172, 22167, 22170, 22173, 22169, 22896, 23356, 23657, 23658, 24000, 24173, 24174, 25048, 25055, 25069, 25070, 25073, 25066, 25072, 25067, 25046, 25065, 25855, 25860, 25853, 25848, 25857, 25859, 25852, 26004, 26075, 26330, 26331, 26328, 27333, 27321, 27325, 27361, 27334, 27322, 27318, 27319, 27335, 27316, 27309, 27486, 27593, 27659, 28679, 28684, 28685, 28673, 28677, 28692, 28686, 28671, 28672, 28667, 28710, 28668, 28663, 28682, 29185, 29183, 29177, 29187, 29181, 29558, 29880, 29888, 29877, 29889, 29886, 29878, 29883, 29890, 29972, 29971, 30300, 30308, 30297, 30288, 30291, 30295, 30298, 30374, 30397, 30444, 30658, 30650, 30975, 30988, 30995, 30996, 30985, 30992, 30994, 30993, 31149, 31148, 31327, 31772, 31785, 31769, 31776, 31775, 31789, 31773, 31782, 31784, 31778, 31781, 31792, 32348, 32336, 32342, 32355, 32344, 32354, 32351, 32337, 32352, 32343, 32339, 32693, 32691, 32759, 32760, 32885, 33233, 33234, 33232, 33375, 33374, 34228, 34246, 34240, 34243, 34242, 34227, 34229, 34237, 34247, 34244, 34239, 34251, 34254, 34248, 34245, 34225, 34230, 34258, 34340, 34232, 34231, 34238, 34409, 34791, 34790, 34786, 34779, 34795, 34794, 34789, 34783, 34803, 34788, 34772, 34780, 34771, 34797, 34776, 34787, 34724, 34775, 34777, 34817, 34804, 34792, 34781, 35155, 35147, 35151, 35148, 35142, 35152, 35153, 35145, 35626, 35623, 35619, 35635, 35632, 35637, 35655, 35631, 35644, 35646, 35633, 35621, 35639, 35622, 35638, 35630, 35620, 35643, 35645, 35642, 35906, 35957, 35993, 35992, 35991, 36094, 36100, 36098, 36096, 36444, 36450, 36448, 36439, 36438, 36446, 36453, 36455, 36443, 36442, 36449, 36445, 36457, 36436, 36678, 36679, 36680, 36683, 37160, 37178, 37179, 37182, 37288, 37285, 37287, 37295, 37290, 37813, 37772, 37778, 37815, 37787, 37789, 37769, 37799, 37774, 37802, 37790, 37798, 37781, 37768, 37785, 37791, 37773, 37809, 37777, 37810, 37796, 37800, 37812, 37795, 37797, 38354, 38355, 38353, 38579, 38615, 38618, 24002, 38623, 38616, 38621, 38691, 38690, 38693, 38828, 38830, 38824, 38827, 38820, 38826, 38818, 38821, 38871, 38873, 38870, 38872, 38906, 38992, 38993, 38994, 39096, 39233, 39228, 39226, 39439, 39435, 39433, 39437, 39428, 39441, 39434, 39429, 39431, 39430, 39616, 39644, 39688, 39684, 39685, 39721, 39733, 39754, 39756, 39755, 39879, 39878, 39875, 39871, 39873, 39861, 39864, 39891, 39862, 39876, 39865, 39869, 40284, 40275, 40271, 40266, 40283, 40267, 40281, 40278, 40268, 40279, 40274, 40276, 40287, 40280, 40282, 40590, 40588, 40671, 40705, 40704, 40726, 40741, 40747, 40746, 40745, 40744, 40780, 40789, 20788, 20789, 21142, 21239, 21428, 22187, 22189, 22182, 22183, 22186, 22188, 22746, 22749, 22747, 22802, 23357, 23358, 23359, 24003, 24176, 24511, 25083, 25863, 25872, 25869, 25865, 25868, 25870, 25988, 26078, 26077, 26334, 27367, 27360, 27340, 27345, 27353, 27339, 27359, 27356, 27344, 27371, 27343, 27341, 27358, 27488, 27568, 27660, 28697, 28711, 28704, 28694, 28715, 28705, 28706, 28707, 28713, 28695, 28708, 28700, 28714, 29196, 29194, 29191, 29186, 29189, 29349, 29350, 29348, 29347, 29345, 29899, 29893, 29879, 29891, 29974, 30304, 30665, 30666, 30660, 30705, 31005, 31003, 31009, 31004, 30999, 31006, 31152, 31335, 31336, 31795, 31804, 31801, 31788, 31803, 31980, 31978, 32374, 32373, 32376, 32368, 32375, 32367, 32378, 32370, 32372, 32360, 32587, 32586, 32643, 32646, 32695, 32765, 32766, 32888, 33239, 33237, 33380, 33377, 33379, 34283, 34289, 34285, 34265, 34273, 34280, 34266, 34263, 34284, 34290, 34296, 34264, 34271, 34275, 34268, 34257, 34288, 34278, 34287, 34270, 34274, 34816, 34810, 34819, 34806, 34807, 34825, 34828, 34827, 34822, 34812, 34824, 34815, 34826, 34818, 35170, 35162, 35163, 35159, 35169, 35164, 35160, 35165, 35161, 35208, 35255, 35254, 35318, 35664, 35656, 35658, 35648, 35667, 35670, 35668, 35659, 35669, 35665, 35650, 35666, 35671, 35907, 35959, 35958, 35994, 36102, 36103, 36105, 36268, 36266, 36269, 36267, 36461, 36472, 36467, 36458, 36463, 36475, 36546, 36690, 36689, 36687, 36688, 36691, 36788, 37184, 37183, 37296, 37293, 37854, 37831, 37839, 37826, 37850, 37840, 37881, 37868, 37836, 37849, 37801, 37862, 37834, 37844, 37870, 37859, 37845, 37828, 37838, 37824, 37842, 37863, 38269, 38362, 38363, 38625, 38697, 38699, 38700, 38696, 38694, 38835, 38839, 38838, 38877, 38878, 38879, 39004, 39001, 39005, 38999, 39103, 39101, 39099, 39102, 39240, 39239, 39235, 39334, 39335, 39450, 39445, 39461, 39453, 39460, 39451, 39458, 39456, 39463, 39459, 39454, 39452, 39444, 39618, 39691, 39690, 39694, 39692, 39735, 39914, 39915, 39904, 39902, 39908, 39910, 39906, 39920, 39892, 39895, 39916, 39900, 39897, 39909, 39893, 39905, 39898, 40311, 40321, 40330, 40324, 40328, 40305, 40320, 40312, 40326, 40331, 40332, 40317, 40299, 40308, 40309, 40304, 40297, 40325, 40307, 40315, 40322, 40303, 40313, 40319, 40327, 40296, 40596, 40593, 40640, 40700, 40749, 40768, 40769, 40781, 40790, 40791, 40792, 21303, 22194, 22197, 22195, 22755, 23365, 24006, 24007, 24302, 24303, 24512, 24513, 25081, 25879, 25878, 25877, 25875, 26079, 26344, 26339, 26340, 27379, 27376, 27370, 27368, 27385, 27377, 27374, 27375, 28732, 28725, 28719, 28727, 28724, 28721, 28738, 28728, 28735, 28730, 28729, 28736, 28731, 28723, 28737, 29203, 29204, 29352, 29565, 29564, 29882, 30379, 30378, 30398, 30445, 30668, 30670, 30671, 30669, 30706, 31013, 31011, 31015, 31016, 31012, 31017, 31154, 31342, 31340, 31341, 31479, 31817, 31816, 31818, 31815, 31813, 31982, 32379, 32382, 32385, 32384, 32698, 32767, 32889, 33243, 33241, 33291, 33384, 33385, 34338, 34303, 34305, 34302, 34331, 34304, 34294, 34308, 34313, 34309, 34316, 34301, 34841, 34832, 34833, 34839, 34835, 34838, 35171, 35174, 35257, 35319, 35680, 35690, 35677, 35688, 35683, 35685, 35687, 35693, 36270, 36486, 36488, 36484, 36697, 36694, 36695, 36693, 36696, 36698, 37005, 37187, 37185, 37303, 37301, 37298, 37299, 37899, 37907, 37883, 37920, 37903, 37908, 37886, 37909, 37904, 37928, 37913, 37901, 37877, 37888, 37879, 37895, 37902, 37910, 37906, 37882, 37897, 37880, 37898, 37887, 37884, 37900, 37878, 37905, 37894, 38366, 38368, 38367, 38702, 38703, 38841, 38843, 38909, 38910, 39008, 39010, 39011, 39007, 39105, 39106, 39248, 39246, 39257, 39244, 39243, 39251, 39474, 39476, 39473, 39468, 39466, 39478, 39465, 39470, 39480, 39469, 39623, 39626, 39622, 39696, 39698, 39697, 39947, 39944, 39927, 39941, 39954, 39928, 40000, 39943, 39950, 39942, 39959, 39956, 39945, 40351, 40345, 40356, 40349, 40338, 40344, 40336, 40347, 40352, 40340, 40348, 40362, 40343, 40353, 40346, 40354, 40360, 40350, 40355, 40383, 40361, 40342, 40358, 40359, 40601, 40603, 40602, 40677, 40676, 40679, 40678, 40752, 40750, 40795, 40800, 40798, 40797, 40793, 40849, 20794, 20793, 21144, 21143, 22211, 22205, 22206, 23368, 23367, 24011, 24015, 24305, 25085, 25883, 27394, 27388, 27395, 27384, 27392, 28739, 28740, 28746, 28744, 28745, 28741, 28742, 29213, 29210, 29209, 29566, 29975, 30314, 30672, 31021, 31025, 31023, 31828, 31827, 31986, 32394, 32391, 32392, 32395, 32390, 32397, 32589, 32699, 32816, 33245, 34328, 34346, 34342, 34335, 34339, 34332, 34329, 34343, 34350, 34337, 34336, 34345, 34334, 34341, 34857, 34845, 34843, 34848, 34852, 34844, 34859, 34890, 35181, 35177, 35182, 35179, 35322, 35705, 35704, 35653, 35706, 35707, 36112, 36116, 36271, 36494, 36492, 36702, 36699, 36701, 37190, 37188, 37189, 37305, 37951, 37947, 37942, 37929, 37949, 37948, 37936, 37945, 37930, 37943, 37932, 37952, 37937, 38373, 38372, 38371, 38709, 38714, 38847, 38881, 39012, 39113, 39110, 39104, 39256, 39254, 39481, 39485, 39494, 39492, 39490, 39489, 39482, 39487, 39629, 39701, 39703, 39704, 39702, 39738, 39762, 39979, 39965, 39964, 39980, 39971, 39976, 39977, 39972, 39969, 40375, 40374, 40380, 40385, 40391, 40394, 40399, 40382, 40389, 40387, 40379, 40373, 40398, 40377, 40378, 40364, 40392, 40369, 40365, 40396, 40371, 40397, 40370, 40570, 40604, 40683, 40686, 40685, 40731, 40728, 40730, 40753, 40782, 40805, 40804, 40850, 20153, 22214, 22213, 22219, 22897, 23371, 23372, 24021, 24017, 24306, 25889, 25888, 25894, 25890, 27403, 27400, 27401, 27661, 28757, 28758, 28759, 28754, 29214, 29215, 29353, 29567, 29912, 29909, 29913, 29911, 30317, 30381, 31029, 31156, 31344, 31345, 31831, 31836, 31833, 31835, 31834, 31988, 31985, 32401, 32591, 32647, 33246, 33387, 34356, 34357, 34355, 34348, 34354, 34358, 34860, 34856, 34854, 34858, 34853, 35185, 35263, 35262, 35323, 35710, 35716, 35714, 35718, 35717, 35711, 36117, 36501, 36500, 36506, 36498, 36496, 36502, 36503, 36704, 36706, 37191, 37964, 37968, 37962, 37963, 37967, 37959, 37957, 37960, 37961, 37958, 38719, 38883, 39018, 39017, 39115, 39252, 39259, 39502, 39507, 39508, 39500, 39503, 39496, 39498, 39497, 39506, 39504, 39632, 39705, 39723, 39739, 39766, 39765, 40006, 40008, 39999, 40004, 39993, 39987, 40001, 39996, 39991, 39988, 39986, 39997, 39990, 40411, 40402, 40414, 40410, 40395, 40400, 40412, 40401, 40415, 40425, 40409, 40408, 40406, 40437, 40405, 40413, 40630, 40688, 40757, 40755, 40754, 40770, 40811, 40853, 40866, 20797, 21145, 22760, 22759, 22898, 23373, 24024, 34863, 24399, 25089, 25091, 25092, 25897, 25893, 26006, 26347, 27409, 27410, 27407, 27594, 28763, 28762, 29218, 29570, 29569, 29571, 30320, 30676, 31847, 31846, 32405, 33388, 34362, 34368, 34361, 34364, 34353, 34363, 34366, 34864, 34866, 34862, 34867, 35190, 35188, 35187, 35326, 35724, 35726, 35723, 35720, 35909, 36121, 36504, 36708, 36707, 37308, 37986, 37973, 37981, 37975, 37982, 38852, 38853, 38912, 39510, 39513, 39710, 39711, 39712, 40018, 40024, 40016, 40010, 40013, 40011, 40021, 40025, 40012, 40014, 40443, 40439, 40431, 40419, 40427, 40440, 40420, 40438, 40417, 40430, 40422, 40434, 40432, 40418, 40428, 40436, 40435, 40424, 40429, 40642, 40656, 40690, 40691, 40710, 40732, 40760, 40759, 40758, 40771, 40783, 40817, 40816, 40814, 40815, 22227, 22221, 23374, 23661, 25901, 26349, 26350, 27411, 28767, 28769, 28765, 28768, 29219, 29915, 29925, 30677, 31032, 31159, 31158, 31850, 32407, 32649, 33389, 34371, 34872, 34871, 34869, 34891, 35732, 35733, 36510, 36511, 36512, 36509, 37310, 37309, 37314, 37995, 37992, 37993, 38629, 38726, 38723, 38727, 38855, 38885, 39518, 39637, 39769, 40035, 40039, 40038, 40034, 40030, 40032, 40450, 40446, 40455, 40451, 40454, 40453, 40448, 40449, 40457, 40447, 40445, 40452, 40608, 40734, 40774, 40820, 40821, 40822, 22228, 25902, 26040, 27416, 27417, 27415, 27418, 28770, 29222, 29354, 30680, 30681, 31033, 31849, 31851, 31990, 32410, 32408, 32411, 32409, 33248, 33249, 34374, 34375, 34376, 35193, 35194, 35196, 35195, 35327, 35736, 35737, 36517, 36516, 36515, 37998, 37997, 37999, 38001, 38003, 38729, 39026, 39263, 40040, 40046, 40045, 40459, 40461, 40464, 40463, 40466, 40465, 40609, 40693, 40713, 40775, 40824, 40827, 40826, 40825, 22302, 28774, 31855, 34876, 36274, 36518, 37315, 38004, 38008, 38006, 38005, 39520, 40052, 40051, 40049, 40053, 40468, 40467, 40694, 40714, 40868, 28776, 28773, 31991, 34410, 34878, 34877, 34879, 35742, 35996, 36521, 36553, 38731, 39027, 39028, 39116, 39265, 39339, 39524, 39526, 39527, 39716, 40469, 40471, 40776, 25095, 27422, 29223, 34380, 36520, 38018, 38016, 38017, 39529, 39528, 39726, 40473, 29225, 34379, 35743, 38019, 40057, 40631, 30325, 39531, 40058, 40477, 28777, 28778, 40612, 40830, 40777, 40856, 30849, 37561, 35023, 22715, 24658, 31911, 23290, 9556, 9574, 9559, 9568, 9580, 9571, 9562, 9577, 9565, 9554, 9572, 9557, 9566, 9578, 9569, 9560, 9575, 9563, 9555, 9573, 9558, 9567, 9579, 9570, 9561, 9576, 9564, 9553, 9552, 9581, 9582, 9584, 9583, 65517, 132423, 37595, 132575, 147397, 34124, 17077, 29679, 20917, 13897, 149826, 166372, 37700, 137691, 33518, 146632, 30780, 26436, 25311, 149811, 166314, 131744, 158643, 135941, 20395, 140525, 20488, 159017, 162436, 144896, 150193, 140563, 20521, 131966, 24484, 131968, 131911, 28379, 132127, 20605, 20737, 13434, 20750, 39020, 14147, 33814, 149924, 132231, 20832, 144308, 20842, 134143, 139516, 131813, 140592, 132494, 143923, 137603, 23426, 34685, 132531, 146585, 20914, 20920, 40244, 20937, 20943, 20945, 15580, 20947, 150182, 20915, 20962, 21314, 20973, 33741, 26942, 145197, 24443, 21003, 21030, 21052, 21173, 21079, 21140, 21177, 21189, 31765, 34114, 21216, 34317, 158483, 21253, 166622, 21833, 28377, 147328, 133460, 147436, 21299, 21316, 134114, 27851, 136998, 26651, 29653, 24650, 16042, 14540, 136936, 29149, 17570, 21357, 21364, 165547, 21374, 21375, 136598, 136723, 30694, 21395, 166555, 21408, 21419, 21422, 29607, 153458, 16217, 29596, 21441, 21445, 27721, 20041, 22526, 21465, 15019, 134031, 21472, 147435, 142755, 21494, 134263, 21523, 28793, 21803, 26199, 27995, 21613, 158547, 134516, 21853, 21647, 21668, 18342, 136973, 134877, 15796, 134477, 166332, 140952, 21831, 19693, 21551, 29719, 21894, 21929, 22021, 137431, 147514, 17746, 148533, 26291, 135348, 22071, 26317, 144010, 26276, 26285, 22093, 22095, 30961, 22257, 38791, 21502, 22272, 22255, 22253, 166758, 13859, 135759, 22342, 147877, 27758, 28811, 22338, 14001, 158846, 22502, 136214, 22531, 136276, 148323, 22566, 150517, 22620, 22698, 13665, 22752, 22748, 135740, 22779, 23551, 22339, 172368, 148088, 37843, 13729, 22815, 26790, 14019, 28249, 136766, 23076, 21843, 136850, 34053, 22985, 134478, 158849, 159018, 137180, 23001, 137211, 137138, 159142, 28017, 137256, 136917, 23033, 159301, 23211, 23139, 14054, 149929, 23159, 14088, 23190, 29797, 23251, 159649, 140628, 15749, 137489, 14130, 136888, 24195, 21200, 23414, 25992, 23420, 162318, 16388, 18525, 131588, 23509, 24928, 137780, 154060, 132517, 23539, 23453, 19728, 23557, 138052, 23571, 29646, 23572, 138405, 158504, 23625, 18653, 23685, 23785, 23791, 23947, 138745, 138807, 23824, 23832, 23878, 138916, 23738, 24023, 33532, 14381, 149761, 139337, 139635, 33415, 14390, 15298, 24110, 27274, 24181, 24186, 148668, 134355, 21414, 20151, 24272, 21416, 137073, 24073, 24308, 164994, 24313, 24315, 14496, 24316, 26686, 37915, 24333, 131521, 194708, 15070, 18606, 135994, 24378, 157832, 140240, 24408, 140401, 24419, 38845, 159342, 24434, 37696, 166454, 24487, 23990, 15711, 152144, 139114, 159992, 140904, 37334, 131742, 166441, 24625, 26245, 137335, 14691, 15815, 13881, 22416, 141236, 31089, 15936, 24734, 24740, 24755, 149890, 149903, 162387, 29860, 20705, 23200, 24932, 33828, 24898, 194726, 159442, 24961, 20980, 132694, 24967, 23466, 147383, 141407, 25043, 166813, 170333, 25040, 14642, 141696, 141505, 24611, 24924, 25886, 25483, 131352, 25285, 137072, 25301, 142861, 25452, 149983, 14871, 25656, 25592, 136078, 137212, 25744, 28554, 142902, 38932, 147596, 153373, 25825, 25829, 38011, 14950, 25658, 14935, 25933, 28438, 150056, 150051, 25989, 25965, 25951, 143486, 26037, 149824, 19255, 26065, 16600, 137257, 26080, 26083, 24543, 144384, 26136, 143863, 143864, 26180, 143780, 143781, 26187, 134773, 26215, 152038, 26227, 26228, 138813, 143921, 165364, 143816, 152339, 30661, 141559, 39332, 26370, 148380, 150049, 15147, 27130, 145346, 26462, 26471, 26466, 147917, 168173, 26583, 17641, 26658, 28240, 37436, 26625, 144358, 159136, 26717, 144495, 27105, 27147, 166623, 26995, 26819, 144845, 26881, 26880, 15666, 14849, 144956, 15232, 26540, 26977, 166474, 17148, 26934, 27032, 15265, 132041, 33635, 20624, 27129, 144985, 139562, 27205, 145155, 27293, 15347, 26545, 27336, 168348, 15373, 27421, 133411, 24798, 27445, 27508, 141261, 28341, 146139, 132021, 137560, 14144, 21537, 146266, 27617, 147196, 27612, 27703, 140427, 149745, 158545, 27738, 33318, 27769, 146876, 17605, 146877, 147876, 149772, 149760, 146633, 14053, 15595, 134450, 39811, 143865, 140433, 32655, 26679, 159013, 159137, 159211, 28054, 27996, 28284, 28420, 149887, 147589, 159346, 34099, 159604, 20935, 27804, 28189, 33838, 166689, 28207, 146991, 29779, 147330, 31180, 28239, 23185, 143435, 28664, 14093, 28573, 146992, 28410, 136343, 147517, 17749, 37872, 28484, 28508, 15694, 28532, 168304, 15675, 28575, 147780, 28627, 147601, 147797, 147513, 147440, 147380, 147775, 20959, 147798, 147799, 147776, 156125, 28747, 28798, 28839, 28801, 28876, 28885, 28886, 28895, 16644, 15848, 29108, 29078, 148087, 28971, 28997, 23176, 29002, 29038, 23708, 148325, 29007, 37730, 148161, 28972, 148570, 150055, 150050, 29114, 166888, 28861, 29198, 37954, 29205, 22801, 37955, 29220, 37697, 153093, 29230, 29248, 149876, 26813, 29269, 29271, 15957, 143428, 26637, 28477, 29314, 29482, 29483, 149539, 165931, 18669, 165892, 29480, 29486, 29647, 29610, 134202, 158254, 29641, 29769, 147938, 136935, 150052, 26147, 14021, 149943, 149901, 150011, 29687, 29717, 26883, 150054, 29753, 132547, 16087, 29788, 141485, 29792, 167602, 29767, 29668, 29814, 33721, 29804, 14128, 29812, 37873, 27180, 29826, 18771, 150156, 147807, 150137, 166799, 23366, 166915, 137374, 29896, 137608, 29966, 29929, 29982, 167641, 137803, 23511, 167596, 37765, 30029, 30026, 30055, 30062, 151426, 16132, 150803, 30094, 29789, 30110, 30132, 30210, 30252, 30289, 30287, 30319, 30326, 156661, 30352, 33263, 14328, 157969, 157966, 30369, 30373, 30391, 30412, 159647, 33890, 151709, 151933, 138780, 30494, 30502, 30528, 25775, 152096, 30552, 144044, 30639, 166244, 166248, 136897, 30708, 30729, 136054, 150034, 26826, 30895, 30919, 30931, 38565, 31022, 153056, 30935, 31028, 30897, 161292, 36792, 34948, 166699, 155779, 140828, 31110, 35072, 26882, 31104, 153687, 31133, 162617, 31036, 31145, 28202, 160038, 16040, 31174, 168205, 31188]); + encode0 = $toNativeArray($kindUint16, [40049, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37749, 0, 0, 0, 0, 0, 0, 0, 37750, 0, 0, 0, 0, 0, 0, 0, 38216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36550, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35781, 35834, 0, 0, 51324, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39604, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34894, 34891, 51322, 34888, 0, 0, 0, 34887, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34885, 0, 34899, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64685, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36085, 0, 0, 0, 0, 35501, 0, 37490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40913, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64459, 0, 0, 0, 0, 0, 0, 0, 37501, 0, 0, 0, 0, 0, 0, 0, 39076, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36089, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37067, 37499, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38104, 0, 0, 0, 0, 64607, 0, 64084, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39605, 0, 0, 0, 0, 0, 0, 0, 38618, 37497, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37493, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36347, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35401, 0, 0, 0, 37599, 39804, 64099, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64096, 37485, 64098, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39606, 0, 0, 0, 0, 0, 0, 38763, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64874, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64852, 0, 37491, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38872, 0, 0, 0, 0, 0, 0, 40891, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37698, 37494, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37484, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64110, 0, 0, 0, 0, 0, 0, 40672, 0, 0, 37568, 37567, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37566, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39610, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35507, 0, 38773, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64064, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64464, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65133, 0, 0, 0, 0, 0, 0, 39859, 0, 0, 0, 0, 0, 35276, 0, 0, 0, 0, 39614, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64066, 37564, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37980, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39861, 0, 0, 0, 39615, 0, 0, 0, 39079, 38820, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64635, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39616, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37571, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35498, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39888, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37574, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39078, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64867, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40643, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40038, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36947, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35938, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34728, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38849, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39620, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39621, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36591, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36160, 0, 0, 0, 0, 0, 0, 0, 0, 37474, 35575, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39622, 0, 0, 0, 0, 0, 0, 37601, 0, 0, 0, 0, 39625, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64198, 0, 0, 0, 0, 0, 0, 0, 0, 38821, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39627, 0, 0, 0, 64114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35422, 0, 38112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37580, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35557, 0, 0, 0, 0, 0, 65116, 39628, 0, 0, 0, 0, 0, 40441, 35395, 35494, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39629, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39630, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64238, 39884, 0, 0, 0, 39631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39633, 0, 0, 0, 0, 0, 0, 0, 0, 40442, 0, 0, 0, 0, 0, 40316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39635, 0, 0, 38822, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39263, 0, 0, 0, 64502, 40901, 35417, 35691, 0, 0, 0, 0, 0, 0, 39636, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39637, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38818, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35396, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40778, 0, 0, 0, 0, 0, 0, 0, 0, 37025, 64932, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35428, 35570, 35576, 40408, 0, 0, 38102, 64254, 64423, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39638, 0, 40781, 0, 0, 64246, 0, 0, 0, 0, 0, 0, 0, 35415, 0, 35651, 35652, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35510, 0, 0, 0, 0, 0, 35520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40532, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39639, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39640, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39644, 0, 0, 0, 0, 35530, 40616, 0, 0, 37475, 39645, 35685, 35695, 35710, 0, 0, 0, 0, 36675, 0, 0, 0, 0, 0, 0, 37584, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35572, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40382, 0, 0, 0, 0, 0, 39649, 0, 64734, 40445, 35686, 35696, 35701, 35556, 35748, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35565, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35421, 0, 35656, 0, 0, 0, 0, 40429, 0, 0, 0, 0, 40512, 0, 0, 0, 0, 0, 0, 0, 35567, 35574, 40566, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40675, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39646, 36350, 0, 0, 0, 0, 64252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40113, 40567, 35684, 35687, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38731, 0, 0, 0, 0, 0, 0, 0, 0, 38483, 0, 0, 0, 0, 0, 0, 39648, 35658, 0, 35569, 35543, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35509, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35423, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35566, 0, 0, 39647, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35582, 0, 0, 0, 0, 0, 0, 35416, 35747, 35751, 0, 0, 0, 0, 0, 39651, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37473, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40407, 40573, 40615, 40619, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36930, 0, 0, 0, 0, 0, 0, 0, 0, 35705, 35706, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39654, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39653, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35454, 0, 0, 0, 0, 0, 40516, 39655, 35452, 35697, 0, 0, 39657, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39658, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39659, 0, 0, 0, 0, 0, 0, 35517, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64334, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39661, 35577, 40547, 0, 0, 0, 0, 0, 35657, 35534, 35694, 0, 0, 0, 0, 0, 35560, 0, 0, 0, 39662, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37582, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35418, 35707, 35708, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39663, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39664, 0, 35578, 0, 0, 0, 0, 0, 0, 0, 35137, 0, 0, 35698, 0, 0, 0, 0, 0, 0, 35571, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35752, 0, 0, 0, 0, 0, 0, 40622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40562, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37050, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37374, 40694, 0, 0, 0, 0, 0, 0, 38893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41198, 0, 0, 0, 38524, 37701, 39022, 64086, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39669, 0, 0, 0, 64587, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39668, 65246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64695, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38897, 0, 0, 0, 38855, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40139, 37440, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37373, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38734, 0, 0, 64360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38764, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36034, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38888, 0, 64362, 35700, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64968, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37441, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38561, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36595, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39671, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36774, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40135, 0, 0, 0, 0, 0, 0, 0, 0, 64215, 0, 0, 0, 0, 0, 39672, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36549, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64450, 0, 39617, 0, 0, 0, 0, 0, 37370, 65243, 38827, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37191, 0, 64433, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36842, 0, 0, 0, 0, 0, 0, 38098, 65121, 64206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37613, 37363, 37830, 0, 37722, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64251, 0, 0, 37615, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38983, 37734, 38997, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38630, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40771, 40874, 38106, 37614, 64687, 64507, 0, 36601, 37366, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37732, 0, 0, 0, 0, 38133, 40118, 64429, 38990, 36676, 38653, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39673, 0, 0, 0, 39674, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38761, 38356, 38987, 64426, 0, 0, 39036, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37354, 0, 0, 0, 0, 0, 40367, 40389, 0, 37361, 36529, 38825, 64428, 64696, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40121, 0, 0, 0, 0, 0, 0, 0, 64432, 64722, 37835, 0, 0, 39677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37364, 35756, 41045, 0, 0, 0, 0, 38260, 0, 0, 0, 0, 38334, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38829, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36585, 0, 0, 37624, 38846, 37228, 38058, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64611, 0, 0, 0, 40390, 0, 0, 0, 0, 0, 0, 0, 38837, 37560, 37359, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65190, 38752, 37720, 38262, 36780, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37356, 38836, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37367, 0, 0, 0, 0, 38730, 64329, 38264, 37820, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37334, 0, 0, 0, 0, 0, 0, 0, 0, 37717, 37718, 38993, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36856, 64448, 37874, 0, 0, 37072, 0, 0, 0, 0, 0, 0, 40004, 0, 0, 0, 0, 0, 37461, 0, 0, 0, 0, 37731, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37285, 0, 0, 0, 0, 0, 0, 0, 0, 41197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64875, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39678, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37713, 0, 0, 0, 35927, 0, 0, 64120, 0, 0, 0, 0, 65192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37712, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64076, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37623, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39744, 0, 0, 0, 0, 0, 0, 64462, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39745, 0, 0, 0, 0, 0, 65197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34657, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64469, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35778, 39548, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39746, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39747, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40569, 0, 0, 64473, 0, 0, 0, 0, 0, 0, 39748, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34683, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34670, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39923, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35961, 0, 0, 0, 37726, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35275, 0, 0, 0, 0, 0, 0, 40787, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37847, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64481, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65232, 0, 0, 0, 0, 0, 0, 36081, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64482, 0, 0, 0, 0, 0, 64739, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36980, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64486, 0, 0, 0, 39863, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39749, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39751, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40784, 0, 0, 0, 0, 0, 39752, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64603, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39081, 0, 0, 40189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34892, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39755, 0, 0, 0, 64492, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39848, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35541, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64857, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64493, 0, 0, 0, 0, 0, 0, 40105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35496, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36162, 0, 39875, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35553, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39758, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38352, 0, 0, 0, 36959, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38894, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64590, 0, 0, 0, 0, 0, 0, 39759, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39760, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40646, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64592, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64883, 0, 0, 0, 0, 0, 64935, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40354, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34769, 0, 0, 0, 0, 34771, 0, 0, 0, 0, 0, 0, 0, 34772, 0, 0, 34773, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64088, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64094, 0, 0, 0, 0, 0, 0, 0, 41049, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64446, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40098, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37744, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37745, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37751, 65263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37741, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64605, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37048, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35580, 0, 64321, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40555, 38115, 36578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35965, 0, 36567, 0, 0, 0, 0, 0, 0, 40013, 0, 0, 0, 38563, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39761, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35523, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38570, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36066, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64616, 35693, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64871, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35561, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64673, 37740, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39762, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64745, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35562, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39763, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39765, 0, 0, 0, 38571, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64679, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39766, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35516, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35531, 0, 0, 0, 0, 0, 39767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35277, 0, 39769, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39771, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37797, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39773, 0, 0, 0, 40527, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37795, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35451, 0, 0, 0, 35650, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38736, 36787, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35408, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39776, 0, 0, 0, 0, 35653, 0, 0, 0, 35654, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40446, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39778, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37755, 0, 0, 0, 0, 0, 37809, 0, 0, 0, 0, 0, 0, 0, 35424, 0, 0, 0, 0, 0, 0, 0, 0, 35544, 0, 0, 0, 0, 39779, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35433, 0, 0, 0, 35399, 0, 0, 35532, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37756, 39781, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39782, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35442, 0, 0, 0, 0, 0, 0, 0, 35450, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37807, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35504, 0, 0, 0, 0, 0, 0, 0, 39784, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40611, 0, 0, 64236, 35703, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39783, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35673, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64689, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64699, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39785, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37800, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35552, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40529, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36703, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39786, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39787, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38892, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39788, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65102, 0, 0, 0, 0, 0, 0, 64962, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39789, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37223, 64716, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37814, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37092, 0, 0, 0, 0, 37093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40690, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37834, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35772, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36678, 0, 0, 0, 0, 37839, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64731, 64732, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37824, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64742, 38631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34727, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64728, 64729, 64934, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37838, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38385, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40169, 0, 64740, 38063, 64119, 37836, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36065, 0, 0, 0, 0, 0, 0, 0, 34729, 0, 0, 0, 36954, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35924, 0, 0, 0, 0, 0, 0, 0, 37823, 64337, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37817, 65239, 37815, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37849, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37819, 37850, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39075, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37073, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39790, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39915, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39791, 0, 0, 0, 0, 0, 0, 0, 64764, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35648, 41083, 0, 0, 0, 36001, 38903, 0, 0, 0, 37858, 0, 64726, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64832, 0, 0, 37727, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38898, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40054, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36075, 0, 0, 0, 0, 0, 0, 0, 0, 36679, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39796, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37556, 0, 0, 0, 37357, 0, 0, 38610, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34776, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64838, 36687, 38217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39797, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34641, 0, 0, 39801, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64843, 0, 0, 0, 38611, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64856, 0, 0, 0, 0, 0, 37983, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34759, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34684, 0, 0, 0, 0, 0, 0, 0, 37443, 0, 0, 0, 0, 0, 0, 38906, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40409, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38900, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37453, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64859, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39802, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40661, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64174, 0, 40137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37464, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36552, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38068, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37857, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37855, 0, 0, 0, 0, 0, 64752, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37868, 38902, 38607, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37854, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39842, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64873, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37714, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39074, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36071, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64878, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36004, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64124, 37882, 36988, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36711, 0, 40375, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41193, 64078, 64929, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40564, 40895, 40651, 39865, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40404, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38841, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36593, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38267, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40658, 38739, 38564, 36798, 38105, 36952, 64889, 64891, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36570, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36602, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34658, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39845, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40665, 38868, 37051, 64956, 64966, 37448, 0, 0, 0, 0, 0, 0, 0, 37557, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40385, 37561, 37542, 36683, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39846, 0, 0, 0, 0, 0, 37558, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36416, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40664, 37982, 39007, 38094, 37450, 64880, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37991, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36332, 0, 0, 0, 0, 0, 0, 0, 0, 39896, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34659, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37960, 64193, 40183, 64958, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36826, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64985, 0, 0, 64638, 0, 0, 0, 0, 0, 0, 0, 0, 37881, 0, 0, 0, 0, 64067, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64235, 64195, 38867, 38393, 40008, 64984, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64983, 64330, 39855, 37963, 64969, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64946, 0, 0, 0, 0, 0, 37466, 64701, 37593, 0, 0, 0, 64981, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37597, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37465, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36080, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38586, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37467, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39851, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64986, 64990, 0, 0, 0, 64979, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35910, 0, 0, 0, 0, 0, 0, 64982, 64988, 64989, 0, 0, 0, 0, 37118, 0, 0, 65185, 0, 34725, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35757, 0, 0, 40152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40557, 64892, 64353, 0, 0, 0, 0, 0, 0, 38648, 0, 0, 0, 0, 0, 0, 0, 0, 38640, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64756, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38994, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38479, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39021, 0, 0, 39012, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37971, 65004, 64376, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38330, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39005, 0, 37625, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39002, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34640, 0, 65014, 0, 0, 0, 0, 0, 0, 0, 37840, 39010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39853, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38735, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39854, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37970, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39856, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37330, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38890, 64363, 37297, 65011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37579, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39857, 0, 0, 0, 0, 0, 64748, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39019, 0, 0, 0, 38737, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39025, 38383, 0, 0, 0, 0, 0, 0, 0, 40691, 0, 0, 0, 0, 0, 37352, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39866, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64332, 37482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65016, 39009, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37869, 38724, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37345, 0, 0, 64501, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39017, 0, 0, 0, 0, 35426, 0, 0, 39867, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36008, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40021, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36471, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35506, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40636, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37862, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37794, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39869, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38067, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37757, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40550, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37977, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39871, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37976, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40613, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39879, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36468, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35798, 0, 0, 0, 0, 0, 0, 38070, 64884, 39104, 38053, 0, 0, 0, 0, 0, 0, 0, 39880, 0, 0, 0, 38381, 64894, 64491, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38767, 37985, 0, 40897, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38359, 0, 0, 0, 64082, 40024, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40808, 39911, 64718, 38632, 64073, 38817, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38221, 40696, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65097, 37326, 38769, 0, 0, 0, 0, 36047, 0, 0, 0, 64945, 0, 0, 64622, 0, 0, 0, 0, 0, 40178, 37816, 36931, 38745, 38103, 65126, 38013, 64623, 0, 0, 0, 0, 37446, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64109, 0, 0, 36599, 0, 64439, 0, 38012, 37581, 38834, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65125, 38526, 38744, 39799, 37327, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38052, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35755, 0, 0, 0, 38613, 64691, 0, 0, 0, 37806, 0, 38765, 0, 0, 0, 0, 0, 0, 37958, 38391, 0, 0, 0, 0, 0, 0, 0, 0, 40006, 38235, 37329, 38132, 0, 65127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37541, 0, 0, 0, 65247, 36011, 0, 39881, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64749, 65018, 64712, 65122, 37372, 65131, 65017, 64711, 37198, 40120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38759, 0, 0, 0, 38382, 0, 0, 39858, 0, 0, 0, 0, 37984, 0, 0, 0, 38050, 39029, 38828, 37331, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39035, 0, 0, 0, 0, 0, 0, 0, 36587, 38762, 38494, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38891, 0, 0, 0, 0, 0, 40953, 38392, 65186, 36838, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65150, 0, 0, 0, 0, 0, 0, 40356, 38760, 36588, 38077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37979, 40182, 64167, 39897, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64093, 38486, 38754, 0, 0, 0, 0, 0, 0, 38074, 41039, 37592, 0, 0, 0, 39883, 0, 0, 0, 0, 0, 0, 38075, 0, 0, 40287, 0, 0, 0, 0, 0, 0, 37071, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37989, 0, 0, 40780, 0, 0, 0, 0, 0, 0, 37080, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40638, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64365, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38346, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40386, 38904, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36860, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38003, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38004, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35403, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35413, 35689, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35548, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35702, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39886, 0, 35432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65205, 0, 0, 0, 39887, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38651, 0, 0, 39931, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40654, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36581, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40571, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39890, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35493, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35397, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40444, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65231, 35749, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35914, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35564, 0, 0, 64736, 38061, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65237, 38060, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64602, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39894, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35439, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35753, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36447, 0, 0, 40395, 0, 64743, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39895, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37832, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37360, 36832, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39899, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37101, 0, 39900, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41196, 0, 0, 0, 39162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39904, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37831, 37449, 38625, 39906, 0, 0, 0, 39908, 0, 0, 36833, 39909, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38080, 0, 0, 37827, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37829, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36985, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38779, 0, 0, 0, 0, 0, 36990, 0, 0, 0, 0, 65254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40376, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37488, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36016, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38088, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39097, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64702, 0, 0, 0, 0, 0, 0, 0, 37207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35762, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39910, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38467, 36420, 40015, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65268, 0, 0, 0, 0, 0, 39912, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37852, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38511, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34721, 0, 0, 36426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39917, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40377, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36430, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34656, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40642, 0, 0, 0, 0, 0, 0, 38117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39920, 38116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35771, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39921, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38128, 36452, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36705, 0, 0, 0, 39780, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36443, 0, 0, 0, 0, 39922, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40894, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40393, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36460, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36723, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36015, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36725, 36465, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36448, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36458, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35916, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38226, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34752, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35540, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40379, 38211, 37630, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41194, 40402, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37368, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37986, 39844, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34685, 0, 0, 0, 0, 0, 0, 0, 36525, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40621, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38608, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65262, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35508, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38743, 35447, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39927, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36533, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41069, 36534, 38742, 38208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41203, 38078, 0, 0, 0, 39930, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64991, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40380, 0, 0, 0, 0, 0, 0, 0, 0, 38142, 0, 0, 0, 0, 0, 0, 0, 0, 35803, 41214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36544, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40775, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35806, 41211, 0, 0, 0, 0, 36547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38473, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65218, 0, 0, 38220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39933, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37068, 40032, 38219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39934, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40048, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40003, 0, 0, 0, 40007, 36556, 0, 0, 0, 36436, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36580, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40009, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35678, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35809, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36569, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40372, 0, 37471, 0, 0, 0, 40012, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35489, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36571, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40022, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38740, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40030, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40660, 38248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35558, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40033, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40031, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64589, 0, 40539, 0, 0, 0, 0, 0, 0, 0, 0, 40553, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40035, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65223, 0, 0, 65222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40039, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40041, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35810, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35412, 0, 0, 0, 0, 0, 0, 0, 40044, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40046, 65117, 0, 0, 0, 0, 0, 40051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38253, 36592, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36685, 0, 0, 0, 0, 36598, 0, 0, 0, 0, 0, 0, 0, 0, 64188, 0, 36053, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34654, 0, 0, 0, 0, 64474, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35660, 64885, 39901, 64245, 0, 0, 0, 0, 0, 0, 0, 40052, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36714, 36686, 0, 0, 0, 0, 0, 40056, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64085, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38884, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37468, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38650, 36086, 0, 0, 0, 0, 36173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64358, 36453, 38985, 64424, 38978, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40058, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38907, 37066, 0, 0, 0, 0, 40027, 0, 0, 38733, 0, 0, 36563, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40779, 40885, 37842, 64938, 38976, 37190, 39015, 64090, 64425, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38977, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64765, 64939, 37309, 36684, 38601, 36693, 64430, 38255, 0, 0, 0, 0, 0, 0, 40061, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37999, 64940, 0, 0, 0, 0, 38603, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38606, 0, 0, 0, 0, 41046, 0, 40161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38596, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36702, 36716, 36515, 64435, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64595, 0, 0, 0, 64947, 0, 0, 0, 0, 36715, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38602, 0, 0, 0, 34765, 0, 0, 34643, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36729, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40559, 41157, 64632, 36418, 36698, 37058, 36517, 36961, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37455, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37747, 64949, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65228, 0, 64445, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36054, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38979, 38597, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35260, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40099, 0, 0, 0, 0, 0, 0, 37451, 38986, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36772, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41201, 40699, 40146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36775, 0, 0, 0, 0, 34644, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64604, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38981, 0, 0, 36934, 36049, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65274, 38240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40776, 37447, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38257, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34629, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40102, 0, 0, 0, 0, 40103, 0, 0, 0, 0, 0, 40106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40659, 0, 0, 0, 40560, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34642, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36782, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38269, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38838, 0, 41149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35551, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40618, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36797, 0, 0, 0, 36799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37737, 39847, 0, 0, 0, 0, 0, 0, 0, 0, 51364, 0, 0, 0, 0, 65258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39905, 0, 0, 0, 0, 0, 0, 35649, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40374, 41195, 39843, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35745, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36808, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35148, 39008, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35672, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38315, 38314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37846, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40364, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35814, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35441, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36817, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39381, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35491, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40149, 0, 0, 0, 64456, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64624, 0, 0, 0, 0, 0, 36823, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39795, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36818, 36964, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38504, 0, 0, 0, 0, 40150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36828, 65270, 36825, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34762, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34668, 0, 0, 0, 0, 38899, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39928, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34650, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34632, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34634, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40556, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36850, 36846, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40558, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35392, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36847, 0, 0, 0, 0, 0, 0, 0, 0, 36852, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36853, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38338, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39018, 0, 38863, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40572, 0, 0, 0, 0, 0, 0, 0, 0, 36929, 0, 0, 0, 0, 0, 0, 40155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37953, 0, 0, 0, 0, 40166, 40368, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40186, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35682, 35406, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40138, 35430, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35411, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40257, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36933, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35699, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38858, 0, 40258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35425, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35758, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35538, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35746, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40434, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40260, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36554, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36942, 0, 0, 0, 0, 0, 0, 0, 36531, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40949, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36943, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40263, 0, 0, 0, 35274, 0, 0, 0, 0, 0, 0, 40117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36958, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36963, 36951, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36966, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39872, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64741, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36967, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36769, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36770, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40264, 64211, 0, 0, 0, 0, 0, 0, 36175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36957, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37049, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36971, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35932, 0, 0, 0, 36969, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34726, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36979, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39919, 40176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40267, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65241, 0, 0, 0, 65242, 0, 0, 0, 37344, 36163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38470, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37728, 0, 64083, 40147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40270, 0, 0, 0, 64320, 0, 0, 0, 36322, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37954, 0, 36950, 0, 0, 39013, 0, 35948, 64074, 0, 0, 40272, 40274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38319, 38746, 37705, 38727, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41204, 0, 0, 0, 0, 0, 0, 38776, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36815, 0, 0, 0, 64608, 0, 0, 0, 0, 0, 0, 0, 0, 35918, 0, 0, 0, 64598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37340, 38497, 37612, 37725, 36574, 38654, 64847, 38366, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39088, 41024, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38845, 38781, 38901, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39852, 64218, 37570, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38833, 0, 0, 0, 0, 0, 36987, 0, 0, 0, 0, 37886, 38011, 0, 38775, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64190, 64835, 37062, 37028, 37032, 38057, 0, 37033, 0, 0, 0, 0, 35941, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38368, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36989, 0, 0, 0, 0, 0, 0, 37477, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64954, 37828, 0, 0, 0, 0, 0, 0, 0, 0, 65261, 40363, 41187, 0, 38472, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40275, 0, 0, 0, 0, 0, 35497, 0, 39877, 0, 38493, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38751, 38495, 38510, 64349, 0, 0, 0, 0, 0, 40369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40370, 0, 0, 38318, 64675, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34665, 0, 0, 0, 0, 0, 0, 0, 0, 41122, 0, 0, 38485, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40276, 0, 0, 37697, 0, 38317, 37333, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38778, 65020, 36423, 37885, 37029, 37036, 0, 0, 0, 0, 0, 0, 0, 0, 38316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37038, 0, 0, 0, 65189, 0, 0, 0, 0, 0, 40278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38883, 38370, 0, 0, 0, 0, 0, 37990, 0, 0, 38471, 0, 0, 0, 0, 37304, 0, 0, 0, 0, 40172, 0, 0, 0, 0, 0, 0, 0, 0, 37037, 0, 38371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35663, 0, 0, 35555, 0, 0, 0, 0, 35661, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38378, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35662, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36033, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35821, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37337, 0, 0, 41124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38389, 38388, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40883, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65199, 0, 0, 0, 0, 0, 65138, 37498, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38387, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37746, 0, 0, 37317, 0, 0, 0, 0, 0, 0, 0, 38466, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37069, 38398, 37209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40037, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38860, 37070, 0, 0, 0, 0, 0, 0, 40281, 64757, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65277, 0, 0, 40283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40284, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37758, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39084, 0, 0, 40286, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64976, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64864, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37085, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37088, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37107, 0, 0, 39089, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37821, 0, 0, 0, 0, 0, 0, 0, 0, 38327, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40774, 0, 0, 0, 0, 0, 0, 0, 0, 36427, 38488, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35404, 0, 40291, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40293, 0, 0, 0, 0, 0, 0, 0, 40294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40292, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35436, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35545, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40295, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35440, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35827, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37799, 0, 0, 0, 0, 0, 0, 38516, 0, 0, 0, 0, 0, 0, 0, 0, 36093, 0, 0, 0, 0, 0, 0, 0, 0, 41199, 0, 37201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38593, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34679, 0, 35940, 38518, 40297, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64676, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40298, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40299, 0, 0, 0, 0, 0, 39873, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35429, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37213, 0, 0, 0, 0, 0, 0, 0, 0, 40301, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35906, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37226, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40614, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40397, 0, 0, 40303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40697, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38580, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40648, 0, 0, 0, 34673, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35669, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40305, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40652, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40656, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36956, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36562, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38591, 0, 0, 0, 0, 0, 38592, 0, 0, 0, 0, 36785, 0, 0, 0, 0, 0, 38583, 0, 0, 0, 0, 0, 0, 0, 0, 35925, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35262, 37244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64375, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37237, 37283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37238, 0, 0, 0, 0, 0, 0, 0, 0, 38590, 36169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38582, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37284, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37286, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40309, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36946, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41029, 0, 37289, 0, 39082, 0, 0, 0, 35935, 0, 0, 35754, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40311, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34646, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40684, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37802, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38008, 0, 0, 0, 0, 40314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35529, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35659, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40940, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35554, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40565]); + encode1 = $toNativeArray($kindUint16, [51414, 0, 0, 0, 51415, 0, 51416, 51417, 51418, 0, 51419, 0, 51420, 51421, 0, 0, 0, 0, 0, 0, 0, 51422, 0, 0, 0, 0, 0, 0, 51423, 51424, 0, 0, 0, 0, 0, 0, 0, 51425, 0, 51426, 0, 0, 51427, 0, 51428, 0, 51429, 0, 0, 0, 0, 0, 0, 0, 51430, 0, 0, 0, 0, 0, 51431, 0, 51432, 0, 0, 0, 0, 0, 0, 0, 51433, 0, 0, 0, 51434, 0, 51435, 51436, 0, 51437, 0, 0, 0, 0, 0, 0, 51438, 51439, 0, 0, 0, 0, 0, 0, 51440, 0, 0, 0, 0, 51441, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41280, 41282, 41283, 50910, 0, 50912, 50913, 50914, 41329, 41330, 41325, 41326, 41333, 41334, 41337, 41338, 41321, 41322, 41541, 0, 41317, 41318, 0, 0, 0, 0, 0, 0, 0, 41385, 41386, 0, 0, 41667, 41668, 41669, 41670, 41671, 41672, 41673, 41674, 41675, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50919, 50920, 50921, 50922, 50923, 50924, 50925, 50926, 50927, 50928, 50929, 50930, 50931, 50932, 50933, 50934, 50935, 50936, 50937, 50938, 50939, 50940, 50941, 50942, 51008, 51009, 51010, 51011, 51012, 51013, 51014, 51015, 51016, 51017, 51018, 51019, 51020, 51021, 51022, 51023, 51024, 51025, 51026, 51027, 51028, 51029, 51030, 51031, 51032, 51033, 51034, 51035, 51036, 51037, 51038, 51039, 51040, 51041, 51042, 51043, 51044, 51045, 51046, 51047, 51048, 51049, 51050, 51051, 51052, 51053, 51054, 51055, 51056, 51057, 51058, 51059, 51060, 51061, 51062, 51063, 51064, 51065, 51066, 0, 0, 0, 0, 0, 0, 0, 51412, 51413, 50908, 50909, 0, 0, 51067, 51068, 51069, 51070, 51105, 51106, 51107, 51108, 51109, 51110, 51111, 51112, 51113, 51114, 51115, 51116, 51117, 51118, 51119, 51120, 51121, 51122, 51123, 51124, 51125, 51126, 51127, 51128, 51129, 51130, 51131, 51132, 51133, 51134, 51135, 51136, 51137, 51138, 51139, 51140, 51141, 51142, 51143, 51144, 51145, 51146, 51147, 51148, 51149, 51150, 51151, 51152, 51153, 51154, 51155, 51156, 51157, 51158, 51159, 51160, 51161, 51162, 51163, 51164, 51165, 51166, 51167, 51168, 51169, 51170, 51171, 51172, 51173, 51174, 51175, 51176, 51177, 51178, 51179, 51180, 51181, 51182, 51183, 51184, 51185, 51186, 0, 0, 0, 0, 0, 50915, 50906, 50907, 0, 0, 0, 0, 0, 0, 41844, 41845, 41846, 41847, 41848, 41849, 41850, 41851, 41852, 41853, 41854, 41889, 41890, 41891, 41892, 41893, 41894, 41895, 41896, 41897, 41898, 41899, 41900, 41901, 41902, 41903, 41904, 41905, 41906, 41907, 41908, 41909, 41910, 41911, 41912, 41913, 41914, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34880, 34881, 34882, 34883, 34884, 34886, 34889, 34890, 34893, 34895, 34896, 34897, 34898, 34900, 34901, 51321, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51409, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41408, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41557, 41558, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41552, 41553, 41554, 0, 0, 41556, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41559, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41555, 0, 0, 41451, 41450, 0, 0, 41551, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37495, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38623, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36084, 0, 35285, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37837, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39903, 0, 0, 0, 0, 0, 0, 64104, 0, 0, 35290, 36697, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35291, 0, 0, 36701, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35292, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38647, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35546, 0, 0, 0, 0, 35804, 0, 0, 0, 0, 0, 0, 38875, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40531, 0, 0, 0, 0, 40362, 0, 34750, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39914, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35438, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35784, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35304, 0, 35306, 0, 0, 0, 0, 0, 35915, 0, 0, 0, 0, 0, 0, 0, 64368, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35309, 0, 0, 38109, 0, 35310, 0, 0, 0, 0, 40628, 35539, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37595, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38107, 35321, 0, 0, 0, 0, 0, 0, 0, 0, 64378, 0, 0, 0, 35323, 0, 0, 0, 0, 0, 0, 0, 40700, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35324, 0, 35263, 0, 0, 0, 35326, 0, 35302, 0, 0, 40262, 0, 0, 0, 40430, 0, 0, 0, 41086, 0, 0, 0, 41064, 0, 0, 0, 0, 39145, 0, 35688, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36349, 35774, 40921, 0, 0, 0, 0, 0, 0, 0, 35563, 0, 0, 40919, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35690, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40028, 0, 35761, 0, 0, 0, 0, 0, 0, 0, 0, 64350, 0, 34672, 0, 0, 0, 0, 0, 0, 0, 40435, 0, 0, 0, 0, 0, 0, 0, 41168, 0, 0, 0, 64614, 0, 0, 0, 0, 37609, 0, 0, 0, 0, 0, 0, 0, 0, 39660, 36779, 64072, 0, 0, 0, 0, 36421, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40047, 0, 36188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40670, 0, 0, 0, 0, 0, 0, 35311, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38633, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40635, 0, 0, 0, 0, 38110, 0, 40632, 0, 0, 0, 38842, 64357, 0, 0, 0, 38358, 0, 0, 0, 40123, 0, 0, 38874, 0, 0, 0, 0, 36677, 0, 64381, 37208, 65124, 0, 38998, 39757, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37723, 38343, 0, 38887, 0, 0, 0, 0, 0, 0, 37721, 0, 0, 0, 37365, 38840, 0, 0, 64930, 64438, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37626, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37719, 0, 35750, 0, 0, 0, 0, 64441, 0, 38832, 0, 0, 64964, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40097, 0, 0, 0, 0, 0, 37362, 37369, 0, 36849, 0, 0, 0, 0, 0, 0, 38725, 38995, 0, 0, 65144, 0, 64449, 37457, 0, 0, 0, 0, 0, 0, 40365, 0, 0, 0, 0, 0, 64876, 0, 0, 64107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39874, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35680, 0, 0, 0, 0, 0, 0, 0, 0, 37707, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39613, 0, 0, 0, 0, 37303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38324, 0, 0, 0, 0, 0, 65221, 0, 0, 40688, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37481, 0, 0, 0, 0, 0, 0, 36199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64490, 0, 0, 0, 0, 0, 0, 0, 0, 64495, 0, 36200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37867, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37222, 0, 0, 0, 0, 0, 0, 0, 0, 64205, 0, 0, 0, 0, 37853, 0, 0, 36178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35788, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38568, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64678, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64612, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36083, 0, 0, 0, 0, 0, 0, 0, 36960, 0, 0, 0, 0, 0, 0, 0, 0, 36212, 38851, 0, 0, 0, 0, 0, 0, 0, 35536, 0, 0, 0, 0, 0, 0, 37492, 0, 39870, 0, 0, 0, 0, 0, 40136, 0, 0, 40122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40633, 0, 0, 0, 0, 0, 38234, 0, 0, 37300, 0, 0, 0, 0, 0, 0, 35400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36221, 0, 0, 35453, 0, 0, 35522, 0, 0, 64842, 0, 36257, 0, 0, 35537, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64692, 35655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37796, 40666, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35409, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36262, 0, 0, 0, 0, 0, 0, 40645, 0, 0, 0, 0, 64708, 0, 0, 0, 0, 41080, 0, 38069, 0, 0, 0, 0, 0, 0, 0, 64706, 35435, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36267, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36269, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64585, 0, 37825, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36975, 0, 36272, 0, 0, 34722, 0, 0, 0, 0, 0, 38014, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38009, 0, 0, 0, 0, 0, 0, 0, 0, 36274, 0, 0, 0, 0, 0, 0, 0, 0, 64750, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39291, 0, 0, 0, 0, 0, 0, 0, 0, 36276, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36279, 0, 0, 0, 0, 0, 0, 0, 37299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36283, 36282, 0, 0, 0, 0, 0, 0, 0, 0, 36284, 36932, 0, 0, 0, 64844, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34635, 37860, 0, 0, 37856, 0, 0, 0, 0, 0, 0, 0, 64851, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36291, 0, 39864, 0, 0, 0, 64496, 0, 37865, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37878, 0, 0, 0, 0, 0, 36293, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36298, 0, 0, 0, 0, 0, 36300, 64861, 37813, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64865, 0, 0, 0, 40184, 0, 0, 0, 37458, 0, 0, 41192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35926, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36310, 0, 38848, 0, 0, 0, 41182, 0, 0, 0, 0, 38866, 0, 0, 0, 0, 0, 64165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64931, 0, 0, 0, 36315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36074, 36527, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37301, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64841, 0, 0, 0, 0, 0, 0, 0, 0, 64977, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36331, 0, 0, 0, 0, 0, 38854, 0, 64974, 0, 0, 37116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64601, 0, 0, 38614, 0, 0, 0, 0, 0, 0, 38853, 36335, 0, 0, 0, 0, 38871, 0, 0, 0, 0, 0, 36336, 0, 0, 0, 0, 0, 0, 0, 38566, 0, 0, 0, 0, 0, 0, 0, 64447, 0, 0, 36063, 0, 36339, 0, 0, 0, 0, 37961, 0, 36341, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39026, 0, 0, 0, 0, 0, 0, 0, 36459, 0, 0, 0, 0, 0, 0, 64253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36688, 0, 0, 0, 0, 0, 0, 40396, 64613, 0, 35908, 0, 0, 39278, 38049, 0, 0, 0, 0, 0, 36707, 0, 0, 0, 0, 0, 0, 0, 41178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37459, 65001, 0, 0, 40373, 0, 0, 0, 0, 0, 0, 0, 39033, 34666, 0, 0, 40285, 0, 0, 0, 0, 36195, 38505, 0, 0, 0, 0, 0, 0, 0, 0, 40816, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64618, 0, 0, 35527, 0, 0, 0, 0, 35287, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40669, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65275, 39100, 64204, 0, 0, 38320, 0, 0, 0, 37988, 0, 0, 0, 0, 0, 0, 37743, 0, 0, 0, 0, 0, 0, 38073, 0, 0, 38380, 0, 0, 0, 0, 37358, 0, 0, 39107, 0, 38390, 0, 0, 0, 36861, 39109, 0, 0, 0, 0, 38758, 65134, 0, 0, 38877, 36010, 0, 0, 37586, 0, 0, 38753, 39115, 0, 0, 0, 0, 38384, 0, 38749, 0, 37347, 34686, 0, 0, 0, 39116, 0, 0, 37993, 39117, 0, 0, 0, 0, 0, 39118, 0, 38396, 0, 0, 38051, 38498, 0, 0, 0, 65206, 0, 37987, 36167, 0, 0, 0, 0, 0, 0, 39120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39121, 0, 0, 0, 0, 38005, 64224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38002, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35568, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39129, 0, 0, 0, 0, 0, 0, 0, 36186, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39131, 0, 0, 0, 0, 39133, 0, 0, 0, 0, 0, 0, 0, 0, 39080, 0, 0, 0, 0, 0, 0, 0, 35437, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35579, 35502, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64457, 0, 0, 0, 0, 35933, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35405, 0, 0, 0, 37463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38367, 0, 0, 41132, 0, 0, 0, 0, 39147, 0, 0, 0, 0, 39148, 0, 36035, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34777, 0, 0, 0, 0, 0, 0, 35512, 0, 0, 0, 40679, 0, 0, 0, 0, 0, 0, 0, 0, 38076, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64721, 0, 0, 0, 0, 0, 0, 40134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36170, 0, 40574, 0, 0, 0, 0, 0, 0, 0, 36164, 39166, 65000, 0, 0, 0, 0, 39232, 0, 0, 0, 0, 38089, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34758, 38099, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39238, 0, 0, 0, 0, 37056, 0, 38097, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36174, 0, 0, 38259, 0, 34766, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37826, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39243, 0, 0, 0, 0, 0, 36437, 0, 0, 0, 0, 39246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36606, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36191, 0, 36441, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35936, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36724, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36043, 0, 0, 0, 39254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39257, 0, 0, 0, 0, 0, 0, 0, 39259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36036, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64069, 0, 0, 0, 37047, 0, 0, 38723, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38349, 0, 0, 0, 0, 0, 0, 38857, 64848, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34730, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36537, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38342, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39271, 0, 0, 36067, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35513, 0, 0, 0, 0, 0, 0, 36348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35446, 0, 0, 0, 0, 0, 40273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39283, 0, 0, 34624, 0, 40271, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39290, 38244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39329, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39333, 0, 0, 0, 0, 0, 0, 0, 39335, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36589, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39341, 0, 51326, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37998, 36720, 0, 64208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39347, 0, 0, 0, 0, 0, 0, 41043, 0, 0, 0, 0, 0, 36190, 0, 0, 38492, 0, 0, 36064, 0, 64890, 0, 0, 0, 0, 0, 0, 0, 0, 38910, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37565, 36189, 38909, 0, 34779, 0, 0, 36708, 0, 0, 0, 0, 64759, 38242, 38861, 40548, 0, 0, 0, 0, 0, 0, 0, 37452, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36553, 39356, 0, 0, 0, 0, 40357, 0, 36692, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36732, 0, 0, 0, 0, 36181, 0, 36514, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36730, 0, 0, 0, 0, 0, 0, 38830, 0, 0, 0, 0, 38600, 0, 0, 36068, 0, 0, 0, 0, 39363, 0, 37078, 0, 40126, 0, 0, 0, 36726, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38000, 64331, 0, 0, 64970, 0, 0, 36079, 0, 0, 0, 36551, 0, 0, 0, 0, 36180, 41209, 0, 0, 0, 0, 0, 0, 0, 36777, 0, 0, 36177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39367, 34628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37079, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40671, 36185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34626, 0, 0, 39374, 0, 0, 0, 0, 0, 0, 0, 0, 36794, 0, 0, 0, 0, 0, 36843, 0, 39375, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36802, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37577, 0, 0, 0, 0, 0, 38876, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34653, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34764, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38323, 40057, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38322, 0, 36172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36827, 0, 0, 0, 0, 39907, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34636, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34637, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40570, 34647, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39918, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39390, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35410, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39393, 0, 0, 0, 0, 0, 0, 35431, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35765, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39401, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64458, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38878, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38353, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39413, 64586, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39849, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64476, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65110, 0, 0, 0, 0, 0, 40612, 0, 0, 0, 0, 0, 0, 40265, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38363, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35269, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39416, 0, 0, 0, 0, 0, 0, 38500, 0, 0, 0, 0, 36949, 0, 0, 38612, 0, 34756, 34734, 0, 0, 0, 0, 38780, 0, 0, 0, 0, 0, 0, 38477, 0, 38881, 0, 0, 0, 0, 0, 0, 39496, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39497, 0, 65149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37034, 0, 0, 0, 0, 39504, 0, 0, 0, 0, 0, 0, 0, 37703, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36568, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37065, 0, 0, 0, 0, 0, 39509, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37052, 0, 0, 0, 0, 0, 39512, 0, 35768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38465, 0, 0, 0, 0, 0, 0, 39514, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39516, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38850, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34652, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35515, 0, 0, 0, 39850, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35928, 0, 0, 0, 0, 0, 0, 0, 0, 39523, 0, 0, 0, 0, 0, 0, 35913, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35766, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64719, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38507, 39534, 0, 37199, 0, 0, 0, 0, 0, 0, 0, 0, 38726, 0, 0, 41190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37591, 0, 38517, 0, 0, 37844, 0, 0, 37307, 38521, 0, 0, 0, 0, 0, 39536, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38520, 37325, 0, 40010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41071, 0, 0, 41066, 0, 0, 0, 0, 0, 0, 37215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34625, 0, 0, 0, 0, 0, 0, 0, 0, 40869, 0, 0, 35258, 0, 34639, 0, 0, 0, 0, 0, 0, 34638, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34645, 0, 0, 0, 40653, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39545, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36082, 0, 0, 0, 36183, 0, 40398, 0, 0, 0, 36050, 0, 0, 0, 34649, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40307, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38585, 0, 38588, 0, 0, 0, 0, 0, 0, 40145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40686, 34633, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64323, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34651, 0, 40649, 0, 0, 0, 0, 0, 0, 64467, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36184, 34630, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36182, 0, 0, 0, 0, 0, 0, 0, 40312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42048, 42050, 0, 42051, 40627, 0, 0, 51525, 42070, 42068, 42071, 42069, 51526, 42147, 51535, 51533, 42146, 42145, 0, 0, 42306, 42305, 42304, 0, 42307, 42238, 40626, 0, 40406, 0, 42464, 42465, 0, 39247, 0, 0, 35278, 0, 43203, 0, 35776, 0, 40900, 42072, 35796, 42148, 51536, 35954, 42149, 51555, 42730, 52145, 0, 0, 50879, 35833, 42073, 42150, 0, 42308, 51556, 35142, 0, 50880, 0, 0, 51520, 42052, 0, 42075, 0, 51527, 42076, 64229, 0, 42151, 0, 42309, 42311, 42310, 0, 0, 42466, 42467, 0, 0, 43204, 0, 44476, 42049, 51323, 35782, 51521, 42053, 42078, 42077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42468, 40023, 0, 0, 0, 0, 0, 0, 0, 0, 43205, 0, 0, 0, 0, 39675, 0, 0, 0, 0, 0, 45230, 54347, 35280, 35279, 46787, 56497, 56498, 50881, 42054, 35281, 42153, 35298, 0, 43206, 42055, 51528, 42079, 0, 0, 42154, 42156, 51537, 42157, 42155, 0, 0, 37502, 42469, 40378, 43207, 0, 0, 43208, 43845, 50882, 42080, 42158, 35951, 42470, 42472, 42471, 0, 42731, 0, 0, 43209, 43210, 43846, 43847, 0, 0, 0, 0, 44477, 0, 0, 56499, 64504, 0, 63190, 42056, 35783, 37483, 0, 0, 35282, 42160, 42159, 51538, 42161, 42167, 0, 42162, 42163, 51540, 51539, 42165, 42166, 0, 42164, 40911, 0, 0, 0, 0, 0, 42314, 42315, 42316, 42317, 42313, 42320, 51562, 0, 51558, 51561, 42321, 42337, 0, 51560, 0, 42318, 42319, 42312, 0, 0, 51557, 51559, 40361, 35283, 0, 0, 39394, 0, 42485, 51632, 42482, 42486, 51642, 51630, 42483, 51634, 37479, 0, 0, 42484, 0, 42487, 0, 42473, 51633, 42488, 51637, 37540, 51641, 51638, 0, 0, 51635, 42474, 42476, 42489, 0, 42478, 51627, 42481, 42479, 42480, 51643, 51640, 51631, 42477, 0, 35955, 51628, 42475, 35150, 0, 0, 51636, 0, 0, 0, 0, 51639, 0, 0, 0, 0, 0, 35151, 37496, 0, 0, 51629, 51814, 0, 42818, 42740, 0, 37302, 51815, 42737, 0, 42820, 35284, 42745, 40914, 42744, 51803, 42748, 42743, 51808, 51816, 0, 51812, 37543, 42746, 0, 38306, 42749, 42734, 42823, 51805, 0, 37486, 52157, 42732, 42819, 42733, 42741, 42742, 51810, 51806, 42747, 42739, 51802, 42735, 51813, 42821, 42824, 42738, 42816, 42822, 42736, 51811, 42817, 51817, 51804, 42750, 51807, 0, 0, 51809, 0, 43224, 52159, 52171, 43216, 0, 52172, 43211, 43221, 0, 38634, 43214, 52153, 43222, 52152, 52156, 52163, 52161, 43230, 43225, 52147, 52149, 43227, 43215, 52150, 52162, 52169, 43220, 52155, 52148, 43219, 52151, 43223, 52154, 37487, 43218, 0, 43213, 0, 43228, 52164, 43229, 52168, 0, 52166, 52170, 43226, 52158, 52146, 0, 52160, 43217, 52165, 43212, 52167, 0, 0, 0, 37539, 0, 0, 0, 0, 0, 35152, 0, 0, 64087, 0, 0, 43862, 43850, 39014, 0, 52704, 52712, 36088, 43849, 43857, 43869, 0, 52718, 52716, 52711, 0, 35286, 0, 43851, 52717, 52707, 43865, 43856, 43864, 52702, 0, 52714, 39090, 52705, 43860, 52706, 37547, 52701, 43867, 43854, 43863, 43853, 0, 52703, 52708, 0, 52715, 43861, 43858, 52710, 43866, 52713, 52709, 43855, 43868, 43859, 43852, 43848, 0, 0, 38622, 37548, 0, 0, 0, 0, 0, 0, 52719, 0, 44503, 44481, 35952, 44497, 40814, 44502, 53456, 53455, 53460, 53461, 44484, 36594, 44493, 0, 0, 40812, 44506, 0, 44494, 0, 0, 35288, 0, 53449, 44487, 53450, 64089, 44508, 0, 44499, 44478, 44479, 53469, 45247, 0, 44492, 44491, 53451, 44495, 54363, 44486, 53462, 44501, 44500, 44490, 53454, 53463, 0, 53448, 44489, 53464, 44498, 53452, 44480, 0, 44483, 44482, 53465, 44496, 64095, 44505, 44507, 53459, 44504, 37544, 53467, 53453, 53468, 0, 53457, 37219, 53466, 0, 53458, 0, 0, 0, 35904, 44488, 0, 0, 0, 54371, 54359, 0, 45235, 0, 54364, 54370, 45234, 54357, 45238, 54361, 54354, 45236, 54358, 45241, 45246, 0, 54375, 0, 54353, 0, 45242, 40819, 54374, 37549, 0, 45237, 54360, 45233, 54355, 54351, 54365, 54352, 54350, 54362, 54368, 54369, 45239, 39913, 0, 55387, 54366, 54349, 54367, 37545, 45249, 54372, 45248, 54348, 0, 54356, 54373, 45244, 45243, 45240, 45245, 0, 0, 45231, 0, 0, 64102, 0, 0, 46024, 37546, 55390, 55383, 0, 46021, 0, 55391, 35289, 0, 0, 55381, 55384, 46020, 55385, 0, 64854, 46023, 55389, 0, 55379, 55378, 46025, 0, 46026, 46022, 46027, 55377, 55388, 55386, 55380, 0, 0, 0, 46019, 55382, 0, 0, 40872, 0, 0, 0, 0, 0, 46794, 46788, 56503, 46797, 56509, 56512, 46790, 46791, 56506, 46789, 56515, 46795, 56516, 0, 56511, 46796, 35953, 56500, 46793, 56501, 0, 56510, 56508, 0, 56504, 46792, 56502, 46798, 56507, 56514, 56505, 56513, 0, 37537, 47542, 47539, 37091, 47540, 0, 57593, 57585, 47538, 47535, 57586, 0, 41126, 47537, 57589, 0, 57591, 0, 38059, 57598, 64626, 0, 57597, 57592, 47534, 57584, 47532, 57587, 47543, 57590, 0, 57594, 47536, 47533, 57596, 57595, 47541, 0, 57588, 38852, 48120, 58604, 0, 58601, 48121, 0, 48119, 37550, 58608, 58605, 58598, 48118, 64103, 48122, 58599, 48117, 48125, 58602, 58603, 48123, 48124, 58609, 58606, 58607, 37538, 64105, 0, 48810, 59640, 48807, 59637, 48809, 48811, 0, 59638, 48808, 0, 59639, 0, 59636, 0, 0, 49270, 60605, 49271, 60603, 0, 60604, 60602, 60601, 0, 0, 60606, 49269, 37480, 0, 61368, 61369, 0, 58600, 61367, 49272, 50015, 61931, 61932, 0, 50391, 50392, 62913, 62912, 50540, 50539, 63440, 0, 42057, 42081, 42169, 0, 42168, 42323, 42322, 42492, 42491, 42493, 42490, 0, 42826, 42825, 42827, 0, 0, 0, 0, 43232, 0, 43231, 43233, 35153, 43870, 0, 41561, 53470, 41562, 45250, 41564, 41563, 55392, 64111, 41565, 47544, 41566, 0, 42058, 0, 42170, 42494, 43234, 64113, 42059, 42173, 42171, 42172, 0, 0, 42560, 0, 0, 35154, 42828, 43236, 43235, 43237, 37978, 0, 0, 44509, 0, 0, 0, 48812, 0, 50883, 0, 0, 0, 35293, 51534, 51362, 42324, 42325, 0, 0, 42561, 0, 51818, 0, 43872, 43871, 53472, 53471, 45251, 50884, 42174, 51541, 0, 40530, 0, 35155, 0, 52173, 0, 43873, 0, 44512, 0, 44510, 44511, 0, 40533, 37562, 0, 48813, 50885, 42326, 0, 35931, 0, 42562, 51644, 64125, 64168, 39528, 64071, 42829, 42830, 64126, 51819, 0, 0, 52174, 43238, 52175, 0, 0, 0, 0, 37563, 53474, 53475, 44515, 64950, 53476, 64162, 53473, 44516, 44514, 44513, 53477, 64163, 54376, 64164, 39860, 64166, 55393, 0, 0, 56517, 57664, 0, 0, 35295, 48126, 48814, 59641, 64987, 42060, 42074, 64169, 0, 35156, 0, 0, 0, 0, 0, 0, 0, 0, 64171, 0, 0, 45252, 46029, 0, 47545, 64634, 51522, 42175, 0, 42329, 42327, 42328, 0, 35296, 43239, 40783, 0, 42061, 42062, 51325, 42082, 0, 35297, 42176, 42177, 42178, 51646, 42330, 64176, 51563, 0, 42566, 0, 51647, 42564, 42565, 51645, 0, 0, 42567, 42563, 0, 0, 0, 0, 51820, 43756, 51821, 40909, 41191, 51822, 0, 0, 42832, 42831, 64177, 35238, 42835, 42833, 42834, 0, 0, 0, 43245, 0, 43244, 52180, 52177, 52178, 40698, 52176, 43246, 43242, 43241, 0, 43243, 43240, 64178, 0, 0, 0, 0, 43247, 0, 43875, 52720, 0, 52179, 43880, 0, 52721, 43876, 43879, 43878, 43877, 43874, 34748, 0, 0, 53480, 0, 44519, 53483, 44517, 64180, 0, 37572, 53479, 44520, 44518, 44521, 53481, 53482, 40815, 53478, 53484, 0, 0, 0, 0, 0, 35760, 46033, 45253, 54377, 54379, 54378, 54380, 45254, 0, 0, 46030, 40876, 46031, 46032, 0, 46800, 56519, 35299, 56518, 56520, 56521, 46801, 0, 46799, 57665, 57666, 47547, 47546, 58202, 0, 0, 48192, 48193, 48194, 48196, 58610, 58611, 48195, 0, 39891, 35300, 48815, 0, 48816, 64181, 0, 61933, 62915, 62914, 63441, 40917, 42063, 0, 0, 0, 42332, 42331, 35157, 0, 42568, 37573, 0, 51648, 0, 35158, 42837, 42838, 42836, 42839, 51823, 51824, 0, 0, 0, 0, 0, 0, 64179, 0, 0, 0, 64182, 0, 43249, 52181, 0, 43248, 0, 52722, 43884, 52723, 43883, 0, 64183, 0, 43881, 0, 43882, 0, 0, 40668, 53485, 0, 0, 64452, 40817, 45255, 54382, 0, 45258, 54381, 45541, 45257, 45256, 0, 46036, 0, 46035, 46034, 46802, 64186, 37575, 46805, 46806, 46804, 0, 46803, 0, 0, 57667, 0, 57668, 0, 0, 0, 58613, 48197, 58612, 0, 48817, 60607, 49273, 0, 61934, 50261, 50886, 42083, 42179, 51542, 0, 42180, 42181, 0, 39500, 0, 0, 0, 64189, 42334, 0, 42569, 51825, 52182, 52183, 0, 43885, 53486, 45260, 45259, 55395, 55394, 0, 0, 42064, 42182, 42335, 0, 45261, 51523, 0, 51564, 42336, 0, 51650, 42571, 42570, 51649, 42840, 35944, 0, 0, 35301, 0, 0, 44522, 0, 40829, 54383, 0, 46807, 57669, 47548, 41129, 64196, 59642, 0, 0, 62461, 50887, 42183, 0, 35159, 52184, 52724, 45264, 45262, 45263, 42065, 64170, 42084, 64197, 42186, 0, 42185, 42184, 42339, 42338, 0, 51565, 51651, 35160, 0, 0, 43253, 43250, 43252, 43251, 0, 0, 43886, 0, 0, 46037, 0, 42066, 35811, 42187, 35681, 42341, 42340, 0, 51826, 39665, 0, 43254, 40631, 0, 50888, 0, 0, 51543, 64209, 42343, 42342, 42572, 42573, 51827, 42841, 64210, 42842, 0, 43255, 43256, 43257, 0, 43887, 52725, 40634, 64212, 64213, 0, 0, 51524, 0, 42188, 0, 0, 0, 0, 0, 51652, 0, 0, 0, 51828, 51829, 0, 0, 52185, 64217, 52186, 0, 52727, 52726, 52729, 52728, 43888, 0, 54384, 44525, 53487, 44524, 64219, 0, 40160, 0, 55396, 46038, 64503, 55397, 64506, 35303, 41082, 64220, 57670, 47549, 64221, 0, 35305, 0, 48198, 0, 61935, 0, 50889, 0, 0, 51544, 0, 42344, 0, 0, 0, 0, 0, 64226, 35307, 45265, 0, 64227, 0, 0, 42067, 42085, 42190, 42189, 37064, 42191, 0, 0, 37594, 35161, 40181, 0, 43259, 0, 43258, 43260, 35162, 64231, 40866, 43889, 0, 0, 0, 44526, 64234, 59643, 49743, 42086, 42346, 42361, 42356, 0, 42351, 42350, 42357, 42355, 42348, 42362, 42349, 42345, 42360, 42359, 42358, 42347, 0, 42354, 64237, 36781, 42353, 0, 0, 42363, 42352, 0, 64345, 0, 0, 42579, 0, 42585, 42581, 0, 42587, 51653, 42584, 42574, 42577, 42580, 42576, 42583, 42586, 42575, 42578, 42582, 42588, 64239, 38639, 0, 40428, 0, 51838, 51835, 40394, 42855, 51836, 42843, 42845, 42869, 42864, 64877, 0, 35308, 51877, 51837, 42847, 42849, 51876, 42856, 51832, 42868, 42870, 42844, 42861, 64324, 51830, 42867, 40418, 42852, 35957, 42862, 42863, 51831, 42860, 42858, 0, 42859, 42865, 51873, 42846, 0, 42866, 51875, 42854, 42851, 0, 51834, 42850, 51878, 42853, 0, 42857, 40640, 34757, 40534, 42848, 51874, 0, 0, 0, 0, 51833, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52203, 52202, 43343, 52205, 52207, 52196, 52199, 52206, 43344, 40825, 39623, 52193, 52197, 64244, 0, 52201, 52809, 43339, 52813, 43261, 52198, 43262, 43340, 43333, 43329, 0, 52194, 43332, 43337, 43346, 52195, 52188, 43331, 52189, 52191, 0, 43334, 39073, 43336, 52187, 52192, 0, 0, 43345, 43341, 52200, 43347, 64248, 43338, 52190, 43335, 35312, 40519, 43330, 43328, 40439, 52204, 0, 43342, 0, 40915, 0, 39626, 0, 52808, 52731, 52811, 35313, 64249, 52733, 43896, 43944, 43892, 43943, 43901, 43940, 43890, 52732, 52803, 43939, 52815, 43941, 36442, 43897, 35314, 0, 52805, 52802, 43895, 35315, 52730, 43942, 52810, 43900, 52812, 43945, 43891, 43902, 43899, 52800, 43937, 52806, 52807, 43898, 43938, 43894, 0, 37469, 35665, 37600, 43893, 52734, 35316, 0, 0, 0, 0, 0, 52804, 0, 0, 0, 40916, 0, 0, 0, 52814, 0, 53572, 44539, 53489, 35449, 53494, 44532, 44608, 53492, 44527, 44537, 44542, 53499, 0, 44538, 44541, 35317, 0, 53502, 44533, 53493, 0, 0, 0, 53570, 53571, 0, 44535, 53569, 44531, 44611, 0, 53496, 0, 44529, 38823, 53574, 53497, 53501, 44534, 44610, 53498, 44540, 53568, 53575, 54433, 37818, 53573, 44612, 44528, 53500, 53491, 40536, 44536, 0, 0, 53490, 35318, 0, 53495, 0, 0, 0, 40535, 0, 0, 0, 0, 35319, 0, 35393, 53488, 44609, 35320, 0, 54391, 64241, 45284, 54439, 45282, 45279, 54396, 45275, 54434, 45286, 54390, 54395, 54394, 44530, 45281, 54437, 0, 54440, 54387, 0, 46056, 35322, 54441, 45287, 0, 45273, 45270, 54398, 45267, 64322, 54438, 64191, 45274, 54442, 0, 54388, 54436, 45277, 54389, 54392, 54397, 64419, 0, 45278, 45276, 45288, 0, 0, 0, 0, 45283, 64247, 45271, 45522, 0, 45272, 54393, 45285, 45280, 54435, 45269, 0, 0, 40526, 45268, 38108, 0, 0, 0, 0, 0, 38362, 40440, 40810, 0, 54385, 54386, 55402, 0, 35511, 0, 46039, 46042, 55413, 46062, 55416, 46040, 55409, 46046, 46052, 46525, 0, 64326, 46050, 55406, 46063, 46043, 46051, 55414, 56535, 55419, 55407, 35398, 55398, 55411, 55405, 46049, 55417, 0, 0, 46045, 46065, 46058, 0, 46047, 46044, 0, 46055, 0, 55418, 55404, 55410, 55412, 55400, 55415, 46041, 55399, 64327, 46048, 46064, 46060, 55401, 46054, 0, 37192, 46061, 46057, 46053, 37598, 55408, 0, 0, 0, 35667, 40438, 46059, 39898, 0, 0, 56533, 56529, 40318, 56544, 56522, 56531, 46821, 46822, 46814, 56540, 46824, 56527, 56526, 56524, 56542, 46812, 56536, 56525, 46815, 56534, 46810, 56530, 56537, 56539, 35325, 39396, 56543, 46819, 56523, 46813, 56528, 40515, 46808, 0, 46820, 56538, 46816, 46817, 46823, 46811, 41567, 46809, 56532, 40425, 0, 36690, 0, 0, 46818, 40437, 40432, 56541, 0, 0, 39399, 47565, 47560, 0, 57685, 57681, 35773, 57675, 47554, 47550, 57684, 47551, 57678, 57680, 0, 57683, 64328, 47556, 0, 47563, 47557, 0, 0, 57673, 47558, 47559, 57676, 47564, 40887, 57674, 57679, 47555, 57672, 47561, 47553, 0, 0, 0, 47552, 57677, 57682, 40400, 47562, 40939, 36265, 40399, 39137, 0, 40421, 0, 57671, 0, 48205, 58695, 0, 58692, 40392, 48199, 48211, 48212, 0, 48202, 58690, 48204, 58617, 48210, 64335, 58694, 48201, 58696, 48200, 0, 58691, 58693, 48203, 58689, 58618, 58615, 40427, 0, 55403, 58621, 0, 58614, 58620, 58619, 0, 58616, 64340, 48207, 64341, 39586, 0, 35542, 48206, 39519, 0, 0, 48208, 58622, 48818, 58688, 0, 0, 40693, 59717, 0, 59645, 36791, 48830, 59714, 48822, 48826, 59713, 0, 48825, 48821, 48824, 48819, 48829, 59715, 59646, 48828, 59644, 48827, 59716, 59712, 48209, 0, 48831, 59718, 48823, 48820, 39634, 40554, 40680, 0, 60614, 60616, 49275, 60617, 60615, 60613, 60612, 49277, 60611, 49278, 0, 35775, 37314, 40290, 60609, 60610, 49274, 49313, 49276, 0, 37472, 60608, 0, 49744, 0, 61372, 61370, 61375, 61373, 0, 61371, 61374, 37470, 37313, 0, 35525, 0, 0, 38819, 50016, 61938, 61939, 50262, 0, 61940, 61936, 61941, 61937, 49745, 35692, 0, 36222, 62462, 62529, 50265, 62528, 50264, 50263, 0, 40020, 0, 0, 50266, 62917, 62918, 40381, 50394, 50393, 50395, 62916, 0, 63192, 63191, 0, 50541, 50543, 50542, 63193, 50632, 63654, 0, 0, 0, 50673, 0, 63653, 63726, 0, 40133, 51529, 0, 0, 42365, 42364, 0, 42591, 42590, 51655, 42589, 51654, 35163, 0, 42873, 51881, 0, 51880, 0, 0, 42871, 42874, 0, 64348, 51879, 64347, 42872, 64343, 0, 0, 0, 0, 0, 52208, 0, 52209, 43348, 34661, 0, 39111, 0, 43946, 64346, 53576, 53577, 44613, 44614, 0, 0, 54444, 45289, 45291, 54443, 45290, 55420, 46066, 0, 0, 0, 0, 46825, 46826, 56545, 40174, 47567, 0, 47566, 0, 58697, 59720, 59719, 37602, 63851, 42087, 51545, 0, 51566, 51567, 0, 0, 0, 0, 42594, 42598, 51657, 0, 42596, 42595, 51656, 42597, 42593, 0, 38055, 42592, 51658, 0, 0, 0, 0, 0, 0, 42918, 0, 36044, 42915, 39892, 42877, 51882, 64356, 64374, 0, 51883, 64352, 42913, 0, 51885, 42875, 51886, 51884, 42878, 42914, 42917, 42916, 42876, 51887, 0, 39397, 0, 0, 39618, 0, 0, 0, 37371, 0, 0, 0, 41075, 0, 43353, 52222, 0, 43355, 0, 43354, 40818, 52288, 43352, 43351, 52213, 0, 52212, 0, 52210, 52215, 52214, 52211, 52220, 52221, 52218, 52216, 43350, 0, 0, 40908, 52219, 43356, 52289, 39077, 37608, 52217, 0, 43947, 43349, 0, 0, 0, 0, 39868, 0, 38643, 43948, 52820, 37607, 0, 52826, 64615, 0, 0, 43954, 52824, 52830, 0, 52821, 52825, 52827, 52829, 52823, 35709, 52822, 52817, 52818, 43949, 39924, 43951, 43950, 52819, 52828, 0, 40695, 0, 0, 40641, 0, 0, 0, 43953, 0, 0, 0, 0, 34755, 39279, 52816, 53587, 0, 53586, 53591, 53582, 38641, 53585, 53584, 36417, 53588, 0, 53592, 44615, 44618, 38218, 0, 53583, 53589, 38886, 0, 0, 44617, 53578, 0, 43952, 54458, 53590, 0, 53581, 0, 44616, 53580, 0, 38645, 0, 0, 0, 0, 54449, 37606, 40770, 45292, 45296, 54465, 54447, 54461, 45297, 54463, 64359, 54469, 0, 54473, 0, 0, 54464, 54452, 54460, 39337, 54474, 54472, 54462, 54457, 54450, 55462, 54448, 45301, 54455, 45302, 45298, 54445, 54467, 54453, 64230, 0, 54451, 54470, 45299, 64361, 54476, 45293, 45295, 54459, 54454, 44619, 45294, 54456, 54471, 54475, 54466, 0, 54468, 0, 38885, 0, 54446, 0, 0, 0, 34760, 55457, 0, 55466, 55465, 46074, 55458, 0, 46075, 46073, 38525, 55460, 46070, 55464, 64364, 55459, 55461, 55421, 46068, 0, 55474, 55473, 55470, 46067, 46071, 46072, 53579, 55467, 46069, 45300, 55469, 55422, 55472, 55471, 39330, 55475, 0, 56559, 0, 55468, 39611, 0, 0, 0, 39525, 0, 0, 37966, 55463, 56551, 46836, 46839, 46834, 56550, 56554, 56549, 0, 46828, 46838, 56546, 46832, 56553, 0, 46830, 46829, 56556, 46831, 56558, 64366, 56555, 46827, 39391, 0, 0, 46837, 56560, 56548, 56557, 0, 0, 56547, 39139, 0, 46833, 37460, 46835, 0, 56552, 0, 56561, 38523, 35503, 57693, 47568, 57699, 0, 0, 47573, 57695, 57702, 57687, 47575, 47569, 57692, 48213, 57691, 57700, 47570, 0, 47574, 57690, 57696, 57701, 57686, 47572, 57694, 0, 0, 57698, 57704, 57688, 57697, 35959, 47571, 57703, 0, 34736, 0, 57689, 35759, 40637, 0, 48217, 58699, 48215, 48214, 58701, 58706, 0, 58702, 0, 58705, 48220, 40678, 48805, 48219, 64367, 58698, 58704, 0, 48218, 58703, 36577, 58700, 0, 48216, 0, 39805, 40062, 0, 0, 0, 59725, 63961, 59727, 59722, 48833, 59724, 0, 48832, 59726, 0, 0, 48835, 59728, 48834, 59721, 59723, 0, 37610, 0, 0, 49317, 60620, 35960, 49316, 60621, 49315, 60619, 49314, 60618, 0, 49747, 49746, 61942, 61944, 64370, 61943, 50017, 50018, 64369, 0, 50019, 62530, 50267, 0, 0, 63443, 63442, 50674, 0, 42088, 42192, 0, 0, 42919, 35164, 0, 39152, 38642, 52831, 0, 0, 0, 0, 46076, 46077, 64372, 56562, 47576, 57705, 58707, 0, 0, 35777, 51546, 35165, 35294, 51888, 35166, 0, 0, 50890, 0, 52290, 52832, 53593, 44620, 0, 65090, 61945, 0, 50396, 42089, 42366, 51568, 0, 42599, 42600, 0, 43357, 34664, 0, 64379, 45303, 0, 47578, 0, 47579, 47577, 0, 42090, 0, 42193, 42195, 42194, 51547, 42196, 42401, 51569, 0, 42402, 35167, 0, 35168, 0, 0, 42601, 42602, 0, 0, 0, 51659, 0, 42920, 0, 51889, 0, 0, 0, 43361, 52291, 0, 43359, 43360, 43358, 53594, 0, 0, 0, 43958, 43957, 43959, 43956, 0, 52833, 43362, 43955, 0, 44621, 44622, 0, 44623, 0, 54477, 0, 0, 0, 46078, 55476, 45304, 0, 0, 39885, 0, 46840, 0, 47581, 47580, 57706, 0, 48221, 48836, 0, 61376, 63194, 63444, 42091, 42403, 40403, 42404, 51665, 42604, 42607, 0, 51663, 51661, 42606, 51664, 51666, 51660, 42609, 42608, 42605, 42603, 51662, 0, 0, 0, 38988, 42931, 0, 0, 42928, 51894, 51897, 51896, 0, 42922, 42930, 38738, 0, 42927, 51893, 51891, 42926, 38339, 0, 0, 42921, 42924, 39862, 51892, 51899, 51895, 42925, 42929, 42932, 51890, 51898, 42923, 0, 0, 0, 39609, 0, 43367, 43375, 38835, 52303, 52296, 43376, 52307, 52292, 52299, 40820, 37617, 43366, 52293, 43364, 52300, 52304, 43363, 36090, 52305, 52298, 0, 52301, 38879, 43378, 43369, 52308, 52306, 64422, 43374, 43372, 52297, 43371, 52295, 52294, 43370, 43368, 43377, 43373, 43365, 0, 52302, 0, 43961, 64427, 43968, 52847, 43960, 52839, 52835, 0, 52851, 52834, 0, 43963, 52844, 43966, 43969, 0, 43964, 52848, 43967, 39031, 44630, 52854, 52836, 38996, 38341, 52838, 52845, 52849, 52853, 52850, 52843, 52846, 40277, 64434, 52840, 43971, 52842, 52841, 52852, 43962, 52837, 43970, 38270, 43965, 0, 0, 0, 0, 0, 44636, 53602, 38722, 44635, 38118, 0, 53600, 0, 44624, 37621, 44629, 0, 53599, 53596, 53601, 44625, 53595, 36037, 44628, 44626, 0, 53603, 44627, 44631, 37629, 0, 44632, 64418, 44634, 0, 40017, 0, 44633, 38121, 39004, 37616, 53597, 53598, 0, 0, 0, 0, 53604, 0, 54484, 45305, 55490, 54483, 54502, 0, 0, 45376, 37964, 54500, 0, 45310, 45306, 54509, 54493, 54496, 37227, 45379, 54506, 54498, 45307, 45380, 0, 54503, 54501, 0, 0, 54486, 54507, 54495, 54490, 35704, 54480, 54508, 54492, 54479, 38114, 45378, 54497, 54510, 54494, 54482, 54487, 54478, 38991, 45377, 64437, 54491, 54488, 45308, 54481, 37489, 54505, 45309, 37733, 54489, 54485, 39003, 0, 54504, 38992, 0, 0, 0, 0, 0, 64440, 55483, 38844, 55480, 55497, 55485, 55498, 37619, 46146, 0, 37696, 38989, 55494, 55491, 0, 38258, 0, 65007, 0, 55492, 55495, 55499, 0, 54499, 55501, 56647, 64961, 46147, 55502, 55478, 55488, 64442, 55493, 0, 37611, 46145, 46148, 55500, 55503, 55482, 55479, 64627, 38839, 55481, 0, 34671, 55486, 55484, 46149, 0, 55496, 0, 64436, 55487, 0, 55489, 55477, 56570, 56568, 46914, 46912, 56643, 56569, 56644, 56640, 56567, 56646, 56566, 56573, 46846, 46845, 46844, 56571, 56641, 46841, 46913, 37031, 56564, 0, 56574, 56563, 56572, 46842, 56642, 56565, 46843, 56645, 38721, 37620, 0, 34674, 0, 64444, 0, 57710, 47586, 47585, 47587, 57722, 57712, 57718, 57707, 57721, 57720, 57724, 57717, 47582, 57716, 47588, 38263, 57709, 47583, 0, 57723, 47584, 57711, 57714, 57719, 57713, 57708, 0, 40674, 0, 36728, 57715, 58709, 48225, 58712, 58711, 58714, 58716, 63964, 48223, 0, 58710, 38514, 58708, 0, 58717, 58715, 58713, 0, 58719, 0, 58718, 48227, 48222, 0, 48224, 48226, 40629, 0, 58720, 59735, 38475, 0, 59734, 59733, 36012, 59736, 59729, 0, 59730, 59738, 59731, 0, 48837, 59740, 41210, 59739, 59732, 0, 60625, 49320, 60623, 60628, 60627, 59737, 0, 49319, 38261, 60626, 60622, 60630, 60629, 49318, 0, 60624, 0, 48838, 0, 0, 0, 49748, 0, 0, 0, 61377, 61946, 61947, 61948, 50268, 37082, 0, 50269, 37735, 62531, 65188, 62920, 62919, 0, 37087, 63195, 63196, 63445, 63655, 37716, 42092, 42093, 0, 42094, 42197, 42405, 51667, 42610, 42611, 0, 42935, 42936, 42934, 42933, 0, 43379, 0, 0, 52309, 43381, 43380, 52310, 35169, 0, 35764, 43972, 0, 44637, 53605, 40384, 54512, 0, 45381, 46151, 54511, 46150, 36424, 47589, 64453, 57725, 48839, 0, 49321, 60631, 64455, 50270, 0, 50544, 50891, 51570, 64121, 42406, 51571, 42614, 0, 42612, 42613, 42615, 0, 42938, 42937, 0, 51900, 42939, 40551, 0, 51901, 52311, 0, 52312, 36057, 43382, 43384, 43386, 43383, 43387, 43385, 64466, 35170, 35171, 0, 0, 43976, 43973, 43975, 43977, 43974, 53606, 52855, 0, 64637, 0, 53608, 53607, 44643, 0, 44639, 0, 0, 44640, 44642, 44644, 44641, 34675, 44646, 44645, 0, 0, 0, 0, 0, 45386, 54514, 54513, 45385, 40811, 45384, 45383, 45387, 45382, 0, 0, 55509, 55506, 46153, 55505, 55510, 0, 46155, 55508, 46152, 46154, 55507, 64460, 56648, 65198, 56649, 56650, 0, 34669, 0, 0, 47590, 47598, 57726, 47592, 47596, 57761, 47597, 47593, 47594, 47591, 47595, 48230, 55504, 48231, 48229, 0, 48228, 59741, 48840, 60632, 60633, 64465, 0, 50020, 50271, 0, 42095, 0, 42616, 0, 0, 0, 0, 64373, 0, 43978, 0, 53609, 44647, 64468, 0, 45390, 45389, 45388, 46156, 46157, 55511, 47599, 48841, 42096, 51548, 42198, 51572, 64470, 64472, 51668, 42617, 0, 0, 0, 43388, 0, 35677, 0, 37708, 56651, 39650, 0, 42097, 35785, 42199, 51669, 0, 0, 51902, 0, 51903, 0, 42940, 0, 0, 0, 55512, 46158, 0, 56652, 0, 0, 0, 49322, 42098, 42152, 42200, 51573, 42407, 0, 42944, 42943, 42941, 42942, 0, 0, 52313, 43390, 43425, 52314, 43389, 64475, 40905, 43982, 52856, 43981, 43979, 43980, 44650, 44648, 0, 40772, 53611, 44649, 53610, 0, 44638, 54515, 0, 0, 45392, 45393, 39149, 0, 45391, 0, 47600, 57762, 48232, 48233, 0, 58721, 49323, 61378, 61379, 0, 50397, 63656, 51531, 42201, 0, 42099, 0, 51575, 51574, 0, 0, 0, 36073, 42618, 51671, 51672, 51670, 0, 51673, 0, 0, 0, 0, 0, 0, 64477, 51911, 0, 51906, 51908, 51910, 51907, 42948, 51904, 0, 51905, 42945, 42946, 51909, 51912, 42947, 51913, 0, 0, 0, 36338, 35172, 0, 65010, 52328, 37709, 52322, 52317, 43427, 52325, 52323, 52316, 52329, 52332, 52327, 52320, 43429, 52326, 43430, 52321, 52324, 52315, 52319, 52331, 43431, 0, 43432, 0, 52318, 52330, 43426, 43428, 0, 64487, 0, 0, 0, 0, 0, 0, 41202, 39016, 0, 0, 0, 52907, 52900, 52906, 52899, 52901, 52861, 52859, 0, 52908, 52905, 52857, 40792, 43984, 52903, 52904, 36070, 52902, 52860, 52858, 43983, 52898, 52862, 0, 0, 52897, 52909, 0, 0, 0, 0, 0, 36211, 0, 0, 44655, 64478, 44654, 0, 53612, 44651, 53614, 64479, 44656, 53615, 0, 0, 44659, 35912, 44657, 53616, 52910, 53618, 0, 44653, 34676, 44652, 0, 53613, 53617, 44658, 0, 0, 0, 0, 45395, 45394, 0, 0, 0, 54517, 54521, 54523, 45396, 54526, 64483, 45400, 54593, 0, 45402, 36264, 45398, 45406, 64484, 45403, 54519, 45397, 0, 54518, 54516, 54595, 54520, 0, 45399, 54594, 45404, 54525, 54524, 45405, 54522, 45401, 0, 0, 40053, 0, 54596, 39032, 54592, 55527, 55534, 55523, 46161, 55519, 55535, 55513, 55532, 55530, 55524, 0, 55533, 55526, 36192, 55518, 55536, 55516, 55529, 55514, 0, 55537, 64485, 46162, 36193, 55531, 56655, 55517, 46159, 0, 55521, 0, 46160, 55520, 55525, 0, 0, 55522, 36194, 41121, 0, 55528, 0, 40000, 0, 0, 56659, 0, 0, 0, 56662, 56654, 0, 56656, 0, 56661, 56660, 46915, 0, 55515, 56658, 0, 0, 46916, 39085, 56653, 56657, 0, 40682, 0, 0, 57769, 36076, 57776, 57767, 36052, 57774, 57765, 57773, 57777, 57764, 57768, 57763, 0, 47601, 40171, 57766, 47602, 57772, 57771, 57770, 64480, 0, 57775, 40785, 0, 0, 0, 58725, 58727, 48235, 58728, 0, 58723, 0, 58722, 58732, 0, 58730, 48234, 58733, 58724, 58729, 58731, 58726, 0, 36197, 0, 0, 59745, 59750, 59744, 59749, 40177, 59742, 59752, 59748, 59753, 59747, 59743, 59751, 0, 59754, 59746, 64600, 60634, 49327, 36198, 49325, 0, 49324, 49326, 0, 0, 61380, 38484, 61810, 61949, 0, 0, 62532, 62533, 0, 50272, 0, 62921, 0, 50398, 0, 62922, 0, 63198, 50546, 0, 50545, 63197, 50633, 64488, 63446, 0, 0, 50892, 0, 42100, 42619, 51674, 51914, 43189, 45407, 0, 0, 42101, 42410, 42409, 42408, 0, 0, 42949, 0, 0, 44660, 0, 56663, 42102, 42103, 42104, 42202, 40910, 0, 43985, 0, 52911, 0, 0, 0, 46163, 42105, 51549, 0, 0, 42411, 42412, 51576, 0, 42620, 0, 0, 64508, 51915, 39652, 42950, 0, 51916, 0, 0, 43438, 40821, 0, 52334, 43436, 43435, 52333, 43433, 52335, 43434, 43437, 0, 43986, 0, 43988, 52915, 52912, 52913, 52914, 52916, 43987, 0, 0, 53620, 53619, 0, 44662, 0, 44661, 64497, 0, 0, 0, 0, 45410, 54598, 0, 45409, 45411, 45408, 0, 0, 0, 0, 46165, 54597, 0, 46166, 55539, 36201, 46167, 55538, 46164, 0, 0, 37711, 0, 56666, 56668, 46917, 56667, 56665, 56664, 0, 0, 0, 57780, 47607, 47605, 0, 47606, 57778, 57779, 0, 47603, 58737, 58735, 37710, 48237, 58736, 48238, 48236, 47604, 0, 0, 59757, 59755, 59756, 58734, 60636, 49328, 60635, 61381, 61382, 59758, 61950, 0, 42106, 42413, 42622, 64499, 42621, 0, 43439, 46918, 64500, 42203, 42414, 43989, 46168, 50894, 51577, 0, 51578, 64451, 51676, 0, 35173, 42952, 51920, 51918, 42953, 51917, 51919, 51921, 0, 42951, 0, 0, 35962, 0, 0, 43443, 43444, 43441, 0, 35963, 43440, 52920, 43442, 0, 0, 0, 43990, 0, 52919, 52921, 52918, 52922, 43991, 44665, 53621, 0, 53623, 44663, 53624, 44664, 53622, 0, 52917, 54599, 54602, 54603, 54600, 45415, 45414, 45412, 45413, 54601, 0, 0, 0, 36202, 45416, 0, 0, 46170, 46171, 0, 46172, 56669, 56671, 56673, 46920, 46919, 46169, 56672, 56670, 37715, 57784, 0, 64505, 57782, 57788, 47608, 57789, 57786, 47609, 57783, 57781, 57787, 48240, 58739, 57785, 48242, 58740, 48241, 48244, 58741, 48239, 48243, 0, 59763, 59761, 59760, 59762, 59759, 0, 0, 50022, 0, 62534, 62535, 0, 62923, 63199, 50773, 64509, 0, 43445, 42954, 36953, 64576, 43992, 64577, 64579, 0, 42107, 42204, 0, 42415, 51677, 0, 42955, 51922, 0, 52923, 43993, 0, 47610, 42108, 40920, 64582, 37730, 42657, 0, 0, 46921, 42109, 42205, 42206, 0, 42417, 42416, 0, 51678, 42658, 0, 51923, 0, 42956, 0, 0, 52337, 52338, 52339, 36203, 43446, 43447, 52336, 43448, 0, 0, 0, 43994, 52924, 0, 53626, 44666, 0, 53625, 0, 45417, 54604, 45418, 54605, 0, 64588, 36094, 46173, 0, 0, 0, 56674, 0, 0, 57791, 57790, 0, 47611, 0, 48245, 58742, 48842, 59764, 49329, 38328, 50547, 63448, 50896, 35786, 0, 0, 52340, 0, 52925, 45419, 64591, 46922, 0, 0, 39034, 49749, 0, 0, 0, 50897, 42958, 64593, 42957, 43995, 0, 53627, 0, 45421, 45891, 45422, 45420, 46174, 0, 57792, 47612, 48246, 64596, 51532, 51679, 0, 51925, 42959, 51924, 42960, 0, 64175, 43452, 52343, 52342, 43451, 43449, 43450, 52341, 36204, 0, 43997, 52926, 44000, 43996, 44002, 43998, 43999, 44001, 0, 0, 0, 44669, 44668, 44667, 0, 0, 0, 54607, 45423, 45426, 45424, 0, 54606, 45429, 0, 45425, 54608, 45428, 45427, 0, 0, 64097, 55542, 55541, 64599, 46177, 46175, 46176, 55543, 46923, 56676, 46924, 56675, 0, 39792, 58743, 0, 0, 48248, 57793, 48247, 0, 47613, 41041, 60638, 59765, 49330, 60637, 62016, 62536, 62537, 35964, 42207, 35787, 42418, 0, 0, 0, 51579, 0, 0, 42962, 42964, 0, 51682, 51928, 51927, 51926, 0, 51681, 51680, 42660, 42963, 42961, 42659, 0, 37742, 0, 43453, 52344, 64725, 43454, 51933, 0, 51935, 51934, 52345, 0, 0, 51930, 0, 42968, 42966, 0, 51929, 51931, 51937, 0, 42965, 0, 51932, 51941, 43456, 0, 51938, 42967, 0, 51936, 51939, 0, 43455, 0, 43457, 51940, 0, 0, 0, 0, 0, 0, 0, 0, 52399, 52386, 52350, 52398, 52393, 44007, 43458, 52394, 52397, 44003, 52396, 43459, 43464, 43462, 52387, 0, 52348, 52389, 43469, 52400, 44004, 52390, 0, 44005, 43465, 52392, 64681, 52941, 44006, 52347, 43466, 44008, 43467, 43463, 43468, 52391, 52346, 52395, 43460, 0, 64609, 52349, 52388, 52385, 43461, 0, 52927, 0, 52928, 0, 35174, 0, 0, 0, 0, 52938, 53665, 52939, 44014, 52942, 52932, 44013, 52934, 0, 52935, 64203, 0, 52937, 44009, 0, 0, 44707, 0, 63962, 52933, 52929, 44708, 0, 0, 52943, 44670, 53629, 52936, 0, 53628, 52931, 52940, 0, 0, 44012, 44705, 44018, 44706, 52944, 53630, 44011, 44710, 44017, 44016, 44015, 44709, 52945, 44711, 44010, 0, 52930, 0, 0, 37754, 0, 41184, 0, 0, 0, 0, 0, 0, 37739, 45430, 53668, 53670, 0, 53672, 44712, 44718, 54611, 53676, 53667, 45432, 54609, 0, 44717, 44715, 53678, 0, 54610, 0, 53669, 0, 44716, 53673, 44719, 53675, 0, 0, 44714, 53674, 53677, 53671, 64619, 44713, 45433, 0, 53666, 45431, 64620, 0, 0, 37992, 45434, 0, 0, 0, 0, 0, 0, 0, 54613, 54622, 46180, 64621, 45436, 45475, 46181, 54624, 45482, 55545, 54614, 45474, 45477, 45438, 54612, 54626, 54629, 55625, 0, 54627, 55549, 45473, 45480, 45484, 54621, 55544, 54625, 45435, 55546, 54628, 55548, 54617, 0, 46178, 0, 54615, 54616, 45479, 0, 36209, 45478, 54619, 45483, 54623, 45476, 54620, 64868, 45481, 46182, 46179, 55547, 39354, 54618, 0, 45437, 39632, 39521, 41189, 0, 0, 0, 0, 0, 0, 46187, 46191, 55616, 46929, 46189, 55620, 46193, 56677, 55622, 46931, 46185, 46188, 55623, 41051, 55624, 55630, 46195, 46932, 0, 55626, 55631, 55619, 46942, 38572, 46933, 46194, 55617, 55632, 38720, 46941, 46192, 46926, 55629, 0, 46196, 55621, 55550, 46186, 55618, 0, 55627, 40689, 46925, 46930, 46183, 55628, 0, 46928, 0, 0, 35917, 46184, 0, 0, 0, 46940, 57795, 56688, 0, 56680, 57794, 0, 56684, 56686, 40830, 0, 56683, 0, 46939, 0, 56682, 46943, 0, 0, 0, 57810, 0, 36210, 46938, 47680, 56689, 57796, 64630, 0, 46936, 56681, 56685, 47614, 46927, 56678, 56679, 47681, 46935, 46937, 46934, 56687, 38569, 0, 57800, 57801, 57806, 48253, 57813, 0, 47687, 41070, 47686, 57808, 64682, 48252, 57797, 47685, 64461, 57812, 47683, 47684, 64628, 57809, 58794, 48250, 46190, 0, 57811, 48291, 57803, 0, 48251, 41076, 48290, 57798, 57802, 57799, 57805, 47688, 48249, 47682, 0, 58746, 57807, 0, 48289, 41073, 48292, 0, 57804, 64633, 48254, 58745, 0, 0, 0, 64636, 0, 58750, 48846, 58744, 59811, 58793, 48296, 0, 48294, 48844, 58790, 58786, 48300, 40016, 59768, 0, 37753, 37752, 48298, 58785, 41181, 59766, 0, 58789, 0, 58792, 58749, 0, 48299, 0, 0, 48293, 59767, 48845, 58791, 48295, 48297, 58788, 48301, 58787, 58748, 58747, 48843, 58795, 59770, 60640, 48848, 36213, 59810, 36214, 59774, 0, 60641, 0, 48849, 59809, 37748, 59772, 49332, 60639, 0, 59769, 59771, 49333, 48851, 49331, 48850, 49335, 59773, 48847, 0, 36215, 64677, 0, 0, 64674, 0, 0, 61391, 0, 61383, 0, 37059, 0, 0, 0, 60647, 61384, 60643, 0, 41081, 49750, 60645, 60644, 49334, 60642, 60646, 61392, 61388, 61390, 0, 61385, 61386, 0, 61389, 61387, 50023, 0, 0, 50026, 50025, 50024, 50273, 62538, 50274, 62017, 50399, 62924, 50400, 50548, 50634, 63449, 0, 63450, 63451, 0, 0, 63930, 42208, 51580, 42419, 0, 42662, 42663, 42661, 0, 42664, 42970, 42969, 0, 52401, 43471, 43470, 0, 0, 53679, 45485, 45486, 0, 0, 0, 46197, 56690, 46944, 46945, 56692, 56694, 56693, 0, 57815, 0, 57814, 47689, 57816, 36217, 58796, 48302, 0, 48852, 0, 49336, 49751, 49337, 0, 42209, 35836, 0, 41078, 51942, 0, 0, 52402, 43473, 43472, 43474, 44019, 52946, 52947, 0, 0, 53680, 44720, 45487, 46198, 55633, 42210, 35789, 42110, 42211, 0, 51581, 42423, 42422, 42420, 42421, 0, 0, 0, 42667, 51689, 51691, 42666, 51683, 0, 51684, 0, 51690, 51686, 51688, 42665, 51685, 51692, 51687, 0, 40794, 0, 0, 0, 0, 42977, 42986, 42984, 51952, 51949, 51957, 42982, 51958, 0, 42975, 51955, 0, 42981, 51951, 51950, 42979, 51956, 42980, 43475, 42974, 51953, 40948, 51943, 42971, 40890, 42990, 51948, 51954, 42976, 42978, 0, 51944, 0, 51945, 51946, 36218, 42989, 42983, 42988, 51947, 42987, 42973, 42972, 42985, 0, 0, 0, 0, 40517, 0, 0, 0, 0, 0, 0, 37808, 0, 41077, 0, 43489, 52414, 52407, 43484, 43503, 52403, 52410, 52412, 52415, 43498, 0, 52411, 52404, 43496, 52408, 0, 52416, 43481, 0, 52413, 43491, 43490, 52406, 43479, 0, 34781, 43480, 39750, 43478, 64686, 43502, 43494, 43488, 43476, 52409, 43487, 43477, 43495, 43504, 52948, 43492, 52405, 43482, 43485, 43486, 64688, 43500, 43501, 43499, 43493, 43497, 43483, 44020, 0, 0, 64081, 0, 0, 0, 0, 0, 36219, 0, 0, 0, 0, 0, 52954, 44097, 44024, 44026, 44096, 52966, 44029, 53681, 44721, 44099, 52951, 52959, 44030, 52958, 52955, 52963, 52965, 44023, 44027, 44098, 44723, 52960, 44025, 44101, 52953, 0, 0, 0, 44028, 44722, 44022, 0, 52950, 52957, 52949, 52952, 52956, 53682, 44100, 0, 52961, 52962, 52964, 44021, 0, 36220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44737, 53694, 44735, 44736, 53684, 53700, 40662, 44726, 0, 37804, 54630, 53702, 53696, 40795, 53687, 37801, 53705, 53690, 44732, 54653, 53693, 44734, 44725, 0, 53707, 53695, 44728, 53688, 53685, 53686, 44729, 53701, 53708, 44731, 53692, 53691, 44739, 44738, 44724, 44730, 44733, 53704, 0, 0, 53698, 44727, 53683, 53706, 53697, 53699, 53703, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41084, 54631, 0, 45495, 45515, 45514, 0, 45503, 64690, 54649, 54645, 54642, 54694, 45498, 45490, 0, 0, 54647, 46248, 45494, 54689, 35521, 45516, 45513, 54651, 54634, 0, 40884, 45512, 54691, 54633, 45501, 45505, 54690, 0, 54643, 45506, 45500, 54632, 64684, 46200, 54693, 54641, 45511, 54644, 54692, 45510, 0, 55634, 0, 45491, 54639, 45496, 45507, 0, 45502, 54648, 54638, 54636, 54654, 45488, 45508, 45492, 46199, 54652, 45493, 0, 45489, 45504, 45499, 45497, 54640, 45509, 54637, 54650, 54646, 55636, 55635, 0, 0, 0, 0, 0, 0, 0, 40524, 0, 0, 0, 54635, 55652, 0, 46202, 36805, 55658, 55641, 55655, 56695, 46205, 55659, 55662, 46204, 55644, 55661, 55660, 46206, 55637, 46201, 46243, 37805, 46241, 55657, 0, 55647, 46245, 55664, 55656, 55665, 46253, 46251, 55654, 55653, 40387, 55651, 55645, 46244, 36258, 46242, 53689, 55638, 40266, 56759, 55639, 46203, 46250, 56697, 0, 46246, 46247, 55640, 55663, 56696, 55648, 55643, 46249, 55649, 55646, 0, 64694, 46254, 0, 36259, 40523, 0, 40525, 0, 0, 0, 0, 0, 0, 0, 46960, 36260, 0, 56700, 56753, 56758, 56746, 46956, 56763, 46953, 56698, 0, 56699, 46946, 46955, 56740, 46958, 46959, 56741, 0, 56754, 56760, 46954, 0, 46948, 56739, 56701, 56762, 56744, 56745, 56702, 56756, 56747, 56757, 56749, 0, 46949, 57817, 46952, 46950, 56761, 56752, 56748, 0, 35581, 56737, 47699, 56751, 46957, 56743, 64693, 56742, 64707, 37810, 0, 46951, 46947, 57838, 56755, 56750, 0, 56738, 0, 0, 0, 0, 0, 0, 0, 57833, 0, 57818, 57829, 0, 57836, 47697, 46252, 57834, 47692, 0, 0, 0, 47691, 57841, 36261, 57819, 57832, 57820, 57831, 47695, 57835, 55650, 0, 0, 0, 57842, 57827, 47698, 58810, 48303, 0, 57840, 57839, 47700, 58797, 48304, 58798, 37793, 57823, 57824, 57821, 57826, 57822, 57843, 47694, 48305, 47696, 47701, 35526, 57825, 0, 57837, 0, 0, 57830, 0, 0, 58801, 0, 47690, 48308, 59818, 58806, 58805, 58807, 35419, 0, 58804, 64697, 35149, 48315, 48312, 0, 48313, 58799, 58802, 58812, 48321, 48319, 0, 58803, 55642, 48306, 58809, 58800, 0, 48322, 58808, 47693, 48311, 57828, 0, 0, 48314, 0, 48318, 48320, 48317, 48316, 65236, 48310, 58811, 48307, 48323, 35448, 0, 37803, 0, 0, 0, 0, 48856, 48857, 59817, 48866, 48863, 36263, 48854, 48861, 59819, 48859, 48853, 0, 48860, 0, 59816, 49339, 48855, 0, 48862, 49338, 59815, 59814, 0, 48864, 40773, 48865, 0, 59813, 59812, 49340, 59822, 48858, 59820, 0, 35414, 0, 0, 49341, 64703, 49346, 60650, 60652, 64704, 49343, 36582, 60653, 60649, 35492, 60651, 49344, 49347, 0, 60648, 49342, 49345, 49753, 59821, 49752, 0, 0, 49758, 61396, 0, 49756, 49757, 61399, 61395, 49754, 61393, 50027, 61397, 0, 61398, 61394, 0, 49755, 62018, 0, 62021, 35139, 0, 62022, 62020, 62023, 50028, 62019, 37875, 0, 62542, 50276, 62541, 62540, 62539, 50275, 50277, 0, 62925, 50402, 50401, 64683, 40610, 63201, 63200, 63203, 50635, 50549, 63453, 63202, 0, 0, 63452, 50637, 50636, 50675, 63657, 63727, 42212, 40391, 0, 55666, 59823, 50898, 35790, 42668, 51959, 42993, 42991, 0, 42992, 0, 52417, 43505, 44102, 0, 52967, 0, 52968, 0, 44103, 53710, 0, 44740, 44741, 53709, 0, 0, 64709, 0, 45523, 0, 45519, 0, 54695, 45526, 45525, 45518, 45521, 45524, 45520, 0, 0, 55670, 45517, 46255, 64715, 0, 0, 46257, 46258, 55669, 55672, 46256, 55667, 55671, 0, 55668, 37811, 46961, 64714, 0, 56764, 0, 0, 47702, 57844, 48867, 48324, 58813, 48325, 48326, 58815, 58814, 58816, 59825, 0, 0, 59824, 60655, 60654, 49348, 49349, 62024, 64713, 36268, 42213, 64454, 35175, 0, 35966, 55673, 0, 0, 0, 46260, 46259, 56765, 0, 61400, 50403, 63454, 42214, 0, 44742, 0, 45528, 45527, 55674, 55675, 46962, 57845, 47703, 59826, 0, 42215, 42424, 0, 43506, 52418, 0, 52969, 44104, 45529, 0, 55676, 46261, 46963, 0, 58817, 58818, 0, 64717, 60656, 49759, 63728, 42216, 0, 52419, 43507, 44105, 40179, 52970, 0, 44743, 53714, 53712, 53713, 44744, 53711, 0, 0, 0, 0, 45531, 45532, 54696, 45533, 45530, 55677, 64720, 55678, 56766, 38331, 0, 47705, 47704, 0, 0, 60657, 61401, 0, 62026, 62025, 62543, 64723, 51550, 44106, 64724, 0, 42217, 42425, 0, 42670, 42669, 0, 0, 42671, 42672, 51694, 51693, 51960, 42994, 51963, 51962, 51961, 51964, 0, 0, 0, 0, 43508, 52425, 52421, 52430, 0, 36270, 43515, 0, 43513, 52426, 52422, 52429, 43512, 43584, 52424, 52420, 43518, 52427, 43511, 52428, 43514, 43516, 52432, 52431, 52423, 43510, 43509, 43517, 0, 0, 64727, 0, 0, 0, 52975, 52981, 37851, 44112, 44109, 52972, 52977, 65123, 44115, 44107, 52976, 44110, 44113, 0, 0, 52979, 0, 44108, 52984, 44111, 37845, 44114, 52973, 52978, 52982, 52974, 52971, 0, 0, 52983, 52980, 0, 0, 0, 0, 0, 0, 44752, 44745, 44748, 64730, 44751, 0, 53717, 39793, 44746, 53715, 64733, 44750, 34660, 0, 44747, 0, 53718, 44749, 36271, 0, 0, 0, 64242, 0, 54700, 45535, 54699, 54701, 45534, 45539, 53716, 34741, 54698, 54702, 37848, 45536, 54697, 45538, 64735, 45537, 0, 55719, 37843, 55714, 0, 46262, 46266, 46263, 55717, 55720, 64737, 64738, 0, 46265, 46270, 56775, 55718, 46268, 55715, 55713, 36470, 46269, 0, 55716, 0, 0, 0, 46969, 64610, 56767, 46966, 46967, 46965, 56772, 56771, 56768, 46971, 37841, 0, 56770, 46267, 36273, 0, 56774, 56769, 46968, 46964, 46970, 56773, 39001, 0, 0, 47708, 0, 57848, 57847, 57846, 47706, 0, 64338, 0, 0, 0, 47707, 58821, 58824, 48328, 0, 64339, 48327, 58825, 58820, 48330, 58822, 64333, 48329, 58819, 40127, 58823, 48873, 48870, 59835, 59834, 0, 59833, 59828, 39794, 59829, 0, 0, 0, 48871, 0, 48868, 48872, 59827, 48869, 59830, 59831, 59836, 64336, 37822, 59832, 0, 0, 60658, 0, 0, 0, 49351, 0, 61404, 49350, 61402, 61403, 49760, 50030, 62027, 0, 50029, 0, 0, 62545, 62546, 0, 50278, 36059, 62544, 50404, 0, 63455, 50638, 63658, 63659, 0, 42218, 40433, 42673, 42674, 42995, 0, 52433, 44116, 44753, 45540, 0, 0, 45266, 0, 46271, 46272, 46028, 55721, 64747, 46972, 57850, 57849, 0, 0, 42219, 42675, 52434, 43586, 41147, 43585, 39806, 52985, 52986, 0, 53719, 53720, 44754, 44755, 36275, 44756, 54703, 35922, 0, 45542, 0, 46274, 39656, 46273, 56776, 57210, 57851, 59837, 0, 36572, 49761, 50279, 42220, 0, 42428, 42429, 42427, 42430, 42426, 0, 0, 42678, 0, 51702, 42677, 42679, 40185, 0, 51697, 51696, 51699, 51698, 51701, 42676, 51695, 51700, 0, 0, 0, 0, 64080, 51965, 43005, 51966, 52035, 43004, 0, 52039, 52034, 52037, 42997, 42998, 42999, 43000, 0, 43072, 0, 52033, 43002, 43073, 0, 52032, 52038, 0, 43001, 52036, 64753, 42996, 43006, 39143, 64755, 0, 0, 0, 0, 64754, 0, 0, 43607, 36042, 52436, 43587, 34677, 43597, 43598, 43590, 43608, 43592, 52444, 43603, 52439, 43593, 52454, 52455, 52447, 52440, 43606, 52452, 43601, 43599, 0, 52453, 34746, 52451, 52443, 52435, 52442, 43594, 0, 43600, 0, 43588, 52446, 52445, 52437, 37861, 43602, 52449, 52438, 43605, 52456, 43589, 0, 43596, 52441, 52450, 43604, 0, 43591, 43595, 0, 52448, 39513, 0, 0, 0, 36277, 0, 0, 0, 0, 0, 0, 0, 64845, 0, 53083, 44124, 44137, 64862, 53078, 53068, 44130, 53066, 44123, 53061, 44133, 53074, 52990, 53057, 0, 0, 0, 36733, 53060, 52987, 53073, 53089, 44128, 53062, 53080, 0, 52989, 53087, 53088, 53091, 53082, 53067, 53075, 44134, 44121, 44129, 44141, 44118, 44120, 0, 38215, 64758, 53059, 44138, 44131, 53085, 53056, 44140, 44135, 53065, 0, 0, 44139, 53072, 53064, 44132, 53084, 53076, 0, 44126, 53090, 53063, 44122, 53081, 53071, 44127, 53077, 44119, 52988, 44136, 44771, 44125, 53070, 53069, 53058, 37456, 53086, 0, 53079, 0, 35176, 44117, 36278, 64763, 41085, 39164, 35177, 0, 0, 0, 0, 0, 0, 0, 0, 65103, 0, 0, 37462, 0, 53740, 44778, 53741, 0, 53729, 44767, 44779, 0, 53722, 64201, 53731, 53739, 37864, 53721, 53748, 44757, 64760, 0, 0, 53747, 53742, 0, 53743, 44765, 44776, 53733, 0, 53734, 53744, 53735, 0, 53730, 53724, 53725, 53738, 53732, 40163, 64937, 44758, 44762, 53746, 53726, 44774, 44770, 64580, 0, 44773, 44780, 44763, 44775, 53737, 44777, 44760, 38464, 44759, 53723, 36280, 53727, 44768, 53745, 53736, 53728, 44772, 44769, 0, 44761, 44764, 39754, 36793, 0, 0, 0, 0, 0, 0, 64766, 0, 0, 0, 0, 0, 0, 0, 35178, 0, 0, 0, 0, 0, 54724, 0, 54708, 54709, 54713, 0, 54728, 54725, 0, 54718, 54717, 45549, 54721, 54736, 54704, 0, 54737, 54723, 54741, 54729, 45548, 54727, 45543, 45564, 45554, 36281, 45558, 45557, 54705, 37246, 54734, 54740, 54732, 54739, 0, 0, 54720, 54706, 54738, 54722, 45546, 45559, 0, 54731, 45552, 37876, 0, 0, 54730, 54707, 45560, 0, 45562, 54733, 45563, 45545, 54714, 54735, 0, 64380, 45551, 45561, 54716, 54726, 54711, 54715, 45556, 54710, 45544, 45553, 45550, 54719, 44766, 55744, 45547, 37863, 0, 0, 38895, 0, 0, 0, 65098, 0, 0, 0, 0, 0, 64837, 45555, 38565, 55747, 55769, 55758, 46294, 65248, 46289, 55741, 46290, 55757, 0, 55750, 55763, 46286, 55723, 55765, 46276, 55731, 46279, 46278, 0, 46295, 0, 55725, 55759, 55760, 46281, 46277, 55739, 0, 46288, 55734, 0, 55761, 46284, 55753, 55766, 55728, 55733, 55727, 0, 46283, 55746, 56798, 55729, 46287, 55738, 55762, 46282, 55735, 55732, 55749, 46285, 46275, 46297, 55752, 55751, 0, 0, 64840, 64839, 65266, 65130, 55724, 46280, 55764, 55740, 55742, 36285, 55755, 55754, 55722, 46291, 46293, 55730, 55737, 55745, 46292, 55736, 55748, 55767, 0, 55756, 39841, 36002, 39607, 36604, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55768, 0, 0, 0, 0, 55726, 0, 40865, 0, 0, 56818, 47014, 0, 56816, 56795, 56800, 56793, 64849, 56812, 56779, 56786, 0, 56810, 56820, 56796, 64173, 56783, 56802, 56807, 56787, 36286, 56804, 56784, 35236, 0, 56791, 56792, 47016, 56811, 56809, 0, 56780, 56814, 0, 56815, 56817, 47020, 47012, 39641, 54712, 56788, 56806, 56789, 47009, 47025, 56813, 47023, 47019, 56778, 47011, 64846, 56781, 47024, 36288, 56797, 56777, 38896, 47017, 56801, 56785, 47018, 56794, 46974, 46296, 56803, 55743, 56782, 37812, 64836, 56808, 47013, 56805, 47010, 56799, 47021, 56790, 56819, 0, 0, 0, 0, 40871, 0, 47015, 57030, 0, 36290, 47022, 0, 0, 0, 39350, 0, 0, 57930, 57928, 0, 57950, 57926, 0, 57944, 46973, 47711, 57922, 57949, 64850, 57927, 57941, 47716, 47709, 0, 57947, 36289, 57920, 57946, 36422, 47727, 57937, 57953, 47725, 57929, 47710, 57931, 57945, 47719, 57924, 47723, 47713, 57933, 57923, 57852, 41169, 57943, 47720, 57952, 57853, 47717, 0, 57939, 0, 47718, 57925, 57936, 57932, 57934, 40906, 47712, 57951, 47726, 57935, 0, 57954, 0, 0, 57854, 57940, 47715, 47724, 47722, 57921, 57942, 47721, 37583, 0, 47714, 57938, 40180, 36292, 0, 0, 57948, 0, 0, 0, 0, 0, 0, 0, 64833, 58837, 0, 58833, 58829, 58849, 58846, 48333, 39756, 0, 58853, 58836, 48344, 58843, 0, 0, 58832, 58842, 48341, 58862, 0, 58859, 58845, 58830, 64855, 64751, 58850, 58852, 48337, 58840, 58835, 58826, 48334, 48342, 40158, 58855, 48343, 58827, 58861, 58848, 58854, 48340, 64834, 39020, 58851, 0, 58858, 0, 48345, 0, 48339, 58844, 58831, 58863, 58828, 58856, 48336, 38905, 58838, 38232, 58839, 48335, 48332, 58834, 48338, 0, 48331, 0, 58857, 58860, 58841, 59850, 34742, 0, 39006, 65147, 38093, 0, 0, 0, 0, 59842, 37870, 59838, 48886, 0, 0, 48875, 48880, 48876, 59852, 59863, 48874, 59844, 59853, 58847, 59854, 0, 36003, 48881, 64858, 59869, 48885, 48888, 59840, 0, 48884, 37877, 59867, 59868, 59858, 59857, 59849, 37871, 36586, 59859, 59866, 59865, 36699, 48879, 48877, 59851, 59848, 0, 59845, 59864, 48887, 59862, 48883, 48882, 35934, 59856, 36294, 59839, 59841, 59843, 59861, 59855, 48878, 0, 59846, 0, 59860, 0, 36296, 0, 0, 36295, 0, 59847, 0, 0, 0, 37879, 0, 0, 0, 49359, 60741, 49352, 60661, 36297, 60737, 49354, 60744, 0, 60668, 0, 60663, 64498, 0, 60745, 60659, 60670, 38512, 49361, 60740, 60746, 60669, 49353, 60736, 60660, 49360, 0, 36299, 60743, 60665, 49356, 64860, 60667, 60664, 49362, 60666, 49355, 49358, 60739, 60662, 60742, 36709, 60738, 0, 0, 36301, 49763, 61415, 49768, 49769, 0, 40360, 38137, 49762, 61414, 36302, 61411, 61412, 49766, 61406, 61410, 49765, 0, 61407, 37866, 0, 0, 0, 49767, 49764, 0, 61405, 61409, 61413, 64863, 37872, 40886, 62033, 62030, 62039, 0, 62038, 62036, 62031, 0, 50034, 36303, 0, 0, 0, 38755, 62032, 50033, 49357, 62035, 50032, 62040, 62034, 62029, 61408, 0, 0, 0, 50031, 0, 62028, 62550, 0, 62549, 62037, 50280, 0, 62553, 62554, 62548, 62552, 0, 62547, 0, 0, 36304, 0, 62929, 62551, 50407, 50405, 62927, 0, 0, 0, 62930, 0, 62926, 62928, 50406, 37873, 0, 0, 63205, 63206, 50550, 63204, 0, 0, 0, 63458, 50639, 63456, 63457, 63660, 0, 0, 50774, 63731, 63729, 63730, 63732, 0, 0, 64866, 63931, 0, 42221, 42680, 0, 43609, 0, 52457, 0, 0, 53092, 0, 0, 0, 53749, 53751, 0, 53750, 0, 53752, 45565, 54743, 53753, 64869, 54742, 54744, 54745, 55770, 46299, 55771, 55773, 46300, 46298, 55772, 0, 56826, 56824, 56823, 0, 56822, 56821, 47026, 56825, 47728, 57955, 57957, 47729, 57956, 48347, 0, 48346, 58864, 40923, 0, 59871, 59870, 59872, 37880, 0, 48889, 0, 60747, 49363, 0, 61416, 49770, 62041, 50551, 42222, 42431, 42681, 43074, 43610, 43611, 0, 0, 44142, 0, 0, 53754, 0, 35831, 0, 0, 47027, 0, 64870, 0, 59089, 48890, 49771, 42223, 35791, 42682, 0, 0, 52459, 43612, 52458, 36305, 53093, 44143, 53094, 0, 44144, 0, 53756, 44782, 44781, 0, 54750, 54748, 54749, 54747, 0, 54746, 0, 0, 55774, 55777, 46302, 55775, 46301, 55776, 0, 56827, 0, 0, 57958, 57959, 57960, 0, 58867, 58866, 48348, 58865, 58868, 59873, 0, 0, 59874, 59875, 0, 60748, 49364, 49772, 62042, 0, 50408, 51551, 0, 44145, 53095, 44783, 0, 0, 45566, 0, 46303, 55778, 0, 47029, 47028, 36306, 0, 57961, 57962, 48349, 48350, 59877, 59876, 61417, 63459, 42224, 51552, 42432, 0, 43075, 52040, 0, 44146, 47030, 42225, 0, 53096, 44147, 53097, 0, 49365, 42226, 64881, 0, 52460, 0, 53098, 64879, 53826, 53825, 53758, 0, 53757, 53827, 53824, 0, 36307, 45632, 45633, 0, 0, 46304, 55779, 0, 55780, 55781, 0, 0, 0, 56897, 56898, 56896, 40935, 56829, 56830, 47031, 57963, 58871, 58870, 58869, 58872, 59879, 59878, 48891, 59880, 0, 49366, 60749, 0, 61418, 62043, 63207, 0, 42227, 42434, 42433, 0, 43613, 51553, 51582, 42683, 0, 51703, 52041, 52042, 43614, 37053, 52461, 0, 44148, 53099, 53100, 0, 44784, 44788, 53828, 44787, 44785, 44786, 0, 54751, 45634, 46307, 0, 46305, 46306, 55782, 40912, 0, 47730, 42228, 35792, 51617, 64882, 42435, 40110, 35793, 51620, 0, 35547, 42438, 51619, 42437, 42436, 43076, 51618, 0, 0, 51704, 0, 0, 64228, 51708, 51710, 51776, 42693, 42694, 51707, 42689, 0, 51705, 0, 51709, 42690, 0, 42685, 38350, 42686, 64886, 42692, 51706, 42684, 43077, 42687, 42688, 42691, 0, 0, 0, 52059, 52057, 52044, 43089, 52051, 43084, 52045, 0, 52053, 64354, 52050, 43087, 52049, 43094, 52058, 43096, 36308, 43098, 0, 52043, 64888, 43085, 52060, 0, 43092, 43095, 36579, 52549, 43079, 43102, 43093, 52046, 43082, 43097, 52054, 43080, 43081, 52547, 52047, 43088, 43099, 52061, 52048, 43086, 0, 43091, 52462, 43100, 52055, 43090, 0, 43101, 43078, 52052, 43083, 64951, 52548, 0, 36982, 0, 0, 39110, 0, 0, 0, 0, 0, 0, 0, 36309, 43626, 43642, 52469, 43633, 38865, 52555, 43618, 40630, 43621, 52546, 0, 52467, 52471, 43629, 43631, 52474, 43638, 43624, 43622, 43623, 43637, 52551, 43632, 52473, 52475, 43630, 43635, 52476, 52554, 0, 44149, 43641, 64199, 43619, 52553, 41026, 52557, 52472, 52559, 52544, 43628, 52468, 43627, 43645, 43634, 0, 52466, 53109, 43640, 43644, 52545, 52550, 39027, 43646, 43639, 43625, 43615, 0, 43620, 0, 52470, 43616, 52558, 40956, 52464, 52463, 52477, 52465, 43643, 44789, 43636, 52478, 43617, 0, 44198, 0, 0, 0, 52556, 0, 0, 0, 0, 0, 36005, 53116, 53153, 36311, 53156, 53111, 37627, 36312, 53159, 53162, 53164, 53108, 44150, 44155, 53833, 44205, 53157, 53165, 53115, 53107, 0, 0, 0, 53860, 44158, 53154, 53112, 53114, 44197, 0, 53117, 44157, 53104, 53160, 0, 53163, 0, 37967, 44154, 36313, 44200, 53101, 44202, 44152, 44206, 53161, 53103, 44203, 53854, 52552, 44156, 44151, 53110, 53102, 44204, 44196, 53155, 44201, 44199, 53113, 44193, 53105, 44194, 44195, 53106, 53158, 44153, 53118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35179, 0, 0, 0, 0, 0, 0, 0, 0, 38862, 53836, 44797, 44867, 64243, 64942, 0, 53845, 53851, 53847, 53834, 53837, 53830, 53831, 44874, 44794, 53846, 53855, 44869, 44790, 0, 44864, 53838, 44866, 53839, 53849, 64431, 37559, 0, 44868, 53864, 53832, 44796, 44795, 44872, 53829, 53862, 53850, 53863, 53857, 53843, 53858, 36314, 53852, 53861, 53859, 44873, 53844, 44793, 44792, 44865, 44871, 53856, 44870, 53841, 45635, 40026, 53865, 53840, 53835, 44798, 44875, 44791, 64941, 53848, 53853, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36316, 37956, 0, 0, 0, 0, 45669, 54753, 54757, 0, 45650, 45648, 0, 36317, 45639, 54755, 54754, 45659, 0, 54760, 45653, 41174, 54778, 54855, 45636, 54775, 54768, 45671, 54752, 0, 54780, 0, 45668, 45656, 45667, 45646, 54764, 54782, 54774, 45647, 45641, 54853, 0, 54781, 54848, 45649, 45657, 54850, 54762, 54779, 54767, 54852, 45662, 45638, 45660, 54772, 54770, 54771, 45651, 54766, 54765, 45640, 54759, 54854, 45642, 54769, 45672, 0, 45666, 54758, 45663, 45661, 45670, 54776, 45665, 53842, 54777, 45664, 54849, 45637, 54773, 45655, 54761, 45654, 0, 45652, 45644, 45643, 55783, 54851, 35905, 0, 54763, 0, 38869, 55804, 37962, 45645, 0, 0, 0, 0, 37965, 0, 0, 0, 0, 38859, 0, 0, 0, 0, 0, 36318, 0, 0, 36319, 46401, 45658, 46318, 55798, 64952, 0, 55786, 46315, 46311, 55881, 46317, 46321, 46316, 46325, 55885, 55876, 36320, 65273, 55793, 46330, 46324, 55805, 64955, 55882, 55875, 46312, 55799, 46327, 55893, 55894, 0, 46309, 55880, 46329, 55803, 55789, 55790, 46333, 55794, 55801, 55795, 0, 46331, 46404, 55791, 55784, 55785, 0, 55787, 46314, 55800, 0, 46328, 46402, 64960, 64761, 55802, 55891, 55883, 46310, 55889, 46322, 36061, 46320, 64382, 55895, 46319, 55873, 55796, 55806, 46407, 55877, 55874, 55792, 46403, 55887, 55884, 55892, 46313, 55872, 46406, 0, 55879, 0, 0, 46323, 46326, 0, 55878, 46405, 55797, 54756, 0, 37555, 55888, 55886, 55890, 0, 0, 64943, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36321, 0, 55788, 46400, 0, 38355, 0, 56929, 56928, 56902, 47037, 0, 56927, 56905, 56906, 0, 47047, 56936, 47042, 56926, 35265, 56899, 47048, 47038, 56914, 56904, 56907, 56931, 47032, 56938, 56930, 47041, 56919, 47052, 0, 0, 47051, 47045, 0, 0, 56937, 47033, 56917, 56908, 56921, 56933, 47053, 64872, 47035, 56916, 40119, 56909, 47044, 36323, 47043, 56912, 56922, 56932, 56903, 56913, 47036, 56923, 47049, 47040, 56910, 47039, 56901, 56915, 56935, 46334, 47792, 56918, 57964, 56920, 56934, 47046, 56911, 47034, 47050, 48368, 56900, 0, 56925, 64192, 36325, 64100, 56924, 35143, 0, 0, 0, 0, 36324, 0, 0, 0, 0, 0, 36327, 36328, 0, 58026, 47789, 57981, 58020, 47778, 0, 57966, 47791, 0, 47735, 57965, 58032, 47793, 57969, 58019, 64967, 57971, 58035, 58031, 47733, 47777, 58963, 47790, 47741, 57967, 64944, 58030, 47779, 58027, 58040, 57973, 57982, 37957, 38870, 58038, 58028, 47740, 0, 0, 57980, 47734, 47732, 47784, 64710, 38980, 57978, 57975, 57976, 0, 58034, 0, 58039, 58037, 47738, 58041, 47742, 47783, 36329, 57968, 58874, 57977, 0, 47736, 47788, 47785, 47739, 58021, 57972, 47786, 58023, 47780, 47782, 47731, 36330, 58025, 58017, 57970, 47781, 58033, 58036, 57979, 58024, 65104, 47737, 48351, 58022, 58873, 0, 58029, 64972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57974, 58948, 58958, 48354, 58957, 58969, 48356, 58955, 40359, 58959, 48367, 0, 58950, 48359, 64973, 58962, 59888, 48371, 48370, 58964, 58947, 58974, 48365, 0, 48355, 58967, 0, 58971, 58976, 58965, 58953, 48358, 48361, 48369, 48364, 0, 58956, 58018, 64975, 0, 58952, 58975, 48360, 38354, 48363, 58977, 48352, 58966, 58875, 58972, 49375, 36333, 58954, 0, 48353, 58949, 48357, 58876, 47787, 58945, 64698, 58970, 58946, 58944, 48362, 0, 58968, 0, 58878, 58961, 58960, 58973, 58951, 48366, 0, 0, 0, 0, 0, 64965, 59891, 64978, 48969, 48894, 59968, 59883, 48961, 59895, 48968, 48963, 59893, 60751, 59899, 59970, 59898, 59881, 59896, 59972, 59974, 48893, 59973, 48964, 48970, 40156, 48967, 0, 59902, 48966, 59897, 38351, 59885, 59890, 36334, 59901, 48965, 48962, 48892, 48960, 59889, 0, 58877, 59884, 59887, 59969, 59892, 59882, 60750, 59971, 59886, 59900, 0, 0, 0, 64980, 60753, 49379, 0, 0, 49367, 38636, 38635, 49371, 60755, 60761, 60759, 49369, 49370, 49377, 60762, 60754, 49372, 0, 60758, 60757, 60763, 49378, 0, 49373, 49376, 60756, 49380, 49374, 49381, 49368, 60760, 0, 60752, 0, 37046, 61431, 64963, 0, 49777, 61428, 61430, 0, 49775, 61426, 61427, 61422, 0, 39083, 59894, 61423, 49776, 61419, 0, 49773, 61432, 49774, 61420, 61421, 61425, 49779, 0, 49778, 0, 0, 61424, 50040, 62047, 62053, 50041, 62044, 50038, 50035, 62055, 50039, 38638, 50036, 62046, 62049, 62050, 62051, 62054, 0, 61429, 62045, 50037, 62052, 62056, 62048, 36340, 0, 0, 62557, 50282, 62560, 50283, 62568, 62559, 62556, 0, 62558, 62562, 62565, 62564, 62567, 62555, 0, 50281, 62563, 62566, 62569, 62561, 62931, 62932, 62936, 62937, 0, 62934, 62935, 62933, 64992, 50409, 35943, 0, 0, 36342, 50552, 63211, 0, 36343, 63208, 63209, 63210, 50553, 0, 63461, 63460, 36858, 63663, 50676, 63661, 63664, 63662, 63733, 50775, 50789, 63907, 63852, 38864, 63906, 63952, 63953, 42229, 35794, 0, 34782, 36344, 42695, 51777, 0, 0, 52062, 37081, 43103, 35911, 43106, 64240, 52063, 0, 43104, 43105, 64993, 36345, 0, 64995, 52568, 52570, 52565, 52562, 52564, 0, 0, 36346, 43684, 64355, 0, 0, 43682, 37030, 0, 52566, 43683, 52563, 52560, 43681, 52567, 0, 52561, 43685, 52569, 0, 0, 0, 0, 53167, 39280, 53171, 0, 37355, 44215, 38768, 39023, 64994, 0, 53174, 0, 44207, 44210, 44212, 44214, 44211, 53170, 53169, 0, 44209, 53172, 53173, 0, 53166, 44213, 39154, 44208, 39676, 35180, 65021, 53168, 0, 39262, 0, 0, 0, 38333, 53879, 53880, 53881, 44880, 0, 44876, 53870, 64996, 53878, 53883, 44881, 37350, 53868, 53874, 53867, 53877, 64997, 64998, 53873, 44877, 44879, 53882, 0, 53866, 53869, 53875, 64999, 53876, 53884, 53872, 0, 44878, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45677, 54862, 37972, 0, 54864, 54860, 39352, 54872, 54858, 54871, 45673, 54856, 55899, 54866, 45676, 38889, 54867, 54870, 0, 54874, 0, 54863, 37702, 54868, 0, 0, 45674, 45675, 54873, 54861, 54857, 54875, 0, 54865, 0, 0, 54869, 0, 0, 0, 54859, 0, 46408, 46409, 55909, 46415, 39011, 55897, 55906, 55896, 46412, 55904, 55902, 0, 55903, 46410, 0, 55907, 38332, 0, 65005, 65015, 0, 55900, 55898, 46411, 55901, 55905, 39024, 38646, 36521, 46413, 0, 0, 0, 55908, 37969, 0, 0, 36419, 0, 35674, 56944, 56951, 56953, 56993, 65006, 47066, 56939, 0, 47058, 65008, 56954, 47063, 56994, 47054, 65012, 56957, 39925, 56941, 56958, 56940, 0, 47068, 36078, 56952, 47055, 56995, 0, 47060, 56945, 47065, 56956, 56943, 56950, 56946, 56942, 47057, 47064, 47062, 47059, 47067, 47056, 56949, 38782, 47061, 0, 65009, 0, 56955, 39893, 56947, 39619, 0, 38856, 41179, 37328, 56948, 0, 40932, 58049, 36829, 47796, 37353, 0, 58045, 58051, 58047, 0, 47798, 58046, 58050, 58042, 39136, 58044, 47797, 0, 37578, 0, 38999, 58048, 58043, 35921, 47799, 0, 47794, 0, 65003, 58052, 39753, 47795, 58983, 58980, 58992, 58986, 58988, 48372, 58982, 58990, 40310, 40623, 58989, 58987, 0, 58993, 48375, 58984, 58991, 0, 48373, 40140, 0, 58979, 58981, 48374, 58978, 58994, 65002, 58985, 0, 36337, 59978, 48977, 65019, 0, 59989, 59987, 48971, 59977, 59980, 59981, 59976, 48981, 48982, 59975, 59990, 59985, 48975, 48972, 59984, 59982, 0, 0, 48978, 59986, 48973, 36435, 48974, 0, 59983, 48976, 59979, 0, 59988, 48979, 59991, 59992, 48980, 64207, 0, 49383, 49390, 60764, 60770, 0, 60768, 49386, 49385, 49382, 60766, 0, 0, 38649, 49388, 49387, 49384, 0, 60769, 60765, 60767, 0, 49389, 39103, 40521, 0, 49783, 61435, 0, 49780, 49781, 61437, 49782, 61434, 36007, 61433, 62060, 61436, 0, 62061, 50042, 62059, 0, 39882, 62058, 0, 62057, 50043, 65022, 37596, 50284, 0, 0, 62570, 62571, 65089, 37324, 37346, 0, 62940, 62939, 50410, 0, 62938, 63212, 63213, 0, 0, 63462, 63665, 65092, 34655, 63734, 63932, 50809, 63942, 42230, 35795, 43686, 43687, 65095, 0, 44216, 0, 0, 0, 0, 49391, 42231, 0, 43688, 44882, 47069, 42232, 0, 45678, 47800, 51554, 65096, 53175, 53885, 0, 58053, 0, 49392, 42233, 43689, 53176, 53177, 55910, 46416, 0, 0, 56996, 41188, 0, 47070, 58054, 0, 65099, 48376, 65100, 50044, 42234, 55911, 42235, 36287, 42697, 51778, 42696, 43109, 43108, 43107, 52064, 0, 0, 40568, 43690, 0, 43691, 52571, 0, 53178, 0, 53181, 44218, 53179, 0, 44217, 53180, 44219, 0, 53922, 53921, 53886, 44883, 0, 54877, 54878, 45679, 54876, 54879, 46418, 45680, 65105, 0, 46417, 55915, 55914, 37974, 55912, 55913, 0, 55916, 56998, 56997, 57001, 40289, 57000, 56999, 47801, 58057, 37975, 58056, 47802, 58055, 58995, 0, 58996, 48377, 0, 59993, 59994, 39270, 0, 62066, 50045, 62065, 62064, 62062, 62063, 50411, 62572, 63214, 63735, 0, 42236, 35797, 51621, 42439, 51622, 0, 41065, 0, 51779, 51780, 0, 0, 0, 0, 52070, 0, 0, 52066, 0, 52065, 43692, 52069, 43111, 52067, 43110, 52071, 52068, 0, 0, 52575, 53182, 52573, 52580, 39092, 43693, 0, 43696, 52581, 52577, 0, 52578, 0, 52572, 43695, 52574, 43694, 52579, 0, 52576, 0, 0, 53186, 44221, 44222, 41033, 53189, 53183, 0, 53188, 0, 53184, 44220, 53187, 53185, 0, 0, 0, 0, 0, 0, 0, 53928, 53925, 0, 53927, 44888, 44887, 44885, 53924, 53929, 44884, 44886, 53926, 54887, 53923, 53930, 41036, 0, 40549, 0, 0, 54882, 54886, 0, 54885, 55918, 55929, 0, 0, 54888, 39093, 54883, 55917, 45684, 0, 0, 45683, 54881, 54884, 45685, 0, 45682, 45681, 54880, 54889, 0, 0, 0, 55920, 55927, 0, 46420, 55926, 55923, 65112, 46422, 65106, 65107, 41061, 55925, 65113, 0, 55919, 55921, 55924, 55922, 46421, 55928, 46419, 47071, 39095, 39096, 57005, 57004, 57002, 0, 47074, 47073, 57006, 39098, 57003, 58058, 47803, 47072, 0, 0, 39099, 57008, 57007, 0, 58061, 58059, 48378, 40892, 47804, 58060, 58998, 0, 0, 0, 0, 48379, 58997, 59006, 59005, 59003, 0, 59002, 58999, 59000, 59001, 59004, 59041, 0, 0, 59999, 59996, 59997, 48983, 59995, 60001, 60000, 59998, 0, 60772, 60773, 49393, 41034, 49394, 60771, 40647, 49785, 61438, 49784, 50046, 0, 50081, 50285, 62574, 62573, 62941, 63215, 50554, 63464, 63463, 63465, 42440, 53190, 44889, 45686, 54890, 42441, 51623, 42237, 36009, 0, 51781, 39086, 0, 0, 52076, 52074, 52075, 52072, 43112, 52073, 37590, 0, 0, 0, 64225, 52589, 37332, 43699, 52587, 52583, 52586, 0, 52582, 43701, 52585, 64222, 43698, 43697, 65115, 43700, 52588, 52584, 0, 0, 0, 0, 44226, 44229, 53198, 53197, 53196, 44223, 53205, 53195, 35923, 44225, 53935, 0, 53202, 53200, 44228, 0, 53192, 53203, 34751, 53194, 53204, 53201, 53193, 65118, 44224, 53206, 53191, 44227, 64471, 65114, 38085, 0, 53940, 53931, 53942, 64202, 53934, 53945, 53946, 53932, 53944, 53941, 53939, 53943, 44895, 0, 44893, 39105, 38748, 53937, 65140, 53933, 38771, 53936, 53947, 53938, 44894, 53199, 0, 44890, 44892, 64070, 0, 0, 0, 38756, 54904, 54893, 54891, 65128, 54892, 38478, 54899, 38757, 54900, 54896, 45691, 54901, 54898, 54895, 35930, 45689, 54894, 45687, 45690, 54897, 54905, 44891, 45688, 54903, 54902, 45692, 0, 0, 0, 35233, 38394, 0, 37588, 65129, 55934, 64325, 0, 39112, 55969, 46432, 37103, 55975, 39113, 39114, 55977, 55970, 46426, 55974, 55973, 46427, 46433, 0, 46434, 55976, 46424, 55933, 55931, 55971, 55930, 46431, 55932, 55972, 55978, 46425, 46430, 46428, 46429, 37997, 38071, 65132, 46423, 0, 37995, 0, 0, 47081, 57015, 47080, 57019, 37628, 57009, 38379, 57020, 65139, 38766, 65119, 57010, 57011, 34744, 57021, 57018, 57016, 57017, 57013, 57012, 64957, 57022, 47077, 37589, 57014, 0, 47082, 47076, 47083, 65135, 65209, 47079, 47078, 65137, 34680, 58062, 47806, 47805, 64443, 0, 58067, 41173, 48380, 47807, 38395, 65143, 47809, 58068, 47075, 47808, 58064, 58066, 58063, 65145, 58065, 65141, 0, 0, 59051, 37981, 0, 59050, 59047, 48448, 60002, 48449, 59046, 65148, 48382, 0, 59048, 59045, 59042, 59049, 59043, 59044, 48381, 37700, 36518, 0, 0, 60777, 0, 60006, 0, 60005, 60007, 0, 60774, 48986, 37587, 60003, 38072, 48984, 34681, 48988, 48987, 60004, 60008, 0, 48985, 64625, 60781, 49397, 49786, 49398, 49395, 60778, 60776, 0, 60779, 0, 60782, 49396, 60780, 60775, 0, 38750, 61506, 61509, 62069, 61504, 36013, 62575, 61510, 0, 50082, 61508, 49787, 61505, 61507, 61511, 62070, 0, 62068, 34753, 0, 65191, 0, 50083, 62067, 37994, 0, 0, 50286, 37859, 0, 0, 39119, 50413, 63217, 50412, 63219, 63216, 63218, 50640, 63666, 42442, 52590, 53948, 53949, 45693, 57023, 48989, 50084, 50555, 63667, 42443, 41177, 52591, 65194, 0, 0, 53207, 0, 53208, 0, 41151, 41037, 41144, 0, 53950, 53951, 45694, 45729, 41166, 0, 0, 55979, 0, 57026, 57025, 57024, 58069, 0, 58070, 58071, 47810, 41143, 0, 59053, 59052, 0, 0, 60009, 48990, 48991, 65193, 60786, 60783, 60784, 60785, 61513, 61512, 49788, 62071, 62942, 42444, 35267, 44230, 0, 45730, 57027, 65195, 42445, 0, 53952, 45731, 0, 0, 46435, 46436, 0, 42446, 42447, 51782, 43114, 43113, 44231, 53209, 55980, 42448, 42449, 42450, 42451, 40436, 35181, 0, 43115, 43116, 52078, 52077, 40059, 0, 43702, 52594, 52592, 52593, 0, 39122, 0, 0, 0, 40873, 53210, 53211, 0, 65202, 44235, 44233, 65201, 44234, 44232, 0, 38873, 0, 41156, 44896, 38006, 0, 0, 0, 44900, 44899, 53953, 44898, 44897, 0, 53954, 39288, 0, 45734, 54907, 54906, 45732, 45733, 65203, 0, 0, 46438, 46437, 55982, 39123, 65204, 55981, 45735, 0, 39124, 0, 0, 0, 47085, 57029, 47086, 57028, 40889, 0, 0, 58072, 59054, 48450, 60010, 0, 0, 38001, 60787, 0, 50086, 50085, 0, 0, 50556, 42452, 52595, 39125, 65208, 45736, 58073, 47811, 50900, 0, 52079, 52080, 0, 0, 52596, 43704, 43705, 0, 0, 43703, 65210, 0, 0, 0, 44239, 44240, 44237, 44238, 0, 53212, 0, 0, 53213, 44236, 0, 0, 0, 0, 53955, 40540, 44904, 44905, 65211, 45739, 53961, 0, 44910, 44908, 53962, 53957, 44907, 44906, 44901, 53960, 53959, 53956, 44909, 41028, 53958, 44902, 0, 44903, 39127, 0, 45740, 54945, 54946, 45741, 54908, 54910, 54948, 54947, 54909, 0, 45737, 45738, 0, 55990, 46443, 46442, 55984, 46440, 39128, 55987, 46444, 55988, 46445, 55985, 46439, 46441, 55989, 0, 55986, 55983, 0, 0, 0, 0, 0, 57042, 0, 57031, 47088, 47091, 47090, 47095, 47094, 57043, 57041, 57034, 57038, 57037, 47092, 57040, 57036, 57044, 57035, 47093, 47087, 47089, 65212, 57033, 0, 0, 0, 40958, 58075, 47815, 58079, 47814, 58076, 47813, 0, 57032, 57039, 58078, 0, 47816, 58080, 58077, 58074, 0, 0, 59057, 59061, 59063, 59059, 59058, 59056, 48453, 48451, 48456, 48457, 59060, 48454, 59055, 48455, 47812, 59062, 48452, 0, 0, 65213, 60012, 0, 60011, 60019, 60013, 60018, 60015, 48992, 60017, 0, 0, 48993, 0, 48994, 40413, 60016, 60014, 0, 0, 40673, 0, 49400, 60788, 0, 0, 49399, 60791, 60789, 60790, 0, 0, 49401, 39130, 40415, 65215, 61517, 65214, 49825, 61518, 40683, 0, 49789, 61519, 49790, 61516, 61520, 0, 61514, 0, 0, 50087, 62072, 50088, 50287, 0, 61515, 50288, 40537, 41052, 0, 50414, 62943, 0, 50558, 63220, 50557, 65216, 63466, 50677, 50678, 38007, 39132, 63948, 65217, 0, 44241, 53214, 39134, 46446, 46447, 42453, 42698, 51783, 0, 52081, 43117, 0, 43706, 0, 44242, 44243, 44244, 54950, 53963, 44911, 0, 0, 45742, 54949, 65219, 0, 55992, 46449, 0, 55991, 46448, 0, 0, 57045, 48458, 59067, 59064, 59065, 59066, 0, 0, 65224, 0, 0, 60792, 65225, 61521, 0, 0, 0, 62577, 62576, 0, 63221, 42454, 52597, 44912, 0, 0, 0, 46450, 57046, 0, 65226, 58081, 0, 48459, 60020, 0, 61522, 62578, 42455, 0, 0, 43707, 44247, 53215, 44248, 44246, 0, 44245, 53964, 44913, 0, 65227, 44914, 44915, 0, 0, 0, 45744, 54951, 45743, 0, 40898, 0, 0, 35947, 55993, 45745, 46451, 57047, 47096, 47097, 0, 47817, 0, 47818, 48460, 48996, 60021, 48995, 0, 60793, 49402, 0, 61523, 62579, 42456, 43118, 52600, 52599, 43708, 52598, 43709, 52601, 0, 53221, 44251, 44250, 53223, 53222, 44255, 0, 44254, 0, 0, 44249, 0, 53217, 53218, 53219, 0, 44256, 53216, 44252, 53220, 44253, 39108, 0, 38064, 38065, 53967, 53971, 53969, 53968, 0, 53972, 0, 0, 0, 53973, 53974, 53966, 0, 53965, 65233, 44917, 44918, 0, 53975, 53970, 41153, 54960, 65234, 53976, 44919, 44916, 0, 41165, 0, 54954, 0, 54953, 0, 54955, 54956, 54958, 54957, 54962, 45749, 45746, 45750, 54952, 45751, 54961, 45748, 54959, 45747, 0, 65235, 0, 0, 39141, 55996, 55998, 55994, 55995, 0, 0, 55999, 56001, 56002, 55997, 56000, 46452, 0, 0, 57051, 0, 57056, 57048, 57052, 0, 65238, 57057, 57053, 47098, 47171, 0, 47101, 57049, 57050, 47822, 47174, 47102, 0, 47172, 47100, 57055, 47173, 57054, 47169, 47099, 47170, 57058, 58086, 58088, 0, 0, 37348, 0, 0, 0, 0, 36807, 38062, 47168, 35407, 38066, 58083, 47820, 58089, 47821, 58087, 58082, 58085, 58090, 47819, 58084, 0, 48462, 59071, 59070, 0, 48465, 48463, 59068, 48461, 59069, 0, 48464, 0, 36820, 0, 60029, 0, 60065, 39146, 60030, 60022, 60026, 60025, 60023, 48998, 48999, 48997, 60024, 60027, 60028, 0, 49000, 0, 49472, 60835, 0, 49404, 60795, 49406, 49473, 0, 65240, 49405, 60834, 60796, 49403, 60833, 60794, 60798, 60797, 0, 40416, 61525, 49828, 49829, 49826, 39150, 49827, 0, 0, 61524, 38340, 62075, 64744, 0, 50089, 0, 62073, 62074, 39151, 62580, 62583, 62581, 62582, 62944, 0, 0, 50415, 63467, 63668, 0, 50679, 63736, 63737, 50790, 42457, 44257, 35950, 56003, 0, 57059, 0, 42458, 43119, 0, 43710, 64216, 53224, 53225, 44920, 0, 0, 56004, 46453, 47175, 49474, 60836, 62076, 62584, 42459, 65244, 0, 0, 52641, 52602, 52604, 52606, 52605, 52603, 43711, 41134, 0, 0, 0, 44258, 53234, 0, 53229, 53226, 0, 40268, 65245, 0, 0, 44260, 44261, 53232, 53231, 53230, 53227, 53228, 53235, 44259, 0, 0, 0, 39153, 0, 0, 0, 39155, 44924, 38081, 44964, 44963, 53985, 53979, 53977, 0, 44961, 54969, 44922, 53982, 53986, 53988, 53984, 53978, 44962, 53983, 53981, 44921, 53989, 44965, 53987, 44925, 53980, 0, 44926, 44923, 39157, 0, 0, 64079, 38626, 0, 0, 0, 0, 37968, 45753, 38562, 54970, 0, 39158, 54963, 54965, 54967, 38629, 54968, 54966, 45754, 0, 54971, 39159, 54964, 41030, 38627, 0, 0, 0, 0, 0, 0, 0, 56008, 46454, 56016, 0, 56005, 0, 56017, 0, 56006, 56007, 39160, 0, 56015, 56014, 56011, 45752, 46455, 56009, 56012, 46456, 56013, 56010, 0, 0, 0, 0, 0, 0, 0, 57070, 40676, 57074, 47182, 0, 58096, 47185, 57072, 63958, 0, 57069, 57064, 57066, 57067, 57060, 38083, 47181, 0, 0, 47180, 38082, 47176, 57063, 0, 47183, 0, 47184, 57062, 57065, 57073, 47178, 47179, 57071, 57061, 0, 0, 0, 58098, 47824, 58100, 57068, 58102, 47828, 58103, 58099, 0, 47825, 58095, 47827, 58092, 58097, 58101, 58094, 0, 65249, 47177, 65257, 58091, 47826, 58093, 0, 38628, 0, 35244, 38619, 48468, 59073, 48472, 0, 48470, 0, 0, 47823, 0, 59080, 59081, 48467, 0, 65250, 59079, 59082, 48469, 48466, 59075, 59072, 59077, 59074, 48473, 59076, 38084, 65251, 59078, 48471, 0, 65255, 40955, 0, 49002, 60072, 0, 60066, 60070, 60076, 60077, 60073, 60074, 60071, 35929, 60068, 0, 49004, 49001, 60067, 60069, 0, 49003, 60075, 37833, 49478, 38120, 64342, 60842, 60837, 49477, 37061, 0, 49475, 0, 60844, 49476, 60840, 60841, 60838, 60845, 61526, 0, 49479, 60839, 0, 60846, 60843, 41128, 0, 0, 61530, 0, 0, 61527, 0, 49830, 0, 61531, 61533, 61532, 61528, 61529, 0, 0, 62115, 0, 50090, 0, 62078, 62114, 62077, 62116, 0, 0, 62113, 0, 62586, 62589, 62585, 50289, 62587, 62588, 62590, 50290, 50292, 50291, 62945, 65253, 62947, 0, 62946, 39165, 39163, 65256, 63222, 36543, 0, 63669, 63738, 42460, 35800, 65271, 52082, 43712, 52643, 43713, 43714, 52642, 0, 53240, 53239, 44262, 44265, 44264, 44263, 53236, 53238, 53237, 0, 0, 53992, 44967, 53996, 53995, 53994, 53990, 44966, 44970, 44973, 36712, 38086, 44974, 53991, 53993, 44972, 44971, 44969, 44968, 54978, 40426, 54976, 54972, 45755, 0, 54973, 45756, 54974, 54975, 54977, 0, 45757, 0, 0, 56021, 64617, 56020, 56019, 56018, 0, 0, 0, 0, 57078, 47186, 0, 57075, 57077, 40154, 47187, 65267, 47188, 57076, 40050, 0, 0, 65264, 35273, 58177, 0, 58105, 58106, 0, 47831, 47829, 47830, 58179, 39233, 58178, 58110, 58109, 58108, 58107, 58176, 58104, 39234, 59083, 59088, 59086, 65269, 0, 37335, 59085, 59084, 59087, 0, 60078, 38092, 49005, 49480, 60848, 65272, 49481, 60847, 61535, 61534, 49831, 0, 62117, 50091, 62625, 50593, 63223, 0, 63671, 63670, 51624, 44266, 44267, 54979, 0, 47190, 42461, 43122, 43121, 43120, 0, 0, 38824, 52644, 65276, 0, 43716, 43715, 36062, 44270, 64959, 53242, 53245, 53243, 34739, 44268, 44269, 0, 65278, 53241, 53244, 0, 44981, 0, 0, 0, 54003, 54005, 54004, 44978, 53999, 0, 38609, 44976, 44975, 0, 44979, 44977, 0, 44980, 54002, 53997, 53998, 54001, 54000, 0, 0, 38101, 0, 0, 38096, 0, 54982, 54983, 54981, 0, 54980, 45758, 0, 0, 0, 0, 46461, 0, 56022, 56024, 56026, 46460, 39236, 0, 46458, 0, 56023, 46459, 56025, 46457, 0, 0, 57153, 57079, 57082, 57086, 47194, 57084, 0, 57083, 57080, 57081, 47192, 57152, 47191, 0, 47196, 47195, 47193, 0, 57085, 0, 0, 0, 58185, 0, 58184, 0, 35939, 58180, 34747, 41139, 47832, 58183, 58182, 47833, 34740, 0, 0, 0, 0, 48478, 0, 59090, 38095, 48479, 48475, 48477, 40954, 48474, 48476, 0, 0, 37349, 60079, 40042, 49008, 60081, 60080, 36425, 58181, 49010, 49009, 49006, 49007, 0, 0, 0, 0, 0, 60853, 0, 60851, 49482, 60852, 0, 60854, 60850, 60849, 0, 0, 61536, 49834, 49832, 49833, 0, 0, 36428, 0, 62118, 62119, 50093, 0, 50092, 62627, 62628, 62626, 0, 63224, 63225, 34761, 0, 42462, 51784, 43123, 0, 52645, 43718, 43717, 52646, 0, 36429, 53312, 44271, 53246, 44272, 0, 39539, 44982, 54008, 54006, 54012, 44983, 54007, 54011, 54009, 54010, 0, 0, 54984, 54986, 39239, 45759, 36017, 54985, 45760, 46498, 46497, 46462, 56027, 0, 0, 0, 0, 57156, 47197, 47198, 0, 57155, 57154, 0, 0, 0, 0, 58186, 47835, 47834, 58187, 58188, 0, 48481, 48480, 36432, 60085, 59091, 59093, 59092, 60084, 60082, 60086, 60083, 0, 49011, 36431, 39241, 0, 60855, 49483, 60856, 60857, 36433, 36434, 49835, 49836, 0, 50293, 39602, 35237, 50641, 42463, 0, 0, 0, 39244, 0, 53313, 0, 40952, 0, 0, 0, 0, 54013, 44984, 36438, 39245, 37322, 36439, 0, 46010, 46009, 0, 38113, 46500, 56029, 46499, 56028, 36935, 0, 36824, 36440, 57157, 0, 47836, 58189, 47837, 0, 0, 0, 0, 0, 0, 50294, 62629, 0, 42699, 43719, 52647, 34723, 44274, 38123, 44273, 53314, 53315, 0, 0, 54080, 54082, 44985, 0, 54084, 54087, 54085, 36444, 38227, 0, 54086, 54083, 54014, 44986, 54088, 54081, 40933, 0, 0, 0, 54995, 45766, 55004, 45763, 0, 54997, 45767, 40790, 45761, 0, 54992, 55005, 54993, 54990, 45765, 38223, 45762, 36446, 54996, 54999, 45764, 55000, 45768, 55001, 54991, 54998, 55002, 54994, 54989, 54987, 0, 0, 55003, 39274, 0, 56031, 0, 0, 0, 0, 56036, 0, 40036, 40153, 56032, 56038, 46503, 54988, 56033, 46501, 56030, 46508, 56034, 46507, 56035, 46509, 46504, 46510, 46505, 0, 46506, 36445, 46502, 0, 56037, 0, 0, 0, 0, 0, 0, 0, 47201, 57168, 39248, 57171, 57159, 57164, 57158, 47203, 0, 57162, 0, 0, 39249, 57160, 47202, 36450, 57167, 57166, 57163, 57165, 57161, 47841, 57170, 47199, 57169, 0, 0, 39250, 0, 0, 0, 0, 0, 0, 58205, 0, 47848, 58200, 0, 47847, 58190, 0, 58192, 47840, 58197, 58196, 58199, 47845, 58194, 58193, 36456, 0, 47844, 47839, 58195, 47842, 58201, 58203, 0, 58198, 58191, 47843, 0, 0, 48489, 47838, 36449, 40793, 58204, 0, 0, 0, 0, 0, 0, 0, 59097, 48482, 34768, 59099, 0, 48483, 35763, 0, 48485, 59102, 0, 59094, 47846, 59100, 0, 0, 0, 0, 59096, 0, 47200, 48488, 0, 0, 48484, 34745, 48486, 48487, 0, 49014, 59101, 59095, 48490, 0, 59098, 40797, 36454, 0, 0, 0, 60096, 60091, 0, 0, 60101, 49012, 60093, 49016, 60099, 60090, 60087, 60102, 49489, 49017, 60098, 60088, 49015, 60092, 49019, 60089, 60094, 49018, 60097, 60100, 36018, 0, 0, 0, 60875, 60876, 60860, 60867, 60865, 0, 0, 49487, 60872, 60095, 36462, 60863, 40804, 60873, 49486, 60862, 60861, 60871, 60868, 60870, 0, 60858, 60874, 49484, 0, 60869, 60878, 60866, 49488, 49485, 60864, 60859, 60877, 49013, 39251, 0, 0, 64184, 0, 0, 0, 61539, 0, 39252, 61537, 61543, 49840, 61541, 61540, 49842, 61546, 49841, 0, 61547, 61544, 49838, 61545, 61538, 49839, 49837, 62123, 61542, 0, 0, 61548, 0, 0, 62120, 0, 36464, 0, 50098, 50096, 62122, 0, 62124, 62121, 50097, 50094, 50095, 50099, 0, 40801, 50296, 36466, 62634, 0, 62633, 62631, 62630, 62632, 0, 50295, 50297, 0, 0, 50416, 41067, 0, 62949, 62948, 0, 40768, 63226, 0, 63228, 63230, 63229, 63227, 38125, 0, 50595, 50594, 0, 0, 50643, 50642, 50644, 63469, 63468, 0, 63739, 63672, 63740, 50776, 38126, 50777, 63853, 40893, 0, 50814, 42700, 36475, 52648, 0, 0, 53317, 53318, 53316, 39255, 38135, 44275, 40799, 53319, 53320, 53321, 0, 36467, 54089, 54095, 40802, 0, 54093, 44987, 54091, 0, 54092, 54094, 38134, 0, 0, 54090, 45769, 0, 55006, 45771, 55008, 45770, 55007, 0, 0, 0, 39256, 0, 56040, 46511, 0, 56042, 56039, 55009, 0, 46512, 36469, 63963, 56041, 0, 0, 0, 36978, 0, 38136, 57174, 0, 47204, 57172, 47205, 57173, 47206, 0, 0, 39258, 47849, 58209, 58206, 58208, 47850, 47851, 58207, 0, 0, 41136, 36019, 0, 59103, 0, 36473, 59104, 36472, 48491, 59106, 59105, 38131, 41569, 0, 60106, 60107, 60103, 39087, 60104, 49020, 49021, 60105, 0, 49495, 41138, 0, 49491, 49496, 49492, 49494, 49490, 0, 49493, 0, 0, 0, 36474, 49843, 60879, 0, 62126, 0, 62125, 39260, 62635, 50298, 50299, 63297, 62950, 36476, 63296, 36477, 63741, 63908, 42701, 35801, 0, 43124, 35234, 52649, 43720, 0, 44278, 53324, 44276, 53322, 44281, 44277, 44282, 44280, 53323, 44279, 44991, 44990, 54106, 44999, 54099, 54105, 44995, 54098, 54104, 54102, 44994, 44996, 54101, 44989, 54100, 45000, 44997, 45001, 44998, 54097, 54096, 54103, 44992, 44988, 44993, 0, 0, 40663, 0, 0, 55024, 55017, 0, 46517, 55016, 0, 45775, 45782, 45779, 45785, 45784, 45780, 0, 55010, 55013, 0, 55012, 45776, 55014, 55023, 45777, 55011, 55020, 55021, 45778, 55018, 45783, 45773, 45781, 55015, 45772, 55019, 0, 0, 55022, 0, 0, 41142, 56059, 56050, 46514, 56057, 56054, 56046, 56055, 46516, 56047, 0, 56043, 0, 40514, 47212, 56052, 36516, 46513, 56058, 0, 46520, 46522, 56045, 0, 0, 46521, 56048, 46515, 56056, 56049, 56053, 0, 56051, 46518, 56044, 46523, 45774, 46519, 46524, 0, 0, 0, 0, 0, 47208, 57181, 57183, 57185, 57189, 0, 57179, 57177, 47210, 0, 57184, 57188, 57180, 57176, 0, 57175, 36519, 0, 35958, 57186, 57178, 57182, 47211, 0, 47209, 57190, 47207, 57187, 34663, 58226, 38210, 0, 0, 0, 0, 47854, 58218, 48504, 58228, 47857, 58232, 47863, 58213, 39037, 0, 58229, 58210, 38741, 58231, 58214, 36520, 47870, 47867, 58230, 58224, 47853, 47861, 47860, 36522, 47859, 47865, 0, 58211, 47866, 58225, 47862, 47852, 58227, 47855, 47856, 47864, 58216, 58215, 58212, 0, 58220, 58217, 58221, 47869, 0, 58233, 47858, 58222, 58223, 35235, 58219, 39264, 39266, 0, 47868, 38140, 39265, 0, 0, 59111, 48496, 48505, 48501, 59108, 38138, 48498, 48502, 59120, 48492, 59112, 0, 48500, 36526, 36530, 59115, 59110, 48499, 48503, 59109, 0, 48497, 0, 59119, 48494, 59118, 59117, 48506, 58738, 48493, 36528, 59116, 59107, 0, 48507, 59114, 48495, 0, 39267, 38826, 0, 0, 0, 0, 59113, 0, 0, 0, 38139, 49058, 49063, 49022, 60120, 60111, 60123, 60115, 60121, 49064, 49057, 60108, 60114, 60124, 60117, 60122, 60110, 0, 0, 60118, 49059, 60116, 49062, 49061, 60112, 60113, 60109, 60119, 49060, 60126, 60125, 0, 36539, 0, 60890, 60886, 49503, 0, 60880, 49497, 49513, 60892, 49505, 49501, 60883, 49508, 49511, 60894, 49500, 60885, 49509, 60896, 60893, 60881, 49504, 49498, 49512, 60888, 49507, 60882, 49502, 60895, 49506, 49499, 60889, 49510, 60887, 0, 0, 60891, 0, 0, 0, 61550, 61556, 49849, 61559, 49844, 49845, 61551, 61558, 61553, 49850, 49847, 36060, 61549, 0, 49846, 61555, 61557, 49848, 61554, 61552, 0, 39030, 0, 36513, 62136, 50103, 50104, 50100, 36020, 50101, 36535, 62132, 62130, 0, 62134, 50106, 62135, 62128, 62127, 62131, 62129, 50102, 62133, 62636, 50302, 50301, 62637, 40358, 62639, 62638, 50337, 0, 0, 0, 62955, 62952, 62953, 0, 62951, 62954, 50418, 62956, 40624, 50417, 0, 63298, 36536, 50645, 50647, 63470, 50646, 63673, 63808, 63810, 63742, 63809, 50796, 0, 0, 40304, 0, 0, 0, 0, 35182, 0, 0, 0, 0, 0, 0, 0, 35183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35185, 0, 0, 0, 0, 0, 0, 0, 35186, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42702, 35189, 44283, 53871, 45002, 0, 0, 45786, 56060, 56061, 36540, 36541, 0, 60127, 49514, 60897, 0, 36542, 49851, 40401, 62138, 62137, 50338, 62957, 38141, 63299, 50680, 51785, 35799, 35802, 43721, 43125, 0, 0, 53325, 0, 0, 54112, 54107, 54111, 54109, 45003, 54110, 54108, 0, 55025, 0, 56062, 56128, 57193, 57194, 47214, 47215, 57192, 57195, 57191, 47213, 0, 47936, 41186, 47216, 58234, 0, 48508, 59121, 48509, 40937, 49065, 60130, 60128, 60129, 60900, 60899, 60898, 0, 0, 0, 62139, 0, 50105, 62140, 63300, 50681, 63674, 42703, 43723, 43722, 53327, 44284, 64936, 0, 53326, 54114, 35559, 45004, 55026, 54113, 36546, 0, 0, 45788, 55029, 55027, 55028, 45787, 0, 56130, 56131, 56129, 36548, 47219, 57197, 57196, 57198, 47218, 47217, 0, 0, 59122, 59124, 39268, 48510, 59123, 60131, 49066, 61561, 39269, 61560, 50107, 62141, 50109, 50108, 62640, 62958, 50419, 42704, 53328, 44285, 54117, 45006, 54116, 54115, 0, 45005, 0, 55035, 0, 55037, 55030, 55031, 45789, 55032, 45790, 55036, 55033, 55034, 45791, 0, 46526, 46527, 0, 56132, 0, 0, 0, 57199, 57200, 38222, 58238, 47939, 47937, 47938, 58235, 58236, 0, 58237, 59129, 39091, 59130, 48545, 59127, 59126, 59128, 59125, 49069, 60132, 49067, 49068, 60902, 49515, 60901, 61352, 0, 61562, 61563, 49852, 36555, 49853, 49516, 62142, 62143, 62641, 50339, 42705, 35807, 42706, 44286, 43724, 45007, 53329, 36558, 0, 0, 46528, 42707, 44353, 53330, 53331, 44352, 44354, 42708, 0, 53332, 45009, 54118, 45011, 45008, 45010, 0, 55105, 45792, 36559, 55104, 55038, 39272, 57201, 0, 0, 58273, 39273, 48546, 0, 49070, 60134, 60133, 0, 60903, 0, 39275, 36561, 62959, 39276, 0, 42709, 52083, 52650, 44355, 53333, 0, 54120, 0, 36564, 36565, 45012, 54119, 45013, 0, 0, 0, 55107, 0, 0, 45794, 55106, 55108, 0, 45793, 0, 0, 0, 0, 56134, 56135, 56133, 46529, 0, 39277, 0, 47220, 0, 47221, 0, 47941, 41150, 58275, 58274, 47940, 0, 0, 36566, 41148, 41141, 59131, 0, 41140, 59132, 0, 0, 0, 0, 60135, 0, 0, 49520, 49519, 49517, 49518, 49521, 0, 61564, 49855, 49854, 62144, 62642, 0, 0, 0, 50597, 50596, 42710, 35808, 0, 53755, 0, 47223, 46530, 47222, 47942, 0, 42711, 51625, 42712, 42713, 0, 0, 52651, 52086, 0, 52087, 43127, 0, 52084, 43126, 0, 43129, 52085, 43131, 43130, 52088, 43128, 0, 35253, 0, 43729, 43727, 52653, 0, 43726, 0, 36573, 0, 43731, 43733, 43730, 0, 52656, 52652, 43734, 0, 43728, 43132, 0, 43732, 52655, 40541, 39281, 52654, 0, 43725, 0, 35246, 40424, 0, 0, 0, 0, 53339, 44359, 44360, 53341, 38245, 53335, 53338, 53347, 53345, 0, 44361, 53351, 44364, 53348, 53340, 53337, 0, 0, 56137, 53346, 44356, 53349, 53334, 53343, 44358, 44363, 53344, 44367, 44365, 0, 53336, 44362, 0, 53342, 44366, 44357, 53350, 0, 0, 39282, 0, 0, 35676, 45018, 0, 45027, 45016, 45014, 54122, 45022, 45019, 54124, 35249, 0, 45021, 54123, 54121, 54126, 45026, 45024, 56136, 0, 54127, 54125, 45015, 41152, 0, 45017, 45020, 36575, 45023, 38246, 45025, 0, 39284, 0, 39286, 0, 0, 0, 39287, 0, 39289, 55118, 45796, 40410, 55109, 55111, 36576, 55112, 0, 55120, 55116, 55114, 0, 55117, 55121, 45797, 45801, 55110, 0, 55119, 0, 45799, 37724, 45798, 55115, 55113, 0, 45795, 45800, 0, 40422, 0, 35679, 0, 0, 38243, 0, 46536, 56145, 0, 0, 56143, 46538, 0, 0, 0, 38247, 56138, 57249, 0, 46537, 56142, 40419, 0, 56139, 46533, 46539, 56144, 46535, 56141, 47943, 46534, 56140, 46540, 46532, 46531, 39292, 0, 0, 39293, 39294, 57207, 57205, 0, 57211, 0, 57203, 57250, 57208, 0, 57202, 47227, 47267, 57213, 0, 57206, 0, 47230, 36091, 35675, 47228, 57214, 47225, 47224, 57209, 47229, 46541, 0, 57212, 57204, 47226, 47265, 47266, 0, 39331, 0, 0, 47948, 47944, 0, 47949, 58278, 39332, 0, 58277, 58279, 47946, 58276, 47947, 58282, 58281, 58280, 0, 47945, 0, 0, 0, 39334, 0, 59201, 0, 59204, 48552, 59203, 48551, 48547, 48548, 48549, 59200, 59134, 48550, 0, 59202, 59133, 0, 39336, 60137, 60147, 49073, 49072, 35518, 60141, 60143, 0, 60138, 0, 60142, 60136, 60145, 49071, 60144, 60140, 40545, 60146, 0, 60139, 49524, 60904, 60910, 49528, 49530, 49527, 49526, 39338, 49525, 49523, 60905, 60908, 49522, 60909, 41160, 49529, 60907, 0, 60906, 49856, 0, 49857, 61601, 61565, 61566, 0, 0, 62146, 0, 62145, 50110, 62644, 50340, 62643, 0, 62960, 63301, 50598, 63811, 63812, 50648, 42714, 39339, 43735, 56146, 47950, 49531, 60911, 42715, 0, 45029, 45028, 56147, 65220, 0, 0, 60148, 42716, 44368, 0, 39106, 56148, 56149, 56150, 47951, 49074, 42717, 0, 43736, 53352, 45030, 54128, 45802, 0, 56151, 47268, 0, 47952, 49075, 49532, 49858, 62645, 42718, 43737, 0, 0, 45031, 55122, 46542, 0, 47953, 58283, 59205, 0, 36584, 0, 41146, 42719, 46543, 57251, 47954, 42720, 52657, 53353, 44369, 0, 0, 54130, 64887, 0, 45034, 36590, 45032, 45033, 45035, 40639, 0, 54129, 0, 0, 55127, 55124, 55126, 45803, 45805, 45804, 55123, 45806, 55125, 0, 56152, 56153, 35266, 56154, 57254, 0, 57255, 0, 57253, 57256, 0, 47269, 0, 57252, 0, 47955, 0, 0, 59210, 59206, 59209, 59211, 59208, 59207, 39340, 60149, 60150, 60151, 49076, 49077, 60913, 60912, 60914, 0, 61603, 61602, 0, 62148, 38251, 62149, 62147, 38252, 50341, 0, 62646, 62647, 0, 63302, 63471, 63675, 42721, 43133, 0, 49533, 42722, 0, 55128, 56155, 39343, 50753, 51786, 39242, 35190, 36680, 51787, 51789, 42723, 51790, 51788, 0, 0, 52130, 52131, 52091, 0, 64494, 0, 0, 52129, 43169, 0, 43170, 52092, 52090, 52089, 52093, 43134, 52094, 53354, 0, 0, 0, 52662, 43740, 52661, 52663, 0, 43739, 52668, 43743, 52658, 52672, 52678, 43750, 52675, 43747, 39342, 52665, 52671, 52673, 36603, 52660, 43746, 43741, 52666, 43748, 43751, 43745, 0, 43738, 52670, 52664, 52677, 43753, 43749, 43744, 52669, 45036, 52667, 43742, 43752, 36048, 52659, 0, 52674, 52676, 35666, 0, 0, 0, 0, 0, 39344, 0, 0, 0, 0, 35191, 36673, 44386, 44380, 44388, 44385, 53361, 53364, 44381, 39345, 53355, 0, 44374, 44384, 0, 44387, 44389, 53410, 53367, 36681, 44373, 53409, 44377, 44375, 44370, 53359, 0, 53374, 53363, 53366, 53413, 64077, 44390, 53373, 44382, 53368, 53412, 53365, 53369, 53372, 40420, 36021, 53357, 53411, 53371, 64489, 39764, 53356, 39346, 53360, 44383, 44378, 44371, 44376, 44372, 44391, 53358, 54181, 44379, 0, 40552, 53370, 52801, 0, 0, 0, 0, 0, 0, 0, 0, 54184, 45050, 36682, 54134, 36674, 54179, 54141, 36689, 54194, 0, 54186, 0, 54142, 0, 54185, 54136, 54140, 54197, 45053, 54189, 54180, 45037, 54195, 54132, 0, 54188, 0, 45052, 45047, 54131, 45045, 45044, 45049, 54187, 45041, 45048, 53362, 56156, 54182, 38982, 0, 54138, 45051, 54139, 54177, 45054, 54133, 54191, 0, 54190, 54198, 45043, 45040, 54196, 54192, 54183, 54178, 45046, 45042, 54135, 45038, 54193, 45039, 0, 54137, 39348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36597, 64853, 0, 0, 40141, 0, 0, 0, 0, 0, 0, 0, 0, 35192, 0, 0, 0, 55134, 55136, 55141, 55161, 45820, 45810, 0, 55133, 45821, 45822, 55144, 55151, 55157, 0, 55138, 0, 55145, 0, 36691, 45888, 55159, 55154, 45818, 45816, 55150, 55146, 55132, 45807, 55137, 55129, 36719, 45815, 45817, 55142, 55139, 45812, 55155, 45809, 55140, 55162, 55148, 36451, 55147, 45808, 0, 45819, 0, 45811, 55130, 55135, 55152, 55158, 45889, 55131, 55143, 55149, 45814, 36694, 0, 55160, 55153, 55156, 0, 0, 0, 0, 0, 0, 0, 0, 65142, 0, 0, 0, 45813, 40902, 56172, 56160, 46551, 56189, 56231, 56234, 46549, 56168, 56227, 56169, 56183, 46562, 56179, 46559, 64172, 56180, 56157, 0, 56228, 0, 36696, 46568, 56225, 56181, 56236, 56176, 57288, 0, 56239, 46566, 56174, 56186, 46569, 46548, 56178, 56237, 56171, 56164, 56175, 0, 56163, 56161, 46544, 56229, 56170, 56232, 38984, 56233, 46552, 46557, 46553, 46561, 56190, 46554, 56182, 56166, 0, 46546, 56158, 56226, 56235, 56165, 46560, 56240, 56177, 0, 56173, 0, 46545, 46565, 39351, 56188, 46567, 0, 56184, 46556, 46550, 46558, 46547, 46564, 56185, 56167, 56187, 56162, 56230, 38501, 0, 64108, 0, 40423, 0, 0, 56238, 40546, 0, 0, 0, 38604, 36455, 0, 56159, 64629, 0, 39038, 0, 0, 57287, 0, 57309, 47189, 57292, 64953, 57290, 57269, 47273, 57285, 57305, 57281, 47281, 57304, 57279, 46563, 57295, 57280, 57302, 47280, 47272, 38908, 57258, 57266, 0, 57291, 57283, 57308, 57286, 47286, 57303, 39161, 47277, 36710, 57289, 57297, 57270, 57296, 0, 57313, 57265, 57298, 38254, 57311, 37445, 57259, 46555, 36704, 57273, 57272, 47279, 40657, 57276, 57278, 57293, 57310, 47282, 65229, 47283, 39353, 57264, 47275, 57268, 57306, 47284, 0, 47276, 47278, 47285, 57312, 57299, 57294, 36706, 38732, 57275, 57274, 47274, 57260, 47271, 57284, 57261, 57282, 0, 0, 57271, 57307, 37319, 38239, 0, 47270, 0, 34731, 0, 57267, 0, 39355, 0, 0, 0, 0, 57263, 57301, 57262, 47968, 58323, 36461, 36721, 58306, 0, 38091, 58284, 58314, 47960, 58299, 58309, 47963, 58302, 47961, 58287, 58317, 58286, 58305, 38321, 58285, 0, 0, 58303, 58312, 58310, 58298, 58293, 58291, 39666, 58292, 58311, 58322, 58300, 47962, 0, 58295, 0, 58315, 0, 47965, 58294, 58288, 58304, 47969, 38595, 39357, 47957, 47966, 58296, 58290, 0, 47959, 57300, 47958, 58307, 0, 47956, 47971, 47964, 58308, 58297, 58289, 58316, 58301, 47970, 58320, 47967, 58319, 0, 58313, 58318, 0, 0, 41167, 58321, 0, 0, 36717, 0, 0, 39358, 36596, 0, 36722, 38372, 0, 59251, 59252, 59239, 59238, 59234, 48564, 0, 48556, 59254, 59253, 57257, 59231, 59235, 59229, 0, 59248, 59233, 39359, 59255, 59226, 59224, 59236, 59246, 59241, 48566, 59215, 0, 59245, 37444, 34775, 64421, 48567, 57277, 59227, 59218, 59221, 59259, 59228, 59219, 59217, 59214, 39360, 48560, 59237, 48559, 48563, 59232, 59240, 48553, 59256, 59260, 48555, 0, 59223, 59243, 59247, 59220, 59257, 48562, 0, 48561, 59212, 48565, 59250, 59222, 59242, 59216, 59230, 59225, 48557, 48558, 59244, 59261, 59258, 59249, 0, 64948, 36727, 0, 0, 0, 39361, 0, 0, 59213, 0, 48554, 60233, 0, 60224, 60227, 64185, 49083, 60229, 60153, 60225, 60231, 49080, 49084, 49078, 36672, 64068, 60155, 60236, 0, 0, 60230, 39362, 60156, 60245, 60239, 60152, 60998, 60158, 49079, 36700, 60234, 0, 60244, 49087, 36029, 60241, 60157, 60228, 60232, 60226, 60246, 60243, 60240, 49081, 49082, 49086, 60154, 60247, 49085, 60237, 39364, 39365, 60235, 0, 36731, 0, 60238, 61011, 60992, 60997, 61010, 60996, 60923, 60993, 0, 49570, 0, 60916, 61005, 61007, 60915, 49569, 61009, 61001, 49576, 61008, 60994, 49578, 60921, 60242, 61002, 60999, 60917, 61013, 49572, 0, 34678, 49573, 60919, 61000, 36022, 61012, 61003, 60925, 49575, 49571, 61004, 60926, 61014, 60920, 60995, 61006, 60922, 60924, 0, 49867, 60918, 49577, 49860, 49534, 0, 0, 0, 0, 49574, 49864, 61619, 0, 61609, 61604, 61610, 61620, 61624, 61623, 49866, 49865, 0, 0, 61611, 61625, 61614, 61606, 36771, 61608, 61607, 61613, 61618, 61605, 61612, 61617, 49863, 0, 61615, 0, 49861, 61616, 49859, 49862, 62165, 61621, 0, 0, 50114, 36046, 62157, 62161, 62153, 62156, 0, 62164, 50112, 62169, 62162, 39366, 62154, 62170, 62163, 50115, 50116, 62167, 0, 62155, 50111, 50113, 62150, 62158, 62152, 38605, 62168, 62166, 62151, 62159, 0, 0, 0, 62654, 50117, 62160, 50343, 50345, 50342, 38599, 62659, 62651, 62649, 62653, 62650, 36773, 0, 62655, 62657, 50346, 50348, 0, 62656, 50349, 50347, 62658, 64187, 0, 35937, 38256, 50344, 0, 34735, 37736, 0, 36734, 50420, 62961, 62967, 50422, 62652, 62966, 0, 62973, 62964, 62971, 62970, 62648, 62965, 61622, 62974, 62963, 62968, 36778, 62972, 62962, 0, 63306, 50421, 62969, 41040, 0, 63476, 63307, 63305, 63303, 63304, 63308, 0, 50649, 63474, 63472, 63477, 63475, 0, 63478, 50650, 63473, 0, 37075, 63676, 0, 38230, 63813, 63814, 63815, 0, 0, 63943, 63933, 51791, 43754, 0, 44392, 0, 54200, 54199, 45120, 45890, 55164, 0, 0, 55163, 0, 46570, 47288, 0, 47287, 47289, 0, 58324, 59262, 60248, 60250, 60249, 0, 49579, 61015, 61626, 63909, 42724, 36792, 52681, 52682, 52680, 52679, 43755, 39368, 53417, 53415, 0, 0, 53414, 0, 44393, 44395, 44394, 53416, 0, 36783, 0, 0, 0, 0, 0, 0, 54212, 54209, 54207, 0, 0, 45121, 54210, 45126, 54204, 54219, 0, 54221, 54205, 39369, 45123, 54222, 54217, 54203, 54208, 54218, 54214, 54211, 0, 45128, 54220, 54206, 0, 38265, 54215, 54201, 45127, 45124, 54213, 0, 54216, 54202, 45125, 45122, 0, 0, 40777, 0, 45900, 55205, 45899, 39370, 55208, 55211, 45896, 45894, 55166, 55209, 55207, 55204, 55212, 55213, 55215, 55216, 55165, 45893, 55202, 55201, 55214, 45895, 55203, 45897, 45892, 55206, 45901, 0, 45898, 55210, 0, 0, 0, 46577, 56255, 0, 56244, 46574, 0, 57319, 56253, 56241, 46572, 56246, 46575, 56250, 56248, 46578, 46571, 0, 0, 56242, 56245, 46576, 0, 56243, 0, 56254, 56252, 56247, 56249, 56251, 46573, 0, 39371, 0, 0, 0, 0, 0, 57320, 57326, 57316, 57322, 47290, 57318, 47296, 0, 0, 47295, 0, 47294, 57325, 47297, 47298, 57315, 57328, 47299, 47293, 47292, 57324, 47300, 57314, 57317, 57327, 57323, 0, 0, 58356, 58345, 47291, 0, 0, 0, 0, 47978, 58333, 58354, 58334, 47973, 0, 58331, 0, 58340, 58332, 47975, 58326, 58353, 47976, 58350, 58351, 58327, 47981, 58342, 0, 58336, 58343, 58330, 0, 58355, 58347, 58341, 58325, 47977, 58348, 0, 47980, 58352, 0, 58346, 47974, 58344, 0, 58338, 47972, 58329, 58337, 58349, 58335, 0, 0, 58339, 0, 0, 0, 0, 0, 48577, 57321, 59314, 59323, 59313, 59309, 59306, 48578, 59304, 47979, 59297, 48576, 59303, 48575, 59308, 59305, 59321, 59316, 59310, 59315, 48571, 59307, 59326, 59298, 59299, 59322, 48572, 59327, 48574, 59328, 59312, 58328, 59318, 59311, 59320, 59317, 40405, 36784, 0, 59302, 48569, 59325, 48570, 59300, 48573, 60260, 59319, 59324, 0, 64122, 0, 0, 0, 60257, 48568, 49088, 60267, 60263, 40543, 60261, 60256, 60271, 0, 39373, 41161, 49092, 0, 60252, 60264, 60265, 60255, 60254, 60268, 0, 60258, 60253, 60259, 0, 60270, 60251, 60269, 60266, 49090, 49089, 0, 0, 49091, 60262, 61643, 39643, 0, 0, 0, 41158, 61017, 49585, 61021, 61018, 61025, 61031, 61020, 36788, 61040, 49582, 61034, 61023, 61035, 61030, 61037, 61022, 49587, 49586, 61024, 61038, 61016, 61036, 49580, 41175, 61028, 61027, 61032, 61019, 49584, 0, 49588, 61026, 61033, 49589, 61029, 0, 41159, 0, 0, 49581, 49583, 61639, 61637, 0, 41027, 61644, 61641, 61645, 36789, 61630, 61638, 61649, 61039, 61634, 49871, 59301, 61629, 61642, 61636, 61633, 61628, 61627, 61648, 0, 61632, 61631, 49869, 61640, 36786, 49868, 0, 0, 49870, 61635, 61647, 41057, 62174, 62175, 0, 50121, 62172, 50118, 62180, 0, 50122, 62182, 62171, 61646, 62184, 62173, 40542, 50119, 62179, 0, 62181, 62176, 62183, 62178, 62177, 50120, 0, 41059, 62661, 62662, 0, 62664, 50350, 50351, 62665, 62663, 40936, 62660, 0, 63042, 63045, 63041, 0, 50426, 63043, 50425, 50424, 50423, 63044, 63313, 63311, 40114, 63310, 63040, 63312, 63046, 63309, 38268, 63481, 63447, 63479, 50651, 63480, 63482, 0, 63679, 50682, 63678, 63677, 50683, 0, 50778, 63854, 63911, 63910, 63912, 42725, 53418, 40903, 54223, 54224, 36795, 36796, 0, 56256, 0, 63047, 63680, 42726, 44396, 53419, 36844, 0, 0, 55217, 45902, 0, 56258, 56257, 46579, 0, 47301, 59329, 48579, 0, 48580, 36800, 0, 37738, 49093, 50684, 42727, 35812, 40060, 0, 53420, 43757, 53422, 53421, 44397, 0, 54225, 38305, 54232, 45129, 54230, 54228, 0, 54235, 54226, 54227, 45130, 0, 45134, 0, 0, 54236, 45133, 54234, 54231, 54229, 45131, 45132, 54233, 65260, 0, 0, 38307, 45904, 55218, 0, 45909, 55234, 45908, 55236, 35909, 36024, 55224, 45906, 55235, 0, 55219, 45907, 55231, 55227, 55229, 55223, 55230, 36801, 34743, 45903, 55226, 41042, 55225, 55221, 0, 55232, 0, 0, 55228, 55220, 0, 55222, 45905, 55233, 0, 39376, 0, 0, 46582, 56269, 0, 36803, 36804, 56265, 56267, 56262, 56261, 56259, 0, 56266, 56268, 56264, 38308, 56263, 46580, 46581, 0, 0, 36806, 0, 40544, 0, 56271, 47309, 57330, 57336, 57331, 57332, 63960, 57337, 0, 47311, 0, 47303, 47310, 57329, 56260, 47306, 47304, 57335, 57334, 47305, 47307, 57333, 47302, 0, 47308, 0, 0, 0, 0, 38309, 58358, 47988, 0, 0, 58434, 58433, 0, 58363, 47990, 58432, 58359, 58360, 47982, 47984, 40115, 58365, 58357, 47986, 47985, 58361, 58366, 58364, 47987, 58362, 39377, 65265, 56270, 47983, 0, 0, 59330, 59337, 48582, 0, 59341, 48586, 59333, 59331, 0, 59340, 0, 48581, 59339, 48583, 48584, 59332, 48585, 59338, 59334, 59335, 59336, 47989, 0, 0, 0, 60272, 60284, 0, 49098, 60279, 60281, 39378, 49096, 60273, 60277, 0, 60280, 49094, 49097, 60283, 60275, 60276, 60282, 60274, 60278, 49095, 61042, 0, 61041, 49591, 61047, 49593, 0, 0, 49590, 61043, 49594, 61044, 0, 0, 61045, 61048, 40130, 49592, 0, 61654, 39379, 0, 61657, 0, 61651, 61653, 38311, 0, 61652, 61655, 61656, 61046, 61650, 38313, 0, 50125, 62188, 62191, 62193, 62186, 62187, 62190, 62192, 50126, 50124, 50123, 62189, 62185, 62666, 50352, 38310, 62667, 0, 0, 63049, 50427, 63051, 50428, 63048, 63050, 50600, 0, 63314, 50599, 63485, 63484, 0, 63483, 40029, 0, 63816, 63817, 63819, 63818, 0, 51792, 42728, 39138, 44398, 55237, 46583, 0, 57338, 49872, 36809, 62194, 41154, 36810, 43171, 0, 0, 0, 45911, 0, 39380, 0, 45910, 41145, 56272, 46584, 56274, 56273, 0, 0, 57339, 47312, 58435, 58438, 58437, 0, 58436, 59342, 59344, 59343, 39768, 49100, 36813, 0, 41172, 49099, 0, 49595, 61049, 61051, 61050, 0, 0, 49873, 0, 0, 0, 62196, 62195, 0, 62668, 50353, 0, 36814, 50429, 63316, 63315, 50779, 35813, 0, 0, 0, 0, 35193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43172, 53423, 44399, 55240, 55238, 0, 0, 55239, 56276, 56277, 57411, 56275, 0, 57340, 57409, 57408, 57410, 47313, 57342, 57341, 57412, 36816, 58441, 58439, 0, 58440, 59347, 59345, 0, 0, 59346, 60285, 61052, 61053, 49874, 0, 62197, 62669, 50354, 0, 63052, 63317, 50601, 0, 63486, 63820, 43173, 0, 44401, 44402, 53424, 0, 0, 53425, 44400, 0, 45140, 0, 45138, 0, 45137, 45144, 45136, 45145, 54237, 45142, 0, 45139, 45143, 45141, 45135, 0, 0, 45919, 38326, 45913, 55244, 45918, 0, 0, 45920, 45914, 0, 45915, 0, 55242, 0, 39382, 45912, 38373, 55243, 45917, 0, 0, 55241, 45916, 0, 0, 46660, 0, 46662, 0, 39383, 56280, 46661, 46585, 46589, 38325, 47332, 57417, 56282, 46590, 0, 0, 56285, 56286, 46659, 0, 56288, 41162, 56290, 0, 56291, 56279, 56278, 56292, 46658, 56289, 56287, 0, 46656, 46587, 46663, 56283, 56284, 56281, 0, 46657, 0, 0, 46588, 0, 46586, 57416, 47327, 47322, 0, 0, 47317, 40957, 47333, 47318, 0, 47314, 47329, 47326, 47328, 0, 47319, 47324, 47315, 47316, 57424, 57421, 57413, 57418, 0, 47330, 57425, 47331, 47321, 0, 41048, 57415, 0, 57423, 57419, 57422, 57420, 47325, 57414, 47320, 0, 0, 0, 58444, 47992, 47995, 0, 58446, 36822, 48037, 58445, 47997, 39384, 48591, 58447, 0, 48036, 58443, 48038, 0, 36819, 0, 47993, 0, 47323, 47996, 0, 47994, 47998, 48034, 47991, 48039, 48035, 36837, 48033, 58442, 0, 0, 0, 36841, 48598, 0, 48594, 0, 39385, 0, 48601, 0, 59350, 48602, 59362, 59355, 48587, 59363, 59357, 48597, 59358, 0, 48596, 59361, 48590, 59359, 59349, 48589, 60330, 48595, 0, 48592, 36087, 48600, 0, 59348, 0, 59352, 48588, 59351, 59353, 59354, 48599, 59356, 59360, 59364, 37500, 48603, 49106, 60325, 60331, 60328, 60286, 60332, 60321, 0, 60327, 0, 49101, 49107, 60333, 0, 40005, 49103, 0, 49113, 49108, 60335, 60329, 49104, 60322, 49114, 60323, 60324, 49115, 49112, 48593, 36072, 49102, 60336, 49116, 0, 49109, 60334, 49105, 49110, 49111, 0, 49603, 61092, 61101, 61098, 61100, 0, 49600, 61093, 36830, 61099, 49596, 61095, 49604, 61091, 61096, 61103, 60326, 61097, 61090, 49597, 61089, 49598, 61104, 49599, 61102, 49602, 61054, 36831, 49601, 0, 61094, 61660, 61674, 61669, 61671, 61659, 49875, 0, 61658, 49878, 49877, 41035, 61673, 61665, 61662, 61668, 0, 61661, 0, 61663, 61672, 61670, 0, 49876, 61677, 61675, 61666, 61676, 61667, 36834, 62201, 50127, 62273, 41164, 0, 63055, 50134, 61664, 62199, 50130, 62200, 62205, 36835, 36836, 50132, 50133, 62198, 62272, 62274, 62202, 62204, 62206, 62203, 62275, 50129, 50135, 50131, 0, 50128, 62672, 39876, 50359, 62670, 0, 39932, 62674, 0, 62675, 50357, 62676, 62673, 38476, 62671, 50360, 50356, 62677, 0, 50358, 50355, 0, 0, 0, 50430, 0, 0, 50496, 63054, 63053, 63056, 63057, 0, 50497, 63318, 63323, 50602, 39670, 63320, 36014, 63319, 63322, 63321, 0, 63555, 0, 50652, 63554, 63552, 0, 63553, 34763, 36839, 0, 50686, 50685, 63681, 63682, 50752, 0, 63821, 63822, 50791, 36840, 50797, 0, 63913, 63944, 35815, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43174, 0, 55245, 0, 55246, 57426, 58448, 59365, 49606, 0, 49605, 61678, 62276, 0, 63556, 43175, 54238, 45146, 45921, 57428, 57427, 48604, 59366, 48605, 61105, 49879, 39386, 0, 0, 50806, 43176, 52683, 54239, 0, 0, 45922, 0, 55247, 55248, 0, 56293, 0, 46664, 47334, 0, 57430, 57429, 57431, 0, 58449, 58450, 48040, 49117, 48606, 49118, 0, 61109, 61106, 61108, 61107, 49607, 0, 61679, 62278, 62277, 52132, 45148, 45147, 54240, 0, 55249, 0, 0, 56295, 56294, 46665, 0, 57433, 57434, 57432, 0, 0, 47336, 47335, 0, 48042, 48041, 0, 59367, 60339, 60337, 60338, 49119, 61111, 61110, 0, 61682, 61681, 61680, 62279, 36845, 63914, 43177, 44403, 38336, 44404, 45149, 45150, 54242, 54241, 55250, 0, 45928, 45926, 45923, 45927, 45925, 45924, 41163, 0, 46666, 56298, 0, 47341, 46668, 46673, 56300, 46675, 46674, 46677, 56299, 56296, 46671, 46667, 46669, 56297, 46676, 46672, 46670, 47343, 47342, 47340, 47344, 0, 47338, 47339, 0, 47337, 0, 57435, 40520, 0, 58452, 0, 48044, 48045, 48043, 39387, 58451, 36851, 58453, 0, 59370, 59372, 36857, 48615, 59373, 48608, 59369, 48607, 48617, 48613, 48614, 48610, 59368, 48609, 59374, 59371, 38337, 48616, 41038, 48611, 48612, 60341, 0, 60343, 60342, 39388, 60344, 49120, 60340, 0, 41060, 49611, 61112, 49608, 49612, 49610, 49609, 61683, 0, 61686, 0, 61685, 36855, 61684, 49880, 62280, 62281, 50136, 62282, 50137, 35248, 41032, 50362, 0, 50361, 63058, 36859, 36854, 50498, 63059, 63324, 50603, 50604, 40412, 63557, 0, 50754, 39389, 35816, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43178, 0, 45930, 45929, 57436, 57437, 0, 48046, 60345, 48618, 60346, 61113, 43179, 0, 53426, 44406, 44405, 0, 54243, 45151, 54244, 55253, 37569, 55252, 0, 55251, 0, 0, 56302, 46680, 40918, 0, 56301, 46679, 0, 0, 0, 56303, 46678, 0, 57439, 57442, 57440, 57441, 57445, 57438, 57446, 57443, 57444, 48048, 58454, 0, 0, 48047, 0, 59378, 59376, 0, 0, 48619, 59375, 59377, 0, 48620, 0, 60347, 41170, 60348, 49613, 36928, 62284, 62286, 62283, 62285, 62678, 63060, 0, 0, 63855, 43180, 44407, 54245, 54247, 54246, 0, 55256, 45932, 0, 55254, 0, 45931, 55257, 35524, 55258, 55255, 39392, 0, 56315, 46688, 56307, 56313, 0, 0, 46683, 46686, 56306, 46681, 56310, 57452, 46685, 0, 56305, 40944, 56311, 56308, 56314, 56304, 56312, 46684, 46687, 56309, 46682, 0, 47346, 57448, 47345, 57455, 57454, 47352, 0, 47353, 57456, 47347, 57453, 47351, 57458, 57449, 0, 57451, 47348, 57447, 57450, 57457, 47349, 57459, 0, 0, 0, 0, 0, 47350, 0, 48049, 58459, 58465, 58457, 58466, 40947, 58456, 58461, 58467, 58464, 58463, 58462, 0, 58455, 58460, 0, 0, 58458, 40383, 48625, 48622, 59387, 59457, 59459, 59456, 59384, 59386, 59461, 59458, 59388, 59462, 59385, 59460, 48623, 48629, 48627, 59379, 48628, 48624, 59380, 59382, 59381, 59389, 59390, 40950, 48626, 38344, 48621, 0, 40538, 59383, 0, 60358, 49122, 0, 60349, 49123, 49126, 60354, 0, 60351, 49125, 39395, 0, 60355, 60356, 60350, 60359, 60352, 60357, 49124, 0, 49121, 60353, 35402, 61119, 49616, 49614, 49617, 49615, 61118, 61115, 61114, 40945, 61117, 0, 0, 61116, 61765, 49886, 61691, 61690, 0, 49881, 61761, 61760, 61687, 61763, 61692, 49885, 61689, 61762, 61688, 49882, 49884, 61693, 49883, 61694, 35495, 61764, 62290, 0, 50142, 62287, 0, 62291, 0, 39398, 50139, 62289, 50144, 40951, 50141, 40941, 62288, 0, 50143, 62292, 50138, 0, 35420, 0, 40366, 50364, 50366, 0, 62681, 50365, 62679, 50140, 62680, 50363, 50499, 50501, 63062, 50500, 63061, 0, 63329, 50605, 63328, 50606, 63326, 63325, 63330, 63331, 63558, 0, 63327, 0, 0, 63686, 63683, 63684, 63685, 50780, 0, 63825, 63824, 63823, 63856, 38345, 63934, 63915, 50798, 43181, 45152, 36936, 0, 0, 39400, 0, 47354, 0, 0, 0, 36937, 0, 0, 36026, 48630, 0, 37041, 60360, 0, 0, 49887, 0, 62293, 36938, 0, 0, 0, 0, 0, 63916, 43182, 43758, 44409, 44408, 39402, 45155, 0, 54248, 45153, 54249, 45154, 0, 0, 55263, 55259, 0, 39889, 45933, 55262, 55261, 55260, 45934, 55264, 55265, 39403, 0, 39404, 56387, 56385, 56389, 56390, 56396, 0, 56392, 56394, 39405, 56386, 56316, 0, 56393, 39406, 0, 56395, 56388, 56391, 56317, 46690, 56384, 56318, 46689, 46691, 0, 47357, 57461, 57463, 57462, 57467, 47355, 0, 57464, 57460, 57465, 57466, 47356, 47358, 57468, 0, 58471, 58470, 0, 58468, 58469, 48051, 48053, 48050, 48052, 59469, 59470, 59465, 36940, 59466, 48632, 48637, 48631, 48638, 48633, 59467, 0, 0, 59468, 59464, 48704, 48635, 0, 0, 48634, 48636, 0, 59463, 36941, 60362, 49128, 38347, 0, 60364, 49130, 60367, 60363, 60361, 60366, 49129, 60365, 0, 49127, 0, 0, 49619, 49622, 61121, 38882, 49620, 61120, 49618, 49621, 61766, 61767, 61768, 49888, 38348, 61769, 0, 49889, 50146, 62296, 62297, 62295, 62294, 62298, 50145, 62685, 62683, 62684, 62686, 62682, 62687, 63064, 40824, 63065, 63063, 50502, 63332, 50607, 63333, 63560, 63559, 0, 35196, 35197, 0, 0, 0, 0, 0, 0, 35198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39261, 0, 0, 0, 0, 0, 0, 0, 43183, 46692, 0, 0, 47424, 39770, 0, 0, 48054, 0, 36944, 49132, 35919, 49131, 0, 0, 0, 0, 50147, 50300, 50503, 43184, 45156, 47425, 36948, 62299, 50902, 39592, 39407, 65259, 40355, 40353, 39235, 39237, 0, 40317, 52134, 0, 39408, 43185, 0, 43188, 43187, 43186, 0, 0, 52133, 39409, 52685, 39410, 52687, 43759, 36028, 40288, 43761, 52684, 52686, 43760, 52689, 52688, 52690, 0, 0, 41123, 0, 0, 0, 0, 0, 53430, 53428, 44412, 53427, 44451, 44414, 44411, 0, 44452, 0, 44413, 44450, 0, 44449, 53429, 0, 44410, 0, 0, 0, 45162, 54251, 54257, 45159, 45166, 36955, 45161, 54254, 54256, 45164, 54250, 54253, 45160, 45157, 54252, 45163, 54255, 45165, 45158, 0, 40667, 0, 0, 55267, 55270, 45936, 0, 45946, 45942, 55268, 40313, 0, 45950, 45943, 45948, 45938, 0, 45935, 45937, 45949, 55269, 45941, 45944, 45940, 45945, 55271, 45947, 45939, 55266, 0, 0, 0, 0, 0, 0, 0, 0, 56397, 46693, 56399, 0, 46695, 46697, 39411, 56398, 46694, 46698, 36962, 46696, 0, 0, 0, 47431, 57507, 47439, 57470, 0, 47440, 47429, 0, 57505, 0, 34749, 47434, 0, 57506, 47427, 47426, 40789, 47437, 47436, 47435, 47433, 47438, 57469, 47428, 47430, 47432, 39929, 0, 48056, 48059, 0, 48063, 48057, 48062, 48060, 0, 48055, 36965, 48061, 48058, 38624, 0, 0, 59474, 48707, 48705, 0, 59475, 39102, 48708, 48706, 59473, 59472, 0, 49136, 59471, 49134, 49133, 60368, 48709, 49135, 60369, 49138, 60370, 49137, 49624, 61123, 49623, 49628, 49626, 49627, 49891, 49625, 61122, 60371, 49890, 49892, 0, 50148, 50149, 0, 62688, 0, 50654, 50653, 43190, 0, 0, 51797, 45167, 0, 51794, 51795, 51793, 0, 51796, 0, 0, 52138, 52135, 52140, 52136, 43191, 43194, 0, 52137, 43193, 52139, 36968, 0, 43192, 0, 0, 0, 36972, 52693, 52695, 43764, 52691, 52694, 52692, 43762, 43765, 0, 43763, 0, 0, 38360, 0, 53432, 53436, 53433, 0, 44455, 0, 44456, 36970, 53435, 0, 53437, 53439, 0, 44453, 53438, 0, 0, 44454, 0, 0, 0, 0, 0, 55278, 53434, 54258, 54267, 54265, 54260, 54261, 54266, 54268, 45169, 0, 54263, 54259, 45168, 45170, 54262, 54269, 54264, 0, 0, 45985, 55281, 55273, 55279, 55280, 45986, 0, 55272, 55274, 53431, 55276, 55277, 55275, 46700, 0, 0, 0, 56406, 60372, 56407, 56404, 45987, 46702, 56403, 56409, 56408, 46699, 56412, 56402, 56411, 56400, 56410, 56405, 46701, 0, 57514, 0, 57509, 57515, 57510, 57508, 57511, 47441, 0, 57513, 0, 57512, 47442, 48065, 48064, 58478, 58481, 58473, 58477, 48066, 58476, 58474, 58480, 58475, 58472, 58479, 0, 59481, 48712, 61770, 59478, 59479, 59477, 56401, 48711, 59482, 59476, 48710, 48713, 59480, 60373, 49139, 60374, 60375, 0, 61124, 49629, 61771, 61772, 0, 0, 61773, 62301, 62300, 62690, 0, 62689, 63067, 63068, 63066, 63334, 50608, 43195, 44458, 44457, 45173, 45172, 54336, 54337, 54270, 40882, 45171, 55285, 0, 55286, 55282, 45988, 55283, 40878, 55284, 0, 40880, 0, 35245, 56415, 56417, 56413, 56416, 46703, 56414, 46704, 0, 36974, 56691, 47445, 47444, 0, 47443, 0, 57516, 57517, 40561, 0, 58483, 58485, 48070, 48067, 40522, 48069, 48068, 58484, 58482, 0, 40924, 0, 0, 0, 59489, 59486, 59487, 48717, 59488, 59483, 59484, 48714, 0, 48715, 59485, 48716, 35243, 60379, 40888, 60380, 60377, 60378, 49140, 60376, 0, 0, 0, 0, 0, 61128, 61125, 61127, 49632, 61131, 49631, 61129, 61132, 61130, 61126, 49630, 0, 61775, 0, 61776, 61774, 36976, 61778, 49893, 49894, 62303, 50151, 61777, 62302, 50150, 62693, 62694, 50367, 62692, 35683, 62691, 0, 63069, 50504, 38364, 63561, 63688, 63687, 0, 50755, 50781, 63689, 63857, 36977, 50799, 43196, 43766, 0, 47446, 0, 50368, 43197, 44459, 45989, 46705, 49895, 43767, 0, 53441, 53440, 54338, 64606, 45176, 45174, 45178, 54340, 0, 45177, 45175, 0, 35145, 0, 0, 54339, 45992, 55292, 38491, 45991, 45993, 55362, 45995, 55294, 55360, 55287, 45994, 55363, 0, 0, 55289, 0, 55290, 55288, 45990, 35920, 55361, 55291, 55293, 38054, 0, 0, 56429, 36821, 56428, 56426, 56418, 56433, 56421, 56431, 56438, 56430, 46713, 40563, 46709, 56419, 0, 56425, 46711, 36981, 56424, 46712, 46714, 56427, 39415, 46706, 46707, 56439, 56437, 34738, 56436, 56422, 0, 56434, 0, 46710, 0, 0, 36031, 0, 46708, 56435, 56420, 56423, 56432, 39417, 0, 38499, 38329, 0, 58554, 57527, 0, 57520, 57539, 57548, 57523, 47457, 38100, 57536, 47447, 47449, 47461, 57521, 0, 64762, 47450, 47452, 47462, 47451, 36983, 0, 0, 37035, 47460, 57529, 0, 57518, 47458, 57528, 47454, 57546, 47459, 57544, 57532, 57542, 47456, 57519, 57545, 57540, 40269, 57547, 47448, 39418, 0, 47463, 47453, 0, 37603, 57525, 38843, 57533, 57537, 36984, 57541, 47455, 57524, 57522, 57534, 0, 0, 0, 39419, 57531, 57530, 38880, 57535, 57538, 0, 57543, 0, 0, 0, 58488, 38620, 48071, 58532, 58490, 48076, 48080, 58541, 58549, 58534, 48072, 40104, 58538, 57526, 38770, 48073, 58545, 58550, 58542, 37952, 58544, 58553, 58546, 58494, 58537, 37618, 0, 48081, 0, 48077, 58492, 58539, 48075, 58533, 48074, 58547, 58530, 58489, 48078, 58552, 0, 0, 58491, 58543, 58540, 58535, 58487, 58486, 58529, 58548, 48079, 58551, 58493, 58531, 48722, 0, 39421, 0, 0, 39420, 48730, 48725, 59556, 59553, 59495, 48720, 0, 63959, 38474, 48719, 48726, 0, 38616, 39422, 59493, 48724, 59505, 59491, 59492, 48718, 59555, 48728, 59508, 59513, 59507, 60398, 59503, 59511, 59509, 59496, 59490, 59517, 48727, 59518, 36939, 59512, 0, 59501, 59499, 59494, 0, 64065, 0, 59502, 59515, 59498, 59514, 59554, 0, 39488, 48723, 38747, 59510, 59516, 59506, 59500, 48721, 39489, 37341, 0, 58536, 59504, 48729, 59497, 37884, 39490, 39491, 0, 38489, 60404, 49143, 60403, 60400, 60484, 49147, 39492, 60481, 60408, 60483, 60393, 60406, 36945, 49149, 0, 60385, 38079, 60383, 60482, 0, 60480, 60414, 60397, 60396, 60386, 49216, 0, 60392, 60402, 60413, 49219, 60485, 0, 49640, 49221, 49150, 60390, 0, 60399, 60382, 60384, 49141, 49218, 49146, 60391, 60407, 60401, 49217, 60381, 49635, 60409, 60412, 49148, 37026, 60395, 49220, 49145, 40107, 38774, 0, 49144, 60405, 60411, 49142, 0, 60388, 60410, 0, 0, 60389, 0, 0, 0, 64597, 65093, 38056, 39493, 64075, 40417, 60394, 61138, 38617, 61143, 49637, 49639, 61149, 49633, 61164, 61155, 61144, 61145, 61154, 0, 49646, 61153, 61137, 61152, 61140, 61165, 49645, 49643, 61141, 0, 61160, 38772, 61146, 61159, 65013, 61161, 61136, 49638, 37605, 61162, 38469, 37338, 61150, 37027, 49642, 61147, 41055, 0, 49644, 61156, 0, 37039, 38847, 49636, 61142, 61157, 37196, 61151, 60387, 61158, 61139, 38522, 49641, 0, 61163, 37342, 49634, 61134, 39494, 65200, 38777, 37996, 61792, 61785, 49897, 0, 61780, 61795, 61787, 61148, 39000, 61797, 61781, 0, 49896, 61791, 49898, 49906, 49904, 61793, 49905, 61783, 37478, 61784, 61789, 61794, 37883, 61133, 49899, 61802, 61799, 61803, 61790, 61786, 61800, 62314, 61788, 0, 49902, 39495, 49901, 61135, 49903, 61796, 61798, 49900, 61801, 61779, 0, 61782, 38729, 0, 0, 38728, 0, 37706, 0, 40162, 62323, 0, 62307, 50155, 62321, 0, 37476, 62305, 50156, 0, 62316, 37343, 62312, 50161, 62322, 62306, 62309, 50153, 62324, 64377, 62317, 62320, 50159, 50164, 50162, 62313, 62308, 38615, 50157, 50158, 62304, 50154, 37699, 50152, 50160, 62319, 50163, 0, 62315, 62325, 50165, 0, 0, 0, 62311, 0, 62318, 0, 64971, 65146, 0, 37339, 35946, 62707, 62786, 62709, 62716, 62310, 62714, 62697, 62784, 50371, 62701, 62718, 62708, 38831, 0, 50370, 38365, 0, 62788, 62710, 37704, 62715, 62717, 62695, 62785, 62706, 62711, 62699, 62703, 62787, 62713, 62696, 62700, 62702, 62712, 39499, 50369, 62705, 0, 64581, 0, 39501, 0, 0, 62698, 0, 0, 0, 37308, 37090, 37044, 38369, 62704, 63073, 63078, 50511, 63080, 39502, 50505, 34733, 63076, 63082, 50510, 50506, 0, 50507, 63072, 63079, 50509, 63077, 50508, 63071, 63075, 63074, 39503, 63070, 63081, 0, 65088, 65091, 50609, 63341, 63344, 63340, 63342, 63343, 63337, 63338, 63335, 38621, 0, 63339, 63336, 50610, 50611, 0, 39505, 63563, 0, 63565, 38567, 0, 0, 37040, 0, 63564, 63566, 0, 50656, 0, 63562, 50655, 50657, 40014, 0, 37955, 63691, 63692, 50756, 63690, 36538, 63827, 63826, 63828, 50783, 63829, 50782, 63830, 63858, 63861, 63860, 50792, 63859, 39506, 0, 64705, 50802, 50800, 50801, 50807, 63936, 63937, 63935, 63945, 0, 35817, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40111, 0, 0, 35837, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39612, 0, 39608, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39591, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39507, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40308, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43768, 35818, 0, 55364, 56440, 59557, 62326, 0, 35819, 43769, 0, 44460, 45179, 0, 37042, 55365, 0, 55366, 45996, 0, 46717, 56442, 56441, 46755, 46716, 56443, 46718, 46754, 46753, 46715, 0, 38377, 38376, 47464, 38374, 0, 57552, 57550, 0, 57551, 57549, 37045, 48082, 39508, 48085, 48087, 48086, 37043, 38375, 48083, 48084, 35664, 59559, 59558, 48731, 59560, 0, 59561, 48732, 0, 0, 0, 60493, 60491, 61171, 0, 60489, 60490, 49222, 60486, 60494, 60488, 60492, 61167, 0, 0, 61169, 0, 61170, 49651, 61166, 49650, 61168, 49647, 49648, 49649, 60487, 0, 0, 49909, 61806, 61804, 61805, 49907, 49910, 49908, 0, 0, 0, 62327, 62328, 50166, 0, 62789, 62791, 62790, 50372, 50512, 63085, 63084, 63083, 0, 0, 35820, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43770, 35835, 51626, 0, 51800, 42729, 51798, 51801, 51799, 0, 0, 0, 52142, 0, 43201, 0, 43202, 52144, 43199, 52143, 52141, 43200, 43198, 39511, 0, 0, 0, 0, 41130, 52696, 52699, 43773, 52698, 52697, 0, 43772, 43771, 40870, 43840, 52700, 43774, 39372, 0, 0, 0, 0, 53446, 44462, 44463, 44464, 53447, 53443, 44461, 53444, 0, 53445, 53442, 0, 40025, 0, 45220, 0, 0, 45217, 54341, 45218, 45221, 54342, 0, 45182, 45180, 45181, 45219, 0, 0, 0, 0, 39349, 45997, 55369, 46005, 55368, 0, 55371, 46001, 55370, 46763, 45999, 46002, 45998, 46003, 46004, 46000, 0, 0, 37054, 55367, 46759, 56445, 0, 56483, 40879, 0, 56482, 46764, 46760, 46761, 56444, 56446, 56481, 46756, 46758, 0, 46762, 46757, 38386, 0, 57555, 57553, 57554, 47466, 47467, 37055, 57556, 47465, 48088, 0, 48090, 48089, 0, 58555, 0, 0, 58556, 59563, 37057, 59562, 65252, 0, 49223, 49224, 60495, 49225, 0, 61174, 0, 61172, 0, 61173, 49652, 0, 61807, 50167, 0, 50903, 0, 49653, 43841, 0, 45222, 54343, 37063, 0, 55372, 46006, 46765, 56484, 56486, 46767, 46766, 46768, 46769, 56485, 47470, 47471, 47469, 48091, 47468, 57557, 0, 0, 0, 48092, 59564, 60496, 49226, 49654, 61808, 61812, 49913, 61809, 49914, 49912, 61813, 49915, 61811, 0, 62329, 49911, 50168, 0, 63693, 0, 0, 43842, 46008, 46007, 0, 0, 0, 0, 46770, 56488, 56487, 46771, 0, 37604, 57561, 47475, 47472, 57560, 47474, 57558, 47473, 0, 57559, 0, 58557, 48093, 0, 59567, 40786, 48733, 59565, 48734, 48735, 59566, 48736, 0, 60497, 0, 49230, 49227, 49232, 60499, 49228, 60498, 49231, 0, 0, 49229, 0, 61177, 61179, 0, 37083, 49655, 61178, 49656, 61176, 61175, 41062, 61815, 61814, 49916, 61816, 62334, 50170, 62333, 62330, 50169, 62331, 62332, 0, 62792, 62793, 50373, 37074, 50515, 0, 34667, 63086, 37076, 0, 50513, 50514, 63087, 0, 0, 50612, 50613, 63345, 39515, 38397, 50757, 63695, 50759, 0, 63694, 63696, 50758, 63831, 34737, 63917, 0, 0, 0, 0, 0, 35780, 43843, 0, 0, 35942, 47476, 37086, 58558, 0, 59568, 49233, 49234, 40164, 43844, 37089, 48737, 50171, 44465, 0, 0, 0, 49235, 0, 50658, 44466, 55373, 0, 56489, 40518, 56491, 0, 56490, 38481, 57565, 57562, 47477, 0, 47478, 57563, 57564, 0, 58560, 58565, 48094, 58559, 58561, 58568, 58563, 58567, 58564, 58562, 58566, 48095, 0, 64344, 59571, 37094, 59569, 48739, 0, 48738, 59570, 48740, 0, 0, 0, 0, 60502, 0, 0, 60501, 49236, 60500, 61180, 38480, 61182, 61249, 61248, 37095, 49657, 61181, 61857, 49917, 61821, 61858, 49918, 0, 61819, 0, 61822, 61820, 61817, 49984, 61818, 0, 0, 37096, 39517, 62369, 40826, 0, 62371, 62370, 39772, 62794, 40828, 62795, 0, 64594, 37097, 63088, 37098, 50615, 39518, 50614, 63567, 63568, 50760, 63697, 40822, 50793, 0, 44467, 46772, 58570, 58569, 59573, 59572, 0, 37099, 49658, 61251, 61250, 61861, 61859, 61862, 61860, 0, 0, 50172, 62372, 62373, 62374, 37100, 63089, 0, 63346, 0, 63698, 35822, 0, 0, 0, 0, 0, 0, 44468, 37102, 0, 60503, 61252, 37318, 44469, 0, 37106, 48096, 0, 60504, 49985, 61863, 50173, 0, 62796, 62797, 50516, 63569, 44470, 46011, 46012, 55374, 46773, 46774, 56492, 46775, 0, 47482, 0, 47484, 57567, 57568, 57566, 47479, 47480, 47483, 47481, 64700, 35444, 58571, 48097, 48098, 0, 0, 59580, 48743, 59575, 59574, 38487, 59579, 48741, 0, 40175, 49243, 0, 59576, 59581, 59578, 59577, 0, 48742, 0, 49241, 40927, 60506, 49237, 0, 60507, 37111, 37110, 60505, 0, 49240, 49238, 49242, 0, 49239, 0, 0, 0, 0, 0, 61253, 0, 61258, 61254, 61257, 49659, 39774, 60884, 61256, 61255, 37112, 49988, 49986, 49989, 49987, 61864, 61865, 61866, 49990, 0, 0, 36092, 62378, 50240, 62376, 0, 50241, 62375, 62377, 50174, 62801, 62798, 0, 62799, 62800, 63090, 50518, 37113, 50517, 36041, 63348, 63347, 50616, 64106, 0, 0, 50659, 50761, 50784, 63832, 63918, 63919, 35823, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44471, 56493, 0, 0, 57569, 58572, 58573, 48099, 0, 48100, 59582, 48744, 40928, 0, 49660, 37186, 61867, 39522, 49991, 62381, 50242, 62380, 62382, 62379, 63093, 62802, 62803, 38249, 50374, 0, 63092, 37188, 37187, 63091, 37185, 63349, 63920, 0, 35824, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44472, 38496, 0, 35825, 44473, 39414, 37193, 45223, 54344, 0, 55375, 37194, 46776, 0, 46779, 46777, 56494, 37195, 46781, 0, 46778, 0, 39524, 46780, 0, 47486, 35519, 57570, 0, 0, 57571, 59584, 0, 47485, 47521, 47522, 0, 58575, 0, 58574, 48101, 0, 48102, 0, 58576, 59583, 48104, 48745, 0, 48103, 0, 39526, 0, 49244, 59585, 48747, 48746, 59586, 59589, 59587, 59588, 48748, 39527, 49249, 49247, 39529, 0, 49246, 60509, 0, 49248, 0, 0, 60508, 61259, 0, 60510, 49245, 60511, 61262, 61260, 61261, 61266, 49995, 61265, 61268, 61267, 61264, 61263, 0, 49661, 0, 39530, 38482, 37197, 61870, 38502, 61869, 49994, 49992, 49993, 40827, 61868, 39531, 62385, 0, 50243, 0, 62384, 62383, 50244, 41068, 62808, 62807, 38503, 62805, 0, 62804, 50376, 50375, 62809, 63350, 50617, 63095, 50519, 63094, 62806, 0, 63351, 50660, 39532, 50785, 63833, 0, 63921, 39533, 35826, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44474, 55376, 61269, 44475, 0, 38506, 58578, 58577, 60512, 0, 0, 61271, 0, 61270, 64746, 49996, 62386, 62387, 50377, 0, 38508, 63922, 45224, 46783, 46782, 57572, 57574, 47524, 57573, 47523, 47525, 57575, 0, 0, 37316, 58580, 58582, 58581, 38519, 58584, 0, 0, 0, 48105, 58583, 58579, 39412, 39535, 0, 58585, 0, 59596, 0, 59599, 59601, 59591, 59595, 59592, 48750, 48753, 48755, 59593, 59594, 48754, 59597, 59600, 59598, 48756, 40875, 48752, 59590, 48749, 0, 48751, 36030, 36545, 49251, 60518, 60516, 60515, 38229, 60521, 0, 60520, 60519, 0, 60514, 49250, 60513, 0, 60517, 49252, 0, 0, 61274, 37202, 61278, 61275, 61277, 61276, 61273, 61279, 61282, 61280, 61281, 49728, 0, 49662, 61272, 61283, 61875, 61878, 61880, 61879, 0, 61873, 61877, 61872, 37203, 61874, 49997, 61871, 37205, 61876, 0, 0, 62400, 62389, 50245, 0, 0, 50246, 62388, 62393, 62399, 62391, 62398, 38237, 62395, 38513, 62394, 62397, 62392, 62390, 40045, 62396, 0, 62816, 62814, 50378, 62813, 62819, 62817, 38515, 50379, 62812, 62810, 0, 62811, 50381, 62815, 50380, 62818, 63096, 63102, 37204, 39537, 63097, 50523, 63137, 50522, 63101, 63100, 50521, 63099, 50520, 63098, 0, 63357, 63393, 63358, 0, 63355, 50619, 63352, 63356, 63395, 0, 63394, 63353, 63354, 50618, 63570, 50663, 37206, 63571, 50661, 50662, 38509, 0, 63699, 50762, 63862, 0, 50794, 38231, 63923, 50795, 63924, 63925, 63939, 63938, 50810, 63949, 35270, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35271, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45225, 0, 0, 57577, 0, 57576, 0, 48106, 48107, 58586, 35434, 59602, 60524, 0, 35671, 48757, 49253, 60522, 40929, 60525, 49254, 39775, 61284, 60523, 61881, 49998, 62401, 0, 0, 0, 62822, 62820, 0, 0, 62821, 0, 0, 63138, 0, 50524, 63396, 50666, 50620, 50664, 50665, 63700, 50786, 41053, 45226, 0, 0, 0, 61882, 0, 0, 54345, 37211, 47526, 37212, 58587, 0, 0, 48108, 58588, 0, 0, 0, 59604, 59603, 49256, 48758, 48759, 0, 59607, 59606, 59605, 37214, 0, 60526, 60529, 0, 60528, 60527, 49255, 61288, 61286, 61285, 40796, 0, 61287, 40791, 49999, 61884, 61885, 50000, 0, 61883, 40805, 62403, 62402, 62405, 50247, 62404, 39538, 62823, 62825, 62824, 0, 37216, 63139, 63142, 63140, 63141, 63397, 50621, 0, 0, 0, 63572, 63573, 63574, 0, 50763, 50787, 63926, 45227, 0, 48760, 49257, 61886, 40798, 63398, 0, 37217, 63940, 54346, 0, 50811, 45228, 60530, 37220, 61887, 0, 62406, 0, 40769, 63143, 63399, 45229, 0, 58589, 58590, 37225, 48109, 48110, 59609, 48762, 48761, 59608, 0, 61289, 0, 61888, 61890, 61889, 50003, 50002, 50001, 37224, 50526, 63144, 0, 50525, 63401, 63400, 0, 50764, 63701, 46013, 57578, 0, 0, 0, 58593, 58591, 58592, 0, 0, 59618, 0, 59613, 59610, 59617, 39540, 0, 0, 59619, 0, 0, 48764, 59616, 59612, 0, 0, 59611, 59615, 59614, 48763, 0, 0, 60541, 60536, 60534, 60577, 60535, 38578, 60531, 39541, 60537, 64933, 0, 60532, 61298, 60533, 60578, 0, 0, 40681, 0, 35770, 37229, 41056, 60540, 49258, 60539, 60538, 0, 60542, 0, 40926, 0, 0, 61290, 61293, 0, 40899, 61292, 38581, 61300, 61295, 61299, 0, 61297, 61296, 61294, 0, 61291, 0, 49731, 49730, 0, 49732, 49729, 61301, 41063, 0, 0, 0, 0, 61896, 61899, 0, 61897, 61901, 0, 0, 0, 61902, 0, 61894, 50008, 61895, 0, 61893, 61900, 0, 61892, 61891, 50007, 50005, 50004, 0, 0, 0, 0, 38579, 0, 0, 0, 61898, 62415, 62421, 50250, 62416, 0, 62419, 62423, 50251, 62418, 39542, 62410, 0, 62409, 62422, 62413, 0, 62411, 62420, 62412, 50249, 50248, 38357, 62407, 62408, 62417, 40650, 0, 0, 62414, 39543, 0, 0, 39544, 0, 0, 62828, 62831, 0, 0, 0, 0, 50006, 0, 37232, 0, 0, 37231, 0, 0, 62829, 62835, 62833, 62827, 62838, 40867, 62826, 37233, 50383, 62834, 0, 38577, 0, 62830, 50382, 62837, 40803, 0, 62836, 0, 0, 0, 40807, 63147, 63146, 0, 35769, 39546, 63153, 0, 63149, 63152, 50528, 35670, 0, 63150, 63151, 0, 63145, 63148, 50527, 0, 39642, 0, 50623, 63412, 63407, 63411, 38576, 63414, 63410, 0, 63406, 39550, 50625, 63409, 63413, 50624, 63404, 62832, 63408, 0, 0, 63405, 40414, 63402, 0, 63403, 50622, 63578, 63580, 63583, 63579, 63584, 38573, 63577, 0, 63575, 38574, 50667, 63581, 50669, 50668, 63576, 63582, 0, 0, 0, 40609, 63706, 50765, 63707, 0, 63705, 63702, 0, 0, 63704, 63703, 63834, 0, 0, 0, 0, 63836, 63835, 0, 0, 63865, 40528, 63864, 63863, 63866, 0, 50803, 50804, 63946, 63950, 38575, 35828, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46014, 56495, 57581, 0, 47527, 57579, 0, 0, 57580, 0, 0, 0, 58594, 58595, 48113, 48111, 58596, 48112, 59624, 0, 59627, 59621, 59628, 59620, 59622, 0, 59623, 59626, 0, 40868, 48801, 59631, 59630, 48765, 59625, 59629, 48766, 0, 0, 38589, 0, 0, 0, 60588, 0, 49263, 0, 60583, 49259, 38644, 60580, 60586, 60589, 0, 49264, 0, 60585, 60582, 60590, 60581, 38584, 60587, 49260, 0, 60579, 49261, 0, 49262, 60584, 0, 0, 0, 61353, 61306, 61307, 61310, 61308, 0, 61302, 64161, 0, 61305, 61349, 61309, 37287, 0, 49733, 0, 61351, 61348, 49734, 61350, 61303, 61346, 61347, 41054, 61345, 0, 0, 0, 39549, 61906, 61908, 61911, 0, 35144, 61905, 40625, 50009, 61913, 61904, 61914, 0, 61910, 61912, 61916, 61909, 61917, 61907, 61903, 50010, 40411, 61915, 50011, 50253, 0, 0, 0, 0, 0, 61304, 62449, 62440, 50255, 62436, 50256, 38335, 35443, 62445, 62439, 62429, 50254, 62442, 62437, 62438, 0, 62424, 62431, 62446, 0, 62443, 40702, 62435, 37242, 62447, 62430, 62425, 62444, 37243, 62427, 62441, 62432, 62448, 62428, 50252, 62426, 62433, 62434, 0, 0, 0, 62845, 0, 62843, 39587, 62882, 0, 62894, 62885, 62844, 62840, 62887, 62846, 62883, 62842, 62890, 62839, 62881, 62886, 62888, 62891, 62841, 38594, 62895, 62896, 62889, 62893, 62884, 40823, 63169, 63172, 0, 50529, 0, 63171, 63176, 63174, 50530, 63165, 63155, 63154, 50532, 63167, 63168, 63164, 63156, 39588, 63161, 62892, 39589, 63157, 50531, 63163, 37281, 63162, 0, 63158, 63170, 35256, 63159, 63419, 63173, 63175, 63166, 63160, 63420, 63422, 63416, 50626, 37235, 63429, 63427, 50627, 63426, 63425, 63418, 63415, 63421, 63430, 63417, 63423, 0, 63593, 63598, 63588, 63591, 50670, 63595, 0, 63602, 63424, 0, 63589, 63599, 63603, 63594, 63587, 63597, 0, 63596, 63601, 63600, 63428, 63592, 63586, 63590, 50766, 50767, 63585, 39590, 63718, 63709, 63717, 63714, 63715, 63708, 63711, 63719, 63713, 63712, 63710, 0, 63716, 35261, 63837, 35257, 63838, 37245, 63840, 63839, 63842, 63841, 63868, 63867, 63927, 0, 63928, 38587, 63941, 50808, 50812, 40946, 63951, 50813, 35829, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46015, 0, 0, 0, 50384, 63177, 39593, 50768, 50769, 0, 46016, 57582, 40788, 47528, 59632, 40931, 40685, 60592, 60593, 60591, 61355, 61354, 49735, 61919, 61356, 61918, 0, 37290, 62451, 50257, 50259, 62450, 37291, 41072, 50258, 40813, 62897, 62899, 62898, 63178, 50533, 37292, 50671, 63720, 63843, 37293, 0, 63954, 46017, 41213, 58597, 40930, 48802, 37295, 40513, 39594, 60595, 60594, 37296, 61357, 39595, 0, 0, 50260, 50385, 63431, 63947, 0, 0, 0, 46018, 48114, 39596, 48803, 39498, 62452, 37298, 63604, 46784, 35830, 0, 39597, 35254, 61358, 0, 0, 0, 50788, 46785, 48804, 49736, 63605, 46786, 0, 59633, 49266, 60596, 60597, 0, 49265, 0, 61359, 49740, 49738, 49739, 49737, 61920, 50012, 0, 39599, 0, 62901, 62900, 62903, 62902, 50386, 0, 0, 63179, 0, 63181, 63180, 50534, 63432, 39600, 63606, 63607, 50672, 63844, 63869, 50805, 39601, 56496, 60598, 61360, 62453, 57583, 39585, 61361, 61922, 61921, 37305, 0, 0, 0, 63608, 50770, 37306, 63845, 63870, 0, 0, 0, 47529, 59634, 59635, 0, 60599, 47530, 0, 50013, 61923, 40806, 63183, 50535, 63184, 63182, 63609, 0, 63721, 0, 47531, 0, 61364, 61363, 61362, 61924, 41025, 35767, 61928, 61927, 61926, 61925, 50014, 62454, 62905, 50387, 62904, 63185, 63435, 63434, 50628, 63433, 63612, 63611, 63610, 37312, 0, 48115, 0, 60600, 49741, 0, 62455, 62456, 63436, 63613, 39603, 37315, 63722, 63846, 63929, 63956, 48116, 49742, 61929, 62457, 63186, 63614, 41212, 0, 48806, 40942, 61365, 61930, 62458, 62459, 62460, 62910, 40809, 62906, 50536, 62909, 62908, 50388, 62907, 50390, 37320, 50389, 63188, 63187, 50537, 50538, 0, 37321, 50630, 63437, 50629, 0, 63651, 63652, 63650, 63649, 50772, 0, 63723, 63724, 63725, 50771, 63847, 63850, 63849, 63848, 0, 0, 63955, 36326, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49267, 37323, 0, 50021, 62911, 63189, 0, 50631, 63438, 34732, 34724, 63957, 35272, 0, 0, 49268, 0, 0, 36266, 61366, 0, 63439, 0, 63905, 40925, 35907, 35949, 35956, 36023, 36025, 36027, 36032, 36055, 36056, 36058, 51361, 51363, 36077, 36168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34754, 34770, 34774, 34778, 34783]); + encode2 = $toNativeArray($kindUint16, [34915, 34980, 34917, 34982, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41302, 41304, 0, 0, 0, 41381, 41382, 0, 0, 41383, 41384, 0, 0, 0, 0, 0, 0, 0, 41292, 41291, 41285, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41388, 0, 0, 41387, 0, 0, 0, 0, 0, 41392, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41953, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41546, 0, 41409, 0, 0, 0, 41547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51410, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51411, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41657, 41658, 41659, 41660, 41661, 41662, 41663, 41664, 41665, 41666, 0, 0, 0, 0, 0, 0, 50869, 50870, 50871, 50872, 50873, 50874, 50875, 50876, 50877, 50878, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41462, 41460, 41463, 41461, 0, 0, 41464, 41465, 41467, 41466, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51319, 51320, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41537, 0, 0, 0, 0, 41428, 0, 0, 0, 41435, 41448, 41447, 0, 0, 41469, 0, 41468, 0, 0, 0, 41444, 41445, 41452, 0, 0, 41453, 0, 0, 0, 0, 0, 41455, 41454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41436, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41434, 41437, 0, 0, 0, 0, 41432, 41433, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41458, 0, 0, 0, 41459, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41446, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41449, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34985, 34986, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41920, 41921, 41922, 41923, 41924, 41925, 41926, 41927, 41928, 41929, 41930, 41931, 41932, 41933, 41934, 41935, 41936, 41937, 41938, 41939, 41940, 41941, 41942, 41943, 41944, 41945, 41946, 41947, 41948, 41949, 41950, 41951, 0, 41952, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50849, 50850, 50851, 50852, 50853, 50854, 50855, 50856, 50857, 50858, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50859, 50860, 50861, 50862, 50863, 50864, 50865, 50866, 50867, 50868, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41591, 0, 41592, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41594, 0, 0, 0, 41595, 0, 0, 0, 41596, 0, 0, 0, 41597, 0, 0, 0, 41589, 0, 0, 0, 0, 0, 0, 0, 41588, 0, 0, 0, 0, 0, 0, 0, 41587, 0, 0, 0, 0, 0, 0, 0, 41586, 0, 0, 0, 0, 0, 0, 0, 41585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63993, 63992, 63974, 63983, 63965, 63976, 63985, 63967, 63980, 63989, 63971, 63982, 63991, 63973, 63977, 63986, 63968, 63979, 63988, 63970, 63975, 63984, 63966, 63981, 63990, 63972, 63978, 63987, 63969, 63994, 63995, 63997, 63996, 41644, 41645, 41646, 41306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41570, 41571, 41572, 41573, 41574, 41575, 41576, 41577, 41584, 41583, 41582, 41581, 41580, 41579, 41578, 0, 0, 0, 0, 41590, 41593, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41405, 41404, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41398, 41397, 0, 0, 0, 0, 0, 0, 0, 0, 41407, 41406, 0, 0, 0, 0, 0, 0, 0, 0, 41403, 41402, 0, 0, 0, 41395, 0, 0, 41399, 41396, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41640, 41641, 41643, 41642, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41401, 41400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41456, 0, 41457, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50918]); + encode3 = $toNativeArray($kindUint16, [41393, 50904, 0, 0, 0, 0, 0, 0, 41410, 41560, 41427, 0, 0, 0, 0, 0, 41296, 0, 0, 0, 0, 0, 0, 0, 0, 34905, 34903, 0, 0, 0, 0, 0, 0, 34909, 34907, 34918, 0, 0, 0, 0, 0, 0, 0, 34913, 34911, 0, 0, 0, 41425, 0, 0, 0, 0, 0, 0, 0, 0, 34922, 34920, 0, 0, 0, 0, 0, 0, 34927, 34925, 34983, 0, 34931, 34929, 0, 0, 0, 0, 34935, 34933, 0, 0, 0, 41426, 51451, 34939, 34937, 0, 34978, 0, 0, 0, 34902, 34919, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34906, 34924, 0, 0, 0, 0, 0, 0, 34908, 34926, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34928, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51452, 34910, 34932, 0, 0, 0, 0, 0, 51450, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34936, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34904, 34921, 0, 34930, 34912, 34934, 0, 34938, 0, 34940, 0, 34941, 0, 34942, 0, 34977, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51446, 34923, 0, 0, 51448, 0, 0, 0, 0, 0, 0, 51447, 0, 0, 0, 0, 0, 34984, 0, 0, 0, 0, 0, 0, 0, 0, 51454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51449, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51445, 0, 0, 0, 0, 0, 0, 51453, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50905, 41918, 0, 41916, 41917, 41919, 0, 41413, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41915, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41796, 41797, 41798, 41799, 41800, 41801, 41802, 41803, 41804, 41805, 41806, 41807, 41808, 41809, 41810, 41811, 41812, 0, 41813, 41814, 41815, 41816, 41817, 41818, 41819, 0, 0, 0, 0, 0, 0, 0, 41820, 41821, 41822, 41823, 41824, 41825, 41826, 41827, 41828, 41829, 41830, 41831, 41832, 41833, 41834, 41835, 41836, 0, 41837, 41838, 41839, 41840, 41841, 41842, 41843, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51187, 51188, 51189, 51190, 51191, 51192, 51194, 51195, 51196, 51197, 51198, 51264, 51265, 51266, 51267, 51268, 51269, 51270, 51271, 51272, 51273, 51274, 51275, 51276, 51277, 51278, 51279, 51280, 51281, 51282, 51283, 51284, 51285, 51286, 51287, 51288, 51289, 51290, 51292, 51293, 51294, 51295, 51296, 51297, 51298, 51299, 51300, 51301, 51302, 51303, 51304, 51305, 51306, 51307, 51308, 51309, 51310, 51311, 51312, 51313, 51314, 51315, 51316, 51317, 0, 51291]); + encode4 = $toNativeArray($kindUint16, [41290, 41303, 0, 41305, 41307, 41311, 41312, 41315, 41316, 41319, 41320, 41323, 41324, 41327, 41328, 41331, 41332, 41335, 41336, 41339, 41340, 0, 0, 0, 0, 41414, 41415, 41418, 41419, 41416, 41417, 41308, 41293, 41294, 41295, 0, 41297, 41298, 41299, 41300, 0, 41341, 41342, 41377, 41378, 41379, 41380, 41420, 41421, 41422, 41438, 41439, 41440, 41441, 41442, 0, 41538, 41548, 41549, 41550, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41289, 51408, 41389, 41539, 41544, 41390, 51407, 41309, 41310, 41391, 41423, 41281, 41424, 41284, 41470, 41647, 41648, 41649, 41650, 41651, 41652, 41653, 41654, 41655, 41656, 41287, 41286, 41429, 41431, 41430, 41288, 41545, 41679, 41680, 41681, 41682, 41683, 41684, 41685, 41686, 41687, 41688, 41689, 41690, 41691, 41692, 41693, 41694, 41695, 41696, 41697, 41698, 41699, 41700, 41701, 41702, 41703, 41704, 50916, 41536, 50917, 0, 41412, 0, 41705, 41706, 41707, 41708, 41709, 41710, 41711, 41712, 41713, 41714, 41715, 41716, 41717, 41718, 41719, 41720, 41721, 41722, 41723, 41724, 41725, 41726, 41792, 41793, 41794, 41795, 41313, 41301, 41314, 41443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41542, 41543, 51405, 41411, 51406, 41540, 0, 0, 0, 0, 0, 0, 0, 63998]); + encode5 = $toNativeArray($kindUint16, [39028, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39624, 0, 0, 0, 0, 41031, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35779, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64584, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40018, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36605, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36776, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38266, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36848]); + encode6 = $toNativeArray($kindUint16, [35832, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51530, 56828]); + encode7 = $toNativeArray($kindUint16, [34780]); + init(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["golang.org/x/text/internal/utf8internal"] = (function() { + var $pkg = {}, $init, AcceptRange; + AcceptRange = $pkg.AcceptRange = $newType(0, $kindStruct, "utf8internal.AcceptRange", true, "golang.org/x/text/internal/utf8internal", true, function(Lo_, Hi_) { + this.$val = this; + if (arguments.length === 0) { + this.Lo = 0; + this.Hi = 0; + return; + } + this.Lo = Lo_; + this.Hi = Hi_; + }); + AcceptRange.init("", [{prop: "Lo", name: "Lo", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Hi", name: "Hi", embedded: false, exported: true, typ: $Uint8, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $pkg.First = $toNativeArray($kindUint8, [240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 19, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 35, 3, 3, 52, 4, 4, 4, 68, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241]); + $pkg.AcceptRanges = $toNativeArray($kindStruct, [new AcceptRange.ptr(128, 191), new AcceptRange.ptr(160, 191), new AcceptRange.ptr(128, 159), new AcceptRange.ptr(144, 191), new AcceptRange.ptr(128, 143)]); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["golang.org/x/text/runes"] = (function() { + var $pkg = {}, $init, transform, unicode, utf8, Transformer, replaceIllFormed, sliceType, ReplaceIllFormed; + transform = $packages["golang.org/x/text/transform"]; + unicode = $packages["unicode"]; + utf8 = $packages["unicode/utf8"]; + Transformer = $pkg.Transformer = $newType(0, $kindStruct, "runes.Transformer", true, "golang.org/x/text/runes", true, function(t_) { + this.$val = this; + if (arguments.length === 0) { + this.t = $ifaceNil; + return; + } + this.t = t_; + }); + replaceIllFormed = $pkg.replaceIllFormed = $newType(0, $kindStruct, "runes.replaceIllFormed", true, "golang.org/x/text/runes", false, function(NopResetter_) { + this.$val = this; + if (arguments.length === 0) { + this.NopResetter = new transform.NopResetter.ptr(); + return; + } + this.NopResetter = NopResetter_; + }); + sliceType = $sliceType($Uint8); + Transformer.ptr.prototype.Transform = function(dst, src, atEOF) { + var _r, _tuple, atEOF, dst, err, nDst, nSrc, src, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; atEOF = $f.atEOF; dst = $f.dst; err = $f.err; nDst = $f.nDst; nSrc = $f.nSrc; src = $f.src; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + nDst = 0; + nSrc = 0; + err = $ifaceNil; + t = this; + _r = t.t.Transform(dst, src, atEOF); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + nDst = _tuple[0]; + nSrc = _tuple[1]; + err = _tuple[2]; + $s = -1; return [nDst, nSrc, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Transformer.ptr.prototype.Transform }; } $f._r = _r; $f._tuple = _tuple; $f.atEOF = atEOF; $f.dst = dst; $f.err = err; $f.nDst = nDst; $f.nSrc = nSrc; $f.src = src; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Transformer.prototype.Transform = function(dst, src, atEOF) { return this.$val.Transform(dst, src, atEOF); }; + Transformer.ptr.prototype.Span = function(b, atEOF) { + var _r, _tuple, atEOF, b, err, n, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; atEOF = $f.atEOF; b = $f.b; err = $f.err; n = $f.n; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + t = this; + _r = t.t.Span(b, atEOF); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + err = _tuple[1]; + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Transformer.ptr.prototype.Span }; } $f._r = _r; $f._tuple = _tuple; $f.atEOF = atEOF; $f.b = b; $f.err = err; $f.n = n; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Transformer.prototype.Span = function(b, atEOF) { return this.$val.Span(b, atEOF); }; + Transformer.ptr.prototype.Reset = function() { + var t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + $r = t.t.Reset(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Transformer.ptr.prototype.Reset }; } $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Transformer.prototype.Reset = function() { return this.$val.Reset(); }; + Transformer.ptr.prototype.Bytes = function(b) { + var _r, _tuple, b, err, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; b = $f.b; err = $f.err; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = transform.Bytes(new t.constructor.elem(t), b); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + b = _tuple[0]; + err = _tuple[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return sliceType.nil; + } + $s = -1; return b; + /* */ } return; } if ($f === undefined) { $f = { $blk: Transformer.ptr.prototype.Bytes }; } $f._r = _r; $f._tuple = _tuple; $f.b = b; $f.err = err; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Transformer.prototype.Bytes = function(b) { return this.$val.Bytes(b); }; + Transformer.ptr.prototype.String = function(s) { + var _r, _tuple, err, s, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; s = $f.s; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = transform.String(new t.constructor.elem(t), s); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + s = _tuple[0]; + err = _tuple[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return ""; + } + $s = -1; return s; + /* */ } return; } if ($f === undefined) { $f = { $blk: Transformer.ptr.prototype.String }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.s = s; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Transformer.prototype.String = function(s) { return this.$val.String(s); }; + ReplaceIllFormed = function() { + return new Transformer.ptr(new replaceIllFormed.ptr(new transform.NopResetter.ptr())); + }; + $pkg.ReplaceIllFormed = ReplaceIllFormed; + replaceIllFormed.ptr.prototype.Span = function(src, atEOF) { + var _tmp, _tmp$1, _tuple, atEOF, err, n, r, size, src, t; + n = 0; + err = $ifaceNil; + t = this; + while (true) { + if (!(n < src.$length)) { break; } + if (((n < 0 || n >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + n]) < 128) { + n = n + (1) >> 0; + continue; + } + _tuple = utf8.DecodeRune($subslice(src, n)); + r = _tuple[0]; + size = _tuple[1]; + if (!((r === 65533)) || !((size === 1))) { + n = n + (size) >> 0; + continue; + } + if (!atEOF && !utf8.FullRune($subslice(src, n))) { + err = transform.ErrShortSrc; + break; + } + err = transform.ErrEndOfSpan; + break; + } + _tmp = n; + _tmp$1 = err; + n = _tmp; + err = _tmp$1; + return [n, err]; + }; + replaceIllFormed.prototype.Span = function(src, atEOF) { return this.$val.Span(src, atEOF); }; + replaceIllFormed.ptr.prototype.Transform = function(dst, src, atEOF) { + var _tmp, _tmp$1, _tmp$2, _tuple, atEOF, dst, err, nDst, nSrc, r, size, src, t, x, x$1, x$2; + nDst = 0; + nSrc = 0; + err = $ifaceNil; + t = this; + while (true) { + if (!(nSrc < src.$length)) { break; } + r = ((nSrc < 0 || nSrc >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + nSrc]); + if (r < 128) { + if (nDst === dst.$length) { + err = transform.ErrShortDst; + break; + } + ((nDst < 0 || nDst >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + nDst] = r); + nDst = nDst + (1) >> 0; + nSrc = nSrc + (1) >> 0; + continue; + } + _tuple = utf8.DecodeRune($subslice(src, nSrc)); + size = _tuple[1]; + if (!((size === 1))) { + if (!((size === $copySlice($subslice(dst, nDst), $subslice(src, nSrc, (nSrc + size >> 0)))))) { + err = transform.ErrShortDst; + break; + } + nDst = nDst + (size) >> 0; + nSrc = nSrc + (size) >> 0; + continue; + } + if (!atEOF && !utf8.FullRune($subslice(src, nSrc))) { + err = transform.ErrShortSrc; + break; + } + if ((nDst + 3 >> 0) > dst.$length) { + err = transform.ErrShortDst; + break; + } + (x = nDst + 0 >> 0, ((x < 0 || x >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x] = "\xEF\xBF\xBD".charCodeAt(0))); + (x$1 = nDst + 1 >> 0, ((x$1 < 0 || x$1 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$1] = "\xEF\xBF\xBD".charCodeAt(1))); + (x$2 = nDst + 2 >> 0, ((x$2 < 0 || x$2 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$2] = "\xEF\xBF\xBD".charCodeAt(2))); + nDst = nDst + (3) >> 0; + nSrc = nSrc + (1) >> 0; + } + _tmp = nDst; + _tmp$1 = nSrc; + _tmp$2 = err; + nDst = _tmp; + nSrc = _tmp$1; + err = _tmp$2; + return [nDst, nSrc, err]; + }; + replaceIllFormed.prototype.Transform = function(dst, src, atEOF) { return this.$val.Transform(dst, src, atEOF); }; + Transformer.methods = [{prop: "Transform", name: "Transform", pkg: "", typ: $funcType([sliceType, sliceType, $Bool], [$Int, $Int, $error], false)}, {prop: "Span", name: "Span", pkg: "", typ: $funcType([sliceType, $Bool], [$Int, $error], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}, {prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([sliceType], [sliceType], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([$String], [$String], false)}]; + replaceIllFormed.methods = [{prop: "Span", name: "Span", pkg: "", typ: $funcType([sliceType, $Bool], [$Int, $error], false)}, {prop: "Transform", name: "Transform", pkg: "", typ: $funcType([sliceType, sliceType, $Bool], [$Int, $Int, $error], false)}]; + Transformer.init("golang.org/x/text/runes", [{prop: "t", name: "t", embedded: false, exported: false, typ: transform.SpanningTransformer, tag: ""}]); + replaceIllFormed.init("", [{prop: "NopResetter", name: "NopResetter", embedded: true, exported: true, typ: transform.NopResetter, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = transform.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = unicode.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["unicode/utf16"] = (function() { + var $pkg = {}, $init, IsSurrogate, DecodeRune, EncodeRune; + IsSurrogate = function(r) { + var r; + return 55296 <= r && r < 57344; + }; + $pkg.IsSurrogate = IsSurrogate; + DecodeRune = function(r1, r2) { + var r1, r2; + if (55296 <= r1 && r1 < 56320 && 56320 <= r2 && r2 < 57344) { + return ((((r1 - 55296 >> 0)) << 10 >> 0) | ((r2 - 56320 >> 0))) + 65536 >> 0; + } + return 65533; + }; + $pkg.DecodeRune = DecodeRune; + EncodeRune = function(r) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, r, r1, r2; + r1 = 0; + r2 = 0; + if (r < 65536 || r > 1114111) { + _tmp = 65533; + _tmp$1 = 65533; + r1 = _tmp; + r2 = _tmp$1; + return [r1, r2]; + } + r = r - (65536) >> 0; + _tmp$2 = 55296 + (((r >> 10 >> 0)) & 1023) >> 0; + _tmp$3 = 56320 + (r & 1023) >> 0; + r1 = _tmp$2; + r2 = _tmp$3; + return [r1, r2]; + }; + $pkg.EncodeRune = EncodeRune; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["golang.org/x/text/encoding/unicode"] = (function() { + var $pkg = {}, $init, errors, encoding, internal, identifier, utf8internal, runes, transform, utf16, utf8, utf8Decoder, BOMPolicy, Endianness, utf16Encoding, config, utf16Decoder, utf16Encoder, sliceType, arrayType, structType, sliceType$1, ptrType$1, ptrType$2, ptrType$3, ptrType$4, utf16le, utf16be, utf8enc, mibValue, x, x$1, UTF16, isHighSurrogate; + errors = $packages["errors"]; + encoding = $packages["golang.org/x/text/encoding"]; + internal = $packages["golang.org/x/text/encoding/internal"]; + identifier = $packages["golang.org/x/text/encoding/internal/identifier"]; + utf8internal = $packages["golang.org/x/text/internal/utf8internal"]; + runes = $packages["golang.org/x/text/runes"]; + transform = $packages["golang.org/x/text/transform"]; + utf16 = $packages["unicode/utf16"]; + utf8 = $packages["unicode/utf8"]; + utf8Decoder = $pkg.utf8Decoder = $newType(0, $kindStruct, "unicode.utf8Decoder", true, "golang.org/x/text/encoding/unicode", false, function(NopResetter_) { + this.$val = this; + if (arguments.length === 0) { + this.NopResetter = new transform.NopResetter.ptr(); + return; + } + this.NopResetter = NopResetter_; + }); + BOMPolicy = $pkg.BOMPolicy = $newType(1, $kindUint8, "unicode.BOMPolicy", true, "golang.org/x/text/encoding/unicode", true, null); + Endianness = $pkg.Endianness = $newType(1, $kindBool, "unicode.Endianness", true, "golang.org/x/text/encoding/unicode", true, null); + utf16Encoding = $pkg.utf16Encoding = $newType(0, $kindStruct, "unicode.utf16Encoding", true, "golang.org/x/text/encoding/unicode", false, function(config_, mib_) { + this.$val = this; + if (arguments.length === 0) { + this.config = new config.ptr(false, 0); + this.mib = 0; + return; + } + this.config = config_; + this.mib = mib_; + }); + config = $pkg.config = $newType(0, $kindStruct, "unicode.config", true, "golang.org/x/text/encoding/unicode", false, function(endianness_, bomPolicy_) { + this.$val = this; + if (arguments.length === 0) { + this.endianness = false; + this.bomPolicy = 0; + return; + } + this.endianness = endianness_; + this.bomPolicy = bomPolicy_; + }); + utf16Decoder = $pkg.utf16Decoder = $newType(0, $kindStruct, "unicode.utf16Decoder", true, "golang.org/x/text/encoding/unicode", false, function(initial_, current_) { + this.$val = this; + if (arguments.length === 0) { + this.initial = new config.ptr(false, 0); + this.current = new config.ptr(false, 0); + return; + } + this.initial = initial_; + this.current = current_; + }); + utf16Encoder = $pkg.utf16Encoder = $newType(0, $kindStruct, "unicode.utf16Encoder", true, "golang.org/x/text/encoding/unicode", false, function(endianness_, initialBOMPolicy_, currentBOMPolicy_) { + this.$val = this; + if (arguments.length === 0) { + this.endianness = false; + this.initialBOMPolicy = 0; + this.currentBOMPolicy = 0; + return; + } + this.endianness = endianness_; + this.initialBOMPolicy = initialBOMPolicy_; + this.currentBOMPolicy = currentBOMPolicy_; + }); + sliceType = $sliceType(encoding.Encoding); + arrayType = $arrayType(identifier.MIB, 9); + structType = $structType("", []); + sliceType$1 = $sliceType($Uint8); + ptrType$1 = $ptrType(encoding.Decoder); + ptrType$2 = $ptrType(encoding.Encoder); + ptrType$3 = $ptrType(utf16Decoder); + ptrType$4 = $ptrType(utf16Encoder); + utf8Decoder.ptr.prototype.Transform = function(dst, src, atEOF) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, accept, atEOF, c, dst, err, first, n, nDst, nSrc, pSrc, size, src, sz, x$10, x$11, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s; + /* */ $s = 0; s: while (true) { switch ($s) { case 0: + nDst = 0; + nSrc = 0; + err = $ifaceNil; + pSrc = 0; + accept = new utf8internal.AcceptRange.ptr(0, 0); + n = src.$length; + if (dst.$length < n) { + err = transform.ErrShortDst; + n = dst.$length; + atEOF = false; + } + /* while (true) { */ case 1: + /* if (!(nSrc < n)) { break; } */ if(!(nSrc < n)) { $s = 2; continue; } + c = ((nSrc < 0 || nSrc >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + nSrc]); + /* */ if (c < 128) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (c < 128) { */ case 3: + nSrc = nSrc + (1) >> 0; + /* continue; */ $s = 1; continue; + /* } */ case 4: + first = (x$2 = utf8internal.First, ((c < 0 || c >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[c])); + size = ((((first & 7) >>> 0) >> 0)); + /* */ if (first === 241) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (first === 241) { */ case 5: + /* goto handleInvalid */ $s = 7; continue; + /* } */ case 6: + utf8internal.AcceptRange.copy(accept, (x$3 = utf8internal.AcceptRanges, x$4 = first >>> 4 << 24 >>> 24, ((x$4 < 0 || x$4 >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[x$4]))); + /* */ if ((nSrc + size >> 0) > n) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if ((nSrc + size >> 0) > n) { */ case 8: + if (!atEOF) { + if ($interfaceIsEqual(err, $ifaceNil)) { + err = transform.ErrShortSrc; + } + /* break; */ $s = 2; continue; + } + if ((nSrc + 1 >> 0) >= n || (x$5 = nSrc + 1 >> 0, ((x$5 < 0 || x$5 >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x$5])) < accept.Lo || accept.Hi < (x$6 = nSrc + 1 >> 0, ((x$6 < 0 || x$6 >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x$6]))) { + size = 1; + } else if ((nSrc + 2 >> 0) >= n || (x$7 = nSrc + 2 >> 0, ((x$7 < 0 || x$7 >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x$7])) < 128 || 191 < (x$8 = nSrc + 2 >> 0, ((x$8 < 0 || x$8 >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x$8]))) { + size = 2; + } else { + size = 3; + } + /* goto handleInvalid */ $s = 7; continue; + /* } */ case 9: + c = (x$9 = nSrc + 1 >> 0, ((x$9 < 0 || x$9 >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x$9])); + /* */ if (c < accept.Lo || accept.Hi < c) { $s = 10; continue; } + /* */ if (size === 2) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (c < accept.Lo || accept.Hi < c) { */ case 10: + size = 1; + /* goto handleInvalid */ $s = 7; continue; + $s = 13; continue; + /* } else if (size === 2) { */ case 11: + $s = 13; continue; + /* } else { */ case 12: + c = (x$10 = nSrc + 2 >> 0, ((x$10 < 0 || x$10 >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x$10])); + /* */ if (c < 128 || 191 < c) { $s = 14; continue; } + /* */ if (size === 3) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (c < 128 || 191 < c) { */ case 14: + size = 2; + /* goto handleInvalid */ $s = 7; continue; + $s = 17; continue; + /* } else if (size === 3) { */ case 15: + $s = 17; continue; + /* } else { */ case 16: + c = (x$11 = nSrc + 3 >> 0, ((x$11 < 0 || x$11 >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x$11])); + /* */ if (c < 128 || 191 < c) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (c < 128 || 191 < c) { */ case 18: + size = 3; + /* goto handleInvalid */ $s = 7; continue; + /* } */ case 19: + /* } */ case 17: + /* } */ case 13: + nSrc = nSrc + (size) >> 0; + /* continue; */ $s = 1; continue; + /* handleInvalid: */ case 7: + nDst = nDst + ($copySlice($subslice(dst, nDst), $subslice(src, pSrc, nSrc))) >> 0; + if ((nDst + 3 >> 0) > dst.$length) { + _tmp = nDst; + _tmp$1 = nSrc; + _tmp$2 = transform.ErrShortDst; + nDst = _tmp; + nSrc = _tmp$1; + err = _tmp$2; + $s = -1; return [nDst, nSrc, err]; + } + nDst = nDst + ($copyString($subslice(dst, nDst), "\xEF\xBF\xBD")) >> 0; + nSrc = nSrc + (size) >> 0; + pSrc = nSrc; + sz = dst.$length - nDst >> 0; + if (sz < (src.$length - nSrc >> 0)) { + err = transform.ErrShortDst; + n = nSrc + sz >> 0; + atEOF = false; + } + /* } */ $s = 1; continue; case 2: + _tmp$3 = nDst + $copySlice($subslice(dst, nDst), $subslice(src, pSrc, nSrc)) >> 0; + _tmp$4 = nSrc; + _tmp$5 = err; + nDst = _tmp$3; + nSrc = _tmp$4; + err = _tmp$5; + $s = -1; return [nDst, nSrc, err]; + /* */ } return; } + }; + utf8Decoder.prototype.Transform = function(dst, src, atEOF) { return this.$val.Transform(dst, src, atEOF); }; + UTF16 = function(e, b) { + var _entry, b, e, x$2, x$3, x$4; + return (x$2 = new utf16Encoding.ptr(new config.ptr(e, b), (x$3 = (_entry = mibValue[Endianness.keyFor(e)], _entry !== undefined ? _entry.v : arrayType.zero()), x$4 = (b & 7) >>> 0, ((x$4 < 0 || x$4 >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[x$4]))), new x$2.constructor.elem(x$2)); + }; + $pkg.UTF16 = UTF16; + utf16Encoding.ptr.prototype.NewDecoder = function() { + var u; + u = this; + return new encoding.Decoder.ptr(new utf16Decoder.ptr($clone(u.config, config), $clone(u.config, config)), new structType.ptr()); + }; + utf16Encoding.prototype.NewDecoder = function() { return this.$val.NewDecoder(); }; + utf16Encoding.ptr.prototype.NewEncoder = function() { + var u; + u = this; + return new encoding.Encoder.ptr(new utf16Encoder.ptr(u.config.endianness, u.config.bomPolicy, u.config.bomPolicy), new structType.ptr()); + }; + utf16Encoding.prototype.NewEncoder = function() { return this.$val.NewEncoder(); }; + utf16Encoding.ptr.prototype.ID = function() { + var _tmp, _tmp$1, mib, other, u; + mib = 0; + other = ""; + u = this; + _tmp = u.mib; + _tmp$1 = ""; + mib = _tmp; + other = _tmp$1; + return [mib, other]; + }; + utf16Encoding.prototype.ID = function() { return this.$val.ID(); }; + utf16Encoding.ptr.prototype.String = function() { + var _1, _tmp, _tmp$1, b, e, u; + u = this; + _tmp = "B"; + _tmp$1 = ""; + e = _tmp; + b = _tmp$1; + if (u.config.endianness) { + e = "L"; + } + _1 = u.config.bomPolicy; + if (_1 === (7)) { + b = "Expect"; + } else if (_1 === (3)) { + b = "Use"; + } else if (_1 === (0)) { + b = "Ignore"; + } + return "UTF-16" + e + "E (" + b + " BOM)"; + }; + utf16Encoding.prototype.String = function() { return this.$val.String(); }; + utf16Decoder.ptr.prototype.Reset = function() { + var u; + u = this; + config.copy(u.current, u.initial); + }; + utf16Decoder.prototype.Reset = function() { return this.$val.Reset(); }; + utf16Decoder.ptr.prototype.Transform = function(dst, src, atEOF) { + var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, atEOF, dSize, dst, err, nDst, nSrc, r, sSize, src, u, x$2, x$3, x$4, x$5, x$6; + nDst = 0; + nSrc = 0; + err = $ifaceNil; + u = this; + if (src.$length === 0) { + if (atEOF && !((((u.current.bomPolicy & 4) >>> 0) === 0))) { + _tmp = 0; + _tmp$1 = 0; + _tmp$2 = $pkg.ErrMissingBOM; + nDst = _tmp; + nSrc = _tmp$1; + err = _tmp$2; + return [nDst, nSrc, err]; + } + _tmp$3 = 0; + _tmp$4 = 0; + _tmp$5 = $ifaceNil; + nDst = _tmp$3; + nSrc = _tmp$4; + err = _tmp$5; + return [nDst, nSrc, err]; + } + if (!((((u.current.bomPolicy & 2) >>> 0) === 0))) { + if (src.$length < 2) { + _tmp$6 = 0; + _tmp$7 = 0; + _tmp$8 = transform.ErrShortSrc; + nDst = _tmp$6; + nSrc = _tmp$7; + err = _tmp$8; + return [nDst, nSrc, err]; + } + if (((0 >= src.$length ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + 0]) === 254) && ((1 >= src.$length ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + 1]) === 255)) { + u.current.endianness = false; + nSrc = 2; + } else if (((0 >= src.$length ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + 0]) === 255) && ((1 >= src.$length ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + 1]) === 254)) { + u.current.endianness = true; + nSrc = 2; + } else if (!((((u.current.bomPolicy & 4) >>> 0) === 0))) { + _tmp$9 = 0; + _tmp$10 = 0; + _tmp$11 = $pkg.ErrMissingBOM; + nDst = _tmp$9; + nSrc = _tmp$10; + err = _tmp$11; + return [nDst, nSrc, err]; + } + u.current.bomPolicy = 0; + } + r = 0; + _tmp$12 = 0; + _tmp$13 = 0; + dSize = _tmp$12; + sSize = _tmp$13; + while (true) { + if (!(nSrc < src.$length)) { break; } + if ((nSrc + 1 >> 0) < src.$length) { + x$4 = (((((x$2 = nSrc + 0 >> 0, ((x$2 < 0 || x$2 >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x$2])) << 16 >>> 16)) << 8 << 16 >>> 16) | (((x$3 = nSrc + 1 >> 0, ((x$3 < 0 || x$3 >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x$3])) << 16 >>> 16))) >>> 0; + if (u.current.endianness) { + x$4 = ((x$4 >>> 8 << 16 >>> 16) | (x$4 << 8 << 16 >>> 16)) >>> 0; + } + _tmp$14 = ((x$4 >> 0)); + _tmp$15 = 2; + r = _tmp$14; + sSize = _tmp$15; + if (utf16.IsSurrogate(r)) { + if ((nSrc + 3 >> 0) < src.$length) { + x$4 = (((((x$5 = nSrc + 2 >> 0, ((x$5 < 0 || x$5 >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x$5])) << 16 >>> 16)) << 8 << 16 >>> 16) | (((x$6 = nSrc + 3 >> 0, ((x$6 < 0 || x$6 >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x$6])) << 16 >>> 16))) >>> 0; + if (u.current.endianness) { + x$4 = ((x$4 >>> 8 << 16 >>> 16) | (x$4 << 8 << 16 >>> 16)) >>> 0; + } + if (isHighSurrogate(((x$4 >> 0)))) { + _tmp$16 = utf16.DecodeRune(r, ((x$4 >> 0))); + _tmp$17 = 4; + r = _tmp$16; + sSize = _tmp$17; + } + } else if (!atEOF) { + err = transform.ErrShortSrc; + break; + } + } + dSize = utf8.RuneLen(r); + if (dSize < 0) { + _tmp$18 = 65533; + _tmp$19 = 3; + r = _tmp$18; + dSize = _tmp$19; + } + } else if (atEOF) { + _tmp$20 = 65533; + _tmp$21 = 3; + _tmp$22 = 1; + r = _tmp$20; + dSize = _tmp$21; + sSize = _tmp$22; + } else { + err = transform.ErrShortSrc; + break; + } + if ((nDst + dSize >> 0) > dst.$length) { + err = transform.ErrShortDst; + break; + } + nDst = nDst + (utf8.EncodeRune($subslice(dst, nDst), r)) >> 0; + nSrc = nSrc + (sSize) >> 0; + } + _tmp$23 = nDst; + _tmp$24 = nSrc; + _tmp$25 = err; + nDst = _tmp$23; + nSrc = _tmp$24; + err = _tmp$25; + return [nDst, nSrc, err]; + }; + utf16Decoder.prototype.Transform = function(dst, src, atEOF) { return this.$val.Transform(dst, src, atEOF); }; + isHighSurrogate = function(r) { + var r; + return 56320 <= r && r <= 57343; + }; + utf16Encoder.ptr.prototype.Reset = function() { + var u; + u = this; + u.currentBOMPolicy = u.initialBOMPolicy; + }; + utf16Encoder.prototype.Reset = function() { return this.$val.Reset(); }; + utf16Encoder.ptr.prototype.Transform = function(dst, src, atEOF) { + var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, atEOF, dst, err, i, nDst, nSrc, r, r1, r2, size, src, u, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + nDst = 0; + nSrc = 0; + err = $ifaceNil; + u = this; + if (!((((u.currentBOMPolicy & 1) >>> 0) === 0))) { + if (dst.$length < 2) { + _tmp = 0; + _tmp$1 = 0; + _tmp$2 = transform.ErrShortDst; + nDst = _tmp; + nSrc = _tmp$1; + err = _tmp$2; + return [nDst, nSrc, err]; + } + _tmp$3 = 254; + _tmp$4 = 255; + (0 >= dst.$length ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + 0] = _tmp$3); + (1 >= dst.$length ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + 1] = _tmp$4); + u.currentBOMPolicy = 0; + nDst = 2; + } + _tmp$5 = 0; + _tmp$6 = 0; + r = _tmp$5; + size = _tmp$6; + while (true) { + if (!(nSrc < src.$length)) { break; } + r = ((((nSrc < 0 || nSrc >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + nSrc]) >> 0)); + if (r < 128) { + size = 1; + } else { + _tuple = utf8.DecodeRune($subslice(src, nSrc)); + r = _tuple[0]; + size = _tuple[1]; + if (size === 1) { + if (!atEOF && !utf8.FullRune($subslice(src, nSrc))) { + err = transform.ErrShortSrc; + break; + } + } + } + if (r <= 65535) { + if ((nDst + 2 >> 0) > dst.$length) { + err = transform.ErrShortDst; + break; + } + (x$2 = nDst + 0 >> 0, ((x$2 < 0 || x$2 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$2] = (((r >> 8 >> 0) << 24 >>> 24)))); + (x$3 = nDst + 1 >> 0, ((x$3 < 0 || x$3 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$3] = ((r << 24 >>> 24)))); + nDst = nDst + (2) >> 0; + } else { + if ((nDst + 4 >> 0) > dst.$length) { + err = transform.ErrShortDst; + break; + } + _tuple$1 = utf16.EncodeRune(r); + r1 = _tuple$1[0]; + r2 = _tuple$1[1]; + (x$4 = nDst + 0 >> 0, ((x$4 < 0 || x$4 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$4] = (((r1 >> 8 >> 0) << 24 >>> 24)))); + (x$5 = nDst + 1 >> 0, ((x$5 < 0 || x$5 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$5] = ((r1 << 24 >>> 24)))); + (x$6 = nDst + 2 >> 0, ((x$6 < 0 || x$6 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$6] = (((r2 >> 8 >> 0) << 24 >>> 24)))); + (x$7 = nDst + 3 >> 0, ((x$7 < 0 || x$7 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$7] = ((r2 << 24 >>> 24)))); + nDst = nDst + (4) >> 0; + } + nSrc = nSrc + (size) >> 0; + } + if (u.endianness) { + i = 0; + while (true) { + if (!(i < nDst)) { break; } + _tmp$7 = (x$8 = i + 1 >> 0, ((x$8 < 0 || x$8 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$8])); + _tmp$8 = ((i < 0 || i >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + i]); + ((i < 0 || i >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + i] = _tmp$7); + (x$9 = i + 1 >> 0, ((x$9 < 0 || x$9 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$9] = _tmp$8)); + i = i + (2) >> 0; + } + } + _tmp$9 = nDst; + _tmp$10 = nSrc; + _tmp$11 = err; + nDst = _tmp$9; + nSrc = _tmp$10; + err = _tmp$11; + return [nDst, nSrc, err]; + }; + utf16Encoder.prototype.Transform = function(dst, src, atEOF) { return this.$val.Transform(dst, src, atEOF); }; + utf8Decoder.methods = [{prop: "Transform", name: "Transform", pkg: "", typ: $funcType([sliceType$1, sliceType$1, $Bool], [$Int, $Int, $error], false)}]; + utf16Encoding.methods = [{prop: "NewDecoder", name: "NewDecoder", pkg: "", typ: $funcType([], [ptrType$1], false)}, {prop: "NewEncoder", name: "NewEncoder", pkg: "", typ: $funcType([], [ptrType$2], false)}, {prop: "ID", name: "ID", pkg: "", typ: $funcType([], [identifier.MIB, $String], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$3.methods = [{prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}, {prop: "Transform", name: "Transform", pkg: "", typ: $funcType([sliceType$1, sliceType$1, $Bool], [$Int, $Int, $error], false)}]; + ptrType$4.methods = [{prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}, {prop: "Transform", name: "Transform", pkg: "", typ: $funcType([sliceType$1, sliceType$1, $Bool], [$Int, $Int, $error], false)}]; + utf8Decoder.init("", [{prop: "NopResetter", name: "NopResetter", embedded: true, exported: true, typ: transform.NopResetter, tag: ""}]); + utf16Encoding.init("golang.org/x/text/encoding/unicode", [{prop: "config", name: "config", embedded: true, exported: false, typ: config, tag: ""}, {prop: "mib", name: "mib", embedded: false, exported: false, typ: identifier.MIB, tag: ""}]); + config.init("golang.org/x/text/encoding/unicode", [{prop: "endianness", name: "endianness", embedded: false, exported: false, typ: Endianness, tag: ""}, {prop: "bomPolicy", name: "bomPolicy", embedded: false, exported: false, typ: BOMPolicy, tag: ""}]); + utf16Decoder.init("golang.org/x/text/encoding/unicode", [{prop: "initial", name: "initial", embedded: false, exported: false, typ: config, tag: ""}, {prop: "current", name: "current", embedded: false, exported: false, typ: config, tag: ""}]); + utf16Encoder.init("golang.org/x/text/encoding/unicode", [{prop: "endianness", name: "endianness", embedded: false, exported: false, typ: Endianness, tag: ""}, {prop: "initialBOMPolicy", name: "initialBOMPolicy", embedded: false, exported: false, typ: BOMPolicy, tag: ""}, {prop: "currentBOMPolicy", name: "currentBOMPolicy", embedded: false, exported: false, typ: BOMPolicy, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = encoding.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = internal.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = identifier.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8internal.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runes.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = transform.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf16.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + utf8enc = new internal.Encoding.ptr(new internal.SimpleEncoding.ptr((x = new utf8Decoder.ptr(new transform.NopResetter.ptr()), new x.constructor.elem(x)), (x$1 = runes.ReplaceIllFormed(), new x$1.constructor.elem(x$1))), "UTF-8", 106); + $pkg.UTF8 = utf8enc; + mibValue = $makeMap(Endianness.keyFor, [{ k: false, v: $toNativeArray($kindUint16, [1013, 0, 0, 1015, 0, 0, 0, 0, 0]) }, { k: true, v: $toNativeArray($kindUint16, [1014, 0, 0, 1015, 0, 0, 0, 0, 0]) }]); + utf16le = UTF16(true, 0); + utf16be = UTF16(false, 0); + $pkg.All = new sliceType([$pkg.UTF8, UTF16(false, 3), UTF16(false, 0), UTF16(true, 0)]); + $pkg.ErrMissingBOM = errors.New("encoding: missing byte order mark"); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["sort"] = (function() { + var $pkg = {}, $init, reflect, insertionSort, siftDown, heapSort, medianOfThree, doPivot, quickSort, Sort, maxDepth; + reflect = $packages["reflect"]; + insertionSort = function(data, a, b) { + var _r, _v, a, b, data, i, j, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _v = $f._v; a = $f.a; b = $f.b; data = $f.data; i = $f.i; j = $f.j; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + i = a + 1 >> 0; + /* while (true) { */ case 1: + /* if (!(i < b)) { break; } */ if(!(i < b)) { $s = 2; continue; } + j = i; + /* while (true) { */ case 3: + if (!(j > a)) { _v = false; $s = 5; continue s; } + _r = data.Less(j, j - 1 >> 0); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r; case 5: + /* if (!(_v)) { break; } */ if(!(_v)) { $s = 4; continue; } + $r = data.Swap(j, j - 1 >> 0); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + j = j - (1) >> 0; + /* } */ $s = 3; continue; case 4: + i = i + (1) >> 0; + /* } */ $s = 1; continue; case 2: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: insertionSort }; } $f._r = _r; $f._v = _v; $f.a = a; $f.b = b; $f.data = data; $f.i = i; $f.j = j; $f.$s = $s; $f.$r = $r; return $f; + }; + siftDown = function(data, lo, hi, first) { + var _r, _r$1, _v, child, data, first, hi, lo, root, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _v = $f._v; child = $f.child; data = $f.data; first = $f.first; hi = $f.hi; lo = $f.lo; root = $f.root; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + root = lo; + /* while (true) { */ case 1: + child = ($imul(2, root)) + 1 >> 0; + if (child >= hi) { + /* break; */ $s = 2; continue; + } + if (!((child + 1 >> 0) < hi)) { _v = false; $s = 5; continue s; } + _r = data.Less(first + child >> 0, (first + child >> 0) + 1 >> 0); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r; case 5: + /* */ if (_v) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_v) { */ case 3: + child = child + (1) >> 0; + /* } */ case 4: + _r$1 = data.Less(first + root >> 0, first + child >> 0); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!_r$1) { */ case 7: + $s = -1; return; + /* } */ case 8: + $r = data.Swap(first + root >> 0, first + child >> 0); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + root = child; + /* } */ $s = 1; continue; case 2: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: siftDown }; } $f._r = _r; $f._r$1 = _r$1; $f._v = _v; $f.child = child; $f.data = data; $f.first = first; $f.hi = hi; $f.lo = lo; $f.root = root; $f.$s = $s; $f.$r = $r; return $f; + }; + heapSort = function(data, a, b) { + var _q, a, b, data, first, hi, i, i$1, lo, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; a = $f.a; b = $f.b; data = $f.data; first = $f.first; hi = $f.hi; i = $f.i; i$1 = $f.i$1; lo = $f.lo; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + first = a; + lo = 0; + hi = b - a >> 0; + i = (_q = ((hi - 1 >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + /* while (true) { */ case 1: + /* if (!(i >= 0)) { break; } */ if(!(i >= 0)) { $s = 2; continue; } + $r = siftDown(data, i, hi, first); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = i - (1) >> 0; + /* } */ $s = 1; continue; case 2: + i$1 = hi - 1 >> 0; + /* while (true) { */ case 4: + /* if (!(i$1 >= 0)) { break; } */ if(!(i$1 >= 0)) { $s = 5; continue; } + $r = data.Swap(first, first + i$1 >> 0); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = siftDown(data, lo, i$1, first); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i$1 = i$1 - (1) >> 0; + /* } */ $s = 4; continue; case 5: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: heapSort }; } $f._q = _q; $f.a = a; $f.b = b; $f.data = data; $f.first = first; $f.hi = hi; $f.i = i; $f.i$1 = i$1; $f.lo = lo; $f.$s = $s; $f.$r = $r; return $f; + }; + medianOfThree = function(data, m1, m0, m2) { + var _r, _r$1, _r$2, data, m0, m1, m2, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; data = $f.data; m0 = $f.m0; m1 = $f.m1; m2 = $f.m2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = data.Less(m1, m0); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r) { */ case 1: + $r = data.Swap(m1, m0); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + _r$1 = data.Less(m2, m1); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_r$1) { */ case 5: + $r = data.Swap(m2, m1); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = data.Less(m1, m0); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (_r$2) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (_r$2) { */ case 9: + $r = data.Swap(m1, m0); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 10: + /* } */ case 6: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: medianOfThree }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.data = data; $f.m0 = m0; $f.m1 = m1; $f.m2 = m2; $f.$s = $s; $f.$r = $r; return $f; + }; + doPivot = function(data, lo, hi) { + var _q, _q$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tmp, _tmp$1, _tmp$2, _tmp$3, _v, _v$1, _v$2, _v$3, _v$4, a, b, c, data, dups, hi, lo, m, midhi, midlo, pivot, protect, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _q$1 = $f._q$1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _v = $f._v; _v$1 = $f._v$1; _v$2 = $f._v$2; _v$3 = $f._v$3; _v$4 = $f._v$4; a = $f.a; b = $f.b; c = $f.c; data = $f.data; dups = $f.dups; hi = $f.hi; lo = $f.lo; m = $f.m; midhi = $f.midhi; midlo = $f.midlo; pivot = $f.pivot; protect = $f.protect; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + midlo = 0; + midhi = 0; + m = ((((((lo + hi >> 0) >>> 0)) >>> 1 >>> 0) >> 0)); + /* */ if ((hi - lo >> 0) > 40) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ((hi - lo >> 0) > 40) { */ case 1: + s = (_q = ((hi - lo >> 0)) / 8, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + $r = medianOfThree(data, lo, lo + s >> 0, lo + ($imul(2, s)) >> 0); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = medianOfThree(data, m, m - s >> 0, m + s >> 0); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = medianOfThree(data, hi - 1 >> 0, (hi - 1 >> 0) - s >> 0, (hi - 1 >> 0) - ($imul(2, s)) >> 0); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $r = medianOfThree(data, lo, m, hi - 1 >> 0); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + pivot = lo; + _tmp = lo + 1 >> 0; + _tmp$1 = hi - 1 >> 0; + a = _tmp; + c = _tmp$1; + /* while (true) { */ case 7: + if (!(a < c)) { _v = false; $s = 9; continue s; } + _r = data.Less(a, pivot); /* */ $s = 10; case 10: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r; case 9: + /* if (!(_v)) { break; } */ if(!(_v)) { $s = 8; continue; } + a = a + (1) >> 0; + /* } */ $s = 7; continue; case 8: + b = a; + /* while (true) { */ case 11: + /* while (true) { */ case 13: + if (!(b < c)) { _v$1 = false; $s = 15; continue s; } + _r$1 = data.Less(pivot, b); /* */ $s = 16; case 16: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v$1 = !_r$1; case 15: + /* if (!(_v$1)) { break; } */ if(!(_v$1)) { $s = 14; continue; } + b = b + (1) >> 0; + /* } */ $s = 13; continue; case 14: + /* while (true) { */ case 17: + if (!(b < c)) { _v$2 = false; $s = 19; continue s; } + _r$2 = data.Less(pivot, c - 1 >> 0); /* */ $s = 20; case 20: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v$2 = _r$2; case 19: + /* if (!(_v$2)) { break; } */ if(!(_v$2)) { $s = 18; continue; } + c = c - (1) >> 0; + /* } */ $s = 17; continue; case 18: + if (b >= c) { + /* break; */ $s = 12; continue; + } + $r = data.Swap(b, c - 1 >> 0); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + b = b + (1) >> 0; + c = c - (1) >> 0; + /* } */ $s = 11; continue; case 12: + protect = (hi - c >> 0) < 5; + /* */ if (!protect && (hi - c >> 0) < (_q$1 = ((hi - lo >> 0)) / 4, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"))) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (!protect && (hi - c >> 0) < (_q$1 = ((hi - lo >> 0)) / 4, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"))) { */ case 22: + dups = 0; + _r$3 = data.Less(pivot, hi - 1 >> 0); /* */ $s = 26; case 26: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!_r$3) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if (!_r$3) { */ case 24: + $r = data.Swap(c, hi - 1 >> 0); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + c = c + (1) >> 0; + dups = dups + (1) >> 0; + /* } */ case 25: + _r$4 = data.Less(b - 1 >> 0, pivot); /* */ $s = 30; case 30: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (!_r$4) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if (!_r$4) { */ case 28: + b = b - (1) >> 0; + dups = dups + (1) >> 0; + /* } */ case 29: + _r$5 = data.Less(m, pivot); /* */ $s = 33; case 33: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (!_r$5) { $s = 31; continue; } + /* */ $s = 32; continue; + /* if (!_r$5) { */ case 31: + $r = data.Swap(m, b - 1 >> 0); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + b = b - (1) >> 0; + dups = dups + (1) >> 0; + /* } */ case 32: + protect = dups > 1; + /* } */ case 23: + /* */ if (protect) { $s = 35; continue; } + /* */ $s = 36; continue; + /* if (protect) { */ case 35: + /* while (true) { */ case 37: + /* while (true) { */ case 39: + if (!(a < b)) { _v$3 = false; $s = 41; continue s; } + _r$6 = data.Less(b - 1 >> 0, pivot); /* */ $s = 42; case 42: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _v$3 = !_r$6; case 41: + /* if (!(_v$3)) { break; } */ if(!(_v$3)) { $s = 40; continue; } + b = b - (1) >> 0; + /* } */ $s = 39; continue; case 40: + /* while (true) { */ case 43: + if (!(a < b)) { _v$4 = false; $s = 45; continue s; } + _r$7 = data.Less(a, pivot); /* */ $s = 46; case 46: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _v$4 = _r$7; case 45: + /* if (!(_v$4)) { break; } */ if(!(_v$4)) { $s = 44; continue; } + a = a + (1) >> 0; + /* } */ $s = 43; continue; case 44: + if (a >= b) { + /* break; */ $s = 38; continue; + } + $r = data.Swap(a, b - 1 >> 0); /* */ $s = 47; case 47: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + a = a + (1) >> 0; + b = b - (1) >> 0; + /* } */ $s = 37; continue; case 38: + /* } */ case 36: + $r = data.Swap(pivot, b - 1 >> 0); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tmp$2 = b - 1 >> 0; + _tmp$3 = c; + midlo = _tmp$2; + midhi = _tmp$3; + $s = -1; return [midlo, midhi]; + /* */ } return; } if ($f === undefined) { $f = { $blk: doPivot }; } $f._q = _q; $f._q$1 = _q$1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._v = _v; $f._v$1 = _v$1; $f._v$2 = _v$2; $f._v$3 = _v$3; $f._v$4 = _v$4; $f.a = a; $f.b = b; $f.c = c; $f.data = data; $f.dups = dups; $f.hi = hi; $f.lo = lo; $f.m = m; $f.midhi = midhi; $f.midlo = midlo; $f.pivot = pivot; $f.protect = protect; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + quickSort = function(data, a, b, maxDepth$1) { + var _r, _r$1, _tuple, a, b, data, i, maxDepth$1, mhi, mlo, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; a = $f.a; b = $f.b; data = $f.data; i = $f.i; maxDepth$1 = $f.maxDepth$1; mhi = $f.mhi; mlo = $f.mlo; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* while (true) { */ case 1: + /* if (!((b - a >> 0) > 12)) { break; } */ if(!((b - a >> 0) > 12)) { $s = 2; continue; } + /* */ if (maxDepth$1 === 0) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (maxDepth$1 === 0) { */ case 3: + $r = heapSort(data, a, b); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 4: + maxDepth$1 = maxDepth$1 - (1) >> 0; + _r = doPivot(data, a, b); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + mlo = _tuple[0]; + mhi = _tuple[1]; + /* */ if ((mlo - a >> 0) < (b - mhi >> 0)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if ((mlo - a >> 0) < (b - mhi >> 0)) { */ case 7: + $r = quickSort(data, a, mlo, maxDepth$1); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + a = mhi; + $s = 9; continue; + /* } else { */ case 8: + $r = quickSort(data, mhi, b, maxDepth$1); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + b = mlo; + /* } */ case 9: + /* } */ $s = 1; continue; case 2: + /* */ if ((b - a >> 0) > 1) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if ((b - a >> 0) > 1) { */ case 12: + i = a + 6 >> 0; + /* while (true) { */ case 14: + /* if (!(i < b)) { break; } */ if(!(i < b)) { $s = 15; continue; } + _r$1 = data.Less(i, i - 6 >> 0); /* */ $s = 18; case 18: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (_r$1) { */ case 16: + $r = data.Swap(i, i - 6 >> 0); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 17: + i = i + (1) >> 0; + /* } */ $s = 14; continue; case 15: + $r = insertionSort(data, a, b); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 13: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: quickSort }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.a = a; $f.b = b; $f.data = data; $f.i = i; $f.maxDepth$1 = maxDepth$1; $f.mhi = mhi; $f.mlo = mlo; $f.$s = $s; $f.$r = $r; return $f; + }; + Sort = function(data) { + var _r, data, n, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; data = $f.data; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = data.Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + n = _r; + $r = quickSort(data, 0, n, maxDepth(n)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Sort }; } $f._r = _r; $f.data = data; $f.n = n; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Sort = Sort; + maxDepth = function(n) { + var depth, i, n; + depth = 0; + i = n; + while (true) { + if (!(i > 0)) { break; } + depth = depth + (1) >> 0; + i = (i >> $min((1), 31)) >> 0; + } + return $imul(depth, 2); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = reflect.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["strings"] = (function() { + var $pkg = {}, $init, errors, js, bytealg, io, unicode, utf8; + errors = $packages["errors"]; + js = $packages["github.com/gopherjs/gopherjs/js"]; + bytealg = $packages["internal/bytealg"]; + io = $packages["io"]; + unicode = $packages["unicode"]; + utf8 = $packages["unicode/utf8"]; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = js.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = bytealg.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = unicode.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["golang.org/x/text/encoding/ianaindex"] = (function() { + var $pkg = {}, $init, errors, encoding, charmap, identifier, japanese, korean, simplifiedchinese, traditionalchinese, unicode, sort, strings, errInvalidName, errUnknown, errUnsupported, encodings; + errors = $packages["errors"]; + encoding = $packages["golang.org/x/text/encoding"]; + charmap = $packages["golang.org/x/text/encoding/charmap"]; + identifier = $packages["golang.org/x/text/encoding/internal/identifier"]; + japanese = $packages["golang.org/x/text/encoding/japanese"]; + korean = $packages["golang.org/x/text/encoding/korean"]; + simplifiedchinese = $packages["golang.org/x/text/encoding/simplifiedchinese"]; + traditionalchinese = $packages["golang.org/x/text/encoding/traditionalchinese"]; + unicode = $packages["golang.org/x/text/encoding/unicode"]; + sort = $packages["sort"]; + strings = $packages["strings"]; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = encoding.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = charmap.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = identifier.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = japanese.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = korean.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = simplifiedchinese.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = traditionalchinese.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = unicode.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sort.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + errInvalidName = errors.New("ianaindex: invalid encoding name"); + errUnknown = errors.New("ianaindex: unknown Encoding"); + errUnsupported = errors.New("ianaindex: unsupported Encoding"); + encodings = $toNativeArray($kindInterface, [$ifaceNil, charmap.ISO8859_1, charmap.ISO8859_2, charmap.ISO8859_3, charmap.ISO8859_4, charmap.ISO8859_5, charmap.ISO8859_6, charmap.ISO8859_7, charmap.ISO8859_8, charmap.ISO8859_9, charmap.ISO8859_10, $ifaceNil, $ifaceNil, $ifaceNil, japanese.ShiftJIS, japanese.EUCJP, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, korean.EUCKR, japanese.ISO2022JP, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, charmap.ISO8859_6E, charmap.ISO8859_6I, $ifaceNil, charmap.ISO8859_8E, charmap.ISO8859_8I, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, unicode.UTF8, charmap.ISO8859_13, charmap.ISO8859_14, charmap.ISO8859_15, charmap.ISO8859_16, simplifiedchinese.GBK, simplifiedchinese.GB18030, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, unicode.UTF16(false, 0), unicode.UTF16(true, 0), unicode.UTF16(false, 3), $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, charmap.CodePage850, charmap.CodePage852, charmap.CodePage437, $ifaceNil, charmap.CodePage862, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, traditionalchinese.Big5, charmap.Macintosh, charmap.CodePage037, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, charmap.CodePage855, $ifaceNil, charmap.CodePage860, $ifaceNil, charmap.CodePage863, $ifaceNil, charmap.CodePage865, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, charmap.KOI8R, simplifiedchinese.HZGB2312, charmap.CodePage866, $ifaceNil, charmap.KOI8U, charmap.CodePage858, $ifaceNil, charmap.CodePage1140, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, charmap.CodePage1047, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, charmap.Windows874, charmap.Windows1250, charmap.Windows1251, charmap.Windows1252, charmap.Windows1253, charmap.Windows1254, charmap.Windows1255, charmap.Windows1256, charmap.Windows1257, charmap.Windows1258, $ifaceNil, $ifaceNil]); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["github.com/makiuchi-d/gozxing/qrcode/decoder"] = (function() { + var $pkg = {}, $init, errors, fmt, gozxing, common, reedsolomon, ianaindex, japanese, simplifiedchinese, transform, math, bits, strconv, ErrorCorrectionLevel, Mode, Version, ECBlocks, ECB, sliceType$4, ptrType, sliceType$5, sliceType$6, sliceType$7, ptrType$2, ptrType$6, ptrType$9, NewMode, NewVersion; + errors = $packages["errors"]; + fmt = $packages["fmt"]; + gozxing = $packages["github.com/makiuchi-d/gozxing"]; + common = $packages["github.com/makiuchi-d/gozxing/common"]; + reedsolomon = $packages["github.com/makiuchi-d/gozxing/common/reedsolomon"]; + ianaindex = $packages["golang.org/x/text/encoding/ianaindex"]; + japanese = $packages["golang.org/x/text/encoding/japanese"]; + simplifiedchinese = $packages["golang.org/x/text/encoding/simplifiedchinese"]; + transform = $packages["golang.org/x/text/transform"]; + math = $packages["math"]; + bits = $packages["math/bits"]; + strconv = $packages["strconv"]; + ErrorCorrectionLevel = $pkg.ErrorCorrectionLevel = $newType(4, $kindInt, "decoder.ErrorCorrectionLevel", true, "github.com/makiuchi-d/gozxing/qrcode/decoder", true, null); + Mode = $pkg.Mode = $newType(0, $kindStruct, "decoder.Mode", true, "github.com/makiuchi-d/gozxing/qrcode/decoder", true, function(characterCountBitsForVersions_, bits_) { + this.$val = this; + if (arguments.length === 0) { + this.characterCountBitsForVersions = sliceType$4.nil; + this.bits = 0; + return; + } + this.characterCountBitsForVersions = characterCountBitsForVersions_; + this.bits = bits_; + }); + Version = $pkg.Version = $newType(0, $kindStruct, "decoder.Version", true, "github.com/makiuchi-d/gozxing/qrcode/decoder", true, function(versionNumber_, alignmentPatternCenters_, ecBlocks_, totalCodewords_) { + this.$val = this; + if (arguments.length === 0) { + this.versionNumber = 0; + this.alignmentPatternCenters = sliceType$4.nil; + this.ecBlocks = sliceType$7.nil; + this.totalCodewords = 0; + return; + } + this.versionNumber = versionNumber_; + this.alignmentPatternCenters = alignmentPatternCenters_; + this.ecBlocks = ecBlocks_; + this.totalCodewords = totalCodewords_; + }); + ECBlocks = $pkg.ECBlocks = $newType(0, $kindStruct, "decoder.ECBlocks", true, "github.com/makiuchi-d/gozxing/qrcode/decoder", true, function(ecCodewordsPerBlock_, ecBlocks_) { + this.$val = this; + if (arguments.length === 0) { + this.ecCodewordsPerBlock = 0; + this.ecBlocks = sliceType$6.nil; + return; + } + this.ecCodewordsPerBlock = ecCodewordsPerBlock_; + this.ecBlocks = ecBlocks_; + }); + ECB = $pkg.ECB = $newType(0, $kindStruct, "decoder.ECB", true, "github.com/makiuchi-d/gozxing/qrcode/decoder", true, function(count_, dataCodewords_) { + this.$val = this; + if (arguments.length === 0) { + this.count = 0; + this.dataCodewords = 0; + return; + } + this.count = count_; + this.dataCodewords = dataCodewords_; + }); + sliceType$4 = $sliceType($Int); + ptrType = $ptrType(Version); + sliceType$5 = $sliceType(ptrType); + sliceType$6 = $sliceType(ECB); + sliceType$7 = $sliceType(ECBlocks); + ptrType$2 = $ptrType(gozxing.BitMatrix); + ptrType$6 = $ptrType(Mode); + ptrType$9 = $ptrType(ECBlocks); + ErrorCorrectionLevel.prototype.GetBits = function() { + var e; + e = this.$val; + return ((e >> 0)); + }; + $ptrType(ErrorCorrectionLevel).prototype.GetBits = function() { return new ErrorCorrectionLevel(this.$get()).GetBits(); }; + ErrorCorrectionLevel.prototype.String = function() { + var _1, e; + e = this.$val; + _1 = e; + if (_1 === (0)) { + return "M"; + } else if (_1 === (1)) { + return "L"; + } else if (_1 === (2)) { + return "H"; + } else if (_1 === (3)) { + return "Q"; + } + return ""; + }; + $ptrType(ErrorCorrectionLevel).prototype.String = function() { return new ErrorCorrectionLevel(this.$get()).String(); }; + NewMode = function(characterCountBitsForVersions, bits$1) { + var bits$1, characterCountBitsForVersions; + return new Mode.ptr(characterCountBitsForVersions, bits$1); + }; + $pkg.NewMode = NewMode; + Mode.ptr.prototype.GetCharacterCountBits = function(version) { + var number, offset, this$1, version, x; + this$1 = this; + number = version.GetVersionNumber(); + offset = 0; + if (number <= 9) { + offset = 0; + } else if (number <= 26) { + offset = 1; + } else { + offset = 2; + } + return (x = this$1.characterCountBitsForVersions, ((offset < 0 || offset >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + offset])); + }; + Mode.prototype.GetCharacterCountBits = function(version) { return this.$val.GetCharacterCountBits(version); }; + Mode.ptr.prototype.GetBits = function() { + var this$1; + this$1 = this; + return this$1.bits; + }; + Mode.prototype.GetBits = function() { return this.$val.GetBits(); }; + Mode.ptr.prototype.String = function() { + var _1, this$1; + this$1 = this; + _1 = this$1; + if (_1 === ($pkg.Mode_TERMINATOR)) { + return "TERMINATOR"; + } else if (_1 === ($pkg.Mode_NUMERIC)) { + return "NUMERIC"; + } else if (_1 === ($pkg.Mode_ALPHANUMERIC)) { + return "ALPHANUMERIC"; + } else if (_1 === ($pkg.Mode_STRUCTURED_APPEND)) { + return "STRUCTURED_APPEND"; + } else if (_1 === ($pkg.Mode_BYTE)) { + return "BYTE"; + } else if (_1 === ($pkg.Mode_ECI)) { + return "ECI"; + } else if (_1 === ($pkg.Mode_KANJI)) { + return "KANJI"; + } else if (_1 === ($pkg.Mode_FNC1_FIRST_POSITION)) { + return "FNC1_FIRST_POSITION"; + } else if (_1 === ($pkg.Mode_FNC1_SECOND_POSITION)) { + return "FNC1_SECOND_POSITION"; + } else if (_1 === ($pkg.Mode_HANZI)) { + return "HANZI"; + } else { + return ""; + } + }; + Mode.prototype.String = function() { return this.$val.String(); }; + NewVersion = function(versionNumber, alignmentPatternCenters, ecBlocks) { + var _i, _ref, alignmentPatternCenters, ecBlock, ecBlocks, ecCodewords, ecbArray, total, versionNumber; + total = 0; + ecCodewords = (0 >= ecBlocks.$length ? ($throwRuntimeError("index out of range"), undefined) : ecBlocks.$array[ecBlocks.$offset + 0]).GetECCodewordsPerBlock(); + ecbArray = (0 >= ecBlocks.$length ? ($throwRuntimeError("index out of range"), undefined) : ecBlocks.$array[ecBlocks.$offset + 0]).GetECBlocks(); + _ref = ecbArray; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + ecBlock = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), ECB); + total = total + (($imul($clone(ecBlock, ECB).GetCount(), (($clone(ecBlock, ECB).GetDataCodewords() + ecCodewords >> 0))))) >> 0; + _i++; + } + return new Version.ptr(versionNumber, alignmentPatternCenters, ecBlocks, total); + }; + $pkg.NewVersion = NewVersion; + Version.ptr.prototype.GetVersionNumber = function() { + var v; + v = this; + return v.versionNumber; + }; + Version.prototype.GetVersionNumber = function() { return this.$val.GetVersionNumber(); }; + Version.ptr.prototype.GetAlignmentPatternCenters = function() { + var v; + v = this; + return v.alignmentPatternCenters; + }; + Version.prototype.GetAlignmentPatternCenters = function() { return this.$val.GetAlignmentPatternCenters(); }; + Version.ptr.prototype.GetTotalCodewords = function() { + var v; + v = this; + return v.totalCodewords; + }; + Version.prototype.GetTotalCodewords = function() { return this.$val.GetTotalCodewords(); }; + Version.ptr.prototype.GetDimensionForVersion = function() { + var v; + v = this; + return 17 + ($imul(4, v.versionNumber)) >> 0; + }; + Version.prototype.GetDimensionForVersion = function() { return this.$val.GetDimensionForVersion(); }; + Version.ptr.prototype.GetECBlocksForLevel = function(ecLevel) { + var _1, ecLevel, v, x, x$1, x$2, x$3; + v = this; + _1 = ecLevel; + if (_1 === (1)) { + return (x = v.ecBlocks, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); + } else if (_1 === (0)) { + return (x$1 = v.ecBlocks, (1 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 1])); + } else if (_1 === (3)) { + return (x$2 = v.ecBlocks, (2 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 2])); + } else if (_1 === (2)) { + return (x$3 = v.ecBlocks, (3 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 3])); + } + return ptrType$9.nil; + }; + Version.prototype.GetECBlocksForLevel = function(ecLevel) { return this.$val.GetECBlocksForLevel(ecLevel); }; + ECBlocks.ptr.prototype.GetECCodewordsPerBlock = function() { + var b; + b = this; + return b.ecCodewordsPerBlock; + }; + ECBlocks.prototype.GetECCodewordsPerBlock = function() { return this.$val.GetECCodewordsPerBlock(); }; + ECBlocks.ptr.prototype.GetNumBlocks = function() { + var _i, _ref, b, ecBlock, total; + b = this; + total = 0; + _ref = b.ecBlocks; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + ecBlock = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), ECB); + total = total + ($clone(ecBlock, ECB).GetCount()) >> 0; + _i++; + } + return total; + }; + ECBlocks.prototype.GetNumBlocks = function() { return this.$val.GetNumBlocks(); }; + ECBlocks.ptr.prototype.GetTotalECCodewords = function() { + var b; + b = this; + return $imul(b.ecCodewordsPerBlock, b.GetNumBlocks()); + }; + ECBlocks.prototype.GetTotalECCodewords = function() { return this.$val.GetTotalECCodewords(); }; + ECBlocks.ptr.prototype.GetECBlocks = function() { + var b; + b = this; + return b.ecBlocks; + }; + ECBlocks.prototype.GetECBlocks = function() { return this.$val.GetECBlocks(); }; + ECB.ptr.prototype.GetCount = function() { + var e; + e = this; + return e.count; + }; + ECB.prototype.GetCount = function() { return this.$val.GetCount(); }; + ECB.ptr.prototype.GetDataCodewords = function() { + var e; + e = this; + return e.dataCodewords; + }; + ECB.prototype.GetDataCodewords = function() { return this.$val.GetDataCodewords(); }; + Version.ptr.prototype.String = function() { + var this$1; + this$1 = this; + if (this$1 === ptrType.nil) { + return ""; + } + return strconv.Itoa(this$1.versionNumber); + }; + Version.prototype.String = function() { return this.$val.String(); }; + ErrorCorrectionLevel.methods = [{prop: "GetBits", name: "GetBits", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$6.methods = [{prop: "GetCharacterCountBits", name: "GetCharacterCountBits", pkg: "", typ: $funcType([ptrType], [$Int], false)}, {prop: "GetBits", name: "GetBits", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType.methods = [{prop: "GetVersionNumber", name: "GetVersionNumber", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetAlignmentPatternCenters", name: "GetAlignmentPatternCenters", pkg: "", typ: $funcType([], [sliceType$4], false)}, {prop: "GetTotalCodewords", name: "GetTotalCodewords", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetDimensionForVersion", name: "GetDimensionForVersion", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetECBlocksForLevel", name: "GetECBlocksForLevel", pkg: "", typ: $funcType([ErrorCorrectionLevel], [ptrType$9], false)}, {prop: "buildFunctionPattern", name: "buildFunctionPattern", pkg: "github.com/makiuchi-d/gozxing/qrcode/decoder", typ: $funcType([], [ptrType$2, $error], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$9.methods = [{prop: "GetECCodewordsPerBlock", name: "GetECCodewordsPerBlock", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetNumBlocks", name: "GetNumBlocks", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetTotalECCodewords", name: "GetTotalECCodewords", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetECBlocks", name: "GetECBlocks", pkg: "", typ: $funcType([], [sliceType$6], false)}]; + ECB.methods = [{prop: "GetCount", name: "GetCount", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetDataCodewords", name: "GetDataCodewords", pkg: "", typ: $funcType([], [$Int], false)}]; + Mode.init("github.com/makiuchi-d/gozxing/qrcode/decoder", [{prop: "characterCountBitsForVersions", name: "characterCountBitsForVersions", embedded: false, exported: false, typ: sliceType$4, tag: ""}, {prop: "bits", name: "bits", embedded: false, exported: false, typ: $Int, tag: ""}]); + Version.init("github.com/makiuchi-d/gozxing/qrcode/decoder", [{prop: "versionNumber", name: "versionNumber", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "alignmentPatternCenters", name: "alignmentPatternCenters", embedded: false, exported: false, typ: sliceType$4, tag: ""}, {prop: "ecBlocks", name: "ecBlocks", embedded: false, exported: false, typ: sliceType$7, tag: ""}, {prop: "totalCodewords", name: "totalCodewords", embedded: false, exported: false, typ: $Int, tag: ""}]); + ECBlocks.init("github.com/makiuchi-d/gozxing/qrcode/decoder", [{prop: "ecCodewordsPerBlock", name: "ecCodewordsPerBlock", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "ecBlocks", name: "ecBlocks", embedded: false, exported: false, typ: sliceType$6, tag: ""}]); + ECB.init("github.com/makiuchi-d/gozxing/qrcode/decoder", [{prop: "count", name: "count", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "dataCodewords", name: "dataCodewords", embedded: false, exported: false, typ: $Int, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fmt.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gozxing.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = common.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = reedsolomon.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = ianaindex.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = japanese.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = simplifiedchinese.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = transform.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = math.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = bits.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.Mode_TERMINATOR = NewMode(new sliceType$4([0, 0, 0]), 0); + $pkg.Mode_NUMERIC = NewMode(new sliceType$4([10, 12, 14]), 1); + $pkg.Mode_ALPHANUMERIC = NewMode(new sliceType$4([9, 11, 13]), 2); + $pkg.Mode_STRUCTURED_APPEND = NewMode(new sliceType$4([0, 0, 0]), 3); + $pkg.Mode_BYTE = NewMode(new sliceType$4([8, 16, 16]), 4); + $pkg.Mode_ECI = NewMode(new sliceType$4([0, 0, 0]), 7); + $pkg.Mode_KANJI = NewMode(new sliceType$4([8, 10, 12]), 8); + $pkg.Mode_FNC1_FIRST_POSITION = NewMode(new sliceType$4([0, 0, 0]), 5); + $pkg.Mode_FNC1_SECOND_POSITION = NewMode(new sliceType$4([0, 0, 0]), 9); + $pkg.Mode_HANZI = NewMode(new sliceType$4([8, 10, 12]), 13); + $pkg.VERSIONS = new sliceType$5([NewVersion(1, new sliceType$4([]), new sliceType$7([new ECBlocks.ptr(7, new sliceType$6([new ECB.ptr(1, 19)])), new ECBlocks.ptr(10, new sliceType$6([new ECB.ptr(1, 16)])), new ECBlocks.ptr(13, new sliceType$6([new ECB.ptr(1, 13)])), new ECBlocks.ptr(17, new sliceType$6([new ECB.ptr(1, 9)]))])), NewVersion(2, new sliceType$4([6, 18]), new sliceType$7([new ECBlocks.ptr(10, new sliceType$6([new ECB.ptr(1, 34)])), new ECBlocks.ptr(16, new sliceType$6([new ECB.ptr(1, 28)])), new ECBlocks.ptr(22, new sliceType$6([new ECB.ptr(1, 22)])), new ECBlocks.ptr(28, new sliceType$6([new ECB.ptr(1, 16)]))])), NewVersion(3, new sliceType$4([6, 22]), new sliceType$7([new ECBlocks.ptr(15, new sliceType$6([new ECB.ptr(1, 55)])), new ECBlocks.ptr(26, new sliceType$6([new ECB.ptr(1, 44)])), new ECBlocks.ptr(18, new sliceType$6([new ECB.ptr(2, 17)])), new ECBlocks.ptr(22, new sliceType$6([new ECB.ptr(2, 13)]))])), NewVersion(4, new sliceType$4([6, 26]), new sliceType$7([new ECBlocks.ptr(20, new sliceType$6([new ECB.ptr(1, 80)])), new ECBlocks.ptr(18, new sliceType$6([new ECB.ptr(2, 32)])), new ECBlocks.ptr(26, new sliceType$6([new ECB.ptr(2, 24)])), new ECBlocks.ptr(16, new sliceType$6([new ECB.ptr(4, 9)]))])), NewVersion(5, new sliceType$4([6, 30]), new sliceType$7([new ECBlocks.ptr(26, new sliceType$6([new ECB.ptr(1, 108)])), new ECBlocks.ptr(24, new sliceType$6([new ECB.ptr(2, 43)])), new ECBlocks.ptr(18, new sliceType$6([new ECB.ptr(2, 15), new ECB.ptr(2, 16)])), new ECBlocks.ptr(22, new sliceType$6([new ECB.ptr(2, 11), new ECB.ptr(2, 12)]))])), NewVersion(6, new sliceType$4([6, 34]), new sliceType$7([new ECBlocks.ptr(18, new sliceType$6([new ECB.ptr(2, 68)])), new ECBlocks.ptr(16, new sliceType$6([new ECB.ptr(4, 27)])), new ECBlocks.ptr(24, new sliceType$6([new ECB.ptr(4, 19)])), new ECBlocks.ptr(28, new sliceType$6([new ECB.ptr(4, 15)]))])), NewVersion(7, new sliceType$4([6, 22, 38]), new sliceType$7([new ECBlocks.ptr(20, new sliceType$6([new ECB.ptr(2, 78)])), new ECBlocks.ptr(18, new sliceType$6([new ECB.ptr(4, 31)])), new ECBlocks.ptr(18, new sliceType$6([new ECB.ptr(2, 14), new ECB.ptr(4, 15)])), new ECBlocks.ptr(26, new sliceType$6([new ECB.ptr(4, 13), new ECB.ptr(1, 14)]))])), NewVersion(8, new sliceType$4([6, 24, 42]), new sliceType$7([new ECBlocks.ptr(24, new sliceType$6([new ECB.ptr(2, 97)])), new ECBlocks.ptr(22, new sliceType$6([new ECB.ptr(2, 38), new ECB.ptr(2, 39)])), new ECBlocks.ptr(22, new sliceType$6([new ECB.ptr(4, 18), new ECB.ptr(2, 19)])), new ECBlocks.ptr(26, new sliceType$6([new ECB.ptr(4, 14), new ECB.ptr(2, 15)]))])), NewVersion(9, new sliceType$4([6, 26, 46]), new sliceType$7([new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(2, 116)])), new ECBlocks.ptr(22, new sliceType$6([new ECB.ptr(3, 36), new ECB.ptr(2, 37)])), new ECBlocks.ptr(20, new sliceType$6([new ECB.ptr(4, 16), new ECB.ptr(4, 17)])), new ECBlocks.ptr(24, new sliceType$6([new ECB.ptr(4, 12), new ECB.ptr(4, 13)]))])), NewVersion(10, new sliceType$4([6, 28, 50]), new sliceType$7([new ECBlocks.ptr(18, new sliceType$6([new ECB.ptr(2, 68), new ECB.ptr(2, 69)])), new ECBlocks.ptr(26, new sliceType$6([new ECB.ptr(4, 43), new ECB.ptr(1, 44)])), new ECBlocks.ptr(24, new sliceType$6([new ECB.ptr(6, 19), new ECB.ptr(2, 20)])), new ECBlocks.ptr(28, new sliceType$6([new ECB.ptr(6, 15), new ECB.ptr(2, 16)]))])), NewVersion(11, new sliceType$4([6, 30, 54]), new sliceType$7([new ECBlocks.ptr(20, new sliceType$6([new ECB.ptr(4, 81)])), new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(1, 50), new ECB.ptr(4, 51)])), new ECBlocks.ptr(28, new sliceType$6([new ECB.ptr(4, 22), new ECB.ptr(4, 23)])), new ECBlocks.ptr(24, new sliceType$6([new ECB.ptr(3, 12), new ECB.ptr(8, 13)]))])), NewVersion(12, new sliceType$4([6, 32, 58]), new sliceType$7([new ECBlocks.ptr(24, new sliceType$6([new ECB.ptr(2, 92), new ECB.ptr(2, 93)])), new ECBlocks.ptr(22, new sliceType$6([new ECB.ptr(6, 36), new ECB.ptr(2, 37)])), new ECBlocks.ptr(26, new sliceType$6([new ECB.ptr(4, 20), new ECB.ptr(6, 21)])), new ECBlocks.ptr(28, new sliceType$6([new ECB.ptr(7, 14), new ECB.ptr(4, 15)]))])), NewVersion(13, new sliceType$4([6, 34, 62]), new sliceType$7([new ECBlocks.ptr(26, new sliceType$6([new ECB.ptr(4, 107)])), new ECBlocks.ptr(22, new sliceType$6([new ECB.ptr(8, 37), new ECB.ptr(1, 38)])), new ECBlocks.ptr(24, new sliceType$6([new ECB.ptr(8, 20), new ECB.ptr(4, 21)])), new ECBlocks.ptr(22, new sliceType$6([new ECB.ptr(12, 11), new ECB.ptr(4, 12)]))])), NewVersion(14, new sliceType$4([6, 26, 46, 66]), new sliceType$7([new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(3, 115), new ECB.ptr(1, 116)])), new ECBlocks.ptr(24, new sliceType$6([new ECB.ptr(4, 40), new ECB.ptr(5, 41)])), new ECBlocks.ptr(20, new sliceType$6([new ECB.ptr(11, 16), new ECB.ptr(5, 17)])), new ECBlocks.ptr(24, new sliceType$6([new ECB.ptr(11, 12), new ECB.ptr(5, 13)]))])), NewVersion(15, new sliceType$4([6, 26, 48, 70]), new sliceType$7([new ECBlocks.ptr(22, new sliceType$6([new ECB.ptr(5, 87), new ECB.ptr(1, 88)])), new ECBlocks.ptr(24, new sliceType$6([new ECB.ptr(5, 41), new ECB.ptr(5, 42)])), new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(5, 24), new ECB.ptr(7, 25)])), new ECBlocks.ptr(24, new sliceType$6([new ECB.ptr(11, 12), new ECB.ptr(7, 13)]))])), NewVersion(16, new sliceType$4([6, 26, 50, 74]), new sliceType$7([new ECBlocks.ptr(24, new sliceType$6([new ECB.ptr(5, 98), new ECB.ptr(1, 99)])), new ECBlocks.ptr(28, new sliceType$6([new ECB.ptr(7, 45), new ECB.ptr(3, 46)])), new ECBlocks.ptr(24, new sliceType$6([new ECB.ptr(15, 19), new ECB.ptr(2, 20)])), new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(3, 15), new ECB.ptr(13, 16)]))])), NewVersion(17, new sliceType$4([6, 30, 54, 78]), new sliceType$7([new ECBlocks.ptr(28, new sliceType$6([new ECB.ptr(1, 107), new ECB.ptr(5, 108)])), new ECBlocks.ptr(28, new sliceType$6([new ECB.ptr(10, 46), new ECB.ptr(1, 47)])), new ECBlocks.ptr(28, new sliceType$6([new ECB.ptr(1, 22), new ECB.ptr(15, 23)])), new ECBlocks.ptr(28, new sliceType$6([new ECB.ptr(2, 14), new ECB.ptr(17, 15)]))])), NewVersion(18, new sliceType$4([6, 30, 56, 82]), new sliceType$7([new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(5, 120), new ECB.ptr(1, 121)])), new ECBlocks.ptr(26, new sliceType$6([new ECB.ptr(9, 43), new ECB.ptr(4, 44)])), new ECBlocks.ptr(28, new sliceType$6([new ECB.ptr(17, 22), new ECB.ptr(1, 23)])), new ECBlocks.ptr(28, new sliceType$6([new ECB.ptr(2, 14), new ECB.ptr(19, 15)]))])), NewVersion(19, new sliceType$4([6, 30, 58, 86]), new sliceType$7([new ECBlocks.ptr(28, new sliceType$6([new ECB.ptr(3, 113), new ECB.ptr(4, 114)])), new ECBlocks.ptr(26, new sliceType$6([new ECB.ptr(3, 44), new ECB.ptr(11, 45)])), new ECBlocks.ptr(26, new sliceType$6([new ECB.ptr(17, 21), new ECB.ptr(4, 22)])), new ECBlocks.ptr(26, new sliceType$6([new ECB.ptr(9, 13), new ECB.ptr(16, 14)]))])), NewVersion(20, new sliceType$4([6, 34, 62, 90]), new sliceType$7([new ECBlocks.ptr(28, new sliceType$6([new ECB.ptr(3, 107), new ECB.ptr(5, 108)])), new ECBlocks.ptr(26, new sliceType$6([new ECB.ptr(3, 41), new ECB.ptr(13, 42)])), new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(15, 24), new ECB.ptr(5, 25)])), new ECBlocks.ptr(28, new sliceType$6([new ECB.ptr(15, 15), new ECB.ptr(10, 16)]))])), NewVersion(21, new sliceType$4([6, 28, 50, 72, 94]), new sliceType$7([new ECBlocks.ptr(28, new sliceType$6([new ECB.ptr(4, 116), new ECB.ptr(4, 117)])), new ECBlocks.ptr(26, new sliceType$6([new ECB.ptr(17, 42)])), new ECBlocks.ptr(28, new sliceType$6([new ECB.ptr(17, 22), new ECB.ptr(6, 23)])), new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(19, 16), new ECB.ptr(6, 17)]))])), NewVersion(22, new sliceType$4([6, 26, 50, 74, 98]), new sliceType$7([new ECBlocks.ptr(28, new sliceType$6([new ECB.ptr(2, 111), new ECB.ptr(7, 112)])), new ECBlocks.ptr(28, new sliceType$6([new ECB.ptr(17, 46)])), new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(7, 24), new ECB.ptr(16, 25)])), new ECBlocks.ptr(24, new sliceType$6([new ECB.ptr(34, 13)]))])), NewVersion(23, new sliceType$4([6, 30, 54, 78, 102]), new sliceType$7([new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(4, 121), new ECB.ptr(5, 122)])), new ECBlocks.ptr(28, new sliceType$6([new ECB.ptr(4, 47), new ECB.ptr(14, 48)])), new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(11, 24), new ECB.ptr(14, 25)])), new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(16, 15), new ECB.ptr(14, 16)]))])), NewVersion(24, new sliceType$4([6, 28, 54, 80, 106]), new sliceType$7([new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(6, 117), new ECB.ptr(4, 118)])), new ECBlocks.ptr(28, new sliceType$6([new ECB.ptr(6, 45), new ECB.ptr(14, 46)])), new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(11, 24), new ECB.ptr(16, 25)])), new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(30, 16), new ECB.ptr(2, 17)]))])), NewVersion(25, new sliceType$4([6, 32, 58, 84, 110]), new sliceType$7([new ECBlocks.ptr(26, new sliceType$6([new ECB.ptr(8, 106), new ECB.ptr(4, 107)])), new ECBlocks.ptr(28, new sliceType$6([new ECB.ptr(8, 47), new ECB.ptr(13, 48)])), new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(7, 24), new ECB.ptr(22, 25)])), new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(22, 15), new ECB.ptr(13, 16)]))])), NewVersion(26, new sliceType$4([6, 30, 58, 86, 114]), new sliceType$7([new ECBlocks.ptr(28, new sliceType$6([new ECB.ptr(10, 114), new ECB.ptr(2, 115)])), new ECBlocks.ptr(28, new sliceType$6([new ECB.ptr(19, 46), new ECB.ptr(4, 47)])), new ECBlocks.ptr(28, new sliceType$6([new ECB.ptr(28, 22), new ECB.ptr(6, 23)])), new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(33, 16), new ECB.ptr(4, 17)]))])), NewVersion(27, new sliceType$4([6, 34, 62, 90, 118]), new sliceType$7([new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(8, 122), new ECB.ptr(4, 123)])), new ECBlocks.ptr(28, new sliceType$6([new ECB.ptr(22, 45), new ECB.ptr(3, 46)])), new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(8, 23), new ECB.ptr(26, 24)])), new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(12, 15), new ECB.ptr(28, 16)]))])), NewVersion(28, new sliceType$4([6, 26, 50, 74, 98, 122]), new sliceType$7([new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(3, 117), new ECB.ptr(10, 118)])), new ECBlocks.ptr(28, new sliceType$6([new ECB.ptr(3, 45), new ECB.ptr(23, 46)])), new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(4, 24), new ECB.ptr(31, 25)])), new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(11, 15), new ECB.ptr(31, 16)]))])), NewVersion(29, new sliceType$4([6, 30, 54, 78, 102, 126]), new sliceType$7([new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(7, 116), new ECB.ptr(7, 117)])), new ECBlocks.ptr(28, new sliceType$6([new ECB.ptr(21, 45), new ECB.ptr(7, 46)])), new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(1, 23), new ECB.ptr(37, 24)])), new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(19, 15), new ECB.ptr(26, 16)]))])), NewVersion(30, new sliceType$4([6, 26, 52, 78, 104, 130]), new sliceType$7([new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(5, 115), new ECB.ptr(10, 116)])), new ECBlocks.ptr(28, new sliceType$6([new ECB.ptr(19, 47), new ECB.ptr(10, 48)])), new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(15, 24), new ECB.ptr(25, 25)])), new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(23, 15), new ECB.ptr(25, 16)]))])), NewVersion(31, new sliceType$4([6, 30, 56, 82, 108, 134]), new sliceType$7([new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(13, 115), new ECB.ptr(3, 116)])), new ECBlocks.ptr(28, new sliceType$6([new ECB.ptr(2, 46), new ECB.ptr(29, 47)])), new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(42, 24), new ECB.ptr(1, 25)])), new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(23, 15), new ECB.ptr(28, 16)]))])), NewVersion(32, new sliceType$4([6, 34, 60, 86, 112, 138]), new sliceType$7([new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(17, 115)])), new ECBlocks.ptr(28, new sliceType$6([new ECB.ptr(10, 46), new ECB.ptr(23, 47)])), new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(10, 24), new ECB.ptr(35, 25)])), new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(19, 15), new ECB.ptr(35, 16)]))])), NewVersion(33, new sliceType$4([6, 30, 58, 86, 114, 142]), new sliceType$7([new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(17, 115), new ECB.ptr(1, 116)])), new ECBlocks.ptr(28, new sliceType$6([new ECB.ptr(14, 46), new ECB.ptr(21, 47)])), new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(29, 24), new ECB.ptr(19, 25)])), new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(11, 15), new ECB.ptr(46, 16)]))])), NewVersion(34, new sliceType$4([6, 34, 62, 90, 118, 146]), new sliceType$7([new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(13, 115), new ECB.ptr(6, 116)])), new ECBlocks.ptr(28, new sliceType$6([new ECB.ptr(14, 46), new ECB.ptr(23, 47)])), new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(44, 24), new ECB.ptr(7, 25)])), new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(59, 16), new ECB.ptr(1, 17)]))])), NewVersion(35, new sliceType$4([6, 30, 54, 78, 102, 126, 150]), new sliceType$7([new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(12, 121), new ECB.ptr(7, 122)])), new ECBlocks.ptr(28, new sliceType$6([new ECB.ptr(12, 47), new ECB.ptr(26, 48)])), new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(39, 24), new ECB.ptr(14, 25)])), new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(22, 15), new ECB.ptr(41, 16)]))])), NewVersion(36, new sliceType$4([6, 24, 50, 76, 102, 128, 154]), new sliceType$7([new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(6, 121), new ECB.ptr(14, 122)])), new ECBlocks.ptr(28, new sliceType$6([new ECB.ptr(6, 47), new ECB.ptr(34, 48)])), new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(46, 24), new ECB.ptr(10, 25)])), new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(2, 15), new ECB.ptr(64, 16)]))])), NewVersion(37, new sliceType$4([6, 28, 54, 80, 106, 132, 158]), new sliceType$7([new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(17, 122), new ECB.ptr(4, 123)])), new ECBlocks.ptr(28, new sliceType$6([new ECB.ptr(29, 46), new ECB.ptr(14, 47)])), new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(49, 24), new ECB.ptr(10, 25)])), new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(24, 15), new ECB.ptr(46, 16)]))])), NewVersion(38, new sliceType$4([6, 32, 58, 84, 110, 136, 162]), new sliceType$7([new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(4, 122), new ECB.ptr(18, 123)])), new ECBlocks.ptr(28, new sliceType$6([new ECB.ptr(13, 46), new ECB.ptr(32, 47)])), new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(48, 24), new ECB.ptr(14, 25)])), new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(42, 15), new ECB.ptr(32, 16)]))])), NewVersion(39, new sliceType$4([6, 26, 54, 82, 110, 138, 166]), new sliceType$7([new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(20, 117), new ECB.ptr(4, 118)])), new ECBlocks.ptr(28, new sliceType$6([new ECB.ptr(40, 47), new ECB.ptr(7, 48)])), new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(43, 24), new ECB.ptr(22, 25)])), new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(10, 15), new ECB.ptr(67, 16)]))])), NewVersion(40, new sliceType$4([6, 30, 58, 86, 114, 142, 170]), new sliceType$7([new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(19, 118), new ECB.ptr(6, 119)])), new ECBlocks.ptr(28, new sliceType$6([new ECB.ptr(18, 47), new ECB.ptr(31, 48)])), new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(34, 24), new ECB.ptr(34, 25)])), new ECBlocks.ptr(30, new sliceType$6([new ECB.ptr(20, 15), new ECB.ptr(61, 16)]))]))]); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["github.com/makiuchi-d/gozxing/qrcode/detector"] = (function() { + var $pkg = {}, $init, gozxing, common, util, decoder, math, sort; + gozxing = $packages["github.com/makiuchi-d/gozxing"]; + common = $packages["github.com/makiuchi-d/gozxing/common"]; + util = $packages["github.com/makiuchi-d/gozxing/common/util"]; + decoder = $packages["github.com/makiuchi-d/gozxing/qrcode/decoder"]; + math = $packages["math"]; + sort = $packages["sort"]; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = gozxing.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = common.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = util.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = decoder.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = math.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sort.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["github.com/makiuchi-d/gozxing/qrcode/encoder"] = (function() { + var $pkg = {}, $init, errors, fmt, gozxing, common, reedsolomon, decoder, ianaindex, japanese, math, bits, strconv, utf8; + errors = $packages["errors"]; + fmt = $packages["fmt"]; + gozxing = $packages["github.com/makiuchi-d/gozxing"]; + common = $packages["github.com/makiuchi-d/gozxing/common"]; + reedsolomon = $packages["github.com/makiuchi-d/gozxing/common/reedsolomon"]; + decoder = $packages["github.com/makiuchi-d/gozxing/qrcode/decoder"]; + ianaindex = $packages["golang.org/x/text/encoding/ianaindex"]; + japanese = $packages["golang.org/x/text/encoding/japanese"]; + math = $packages["math"]; + bits = $packages["math/bits"]; + strconv = $packages["strconv"]; + utf8 = $packages["unicode/utf8"]; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fmt.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gozxing.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = common.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = reedsolomon.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = decoder.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = ianaindex.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = japanese.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = math.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = bits.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["github.com/makiuchi-d/gozxing/qrcode"] = (function() { + var $pkg = {}, $init, errors, fmt, gozxing, common, util, decoder, detector, encoder, strconv; + errors = $packages["errors"]; + fmt = $packages["fmt"]; + gozxing = $packages["github.com/makiuchi-d/gozxing"]; + common = $packages["github.com/makiuchi-d/gozxing/common"]; + util = $packages["github.com/makiuchi-d/gozxing/common/util"]; + decoder = $packages["github.com/makiuchi-d/gozxing/qrcode/decoder"]; + detector = $packages["github.com/makiuchi-d/gozxing/qrcode/detector"]; + encoder = $packages["github.com/makiuchi-d/gozxing/qrcode/encoder"]; + strconv = $packages["strconv"]; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fmt.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gozxing.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = common.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = util.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = decoder.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = detector.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = encoder.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["log"] = (function() { + var $pkg = {}, $init, fmt, nosync, io, os, runtime, time, Logger, sliceType, arrayType, ptrType, sliceType$1, ptrType$1, std, New, itoa, Panic, Panicf, Panicln; + fmt = $packages["fmt"]; + nosync = $packages["github.com/gopherjs/gopherjs/nosync"]; + io = $packages["io"]; + os = $packages["os"]; + runtime = $packages["runtime"]; + time = $packages["time"]; + Logger = $pkg.Logger = $newType(0, $kindStruct, "log.Logger", true, "log", true, function(mu_, prefix_, flag_, out_, buf_) { + this.$val = this; + if (arguments.length === 0) { + this.mu = new nosync.Mutex.ptr(false); + this.prefix = ""; + this.flag = 0; + this.out = $ifaceNil; + this.buf = sliceType.nil; + return; + } + this.mu = mu_; + this.prefix = prefix_; + this.flag = flag_; + this.out = out_; + this.buf = buf_; + }); + sliceType = $sliceType($Uint8); + arrayType = $arrayType($Uint8, 20); + ptrType = $ptrType(sliceType); + sliceType$1 = $sliceType($emptyInterface); + ptrType$1 = $ptrType(Logger); + New = function(out, prefix, flag) { + var flag, out, prefix; + return new Logger.ptr(new nosync.Mutex.ptr(false), prefix, flag, out, sliceType.nil); + }; + $pkg.New = New; + Logger.ptr.prototype.SetOutput = function(w) { + var l, w, $deferred; + /* */ var $err = null; try { $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + l = this; + l.mu.Lock(); + $deferred.push([$methodVal(l.mu, "Unlock"), []]); + l.out = w; + /* */ } catch(err) { $err = err; } finally { $callDeferred($deferred, $err); } + }; + Logger.prototype.SetOutput = function(w) { return this.$val.SetOutput(w); }; + itoa = function(buf, i, wid) { + var _q, b, bp, buf, i, q, wid; + b = arrayType.zero(); + bp = 19; + while (true) { + if (!(i >= 10 || wid > 1)) { break; } + wid = wid - (1) >> 0; + q = (_q = i / 10, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + ((bp < 0 || bp >= b.length) ? ($throwRuntimeError("index out of range"), undefined) : b[bp] = ((((48 + i >> 0) - ($imul(q, 10)) >> 0) << 24 >>> 24))); + bp = bp - (1) >> 0; + i = q; + } + ((bp < 0 || bp >= b.length) ? ($throwRuntimeError("index out of range"), undefined) : b[bp] = (((48 + i >> 0) << 24 >>> 24))); + buf.$set($appendSlice(buf.$get(), $subslice(new sliceType(b), bp))); + }; + Logger.ptr.prototype.formatHeader = function(buf, t, file, line) { + var _q, _r, _r$1, _tuple, _tuple$1, buf, day, file, hour, i, l, line, min, month, sec, short$1, t, year, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; buf = $f.buf; day = $f.day; file = $f.file; hour = $f.hour; i = $f.i; l = $f.l; line = $f.line; min = $f.min; month = $f.month; sec = $f.sec; short$1 = $f.short$1; t = $f.t; year = $f.year; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + l = this; + buf.$set($appendSlice(buf.$get(), l.prefix)); + /* */ if (!(((l.flag & 7) === 0))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(((l.flag & 7) === 0))) { */ case 1: + if (!(((l.flag & 32) === 0))) { + time.Time.copy(t, $clone(t, time.Time).UTC()); + } + /* */ if (!(((l.flag & 1) === 0))) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!(((l.flag & 1) === 0))) { */ case 3: + _r = $clone(t, time.Time).Date(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + year = _tuple[0]; + month = _tuple[1]; + day = _tuple[2]; + itoa(buf, year, 4); + buf.$set($append(buf.$get(), 47)); + itoa(buf, ((month >> 0)), 2); + buf.$set($append(buf.$get(), 47)); + itoa(buf, day, 2); + buf.$set($append(buf.$get(), 32)); + /* } */ case 4: + /* */ if (!(((l.flag & 6) === 0))) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (!(((l.flag & 6) === 0))) { */ case 6: + _r$1 = $clone(t, time.Time).Clock(); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + hour = _tuple$1[0]; + min = _tuple$1[1]; + sec = _tuple$1[2]; + itoa(buf, hour, 2); + buf.$set($append(buf.$get(), 58)); + itoa(buf, min, 2); + buf.$set($append(buf.$get(), 58)); + itoa(buf, sec, 2); + if (!(((l.flag & 4) === 0))) { + buf.$set($append(buf.$get(), 46)); + itoa(buf, (_q = $clone(t, time.Time).Nanosecond() / 1000, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), 6); + } + buf.$set($append(buf.$get(), 32)); + /* } */ case 7: + /* } */ case 2: + if (!(((l.flag & 24) === 0))) { + if (!(((l.flag & 16) === 0))) { + short$1 = file; + i = file.length - 1 >> 0; + while (true) { + if (!(i > 0)) { break; } + if (file.charCodeAt(i) === 47) { + short$1 = $substring(file, (i + 1 >> 0)); + break; + } + i = i - (1) >> 0; + } + file = short$1; + } + buf.$set($appendSlice(buf.$get(), file)); + buf.$set($append(buf.$get(), 58)); + itoa(buf, line, -1); + buf.$set($appendSlice(buf.$get(), ": ")); + } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Logger.ptr.prototype.formatHeader }; } $f._q = _q; $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.buf = buf; $f.day = day; $f.file = file; $f.hour = hour; $f.i = i; $f.l = l; $f.line = line; $f.min = min; $f.month = month; $f.sec = sec; $f.short$1 = short$1; $f.t = t; $f.year = year; $f.$s = $s; $f.$r = $r; return $f; + }; + Logger.prototype.formatHeader = function(buf, t, file, line) { return this.$val.formatHeader(buf, t, file, line); }; + Logger.ptr.prototype.Output = function(calldepth, s) { + var _r, _tuple, _tuple$1, calldepth, err, file, l, line, now, ok, s, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; calldepth = $f.calldepth; err = $f.err; file = $f.file; l = $f.l; line = $f.line; now = $f.now; ok = $f.ok; s = $f.s; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + l = this; + now = $clone(time.Now(), time.Time); + file = ""; + line = 0; + l.mu.Lock(); + $deferred.push([$methodVal(l.mu, "Unlock"), []]); + if (!(((l.flag & 24) === 0))) { + l.mu.Unlock(); + ok = false; + _tuple = runtime.Caller(calldepth); + file = _tuple[1]; + line = _tuple[2]; + ok = _tuple[3]; + if (!ok) { + file = "???"; + line = 0; + } + l.mu.Lock(); + } + l.buf = $subslice(l.buf, 0, 0); + $r = l.formatHeader((l.$ptr_buf || (l.$ptr_buf = new ptrType(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, l))), $clone(now, time.Time), file, line); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + l.buf = $appendSlice(l.buf, s); + if ((s.length === 0) || !((s.charCodeAt((s.length - 1 >> 0)) === 10))) { + l.buf = $append(l.buf, 10); + } + _r = l.out.Write(l.buf); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple$1 = _r; + err = _tuple$1[1]; + $s = -1; return err; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: Logger.ptr.prototype.Output }; } $f._r = _r; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.calldepth = calldepth; $f.err = err; $f.file = file; $f.l = l; $f.line = line; $f.now = now; $f.ok = ok; $f.s = s; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + Logger.prototype.Output = function(calldepth, s) { return this.$val.Output(calldepth, s); }; + Logger.ptr.prototype.Printf = function(format, v) { + var _arg, _r, _r$1, format, l, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _r = $f._r; _r$1 = $f._r$1; format = $f.format; l = $f.l; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + l = this; + _r = fmt.Sprintf(format, v); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg = _r; + _r$1 = l.Output(2, _arg); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Logger.ptr.prototype.Printf }; } $f._arg = _arg; $f._r = _r; $f._r$1 = _r$1; $f.format = format; $f.l = l; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Logger.prototype.Printf = function(format, v) { return this.$val.Printf(format, v); }; + Logger.ptr.prototype.Print = function(v) { + var _arg, _r, _r$1, l, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _r = $f._r; _r$1 = $f._r$1; l = $f.l; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + l = this; + _r = fmt.Sprint(v); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg = _r; + _r$1 = l.Output(2, _arg); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Logger.ptr.prototype.Print }; } $f._arg = _arg; $f._r = _r; $f._r$1 = _r$1; $f.l = l; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Logger.prototype.Print = function(v) { return this.$val.Print(v); }; + Logger.ptr.prototype.Println = function(v) { + var _arg, _r, _r$1, l, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _r = $f._r; _r$1 = $f._r$1; l = $f.l; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + l = this; + _r = fmt.Sprintln(v); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg = _r; + _r$1 = l.Output(2, _arg); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Logger.ptr.prototype.Println }; } $f._arg = _arg; $f._r = _r; $f._r$1 = _r$1; $f.l = l; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Logger.prototype.Println = function(v) { return this.$val.Println(v); }; + Logger.ptr.prototype.Fatal = function(v) { + var _arg, _r, _r$1, l, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _r = $f._r; _r$1 = $f._r$1; l = $f.l; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + l = this; + _r = fmt.Sprint(v); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg = _r; + _r$1 = l.Output(2, _arg); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + os.Exit(1); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Logger.ptr.prototype.Fatal }; } $f._arg = _arg; $f._r = _r; $f._r$1 = _r$1; $f.l = l; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Logger.prototype.Fatal = function(v) { return this.$val.Fatal(v); }; + Logger.ptr.prototype.Fatalf = function(format, v) { + var _arg, _r, _r$1, format, l, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _r = $f._r; _r$1 = $f._r$1; format = $f.format; l = $f.l; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + l = this; + _r = fmt.Sprintf(format, v); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg = _r; + _r$1 = l.Output(2, _arg); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + os.Exit(1); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Logger.ptr.prototype.Fatalf }; } $f._arg = _arg; $f._r = _r; $f._r$1 = _r$1; $f.format = format; $f.l = l; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Logger.prototype.Fatalf = function(format, v) { return this.$val.Fatalf(format, v); }; + Logger.ptr.prototype.Fatalln = function(v) { + var _arg, _r, _r$1, l, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _r = $f._r; _r$1 = $f._r$1; l = $f.l; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + l = this; + _r = fmt.Sprintln(v); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg = _r; + _r$1 = l.Output(2, _arg); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + os.Exit(1); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Logger.ptr.prototype.Fatalln }; } $f._arg = _arg; $f._r = _r; $f._r$1 = _r$1; $f.l = l; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Logger.prototype.Fatalln = function(v) { return this.$val.Fatalln(v); }; + Logger.ptr.prototype.Panic = function(v) { + var _r, _r$1, l, s, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; l = $f.l; s = $f.s; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + l = this; + _r = fmt.Sprint(v); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + s = _r; + _r$1 = l.Output(2, s); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + $panic(new $String(s)); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Logger.ptr.prototype.Panic }; } $f._r = _r; $f._r$1 = _r$1; $f.l = l; $f.s = s; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Logger.prototype.Panic = function(v) { return this.$val.Panic(v); }; + Logger.ptr.prototype.Panicf = function(format, v) { + var _r, _r$1, format, l, s, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; format = $f.format; l = $f.l; s = $f.s; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + l = this; + _r = fmt.Sprintf(format, v); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + s = _r; + _r$1 = l.Output(2, s); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + $panic(new $String(s)); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Logger.ptr.prototype.Panicf }; } $f._r = _r; $f._r$1 = _r$1; $f.format = format; $f.l = l; $f.s = s; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Logger.prototype.Panicf = function(format, v) { return this.$val.Panicf(format, v); }; + Logger.ptr.prototype.Panicln = function(v) { + var _r, _r$1, l, s, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; l = $f.l; s = $f.s; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + l = this; + _r = fmt.Sprintln(v); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + s = _r; + _r$1 = l.Output(2, s); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + $panic(new $String(s)); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Logger.ptr.prototype.Panicln }; } $f._r = _r; $f._r$1 = _r$1; $f.l = l; $f.s = s; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Logger.prototype.Panicln = function(v) { return this.$val.Panicln(v); }; + Logger.ptr.prototype.Flags = function() { + var l, $deferred; + /* */ var $err = null; try { $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + l = this; + l.mu.Lock(); + $deferred.push([$methodVal(l.mu, "Unlock"), []]); + return l.flag; + /* */ } catch(err) { $err = err; return 0; } finally { $callDeferred($deferred, $err); } + }; + Logger.prototype.Flags = function() { return this.$val.Flags(); }; + Logger.ptr.prototype.SetFlags = function(flag) { + var flag, l, $deferred; + /* */ var $err = null; try { $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + l = this; + l.mu.Lock(); + $deferred.push([$methodVal(l.mu, "Unlock"), []]); + l.flag = flag; + /* */ } catch(err) { $err = err; } finally { $callDeferred($deferred, $err); } + }; + Logger.prototype.SetFlags = function(flag) { return this.$val.SetFlags(flag); }; + Logger.ptr.prototype.Prefix = function() { + var l, $deferred; + /* */ var $err = null; try { $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + l = this; + l.mu.Lock(); + $deferred.push([$methodVal(l.mu, "Unlock"), []]); + return l.prefix; + /* */ } catch(err) { $err = err; return ""; } finally { $callDeferred($deferred, $err); } + }; + Logger.prototype.Prefix = function() { return this.$val.Prefix(); }; + Logger.ptr.prototype.SetPrefix = function(prefix) { + var l, prefix, $deferred; + /* */ var $err = null; try { $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + l = this; + l.mu.Lock(); + $deferred.push([$methodVal(l.mu, "Unlock"), []]); + l.prefix = prefix; + /* */ } catch(err) { $err = err; } finally { $callDeferred($deferred, $err); } + }; + Logger.prototype.SetPrefix = function(prefix) { return this.$val.SetPrefix(prefix); }; + Panic = function(v) { + var _r, _r$1, s, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; s = $f.s; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = fmt.Sprint(v); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + s = _r; + _r$1 = std.Output(2, s); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + $panic(new $String(s)); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Panic }; } $f._r = _r; $f._r$1 = _r$1; $f.s = s; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Panic = Panic; + Panicf = function(format, v) { + var _r, _r$1, format, s, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; format = $f.format; s = $f.s; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = fmt.Sprintf(format, v); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + s = _r; + _r$1 = std.Output(2, s); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + $panic(new $String(s)); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Panicf }; } $f._r = _r; $f._r$1 = _r$1; $f.format = format; $f.s = s; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Panicf = Panicf; + Panicln = function(v) { + var _r, _r$1, s, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; s = $f.s; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = fmt.Sprintln(v); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + s = _r; + _r$1 = std.Output(2, s); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + $panic(new $String(s)); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Panicln }; } $f._r = _r; $f._r$1 = _r$1; $f.s = s; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Panicln = Panicln; + ptrType$1.methods = [{prop: "SetOutput", name: "SetOutput", pkg: "", typ: $funcType([io.Writer], [], false)}, {prop: "formatHeader", name: "formatHeader", pkg: "log", typ: $funcType([ptrType, time.Time, $String, $Int], [], false)}, {prop: "Output", name: "Output", pkg: "", typ: $funcType([$Int, $String], [$error], false)}, {prop: "Printf", name: "Printf", pkg: "", typ: $funcType([$String, sliceType$1], [], true)}, {prop: "Print", name: "Print", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Println", name: "Println", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Fatal", name: "Fatal", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Fatalf", name: "Fatalf", pkg: "", typ: $funcType([$String, sliceType$1], [], true)}, {prop: "Fatalln", name: "Fatalln", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Panic", name: "Panic", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Panicf", name: "Panicf", pkg: "", typ: $funcType([$String, sliceType$1], [], true)}, {prop: "Panicln", name: "Panicln", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Flags", name: "Flags", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "SetFlags", name: "SetFlags", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Prefix", name: "Prefix", pkg: "", typ: $funcType([], [$String], false)}, {prop: "SetPrefix", name: "SetPrefix", pkg: "", typ: $funcType([$String], [], false)}]; + Logger.init("log", [{prop: "mu", name: "mu", embedded: false, exported: false, typ: nosync.Mutex, tag: ""}, {prop: "prefix", name: "prefix", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "flag", name: "flag", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "out", name: "out", embedded: false, exported: false, typ: io.Writer, tag: ""}, {prop: "buf", name: "buf", embedded: false, exported: false, typ: sliceType, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = nosync.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = os.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = time.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + std = New(os.Stderr, "", 3); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["github.com/skip2/go-qrcode/bitset"] = (function() { + var $pkg = {}, $init, bytes, fmt, log, Bitset, sliceType, sliceType$1, sliceType$2, ptrType, New, Clone; + bytes = $packages["bytes"]; + fmt = $packages["fmt"]; + log = $packages["log"]; + Bitset = $pkg.Bitset = $newType(0, $kindStruct, "bitset.Bitset", true, "github.com/skip2/go-qrcode/bitset", true, function(numBits_, bits_) { + this.$val = this; + if (arguments.length === 0) { + this.numBits = 0; + this.bits = sliceType.nil; + return; + } + this.numBits = numBits_; + this.bits = bits_; + }); + sliceType = $sliceType($Uint8); + sliceType$1 = $sliceType($emptyInterface); + sliceType$2 = $sliceType($Bool); + ptrType = $ptrType(Bitset); + New = function(v) { + var b, v; + b = new Bitset.ptr(0, $makeSlice(sliceType, 0)); + b.AppendBools(v); + return b; + }; + $pkg.New = New; + Clone = function(from) { + var from; + return new Bitset.ptr(from.numBits, from.bits); + }; + $pkg.Clone = Clone; + Bitset.ptr.prototype.Substr = function(start, end) { + var _index, _q, _r, _r$1, b, end, i, result, start, x, x$1, y, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _index = $f._index; _q = $f._q; _r = $f._r; _r$1 = $f._r$1; b = $f.b; end = $f.end; i = $f.i; result = $f.result; start = $f.start; x = $f.x; x$1 = $f.x$1; y = $f.y; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + b = this; + /* */ if (start > end || end > b.numBits) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (start > end || end > b.numBits) { */ case 1: + $r = log.Panicf("Out of range start=%d end=%d numBits=%d", new sliceType$1([new $Int(start), new $Int(end), new $Int(b.numBits)])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + result = New(new sliceType$2([])); + result.ensureCapacity(end - start >> 0); + i = start; + /* while (true) { */ case 4: + /* if (!(i < end)) { break; } */ if(!(i < end)) { $s = 5; continue; } + _r = b.At(i); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (_r) { */ case 6: + _index = (_q = result.numBits / 8, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + (x$1 = result.bits, ((_index < 0 || _index >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + _index] = (((x = result.bits, ((_index < 0 || _index >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + _index])) | (((y = (((_r$1 = result.numBits % 8, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) >>> 0)), y < 32 ? (128 >>> y) : 0) << 24 >>> 24))) >>> 0))); + /* } */ case 7: + result.numBits = result.numBits + (1) >> 0; + i = i + (1) >> 0; + /* } */ $s = 4; continue; case 5: + $s = -1; return result; + /* */ } return; } if ($f === undefined) { $f = { $blk: Bitset.ptr.prototype.Substr }; } $f._index = _index; $f._q = _q; $f._r = _r; $f._r$1 = _r$1; $f.b = b; $f.end = end; $f.i = i; $f.result = result; $f.start = start; $f.x = x; $f.x$1 = x$1; $f.y = y; $f.$s = $s; $f.$r = $r; return $f; + }; + Bitset.prototype.Substr = function(start, end) { return this.$val.Substr(start, end); }; + Bitset.ptr.prototype.AppendBytes = function(data) { + var _i, _ref, b, d, data, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _ref = $f._ref; b = $f.b; d = $f.d; data = $f.data; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + b = this; + _ref = data; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + d = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = b.AppendByte(d, 8); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + /* } */ $s = 1; continue; case 2: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Bitset.ptr.prototype.AppendBytes }; } $f._i = _i; $f._ref = _ref; $f.b = b; $f.d = d; $f.data = data; $f.$s = $s; $f.$r = $r; return $f; + }; + Bitset.prototype.AppendBytes = function(data) { return this.$val.AppendBytes(data); }; + Bitset.ptr.prototype.AppendByte = function(value, numBits) { + var _index, _q, _r, b, i, numBits, value, x, x$1, y, y$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _index = $f._index; _q = $f._q; _r = $f._r; b = $f.b; i = $f.i; numBits = $f.numBits; value = $f.value; x = $f.x; x$1 = $f.x$1; y = $f.y; y$1 = $f.y$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + b = this; + b.ensureCapacity(numBits); + /* */ if (numBits > 8) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (numBits > 8) { */ case 1: + $r = log.Panicf("numBits %d out of range 0-8", new sliceType$1([new $Int(numBits)])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + i = numBits - 1 >> 0; + while (true) { + if (!(i >= 0)) { break; } + if (!((((value & (((y = ((i >>> 0)), y < 32 ? (1 << y) : 0) << 24 >>> 24))) >>> 0) === 0))) { + _index = (_q = b.numBits / 8, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + (x$1 = b.bits, ((_index < 0 || _index >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + _index] = (((x = b.bits, ((_index < 0 || _index >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + _index])) | (((y$1 = (((_r = b.numBits % 8, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) >>> 0)), y$1 < 32 ? (128 >>> y$1) : 0) << 24 >>> 24))) >>> 0))); + } + b.numBits = b.numBits + (1) >> 0; + i = i - (1) >> 0; + } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Bitset.ptr.prototype.AppendByte }; } $f._index = _index; $f._q = _q; $f._r = _r; $f.b = b; $f.i = i; $f.numBits = numBits; $f.value = value; $f.x = x; $f.x$1 = x$1; $f.y = y; $f.y$1 = y$1; $f.$s = $s; $f.$r = $r; return $f; + }; + Bitset.prototype.AppendByte = function(value, numBits) { return this.$val.AppendByte(value, numBits); }; + Bitset.ptr.prototype.AppendUint32 = function(value, numBits) { + var _index, _q, _r, b, i, numBits, value, x, x$1, y, y$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _index = $f._index; _q = $f._q; _r = $f._r; b = $f.b; i = $f.i; numBits = $f.numBits; value = $f.value; x = $f.x; x$1 = $f.x$1; y = $f.y; y$1 = $f.y$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + b = this; + b.ensureCapacity(numBits); + /* */ if (numBits > 32) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (numBits > 32) { */ case 1: + $r = log.Panicf("numBits %d out of range 0-32", new sliceType$1([new $Int(numBits)])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + i = numBits - 1 >> 0; + while (true) { + if (!(i >= 0)) { break; } + if (!((((value & (((y = ((i >>> 0)), y < 32 ? (1 << y) : 0) >>> 0))) >>> 0) === 0))) { + _index = (_q = b.numBits / 8, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + (x$1 = b.bits, ((_index < 0 || _index >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + _index] = (((x = b.bits, ((_index < 0 || _index >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + _index])) | (((y$1 = (((_r = b.numBits % 8, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) >>> 0)), y$1 < 32 ? (128 >>> y$1) : 0) << 24 >>> 24))) >>> 0))); + } + b.numBits = b.numBits + (1) >> 0; + i = i - (1) >> 0; + } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Bitset.ptr.prototype.AppendUint32 }; } $f._index = _index; $f._q = _q; $f._r = _r; $f.b = b; $f.i = i; $f.numBits = numBits; $f.value = value; $f.x = x; $f.x$1 = x$1; $f.y = y; $f.y$1 = y$1; $f.$s = $s; $f.$r = $r; return $f; + }; + Bitset.prototype.AppendUint32 = function(value, numBits) { return this.$val.AppendUint32(value, numBits); }; + Bitset.ptr.prototype.ensureCapacity = function(numBits) { + var _q, _r, b, newNumBytes, numBits; + b = this; + numBits = numBits + (b.numBits) >> 0; + newNumBytes = (_q = numBits / 8, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + if (!(((_r = numBits % 8, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) === 0))) { + newNumBytes = newNumBytes + (1) >> 0; + } + if (b.bits.$length >= newNumBytes) { + return; + } + b.bits = $appendSlice(b.bits, $makeSlice(sliceType, (newNumBytes + ($imul(2, b.bits.$length)) >> 0))); + }; + Bitset.prototype.ensureCapacity = function(numBits) { return this.$val.ensureCapacity(numBits); }; + Bitset.ptr.prototype.Append = function(other) { + var _index, _q, _r, _r$1, b, i, other, x, x$1, y, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _index = $f._index; _q = $f._q; _r = $f._r; _r$1 = $f._r$1; b = $f.b; i = $f.i; other = $f.other; x = $f.x; x$1 = $f.x$1; y = $f.y; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + b = this; + b.ensureCapacity(other.numBits); + i = 0; + /* while (true) { */ case 1: + /* if (!(i < other.numBits)) { break; } */ if(!(i < other.numBits)) { $s = 2; continue; } + _r = other.At(i); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_r) { */ case 3: + _index = (_q = b.numBits / 8, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + (x$1 = b.bits, ((_index < 0 || _index >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + _index] = (((x = b.bits, ((_index < 0 || _index >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + _index])) | (((y = (((_r$1 = b.numBits % 8, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) >>> 0)), y < 32 ? (128 >>> y) : 0) << 24 >>> 24))) >>> 0))); + /* } */ case 4: + b.numBits = b.numBits + (1) >> 0; + i = i + (1) >> 0; + /* } */ $s = 1; continue; case 2: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Bitset.ptr.prototype.Append }; } $f._index = _index; $f._q = _q; $f._r = _r; $f._r$1 = _r$1; $f.b = b; $f.i = i; $f.other = other; $f.x = x; $f.x$1 = x$1; $f.y = y; $f.$s = $s; $f.$r = $r; return $f; + }; + Bitset.prototype.Append = function(other) { return this.$val.Append(other); }; + Bitset.ptr.prototype.AppendBools = function(bits) { + var _i, _index, _q, _r, _ref, b, bits, v, x, x$1, y; + b = this; + b.ensureCapacity(bits.$length); + _ref = bits; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (v) { + _index = (_q = b.numBits / 8, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + (x$1 = b.bits, ((_index < 0 || _index >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + _index] = (((x = b.bits, ((_index < 0 || _index >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + _index])) | (((y = (((_r = b.numBits % 8, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) >>> 0)), y < 32 ? (128 >>> y) : 0) << 24 >>> 24))) >>> 0))); + } + b.numBits = b.numBits + (1) >> 0; + _i++; + } + }; + Bitset.prototype.AppendBools = function(bits) { return this.$val.AppendBools(bits); }; + Bitset.ptr.prototype.AppendNumBools = function(num, value) { + var b, i, num, value; + b = this; + i = 0; + while (true) { + if (!(i < num)) { break; } + b.AppendBools(new sliceType$2([value])); + i = i + (1) >> 0; + } + }; + Bitset.prototype.AppendNumBools = function(num, value) { return this.$val.AppendNumBools(num, value); }; + Bitset.ptr.prototype.String = function() { + var _q, _r, _r$1, _r$2, b, bitString, i, x, x$1, y, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; b = $f.b; bitString = $f.bitString; i = $f.i; x = $f.x; x$1 = $f.x$1; y = $f.y; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + b = this; + bitString = ""; + i = 0; + while (true) { + if (!(i < b.numBits)) { break; } + if (((_r = i % 8, _r === _r ? _r : $throwRuntimeError("integer divide by zero"))) === 0) { + bitString = bitString + (" "); + } + if (!((((((x = b.bits, x$1 = (_q = i / 8, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])) & (((y = (((_r$1 = i % 8, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)), y < 32 ? (128 >>> y) : 0) << 24 >>> 24))) >>> 0)) === 0))) { + bitString = bitString + ("1"); + } else { + bitString = bitString + ("0"); + } + i = i + (1) >> 0; + } + _r$2 = fmt.Sprintf("numBits=%d, bits=%s", new sliceType$1([new $Int(b.numBits), new $String(bitString)])); /* */ $s = 1; case 1: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $s = -1; return _r$2; + /* */ } return; } if ($f === undefined) { $f = { $blk: Bitset.ptr.prototype.String }; } $f._q = _q; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.b = b; $f.bitString = bitString; $f.i = i; $f.x = x; $f.x$1 = x$1; $f.y = y; $f.$s = $s; $f.$r = $r; return $f; + }; + Bitset.prototype.String = function() { return this.$val.String(); }; + Bitset.ptr.prototype.Len = function() { + var b; + b = this; + return b.numBits; + }; + Bitset.prototype.Len = function() { return this.$val.Len(); }; + Bitset.ptr.prototype.Bits = function() { + var _q, _r, b, i, result, x, x$1, y; + b = this; + result = $makeSlice(sliceType$2, b.numBits); + i = 0; + i = 0; + while (true) { + if (!(i < b.numBits)) { break; } + ((i < 0 || i >= result.$length) ? ($throwRuntimeError("index out of range"), undefined) : result.$array[result.$offset + i] = !((((((x = b.bits, x$1 = (_q = i / 8, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])) & (((y = (((_r = i % 8, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)), y < 32 ? (128 >>> y) : 0) << 24 >>> 24))) >>> 0)) === 0))); + i = i + (1) >> 0; + } + return result; + }; + Bitset.prototype.Bits = function() { return this.$val.Bits(); }; + Bitset.ptr.prototype.At = function(index) { + var _q, _r, b, index, x, x$1, y, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _r = $f._r; b = $f.b; index = $f.index; x = $f.x; x$1 = $f.x$1; y = $f.y; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + b = this; + /* */ if (index >= b.numBits) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (index >= b.numBits) { */ case 1: + $r = log.Panicf("Index %d out of range", new sliceType$1([new $Int(index)])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $s = -1; return !((((((x = b.bits, x$1 = (_q = index / 8, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])) & (((y = (((_r = index % 8, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)), y < 32 ? (128 >>> y) : 0) << 24 >>> 24))) >>> 0)) === 0)); + /* */ } return; } if ($f === undefined) { $f = { $blk: Bitset.ptr.prototype.At }; } $f._q = _q; $f._r = _r; $f.b = b; $f.index = index; $f.x = x; $f.x$1 = x$1; $f.y = y; $f.$s = $s; $f.$r = $r; return $f; + }; + Bitset.prototype.At = function(index) { return this.$val.At(index); }; + Bitset.ptr.prototype.Equals = function(other) { + var _q, _q$1, _q$2, _q$3, _q$4, _r, _r$1, a, b, b$1, i, other, x, x$1, x$2, x$3, y, y$1; + b = this; + if (!((b.numBits === other.numBits))) { + return false; + } + if (!bytes.Equal($subslice(b.bits, 0, (_q = b.numBits / 8, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))), $subslice(other.bits, 0, (_q$1 = b.numBits / 8, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"))))) { + return false; + } + i = $imul(8, ((_q$2 = b.numBits / 8, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero")))); + while (true) { + if (!(i < b.numBits)) { break; } + a = (((x = b.bits, x$1 = (_q$3 = i / 8, (_q$3 === _q$3 && _q$3 !== 1/0 && _q$3 !== -1/0) ? _q$3 >> 0 : $throwRuntimeError("integer divide by zero")), ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])) & (((y = (((_r = i % 8, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)), y < 32 ? (128 >>> y) : 0) << 24 >>> 24))) >>> 0); + b$1 = (((x$2 = other.bits, x$3 = (_q$4 = i / 8, (_q$4 === _q$4 && _q$4 !== 1/0 && _q$4 !== -1/0) ? _q$4 >> 0 : $throwRuntimeError("integer divide by zero")), ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])) & (((y$1 = (((_r$1 = i % 8, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)), y$1 < 32 ? (128 >>> y$1) : 0) << 24 >>> 24))) >>> 0); + if (!((a === b$1))) { + return false; + } + i = i + (1) >> 0; + } + return true; + }; + Bitset.prototype.Equals = function(other) { return this.$val.Equals(other); }; + Bitset.ptr.prototype.ByteAt = function(index) { + var _r, b, i, index, result, y, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; b = $f.b; i = $f.i; index = $f.index; result = $f.result; y = $f.y; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + b = this; + /* */ if (index < 0 || index >= b.numBits) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (index < 0 || index >= b.numBits) { */ case 1: + $r = log.Panicf("Index %d out of range", new sliceType$1([new $Int(index)])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + result = 0; + i = index; + /* while (true) { */ case 4: + /* if (!(i < (index + 8 >> 0) && i < b.numBits)) { break; } */ if(!(i < (index + 8 >> 0) && i < b.numBits)) { $s = 5; continue; } + result = (y = (1), y < 32 ? (result << y) : 0) << 24 >>> 24; + _r = b.At(i); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (_r) { */ case 6: + result = (result | (1)) >>> 0; + /* } */ case 7: + i = i + (1) >> 0; + /* } */ $s = 4; continue; case 5: + $s = -1; return result; + /* */ } return; } if ($f === undefined) { $f = { $blk: Bitset.ptr.prototype.ByteAt }; } $f._r = _r; $f.b = b; $f.i = i; $f.index = index; $f.result = result; $f.y = y; $f.$s = $s; $f.$r = $r; return $f; + }; + Bitset.prototype.ByteAt = function(index) { return this.$val.ByteAt(index); }; + ptrType.methods = [{prop: "Substr", name: "Substr", pkg: "", typ: $funcType([$Int, $Int], [ptrType], false)}, {prop: "AppendBytes", name: "AppendBytes", pkg: "", typ: $funcType([sliceType], [], false)}, {prop: "AppendByte", name: "AppendByte", pkg: "", typ: $funcType([$Uint8, $Int], [], false)}, {prop: "AppendUint32", name: "AppendUint32", pkg: "", typ: $funcType([$Uint32, $Int], [], false)}, {prop: "ensureCapacity", name: "ensureCapacity", pkg: "github.com/skip2/go-qrcode/bitset", typ: $funcType([$Int], [], false)}, {prop: "Append", name: "Append", pkg: "", typ: $funcType([ptrType], [], false)}, {prop: "AppendBools", name: "AppendBools", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "AppendNumBools", name: "AppendNumBools", pkg: "", typ: $funcType([$Int, $Bool], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Bits", name: "Bits", pkg: "", typ: $funcType([], [sliceType$2], false)}, {prop: "At", name: "At", pkg: "", typ: $funcType([$Int], [$Bool], false)}, {prop: "Equals", name: "Equals", pkg: "", typ: $funcType([ptrType], [$Bool], false)}, {prop: "ByteAt", name: "ByteAt", pkg: "", typ: $funcType([$Int], [$Uint8], false)}]; + Bitset.init("github.com/skip2/go-qrcode/bitset", [{prop: "numBits", name: "numBits", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "bits", name: "bits", embedded: false, exported: false, typ: sliceType, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fmt.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = log.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["github.com/skip2/go-qrcode/reedsolomon"] = (function() { + var $pkg = {}, $init, fmt, bitset, log, gfElement, gfPoly, sliceType, sliceType$1, sliceType$2, ptrType, gfExpTable, gfLogTable, gfAdd, gfMultiply, gfDivide, gfInverse, newGFPolyFromData, newGFPolyMonomial, gfPolyMultiply, gfPolyRemainder, gfPolyAdd, Encode, rsGeneratorPoly; + fmt = $packages["fmt"]; + bitset = $packages["github.com/skip2/go-qrcode/bitset"]; + log = $packages["log"]; + gfElement = $pkg.gfElement = $newType(1, $kindUint8, "reedsolomon.gfElement", true, "github.com/skip2/go-qrcode/reedsolomon", false, null); + gfPoly = $pkg.gfPoly = $newType(0, $kindStruct, "reedsolomon.gfPoly", true, "github.com/skip2/go-qrcode/reedsolomon", false, function(term_) { + this.$val = this; + if (arguments.length === 0) { + this.term = sliceType$1.nil; + return; + } + this.term = term_; + }); + sliceType = $sliceType($emptyInterface); + sliceType$1 = $sliceType(gfElement); + sliceType$2 = $sliceType($Uint8); + ptrType = $ptrType(gfPoly); + gfAdd = function(a, b) { + var a, b; + return (a ^ b) << 24 >>> 24; + }; + gfMultiply = function(a, b) { + var _r, a, b, x; + if ((a === 0) || (b === 0)) { + return 0; + } + return (x = (_r = ((((a < 0 || a >= gfLogTable.length) ? ($throwRuntimeError("index out of range"), undefined) : gfLogTable[a]) + ((b < 0 || b >= gfLogTable.length) ? ($throwRuntimeError("index out of range"), undefined) : gfLogTable[b]) >> 0)) % 255, _r === _r ? _r : $throwRuntimeError("integer divide by zero")), ((x < 0 || x >= gfExpTable.length) ? ($throwRuntimeError("index out of range"), undefined) : gfExpTable[x])); + }; + gfDivide = function(a, b) { + var _arg, _arg$1, _r, _r$1, a, b, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _r = $f._r; _r$1 = $f._r$1; a = $f.a; b = $f.b; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ if (a === 0) { $s = 1; continue; } + /* */ if (b === 0) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (a === 0) { */ case 1: + $s = -1; return 0; + /* } else if (b === 0) { */ case 2: + $r = log.Panicln(new sliceType([new $String("Divide by zero")])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 3: + _arg = a; + _r = gfInverse(b); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = _r; + _r$1 = gfMultiply(_arg, _arg$1); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return _r$1; + /* */ } return; } if ($f === undefined) { $f = { $blk: gfDivide }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._r = _r; $f._r$1 = _r$1; $f.a = a; $f.b = b; $f.$s = $s; $f.$r = $r; return $f; + }; + gfInverse = function(a) { + var a, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; a = $f.a; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ if (a === 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (a === 0) { */ case 1: + $r = log.Panicln(new sliceType([new $String("No multiplicative inverse of 0")])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $s = -1; return (x = 255 - ((a < 0 || a >= gfLogTable.length) ? ($throwRuntimeError("index out of range"), undefined) : gfLogTable[a]) >> 0, ((x < 0 || x >= gfExpTable.length) ? ($throwRuntimeError("index out of range"), undefined) : gfExpTable[x])); + /* */ } return; } if ($f === undefined) { $f = { $blk: gfInverse }; } $f.a = a; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + newGFPolyFromData = function(data) { + var _q, _r, _r$1, data, i, j, numTotalBytes, result, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _r = $f._r; _r$1 = $f._r$1; data = $f.data; i = $f.i; j = $f.j; numTotalBytes = $f.numTotalBytes; result = $f.result; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + numTotalBytes = (_q = data.Len() / 8, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + if (!(((_r = data.Len() % 8, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) === 0))) { + numTotalBytes = numTotalBytes + (1) >> 0; + } + result = new gfPoly.ptr($makeSlice(sliceType$1, numTotalBytes)); + i = numTotalBytes - 1 >> 0; + j = 0; + /* while (true) { */ case 1: + /* if (!(j < data.Len())) { break; } */ if(!(j < data.Len())) { $s = 2; continue; } + _r$1 = data.ByteAt(j); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + (x = result.term, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i] = ((_r$1 << 24 >>> 24)))); + i = i - (1) >> 0; + j = j + (8) >> 0; + /* } */ $s = 1; continue; case 2: + $s = -1; return result; + /* */ } return; } if ($f === undefined) { $f = { $blk: newGFPolyFromData }; } $f._q = _q; $f._r = _r; $f._r$1 = _r$1; $f.data = data; $f.i = i; $f.j = j; $f.numTotalBytes = numTotalBytes; $f.result = result; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + newGFPolyMonomial = function(term, degree) { + var degree, result, term, x; + if (term === 0) { + return new gfPoly.ptr(sliceType$1.nil); + } + result = new gfPoly.ptr($makeSlice(sliceType$1, (degree + 1 >> 0))); + (x = result.term, ((degree < 0 || degree >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + degree] = term)); + return result; + }; + gfPoly.ptr.prototype.data = function(numTerms) { + var e, i, j, numTerms, result, x; + e = this; + result = $makeSlice(sliceType$2, numTerms); + i = numTerms - e.term.$length >> 0; + j = e.term.$length - 1 >> 0; + while (true) { + if (!(j >= 0)) { break; } + ((i < 0 || i >= result.$length) ? ($throwRuntimeError("index out of range"), undefined) : result.$array[result.$offset + i] = (((x = e.term, ((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + j])) << 24 >>> 24))); + i = i + (1) >> 0; + j = j - (1) >> 0; + } + return result; + }; + gfPoly.prototype.data = function(numTerms) { return this.$val.data(numTerms); }; + gfPoly.ptr.prototype.numTerms = function() { + var e; + e = this; + return e.term.$length; + }; + gfPoly.prototype.numTerms = function() { return this.$val.numTerms(); }; + gfPolyMultiply = function(a, b) { + var a, b, i, j, monomial, numATerms, numBTerms, result, x, x$1, x$2, x$3, x$4, x$5; + numATerms = $clone(a, gfPoly).numTerms(); + numBTerms = $clone(b, gfPoly).numTerms(); + result = new gfPoly.ptr($makeSlice(sliceType$1, (numATerms + numBTerms >> 0))); + i = 0; + while (true) { + if (!(i < numATerms)) { break; } + j = 0; + while (true) { + if (!(j < numBTerms)) { break; } + if (!(((x = a.term, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])) === 0)) && !(((x$1 = b.term, ((j < 0 || j >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + j])) === 0))) { + monomial = new gfPoly.ptr($makeSlice(sliceType$1, ((i + j >> 0) + 1 >> 0))); + (x$4 = monomial.term, x$5 = i + j >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5] = gfMultiply((x$2 = a.term, ((i < 0 || i >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i])), (x$3 = b.term, ((j < 0 || j >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + j]))))); + gfPoly.copy(result, gfPolyAdd($clone(result, gfPoly), $clone(monomial, gfPoly))); + } + j = j + (1) >> 0; + } + i = i + (1) >> 0; + } + return $clone(result, gfPoly).normalised(); + }; + gfPolyRemainder = function(numerator, denominator) { + var _r, coefficient, degree, denominator, divisor, numerator, remainder, x, x$1, x$2, x$3, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; coefficient = $f.coefficient; degree = $f.degree; denominator = $f.denominator; divisor = $f.divisor; numerator = $f.numerator; remainder = $f.remainder; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ if ($clone(denominator, gfPoly).equals(new gfPoly.ptr(sliceType$1.nil))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ($clone(denominator, gfPoly).equals(new gfPoly.ptr(sliceType$1.nil))) { */ case 1: + $r = log.Panicln(new sliceType([new $String("Remainder by zero")])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + remainder = $clone(numerator, gfPoly); + /* while (true) { */ case 4: + /* if (!($clone(remainder, gfPoly).numTerms() >= $clone(denominator, gfPoly).numTerms())) { break; } */ if(!($clone(remainder, gfPoly).numTerms() >= $clone(denominator, gfPoly).numTerms())) { $s = 5; continue; } + degree = $clone(remainder, gfPoly).numTerms() - $clone(denominator, gfPoly).numTerms() >> 0; + _r = gfDivide((x = remainder.term, x$1 = $clone(remainder, gfPoly).numTerms() - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])), (x$2 = denominator.term, x$3 = $clone(denominator, gfPoly).numTerms() - 1 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3]))); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + coefficient = _r; + divisor = $clone(gfPolyMultiply($clone(denominator, gfPoly), $clone(newGFPolyMonomial(coefficient, degree), gfPoly)), gfPoly); + gfPoly.copy(remainder, gfPolyAdd($clone(remainder, gfPoly), $clone(divisor, gfPoly))); + /* } */ $s = 4; continue; case 5: + $s = -1; return $clone(remainder, gfPoly).normalised(); + /* */ } return; } if ($f === undefined) { $f = { $blk: gfPolyRemainder }; } $f._r = _r; $f.coefficient = coefficient; $f.degree = degree; $f.denominator = denominator; $f.divisor = divisor; $f.numerator = numerator; $f.remainder = remainder; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.$s = $s; $f.$r = $r; return $f; + }; + gfPolyAdd = function(a, b) { + var a, b, i, numATerms, numBTerms, numTerms, result, x, x$1, x$2, x$3, x$4, x$5, x$6; + numATerms = $clone(a, gfPoly).numTerms(); + numBTerms = $clone(b, gfPoly).numTerms(); + numTerms = numATerms; + if (numBTerms > numTerms) { + numTerms = numBTerms; + } + result = new gfPoly.ptr($makeSlice(sliceType$1, numTerms)); + i = 0; + while (true) { + if (!(i < numTerms)) { break; } + if (numATerms > i && numBTerms > i) { + (x$2 = result.term, ((i < 0 || i >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i] = gfAdd((x = a.term, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])), (x$1 = b.term, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i]))))); + } else if (numATerms > i) { + (x$4 = result.term, ((i < 0 || i >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + i] = (x$3 = a.term, ((i < 0 || i >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + i])))); + } else { + (x$6 = result.term, ((i < 0 || i >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + i] = (x$5 = b.term, ((i < 0 || i >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + i])))); + } + i = i + (1) >> 0; + } + return $clone(result, gfPoly).normalised(); + }; + gfPoly.ptr.prototype.normalised = function() { + var e, i, maxNonzeroTerm, numTerms, x; + e = this; + numTerms = $clone(e, gfPoly).numTerms(); + maxNonzeroTerm = numTerms - 1 >> 0; + i = numTerms - 1 >> 0; + while (true) { + if (!(i >= 0)) { break; } + if (!(((x = e.term, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])) === 0))) { + break; + } + maxNonzeroTerm = i - 1 >> 0; + i = i - (1) >> 0; + } + if (maxNonzeroTerm < 0) { + return new gfPoly.ptr(sliceType$1.nil); + } else if (maxNonzeroTerm < (numTerms - 1 >> 0)) { + e.term = $subslice(e.term, 0, (maxNonzeroTerm + 1 >> 0)); + } + return e; + }; + gfPoly.prototype.normalised = function() { return this.$val.normalised(); }; + gfPoly.ptr.prototype.equals = function(other) { + var e, i, i$1, maxecPoly, minecPoly, numMaxTerms, numMinTerms, other, x, x$1, x$2; + e = this; + minecPoly = ptrType.nil; + maxecPoly = ptrType.nil; + if ($clone(e, gfPoly).numTerms() > $clone(other, gfPoly).numTerms()) { + minecPoly = other; + maxecPoly = e; + } else { + minecPoly = e; + maxecPoly = other; + } + numMinTerms = $clone(minecPoly, gfPoly).numTerms(); + numMaxTerms = $clone(maxecPoly, gfPoly).numTerms(); + i = 0; + while (true) { + if (!(i < numMinTerms)) { break; } + if (!(((x = e.term, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])) === (x$1 = other.term, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i]))))) { + return false; + } + i = i + (1) >> 0; + } + i$1 = numMinTerms; + while (true) { + if (!(i$1 < numMaxTerms)) { break; } + if (!(((x$2 = maxecPoly.term, ((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$1])) === 0))) { + return false; + } + i$1 = i$1 + (1) >> 0; + } + return true; + }; + gfPoly.prototype.equals = function(other) { return this.$val.equals(other); }; + Encode = function(data, numECBytes) { + var _r, _r$1, _r$2, data, ecpoly, generator, numECBytes, remainder, result, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; data = $f.data; ecpoly = $f.ecpoly; generator = $f.generator; numECBytes = $f.numECBytes; remainder = $f.remainder; result = $f.result; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = newGFPolyFromData(data); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + ecpoly = $clone(_r, gfPoly); + gfPoly.copy(ecpoly, gfPolyMultiply($clone(ecpoly, gfPoly), $clone(newGFPolyMonomial(1, numECBytes), gfPoly))); + _r$1 = rsGeneratorPoly(numECBytes); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + generator = $clone(_r$1, gfPoly); + _r$2 = gfPolyRemainder($clone(ecpoly, gfPoly), $clone(generator, gfPoly)); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + remainder = $clone(_r$2, gfPoly); + result = bitset.Clone(data); + $r = result.AppendBytes($clone(remainder, gfPoly).data(numECBytes)); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return result; + /* */ } return; } if ($f === undefined) { $f = { $blk: Encode }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.data = data; $f.ecpoly = ecpoly; $f.generator = generator; $f.numECBytes = numECBytes; $f.remainder = remainder; $f.result = result; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Encode = Encode; + rsGeneratorPoly = function(degree) { + var degree, generator, i, nextPoly, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; degree = $f.degree; generator = $f.generator; i = $f.i; nextPoly = $f.nextPoly; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ if (degree < 2) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (degree < 2) { */ case 1: + $r = log.Panic(new sliceType([new $String("degree < 2")])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + generator = new gfPoly.ptr(new sliceType$1([1])); + i = 0; + while (true) { + if (!(i < degree)) { break; } + nextPoly = new gfPoly.ptr(new sliceType$1([((i < 0 || i >= gfExpTable.length) ? ($throwRuntimeError("index out of range"), undefined) : gfExpTable[i]), 1])); + gfPoly.copy(generator, gfPolyMultiply($clone(generator, gfPoly), $clone(nextPoly, gfPoly))); + i = i + (1) >> 0; + } + $s = -1; return generator; + /* */ } return; } if ($f === undefined) { $f = { $blk: rsGeneratorPoly }; } $f.degree = degree; $f.generator = generator; $f.i = i; $f.nextPoly = nextPoly; $f.$s = $s; $f.$r = $r; return $f; + }; + gfPoly.methods = [{prop: "data", name: "data", pkg: "github.com/skip2/go-qrcode/reedsolomon", typ: $funcType([$Int], [sliceType$2], false)}, {prop: "numTerms", name: "numTerms", pkg: "github.com/skip2/go-qrcode/reedsolomon", typ: $funcType([], [$Int], false)}, {prop: "normalised", name: "normalised", pkg: "github.com/skip2/go-qrcode/reedsolomon", typ: $funcType([], [gfPoly], false)}, {prop: "string", name: "string", pkg: "github.com/skip2/go-qrcode/reedsolomon", typ: $funcType([$Bool], [$String], false)}, {prop: "equals", name: "equals", pkg: "github.com/skip2/go-qrcode/reedsolomon", typ: $funcType([gfPoly], [$Bool], false)}]; + gfPoly.init("github.com/skip2/go-qrcode/reedsolomon", [{prop: "term", name: "term", embedded: false, exported: false, typ: sliceType$1, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = bitset.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = log.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + gfExpTable = $toNativeArray($kindUint8, [1, 2, 4, 8, 16, 32, 64, 128, 29, 58, 116, 232, 205, 135, 19, 38, 76, 152, 45, 90, 180, 117, 234, 201, 143, 3, 6, 12, 24, 48, 96, 192, 157, 39, 78, 156, 37, 74, 148, 53, 106, 212, 181, 119, 238, 193, 159, 35, 70, 140, 5, 10, 20, 40, 80, 160, 93, 186, 105, 210, 185, 111, 222, 161, 95, 190, 97, 194, 153, 47, 94, 188, 101, 202, 137, 15, 30, 60, 120, 240, 253, 231, 211, 187, 107, 214, 177, 127, 254, 225, 223, 163, 91, 182, 113, 226, 217, 175, 67, 134, 17, 34, 68, 136, 13, 26, 52, 104, 208, 189, 103, 206, 129, 31, 62, 124, 248, 237, 199, 147, 59, 118, 236, 197, 151, 51, 102, 204, 133, 23, 46, 92, 184, 109, 218, 169, 79, 158, 33, 66, 132, 21, 42, 84, 168, 77, 154, 41, 82, 164, 85, 170, 73, 146, 57, 114, 228, 213, 183, 115, 230, 209, 191, 99, 198, 145, 63, 126, 252, 229, 215, 179, 123, 246, 241, 255, 227, 219, 171, 75, 150, 49, 98, 196, 149, 55, 110, 220, 165, 87, 174, 65, 130, 25, 50, 100, 200, 141, 7, 14, 28, 56, 112, 224, 221, 167, 83, 166, 81, 162, 89, 178, 121, 242, 249, 239, 195, 155, 43, 86, 172, 69, 138, 9, 18, 36, 72, 144, 61, 122, 244, 245, 247, 243, 251, 235, 203, 139, 11, 22, 44, 88, 176, 125, 250, 233, 207, 131, 27, 54, 108, 216, 173, 71, 142, 1]); + gfLogTable = $toNativeArray($kindInt, [-1, 0, 1, 25, 2, 50, 26, 198, 3, 223, 51, 238, 27, 104, 199, 75, 4, 100, 224, 14, 52, 141, 239, 129, 28, 193, 105, 248, 200, 8, 76, 113, 5, 138, 101, 47, 225, 36, 15, 33, 53, 147, 142, 218, 240, 18, 130, 69, 29, 181, 194, 125, 106, 39, 249, 185, 201, 154, 9, 120, 77, 228, 114, 166, 6, 191, 139, 98, 102, 221, 48, 253, 226, 152, 37, 179, 16, 145, 34, 136, 54, 208, 148, 206, 143, 150, 219, 189, 241, 210, 19, 92, 131, 56, 70, 64, 30, 66, 182, 163, 195, 72, 126, 110, 107, 58, 40, 84, 250, 133, 186, 61, 202, 94, 155, 159, 10, 21, 121, 43, 78, 212, 229, 172, 115, 243, 167, 87, 7, 112, 192, 247, 140, 128, 99, 13, 103, 74, 222, 237, 49, 197, 254, 24, 227, 165, 153, 119, 38, 184, 180, 124, 17, 68, 146, 217, 35, 32, 137, 46, 55, 63, 209, 91, 149, 188, 207, 205, 144, 135, 151, 178, 220, 252, 190, 97, 242, 86, 211, 171, 20, 42, 93, 158, 132, 60, 57, 83, 71, 109, 65, 162, 31, 45, 67, 216, 183, 123, 164, 118, 196, 23, 73, 236, 127, 12, 111, 246, 108, 161, 59, 82, 41, 157, 85, 170, 251, 96, 134, 177, 187, 204, 62, 90, 203, 89, 95, 176, 156, 169, 160, 81, 11, 245, 22, 235, 122, 117, 44, 215, 79, 174, 213, 233, 230, 231, 173, 232, 116, 214, 244, 234, 168, 80, 88, 175]); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["compress/flate"] = (function() { + var $pkg = {}, $init, bufio, fmt, io, math, bits, sort, strconv, sync, compressionLevel, compressor, dictWriter, Writer, tableEntry, deflateFast, dictDecoder, huffmanBitWriter, hcode, huffmanEncoder, literalNode, levelInfo, byLiteral, byFreq, CorruptInputError, InternalError, Resetter, huffmanDecoder, Reader, decompressor, token, ptrType, arrayType, sliceType, sliceType$1, sliceType$2, sliceType$3, sliceType$4, ptrType$1, sliceType$5, ptrType$2, sliceType$6, ptrType$3, ptrType$4, arrayType$1, arrayType$2, arrayType$3, ptrType$5, ptrType$6, arrayType$4, arrayType$5, arrayType$6, sliceType$7, sliceType$8, sliceType$9, arrayType$7, arrayType$8, arrayType$9, arrayType$10, ptrType$7, ptrType$8, arrayType$11, ptrType$9, sliceType$10, ptrType$10, arrayType$12, arrayType$13, ptrType$11, arrayType$14, ptrType$12, arrayType$15, funcType, funcType$1, funcType$2, ptrType$13, ptrType$14, funcType$3, levels, lengthExtraBits, lengthBase, offsetExtraBits, offsetBase, codegenOrder, huffOffset, fixedLiteralEncoding, fixedOffsetEncoding, fixedOnce, fixedHuffmanDecoder, fixedHuffmanDecoder$24ptr, codeOrder, lengthCodes, offsetCodes, hash4, bulkHash4, matchLen, NewWriter, NewWriterDict, load32, load64, hash, newDeflateFast, emitLiteral, newHuffmanBitWriter, init, histogram, maxNode, newHuffmanEncoder, generateFixedLiteralEncoding, generateFixedOffsetEncoding, reverseBits, noEOF, makeReader, fixedHuffmanDecoderInit, NewReader, NewReaderDict, literalToken, matchToken, lengthCode, offsetCode; + bufio = $packages["bufio"]; + fmt = $packages["fmt"]; + io = $packages["io"]; + math = $packages["math"]; + bits = $packages["math/bits"]; + sort = $packages["sort"]; + strconv = $packages["strconv"]; + sync = $packages["sync"]; + compressionLevel = $pkg.compressionLevel = $newType(0, $kindStruct, "flate.compressionLevel", true, "compress/flate", false, function(level_, good_, lazy_, nice_, chain_, fastSkipHashing_) { + this.$val = this; + if (arguments.length === 0) { + this.level = 0; + this.good = 0; + this.lazy = 0; + this.nice = 0; + this.chain = 0; + this.fastSkipHashing = 0; + return; + } + this.level = level_; + this.good = good_; + this.lazy = lazy_; + this.nice = nice_; + this.chain = chain_; + this.fastSkipHashing = fastSkipHashing_; + }); + compressor = $pkg.compressor = $newType(0, $kindStruct, "flate.compressor", true, "compress/flate", false, function(compressionLevel_, w_, bulkHasher_, fill_, step_, sync_, bestSpeed_, chainHead_, hashHead_, hashPrev_, hashOffset_, index_, window_, windowEnd_, blockStart_, byteAvailable_, tokens_, length_, offset_, hash_, maxInsertIndex_, err_, hashMatch_) { + this.$val = this; + if (arguments.length === 0) { + this.compressionLevel = new compressionLevel.ptr(0, 0, 0, 0, 0, 0); + this.w = ptrType$3.nil; + this.bulkHasher = $throwNilPointerError; + this.fill = $throwNilPointerError; + this.step = $throwNilPointerError; + this.sync = false; + this.bestSpeed = ptrType$4.nil; + this.chainHead = 0; + this.hashHead = arrayType$1.zero(); + this.hashPrev = arrayType$2.zero(); + this.hashOffset = 0; + this.index = 0; + this.window = sliceType$4.nil; + this.windowEnd = 0; + this.blockStart = 0; + this.byteAvailable = false; + this.tokens = sliceType$5.nil; + this.length = 0; + this.offset = 0; + this.hash = 0; + this.maxInsertIndex = 0; + this.err = $ifaceNil; + this.hashMatch = arrayType$3.zero(); + return; + } + this.compressionLevel = compressionLevel_; + this.w = w_; + this.bulkHasher = bulkHasher_; + this.fill = fill_; + this.step = step_; + this.sync = sync_; + this.bestSpeed = bestSpeed_; + this.chainHead = chainHead_; + this.hashHead = hashHead_; + this.hashPrev = hashPrev_; + this.hashOffset = hashOffset_; + this.index = index_; + this.window = window_; + this.windowEnd = windowEnd_; + this.blockStart = blockStart_; + this.byteAvailable = byteAvailable_; + this.tokens = tokens_; + this.length = length_; + this.offset = offset_; + this.hash = hash_; + this.maxInsertIndex = maxInsertIndex_; + this.err = err_; + this.hashMatch = hashMatch_; + }); + dictWriter = $pkg.dictWriter = $newType(0, $kindStruct, "flate.dictWriter", true, "compress/flate", false, function(w_) { + this.$val = this; + if (arguments.length === 0) { + this.w = $ifaceNil; + return; + } + this.w = w_; + }); + Writer = $pkg.Writer = $newType(0, $kindStruct, "flate.Writer", true, "compress/flate", true, function(d_, dict_) { + this.$val = this; + if (arguments.length === 0) { + this.d = new compressor.ptr(new compressionLevel.ptr(0, 0, 0, 0, 0, 0), ptrType$3.nil, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, false, ptrType$4.nil, 0, arrayType$1.zero(), arrayType$2.zero(), 0, 0, sliceType$4.nil, 0, 0, false, sliceType$5.nil, 0, 0, 0, 0, $ifaceNil, arrayType$3.zero()); + this.dict = sliceType$4.nil; + return; + } + this.d = d_; + this.dict = dict_; + }); + tableEntry = $pkg.tableEntry = $newType(0, $kindStruct, "flate.tableEntry", true, "compress/flate", false, function(val_, offset_) { + this.$val = this; + if (arguments.length === 0) { + this.val = 0; + this.offset = 0; + return; + } + this.val = val_; + this.offset = offset_; + }); + deflateFast = $pkg.deflateFast = $newType(0, $kindStruct, "flate.deflateFast", true, "compress/flate", false, function(table_, prev_, cur_) { + this.$val = this; + if (arguments.length === 0) { + this.table = arrayType$4.zero(); + this.prev = sliceType$4.nil; + this.cur = 0; + return; + } + this.table = table_; + this.prev = prev_; + this.cur = cur_; + }); + dictDecoder = $pkg.dictDecoder = $newType(0, $kindStruct, "flate.dictDecoder", true, "compress/flate", false, function(hist_, wrPos_, rdPos_, full_) { + this.$val = this; + if (arguments.length === 0) { + this.hist = sliceType$4.nil; + this.wrPos = 0; + this.rdPos = 0; + this.full = false; + return; + } + this.hist = hist_; + this.wrPos = wrPos_; + this.rdPos = rdPos_; + this.full = full_; + }); + huffmanBitWriter = $pkg.huffmanBitWriter = $newType(0, $kindStruct, "flate.huffmanBitWriter", true, "compress/flate", false, function(writer_, bits_, nbits_, bytes_, codegenFreq_, nbytes_, literalFreq_, offsetFreq_, codegen_, literalEncoding_, offsetEncoding_, codegenEncoding_, err_) { + this.$val = this; + if (arguments.length === 0) { + this.writer = $ifaceNil; + this.bits = new $Uint64(0, 0); + this.nbits = 0; + this.bytes = arrayType$5.zero(); + this.codegenFreq = arrayType$6.zero(); + this.nbytes = 0; + this.literalFreq = sliceType$7.nil; + this.offsetFreq = sliceType$7.nil; + this.codegen = sliceType$4.nil; + this.literalEncoding = ptrType.nil; + this.offsetEncoding = ptrType.nil; + this.codegenEncoding = ptrType.nil; + this.err = $ifaceNil; + return; + } + this.writer = writer_; + this.bits = bits_; + this.nbits = nbits_; + this.bytes = bytes_; + this.codegenFreq = codegenFreq_; + this.nbytes = nbytes_; + this.literalFreq = literalFreq_; + this.offsetFreq = offsetFreq_; + this.codegen = codegen_; + this.literalEncoding = literalEncoding_; + this.offsetEncoding = offsetEncoding_; + this.codegenEncoding = codegenEncoding_; + this.err = err_; + }); + hcode = $pkg.hcode = $newType(0, $kindStruct, "flate.hcode", true, "compress/flate", false, function(code_, len_) { + this.$val = this; + if (arguments.length === 0) { + this.code = 0; + this.len = 0; + return; + } + this.code = code_; + this.len = len_; + }); + huffmanEncoder = $pkg.huffmanEncoder = $newType(0, $kindStruct, "flate.huffmanEncoder", true, "compress/flate", false, function(codes_, freqcache_, bitCount_, lns_, lfs_) { + this.$val = this; + if (arguments.length === 0) { + this.codes = sliceType$8.nil; + this.freqcache = sliceType$9.nil; + this.bitCount = arrayType$7.zero(); + this.lns = byLiteral.nil; + this.lfs = byFreq.nil; + return; + } + this.codes = codes_; + this.freqcache = freqcache_; + this.bitCount = bitCount_; + this.lns = lns_; + this.lfs = lfs_; + }); + literalNode = $pkg.literalNode = $newType(0, $kindStruct, "flate.literalNode", true, "compress/flate", false, function(literal_, freq_) { + this.$val = this; + if (arguments.length === 0) { + this.literal = 0; + this.freq = 0; + return; + } + this.literal = literal_; + this.freq = freq_; + }); + levelInfo = $pkg.levelInfo = $newType(0, $kindStruct, "flate.levelInfo", true, "compress/flate", false, function(level_, lastFreq_, nextCharFreq_, nextPairFreq_, needed_) { + this.$val = this; + if (arguments.length === 0) { + this.level = 0; + this.lastFreq = 0; + this.nextCharFreq = 0; + this.nextPairFreq = 0; + this.needed = 0; + return; + } + this.level = level_; + this.lastFreq = lastFreq_; + this.nextCharFreq = nextCharFreq_; + this.nextPairFreq = nextPairFreq_; + this.needed = needed_; + }); + byLiteral = $pkg.byLiteral = $newType(12, $kindSlice, "flate.byLiteral", true, "compress/flate", false, null); + byFreq = $pkg.byFreq = $newType(12, $kindSlice, "flate.byFreq", true, "compress/flate", false, null); + CorruptInputError = $pkg.CorruptInputError = $newType(8, $kindInt64, "flate.CorruptInputError", true, "compress/flate", true, null); + InternalError = $pkg.InternalError = $newType(8, $kindString, "flate.InternalError", true, "compress/flate", true, null); + Resetter = $pkg.Resetter = $newType(8, $kindInterface, "flate.Resetter", true, "compress/flate", true, null); + huffmanDecoder = $pkg.huffmanDecoder = $newType(0, $kindStruct, "flate.huffmanDecoder", true, "compress/flate", false, function(min_, chunks_, links_, linkMask_) { + this.$val = this; + if (arguments.length === 0) { + this.min = 0; + this.chunks = arrayType.zero(); + this.links = sliceType$1.nil; + this.linkMask = 0; + return; + } + this.min = min_; + this.chunks = chunks_; + this.links = links_; + this.linkMask = linkMask_; + }); + Reader = $pkg.Reader = $newType(8, $kindInterface, "flate.Reader", true, "compress/flate", true, null); + decompressor = $pkg.decompressor = $newType(0, $kindStruct, "flate.decompressor", true, "compress/flate", false, function(r_, roffset_, b_, nb_, h1_, h2_, bits_, codebits_, dict_, buf_, step_, stepState_, final$12_, err_, toRead_, hl_, hd_, copyLen_, copyDist_) { + this.$val = this; + if (arguments.length === 0) { + this.r = $ifaceNil; + this.roffset = new $Int64(0, 0); + this.b = 0; + this.nb = 0; + this.h1 = new huffmanDecoder.ptr(0, arrayType.zero(), sliceType$1.nil, 0); + this.h2 = new huffmanDecoder.ptr(0, arrayType.zero(), sliceType$1.nil, 0); + this.bits = ptrType$11.nil; + this.codebits = ptrType$12.nil; + this.dict = new dictDecoder.ptr(sliceType$4.nil, 0, 0, false); + this.buf = arrayType$15.zero(); + this.step = $throwNilPointerError; + this.stepState = 0; + this.final$12 = false; + this.err = $ifaceNil; + this.toRead = sliceType$4.nil; + this.hl = ptrType$9.nil; + this.hd = ptrType$9.nil; + this.copyLen = 0; + this.copyDist = 0; + return; + } + this.r = r_; + this.roffset = roffset_; + this.b = b_; + this.nb = nb_; + this.h1 = h1_; + this.h2 = h2_; + this.bits = bits_; + this.codebits = codebits_; + this.dict = dict_; + this.buf = buf_; + this.step = step_; + this.stepState = stepState_; + this.final$12 = final$12_; + this.err = err_; + this.toRead = toRead_; + this.hl = hl_; + this.hd = hd_; + this.copyLen = copyLen_; + this.copyDist = copyDist_; + }); + token = $pkg.token = $newType(4, $kindUint32, "flate.token", true, "compress/flate", false, null); + ptrType = $ptrType(huffmanEncoder); + arrayType = $arrayType($Uint32, 512); + sliceType = $sliceType($Uint32); + sliceType$1 = $sliceType(sliceType); + sliceType$2 = $sliceType(compressionLevel); + sliceType$3 = $sliceType($Int8); + sliceType$4 = $sliceType($Uint8); + ptrType$1 = $ptrType($Uint32); + sliceType$5 = $sliceType(token); + ptrType$2 = $ptrType(compressor); + sliceType$6 = $sliceType($emptyInterface); + ptrType$3 = $ptrType(huffmanBitWriter); + ptrType$4 = $ptrType(deflateFast); + arrayType$1 = $arrayType($Uint32, 131072); + arrayType$2 = $arrayType($Uint32, 32768); + arrayType$3 = $arrayType($Uint32, 257); + ptrType$5 = $ptrType(Writer); + ptrType$6 = $ptrType(dictWriter); + arrayType$4 = $arrayType(tableEntry, 16384); + arrayType$5 = $arrayType($Uint8, 248); + arrayType$6 = $arrayType($Int32, 19); + sliceType$7 = $sliceType($Int32); + sliceType$8 = $sliceType(hcode); + sliceType$9 = $sliceType(literalNode); + arrayType$7 = $arrayType($Int32, 17); + arrayType$8 = $arrayType(levelInfo, 16); + arrayType$9 = $arrayType($Int32, 16); + arrayType$10 = $arrayType(arrayType$9, 16); + ptrType$7 = $ptrType(byLiteral); + ptrType$8 = $ptrType(byFreq); + arrayType$11 = $arrayType($Int, 16); + ptrType$9 = $ptrType(huffmanDecoder); + sliceType$10 = $sliceType($Int); + ptrType$10 = $ptrType(decompressor); + arrayType$12 = $arrayType($Int, 288); + arrayType$13 = $arrayType($Int, 316); + ptrType$11 = $ptrType(arrayType$13); + arrayType$14 = $arrayType($Int, 19); + ptrType$12 = $ptrType(arrayType$14); + arrayType$15 = $arrayType($Uint8, 4); + funcType = $funcType([sliceType$4, sliceType], [], false); + funcType$1 = $funcType([ptrType$2, sliceType$4], [$Int], false); + funcType$2 = $funcType([ptrType$2], [], false); + ptrType$13 = $ptrType(dictDecoder); + ptrType$14 = $ptrType(hcode); + funcType$3 = $funcType([ptrType$10], [], false); + compressor.ptr.prototype.fillDeflate = function(b) { + var _i, _i$1, _ref, _ref$1, b, d, delta, i, i$1, n, v, v$1, x, x$1, x$2, x$3; + d = this; + if (d.index >= 65274) { + $copySlice(d.window, $subslice(d.window, 32768, 65536)); + d.index = d.index - (32768) >> 0; + d.windowEnd = d.windowEnd - (32768) >> 0; + if (d.blockStart >= 32768) { + d.blockStart = d.blockStart - (32768) >> 0; + } else { + d.blockStart = 2147483647; + } + d.hashOffset = d.hashOffset + (32768) >> 0; + if (d.hashOffset > 16777216) { + delta = d.hashOffset - 1 >> 0; + d.hashOffset = d.hashOffset - (delta) >> 0; + d.chainHead = d.chainHead - (delta) >> 0; + _ref = new sliceType(d.hashPrev); + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (((v >> 0)) > delta) { + (x = d.hashPrev, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i] = (((((v >> 0)) - delta >> 0) >>> 0)))); + } else { + (x$1 = d.hashPrev, ((i < 0 || i >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[i] = 0)); + } + _i++; + } + _ref$1 = new sliceType(d.hashHead); + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i$1 = _i$1; + v$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + if (((v$1 >> 0)) > delta) { + (x$2 = d.hashHead, ((i$1 < 0 || i$1 >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i$1] = (((((v$1 >> 0)) - delta >> 0) >>> 0)))); + } else { + (x$3 = d.hashHead, ((i$1 < 0 || i$1 >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[i$1] = 0)); + } + _i$1++; + } + } + } + n = $copySlice($subslice(d.window, d.windowEnd), b); + d.windowEnd = d.windowEnd + (n) >> 0; + return n; + }; + compressor.prototype.fillDeflate = function(b) { return this.$val.fillDeflate(b); }; + compressor.ptr.prototype.writeBlock = function(tokens, index) { + var d, index, tokens, window, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; d = $f.d; index = $f.index; tokens = $f.tokens; window = $f.window; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + d = this; + /* */ if (index > 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (index > 0) { */ case 1: + window = sliceType$4.nil; + if (d.blockStart <= index) { + window = $subslice(d.window, d.blockStart, index); + } + d.blockStart = index; + $r = d.w.writeBlock(tokens, false, window); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return d.w.err; + /* } */ case 2: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: compressor.ptr.prototype.writeBlock }; } $f.d = d; $f.index = index; $f.tokens = tokens; $f.window = window; $f.$s = $s; $f.$r = $r; return $f; + }; + compressor.prototype.writeBlock = function(tokens, index) { return this.$val.writeBlock(tokens, index); }; + compressor.ptr.prototype.fillWindow = function(b) { + var _i, _q, _ref, b, d, di, dst, dstSize, end, hh, i, index, j, loops, n, newH, toCheck, val, x, x$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _q = $f._q; _ref = $f._ref; b = $f.b; d = $f.d; di = $f.di; dst = $f.dst; dstSize = $f.dstSize; end = $f.end; hh = $f.hh; i = $f.i; index = $f.index; j = $f.j; loops = $f.loops; n = $f.n; newH = $f.newH; toCheck = $f.toCheck; val = $f.val; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + d = this; + if (d.compressionLevel.level < 2) { + $s = -1; return; + } + if (!((d.index === 0)) || !((d.windowEnd === 0))) { + $panic(new $String("internal error: fillWindow called with stale data")); + } + if (b.$length > 32768) { + b = $subslice(b, (b.$length - 32768 >> 0)); + } + n = $copySlice(d.window, b); + loops = (_q = (((n + 256 >> 0) - 4 >> 0)) / 256, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + j = 0; + /* while (true) { */ case 1: + /* if (!(j < loops)) { break; } */ if(!(j < loops)) { $s = 2; continue; } + index = $imul(j, 256); + end = ((index + 256 >> 0) + 4 >> 0) - 1 >> 0; + if (end > n) { + end = n; + } + toCheck = $subslice(d.window, index, end); + dstSize = (toCheck.$length - 4 >> 0) + 1 >> 0; + /* */ if (dstSize <= 0) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (dstSize <= 0) { */ case 3: + j = j + (1) >> 0; + /* continue; */ $s = 1; continue; + /* } */ case 4: + dst = $subslice(new sliceType(d.hashMatch), 0, dstSize); + $r = d.bulkHasher(toCheck, dst); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + newH = 0; + _ref = dst; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + val = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + di = i + index >> 0; + newH = val; + hh = $indexPtr(d.hashHead, ((newH & 131071) >>> 0), ptrType$1); + (x = d.hashPrev, x$1 = di & 32767, ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1] = hh.$get())); + hh.$set((((di + d.hashOffset >> 0) >>> 0))); + _i++; + } + d.hash = newH; + j = j + (1) >> 0; + /* } */ $s = 1; continue; case 2: + d.windowEnd = n; + d.index = n; + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: compressor.ptr.prototype.fillWindow }; } $f._i = _i; $f._q = _q; $f._ref = _ref; $f.b = b; $f.d = d; $f.di = di; $f.dst = dst; $f.dstSize = dstSize; $f.end = end; $f.hh = hh; $f.i = i; $f.index = index; $f.j = j; $f.loops = loops; $f.n = n; $f.newH = newH; $f.toCheck = toCheck; $f.val = val; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f; + }; + compressor.prototype.fillWindow = function(b) { return this.$val.fillWindow(b); }; + compressor.ptr.prototype.findMatch = function(pos, prevHead, prevLength, lookahead) { + var d, i, length, lookahead, minIndex, minMatchLook, n, nice, offset, ok, pos, prevHead, prevLength, tries, wEnd, wPos, win, x, x$1, x$2, x$3, x$4; + length = 0; + offset = 0; + ok = false; + d = this; + minMatchLook = 258; + if (lookahead < minMatchLook) { + minMatchLook = lookahead; + } + win = $subslice(d.window, 0, (pos + minMatchLook >> 0)); + nice = win.$length - pos >> 0; + if (d.compressionLevel.nice < nice) { + nice = d.compressionLevel.nice; + } + tries = d.compressionLevel.chain; + length = prevLength; + if (length >= d.compressionLevel.good) { + tries = (tries >> $min((2), 31)) >> 0; + } + wEnd = (x = pos + length >> 0, ((x < 0 || x >= win.$length) ? ($throwRuntimeError("index out of range"), undefined) : win.$array[win.$offset + x])); + wPos = $subslice(win, pos); + minIndex = pos - 32768 >> 0; + i = prevHead; + while (true) { + if (!(tries > 0)) { break; } + if (wEnd === (x$1 = i + length >> 0, ((x$1 < 0 || x$1 >= win.$length) ? ($throwRuntimeError("index out of range"), undefined) : win.$array[win.$offset + x$1]))) { + n = matchLen($subslice(win, i), wPos, minMatchLook); + if (n > length && (n > 4 || (pos - i >> 0) <= 4096)) { + length = n; + offset = pos - i >> 0; + ok = true; + if (n >= nice) { + break; + } + wEnd = (x$2 = pos + n >> 0, ((x$2 < 0 || x$2 >= win.$length) ? ($throwRuntimeError("index out of range"), undefined) : win.$array[win.$offset + x$2])); + } + } + if (i === minIndex) { + break; + } + i = (((x$3 = d.hashPrev, x$4 = i & 32767, ((x$4 < 0 || x$4 >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[x$4])) >> 0)) - d.hashOffset >> 0; + if (i < minIndex || i < 0) { + break; + } + tries = tries - (1) >> 0; + } + return [length, offset, ok]; + }; + compressor.prototype.findMatch = function(pos, prevHead, prevLength, lookahead) { return this.$val.findMatch(pos, prevHead, prevLength, lookahead); }; + compressor.ptr.prototype.writeStoredBlock = function(buf) { + var buf, d, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; buf = $f.buf; d = $f.d; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + d = this; + $r = d.w.writeStoredHeader(buf.$length, false); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (!($interfaceIsEqual(d.w.err, $ifaceNil))) { + $s = -1; return d.w.err; + } + $r = d.w.writeBytes(buf); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return d.w.err; + /* */ } return; } if ($f === undefined) { $f = { $blk: compressor.ptr.prototype.writeStoredBlock }; } $f.buf = buf; $f.d = d; $f.$s = $s; $f.$r = $r; return $f; + }; + compressor.prototype.writeStoredBlock = function(buf) { return this.$val.writeStoredBlock(buf); }; + hash4 = function(b) { + var b; + return (($imul(((((((((((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]) >>> 0)) | ((((2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]) >>> 0)) << 8 >>> 0)) >>> 0) | ((((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]) >>> 0)) << 16 >>> 0)) >>> 0) | ((((0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]) >>> 0)) << 24 >>> 0)) >>> 0)), 506832829) >>> 0)) >>> 15 >>> 0; + }; + bulkHash4 = function(b, dst) { + var b, dst, end, hb, i, x; + if (b.$length < 4) { + return; + } + hb = ((((((((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]) >>> 0)) | ((((2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]) >>> 0)) << 8 >>> 0)) >>> 0) | ((((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]) >>> 0)) << 16 >>> 0)) >>> 0) | ((((0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]) >>> 0)) << 24 >>> 0)) >>> 0; + (0 >= dst.$length ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + 0] = ((($imul(hb, 506832829) >>> 0)) >>> 15 >>> 0)); + end = (b.$length - 4 >> 0) + 1 >> 0; + i = 1; + while (true) { + if (!(i < end)) { break; } + hb = (((hb << 8 >>> 0)) | (((x = i + 3 >> 0, ((x < 0 || x >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + x])) >>> 0))) >>> 0; + ((i < 0 || i >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + i] = ((($imul(hb, 506832829) >>> 0)) >>> 15 >>> 0)); + i = i + (1) >> 0; + } + }; + matchLen = function(a, b, max) { + var _i, _ref, a, av, b, i, max; + a = $subslice(a, 0, max); + b = $subslice(b, 0, a.$length); + _ref = a; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + av = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!((((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i]) === av))) { + return i; + } + _i++; + } + return max; + }; + compressor.ptr.prototype.encSpeed = function() { + var _r, d, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; d = $f.d; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + d = this; + /* */ if (d.windowEnd < 65535) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (d.windowEnd < 65535) { */ case 1: + if (!d.sync) { + $s = -1; return; + } + /* */ if (d.windowEnd < 128) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (d.windowEnd < 128) { */ case 3: + /* */ if ((d.windowEnd === 0)) { $s = 6; continue; } + /* */ if (d.windowEnd <= 16) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if ((d.windowEnd === 0)) { */ case 6: + $s = -1; return; + /* } else if (d.windowEnd <= 16) { */ case 7: + _r = d.writeStoredBlock($subslice(d.window, 0, d.windowEnd)); /* */ $s = 10; case 10: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + d.err = _r; + $s = 9; continue; + /* } else { */ case 8: + $r = d.w.writeBlockHuff(false, $subslice(d.window, 0, d.windowEnd)); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + d.err = d.w.err; + /* } */ case 9: + case 5: + d.windowEnd = 0; + d.bestSpeed.reset(); + $s = -1; return; + /* } */ case 4: + /* } */ case 2: + d.tokens = d.bestSpeed.encode($subslice(d.tokens, 0, 0), $subslice(d.window, 0, d.windowEnd)); + /* */ if (d.tokens.$length > (d.windowEnd - ((d.windowEnd >> 4 >> 0)) >> 0)) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (d.tokens.$length > (d.windowEnd - ((d.windowEnd >> 4 >> 0)) >> 0)) { */ case 12: + $r = d.w.writeBlockHuff(false, $subslice(d.window, 0, d.windowEnd)); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 14; continue; + /* } else { */ case 13: + $r = d.w.writeBlockDynamic(d.tokens, false, $subslice(d.window, 0, d.windowEnd)); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 14: + d.err = d.w.err; + d.windowEnd = 0; + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: compressor.ptr.prototype.encSpeed }; } $f._r = _r; $f.d = d; $f.$s = $s; $f.$r = $r; return $f; + }; + compressor.prototype.encSpeed = function() { return this.$val.encSpeed(); }; + compressor.ptr.prototype.initDeflate = function() { + var d; + d = this; + d.window = $makeSlice(sliceType$4, 65536); + d.hashOffset = 1; + d.tokens = $makeSlice(sliceType$5, 0, 16385); + d.length = 3; + d.offset = 0; + d.byteAvailable = false; + d.index = 0; + d.hash = 0; + d.chainHead = -1; + d.bulkHasher = bulkHash4; + }; + compressor.prototype.initDeflate = function() { return this.$val.initDeflate(); }; + compressor.ptr.prototype.deflate = function() { + var _r, _r$1, _r$2, _tuple, d, hh, hh$1, i, lookahead, minIndex, newIndex, newLength, newOffset, ok, prevLength, prevOffset, x, x$1, x$2, x$3, x$4, x$5, x$6, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _tuple = $f._tuple; d = $f.d; hh = $f.hh; hh$1 = $f.hh$1; i = $f.i; lookahead = $f.lookahead; minIndex = $f.minIndex; newIndex = $f.newIndex; newLength = $f.newLength; newOffset = $f.newOffset; ok = $f.ok; prevLength = $f.prevLength; prevOffset = $f.prevOffset; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + d = this; + if ((d.windowEnd - d.index >> 0) < 262 && !d.sync) { + $s = -1; return; + } + d.maxInsertIndex = d.windowEnd - 3 >> 0; + if (d.index < d.maxInsertIndex) { + d.hash = hash4($subslice(d.window, d.index, (d.index + 4 >> 0))); + } + /* while (true) { */ case 1: + if (d.index > d.windowEnd) { + $panic(new $String("index > windowEnd")); + } + lookahead = d.windowEnd - d.index >> 0; + /* */ if (lookahead < 262) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (lookahead < 262) { */ case 3: + if (!d.sync) { + /* break Loop; */ $s = 2; continue s; + } + if (d.index > d.windowEnd) { + $panic(new $String("index > windowEnd")); + } + /* */ if (lookahead === 0) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (lookahead === 0) { */ case 5: + if (d.byteAvailable) { + d.tokens = $append(d.tokens, literalToken((((x = d.window, x$1 = d.index - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])) >>> 0)))); + d.byteAvailable = false; + } + /* */ if (d.tokens.$length > 0) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (d.tokens.$length > 0) { */ case 7: + _r = d.writeBlock(d.tokens, d.index); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + d.err = _r; + if (!($interfaceIsEqual(d.err, $ifaceNil))) { + $s = -1; return; + } + d.tokens = $subslice(d.tokens, 0, 0); + /* } */ case 8: + /* break Loop; */ $s = 2; continue s; + /* } */ case 6: + /* } */ case 4: + if (d.index < d.maxInsertIndex) { + d.hash = hash4($subslice(d.window, d.index, (d.index + 4 >> 0))); + hh = $indexPtr(d.hashHead, ((d.hash & 131071) >>> 0), ptrType$1); + d.chainHead = ((hh.$get() >> 0)); + (x$2 = d.hashPrev, x$3 = d.index & 32767, ((x$3 < 0 || x$3 >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[x$3] = ((d.chainHead >>> 0)))); + hh.$set((((d.index + d.hashOffset >> 0) >>> 0))); + } + prevLength = d.length; + prevOffset = d.offset; + d.length = 3; + d.offset = 0; + minIndex = d.index - 32768 >> 0; + if (minIndex < 0) { + minIndex = 0; + } + if ((d.chainHead - d.hashOffset >> 0) >= minIndex && (!((d.compressionLevel.fastSkipHashing === 2147483647)) && lookahead > 3 || (d.compressionLevel.fastSkipHashing === 2147483647) && lookahead > prevLength && prevLength < d.compressionLevel.lazy)) { + _tuple = d.findMatch(d.index, d.chainHead - d.hashOffset >> 0, 3, lookahead); + newLength = _tuple[0]; + newOffset = _tuple[1]; + ok = _tuple[2]; + if (ok) { + d.length = newLength; + d.offset = newOffset; + } + } + /* */ if (!((d.compressionLevel.fastSkipHashing === 2147483647)) && d.length >= 4 || (d.compressionLevel.fastSkipHashing === 2147483647) && prevLength >= 4 && d.length <= prevLength) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (!((d.compressionLevel.fastSkipHashing === 2147483647)) && d.length >= 4 || (d.compressionLevel.fastSkipHashing === 2147483647) && prevLength >= 4 && d.length <= prevLength) { */ case 10: + if (!((d.compressionLevel.fastSkipHashing === 2147483647))) { + d.tokens = $append(d.tokens, matchToken((((d.length - 3 >> 0) >>> 0)), (((d.offset - 1 >> 0) >>> 0)))); + } else { + d.tokens = $append(d.tokens, matchToken((((prevLength - 3 >> 0) >>> 0)), (((prevOffset - 1 >> 0) >>> 0)))); + } + if (d.length <= d.compressionLevel.fastSkipHashing) { + newIndex = 0; + if (!((d.compressionLevel.fastSkipHashing === 2147483647))) { + newIndex = d.index + d.length >> 0; + } else { + newIndex = (d.index + prevLength >> 0) - 1 >> 0; + } + d.index = d.index + (1) >> 0; + while (true) { + if (!(d.index < newIndex)) { break; } + if (d.index < d.maxInsertIndex) { + d.hash = hash4($subslice(d.window, d.index, (d.index + 4 >> 0))); + hh$1 = $indexPtr(d.hashHead, ((d.hash & 131071) >>> 0), ptrType$1); + (x$4 = d.hashPrev, x$5 = d.index & 32767, ((x$5 < 0 || x$5 >= x$4.length) ? ($throwRuntimeError("index out of range"), undefined) : x$4[x$5] = hh$1.$get())); + hh$1.$set((((d.index + d.hashOffset >> 0) >>> 0))); + } + d.index = d.index + (1) >> 0; + } + if (d.compressionLevel.fastSkipHashing === 2147483647) { + d.byteAvailable = false; + d.length = 3; + } + } else { + d.index = d.index + (d.length) >> 0; + if (d.index < d.maxInsertIndex) { + d.hash = hash4($subslice(d.window, d.index, (d.index + 4 >> 0))); + } + } + /* */ if (d.tokens.$length === 16384) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (d.tokens.$length === 16384) { */ case 13: + _r$1 = d.writeBlock(d.tokens, d.index); /* */ $s = 15; case 15: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + d.err = _r$1; + if (!($interfaceIsEqual(d.err, $ifaceNil))) { + $s = -1; return; + } + d.tokens = $subslice(d.tokens, 0, 0); + /* } */ case 14: + $s = 12; continue; + /* } else { */ case 11: + /* */ if (!((d.compressionLevel.fastSkipHashing === 2147483647)) || d.byteAvailable) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (!((d.compressionLevel.fastSkipHashing === 2147483647)) || d.byteAvailable) { */ case 16: + i = d.index - 1 >> 0; + if (!((d.compressionLevel.fastSkipHashing === 2147483647))) { + i = d.index; + } + d.tokens = $append(d.tokens, literalToken((((x$6 = d.window, ((i < 0 || i >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + i])) >>> 0)))); + /* */ if (d.tokens.$length === 16384) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (d.tokens.$length === 16384) { */ case 18: + _r$2 = d.writeBlock(d.tokens, i + 1 >> 0); /* */ $s = 20; case 20: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + d.err = _r$2; + if (!($interfaceIsEqual(d.err, $ifaceNil))) { + $s = -1; return; + } + d.tokens = $subslice(d.tokens, 0, 0); + /* } */ case 19: + /* } */ case 17: + d.index = d.index + (1) >> 0; + if (d.compressionLevel.fastSkipHashing === 2147483647) { + d.byteAvailable = true; + } + /* } */ case 12: + /* } */ $s = 1; continue; case 2: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: compressor.ptr.prototype.deflate }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tuple = _tuple; $f.d = d; $f.hh = hh; $f.hh$1 = hh$1; $f.i = i; $f.lookahead = lookahead; $f.minIndex = minIndex; $f.newIndex = newIndex; $f.newLength = newLength; $f.newOffset = newOffset; $f.ok = ok; $f.prevLength = prevLength; $f.prevOffset = prevOffset; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.$s = $s; $f.$r = $r; return $f; + }; + compressor.prototype.deflate = function() { return this.$val.deflate(); }; + compressor.ptr.prototype.fillStore = function(b) { + var b, d, n; + d = this; + n = $copySlice($subslice(d.window, d.windowEnd), b); + d.windowEnd = d.windowEnd + (n) >> 0; + return n; + }; + compressor.prototype.fillStore = function(b) { return this.$val.fillStore(b); }; + compressor.ptr.prototype.store = function() { + var _r, d, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; d = $f.d; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + d = this; + /* */ if (d.windowEnd > 0 && ((d.windowEnd === 65535) || d.sync)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (d.windowEnd > 0 && ((d.windowEnd === 65535) || d.sync)) { */ case 1: + _r = d.writeStoredBlock($subslice(d.window, 0, d.windowEnd)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + d.err = _r; + d.windowEnd = 0; + /* } */ case 2: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: compressor.ptr.prototype.store }; } $f._r = _r; $f.d = d; $f.$s = $s; $f.$r = $r; return $f; + }; + compressor.prototype.store = function() { return this.$val.store(); }; + compressor.ptr.prototype.storeHuff = function() { + var d, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; d = $f.d; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + d = this; + if (d.windowEnd < d.window.$length && !d.sync || (d.windowEnd === 0)) { + $s = -1; return; + } + $r = d.w.writeBlockHuff(false, $subslice(d.window, 0, d.windowEnd)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + d.err = d.w.err; + d.windowEnd = 0; + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: compressor.ptr.prototype.storeHuff }; } $f.d = d; $f.$s = $s; $f.$r = $r; return $f; + }; + compressor.prototype.storeHuff = function() { return this.$val.storeHuff(); }; + compressor.ptr.prototype.write = function(b) { + var _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, b, d, err, n, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; b = $f.b; d = $f.d; err = $f.err; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + d = this; + if (!($interfaceIsEqual(d.err, $ifaceNil))) { + _tmp = 0; + _tmp$1 = d.err; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + } + n = b.$length; + /* while (true) { */ case 1: + /* if (!(b.$length > 0)) { break; } */ if(!(b.$length > 0)) { $s = 2; continue; } + $r = d.step(d); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r = d.fill(d, b); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + b = $subslice(b, _r); + if (!($interfaceIsEqual(d.err, $ifaceNil))) { + _tmp$2 = 0; + _tmp$3 = d.err; + n = _tmp$2; + err = _tmp$3; + $s = -1; return [n, err]; + } + /* } */ $s = 1; continue; case 2: + _tmp$4 = n; + _tmp$5 = $ifaceNil; + n = _tmp$4; + err = _tmp$5; + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: compressor.ptr.prototype.write }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f.b = b; $f.d = d; $f.err = err; $f.n = n; $f.$s = $s; $f.$r = $r; return $f; + }; + compressor.prototype.write = function(b) { return this.$val.write(b); }; + compressor.ptr.prototype.syncFlush = function() { + var d, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; d = $f.d; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + d = this; + if (!($interfaceIsEqual(d.err, $ifaceNil))) { + $s = -1; return d.err; + } + d.sync = true; + $r = d.step(d); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if ($interfaceIsEqual(d.err, $ifaceNil)) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if ($interfaceIsEqual(d.err, $ifaceNil)) { */ case 2: + $r = d.w.writeStoredHeader(0, false); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = d.w.flush(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + d.err = d.w.err; + /* } */ case 3: + d.sync = false; + $s = -1; return d.err; + /* */ } return; } if ($f === undefined) { $f = { $blk: compressor.ptr.prototype.syncFlush }; } $f.d = d; $f.$s = $s; $f.$r = $r; return $f; + }; + compressor.prototype.syncFlush = function() { return this.$val.syncFlush(); }; + compressor.ptr.prototype.init = function(w, level) { + var _r, d, err, level, w, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; d = $f.d; err = $f.err; level = $f.level; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + err = $ifaceNil; + d = this; + d.w = newHuffmanBitWriter(w); + /* */ if ((level === 0)) { $s = 2; continue; } + /* */ if ((level === -2)) { $s = 3; continue; } + /* */ if ((level === 1)) { $s = 4; continue; } + /* */ if ((level === -1)) { $s = 5; continue; } + /* */ if (2 <= level && level <= 9) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if ((level === 0)) { */ case 2: + d.window = $makeSlice(sliceType$4, 65535); + d.fill = $methodExpr(ptrType$2, "fillStore"); + d.step = $methodExpr(ptrType$2, "store"); + $s = 8; continue; + /* } else if ((level === -2)) { */ case 3: + d.window = $makeSlice(sliceType$4, 65535); + d.fill = $methodExpr(ptrType$2, "fillStore"); + d.step = $methodExpr(ptrType$2, "storeHuff"); + $s = 8; continue; + /* } else if ((level === 1)) { */ case 4: + compressionLevel.copy(d.compressionLevel, ((level < 0 || level >= levels.$length) ? ($throwRuntimeError("index out of range"), undefined) : levels.$array[levels.$offset + level])); + d.window = $makeSlice(sliceType$4, 65535); + d.fill = $methodExpr(ptrType$2, "fillStore"); + d.step = $methodExpr(ptrType$2, "encSpeed"); + d.bestSpeed = newDeflateFast(); + d.tokens = $makeSlice(sliceType$5, 65535); + $s = 8; continue; + /* } else if ((level === -1)) { */ case 5: + level = 6; + compressionLevel.copy(d.compressionLevel, ((level < 0 || level >= levels.$length) ? ($throwRuntimeError("index out of range"), undefined) : levels.$array[levels.$offset + level])); + d.initDeflate(); + d.fill = $methodExpr(ptrType$2, "fillDeflate"); + d.step = $methodExpr(ptrType$2, "deflate"); + $s = 8; continue; + /* } else if (2 <= level && level <= 9) { */ case 6: + compressionLevel.copy(d.compressionLevel, ((level < 0 || level >= levels.$length) ? ($throwRuntimeError("index out of range"), undefined) : levels.$array[levels.$offset + level])); + d.initDeflate(); + d.fill = $methodExpr(ptrType$2, "fillDeflate"); + d.step = $methodExpr(ptrType$2, "deflate"); + $s = 8; continue; + /* } else { */ case 7: + _r = fmt.Errorf("flate: invalid compression level %d: want value in range [-2, 9]", new sliceType$6([new $Int(level)])); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + $s = -1; return err; + /* } */ case 8: + case 1: + err = $ifaceNil; + $s = -1; return err; + /* */ } return; } if ($f === undefined) { $f = { $blk: compressor.ptr.prototype.init }; } $f._r = _r; $f.d = d; $f.err = err; $f.level = level; $f.w = w; $f.$s = $s; $f.$r = $r; return $f; + }; + compressor.prototype.init = function(w, level) { return this.$val.init(w, level); }; + compressor.ptr.prototype.reset = function(w) { + var _1, _i, _i$1, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, d, i, i$1, w, x, x$1; + d = this; + d.w.reset(w); + d.sync = false; + d.err = $ifaceNil; + _1 = d.compressionLevel.level; + if (_1 === (0)) { + d.windowEnd = 0; + } else if (_1 === (1)) { + d.windowEnd = 0; + d.tokens = $subslice(d.tokens, 0, 0); + d.bestSpeed.reset(); + } else { + d.chainHead = -1; + _ref = d.hashHead; + _i = 0; + while (true) { + if (!(_i < 131072)) { break; } + i = _i; + (x = d.hashHead, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i] = 0)); + _i++; + } + _ref$1 = d.hashPrev; + _i$1 = 0; + while (true) { + if (!(_i$1 < 32768)) { break; } + i$1 = _i$1; + (x$1 = d.hashPrev, ((i$1 < 0 || i$1 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[i$1] = 0)); + _i$1++; + } + d.hashOffset = 1; + _tmp = 0; + _tmp$1 = 0; + d.index = _tmp; + d.windowEnd = _tmp$1; + _tmp$2 = 0; + _tmp$3 = false; + d.blockStart = _tmp$2; + d.byteAvailable = _tmp$3; + d.tokens = $subslice(d.tokens, 0, 0); + d.length = 3; + d.offset = 0; + d.hash = 0; + d.maxInsertIndex = 0; + } + }; + compressor.prototype.reset = function(w) { return this.$val.reset(w); }; + compressor.ptr.prototype.close = function() { + var d, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; d = $f.d; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + d = this; + if (!($interfaceIsEqual(d.err, $ifaceNil))) { + $s = -1; return d.err; + } + d.sync = true; + $r = d.step(d); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (!($interfaceIsEqual(d.err, $ifaceNil))) { + $s = -1; return d.err; + } + $r = d.w.writeStoredHeader(0, true); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (!($interfaceIsEqual(d.w.err, $ifaceNil))) { + $s = -1; return d.w.err; + } + $r = d.w.flush(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return d.w.err; + /* */ } return; } if ($f === undefined) { $f = { $blk: compressor.ptr.prototype.close }; } $f.d = d; $f.$s = $s; $f.$r = $r; return $f; + }; + compressor.prototype.close = function() { return this.$val.close(); }; + NewWriter = function(w, level) { + var _r, dw, err, level, w, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; dw = $f.dw; err = $f.err; level = $f.level; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + dw = [dw]; + dw[0] = new Writer.ptr(new compressor.ptr(new compressionLevel.ptr(0, 0, 0, 0, 0, 0), ptrType$3.nil, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, false, ptrType$4.nil, 0, arrayType$1.zero(), arrayType$2.zero(), 0, 0, sliceType$4.nil, 0, 0, false, sliceType$5.nil, 0, 0, 0, 0, $ifaceNil, arrayType$3.zero()), sliceType$4.nil); + _r = dw[0].d.init(w, level); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [ptrType$5.nil, err]; + } + $s = -1; return [dw[0], $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: NewWriter }; } $f._r = _r; $f.dw = dw; $f.err = err; $f.level = level; $f.w = w; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.NewWriter = NewWriter; + NewWriterDict = function(w, level, dict) { + var _r, _tuple, dict, dw, err, level, w, zw, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; dict = $f.dict; dw = $f.dw; err = $f.err; level = $f.level; w = $f.w; zw = $f.zw; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + dw = new dictWriter.ptr(w); + _r = NewWriter(dw, level); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + zw = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [ptrType$5.nil, err]; + } + $r = zw.d.fillWindow(dict); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + zw.dict = $appendSlice(zw.dict, dict); + $s = -1; return [zw, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: NewWriterDict }; } $f._r = _r; $f._tuple = _tuple; $f.dict = dict; $f.dw = dw; $f.err = err; $f.level = level; $f.w = w; $f.zw = zw; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.NewWriterDict = NewWriterDict; + dictWriter.ptr.prototype.Write = function(b) { + var _r, _tuple, b, err, n, w, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; b = $f.b; err = $f.err; n = $f.n; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + w = this; + _r = w.w.Write(b); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + err = _tuple[1]; + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: dictWriter.ptr.prototype.Write }; } $f._r = _r; $f._tuple = _tuple; $f.b = b; $f.err = err; $f.n = n; $f.w = w; $f.$s = $s; $f.$r = $r; return $f; + }; + dictWriter.prototype.Write = function(b) { return this.$val.Write(b); }; + Writer.ptr.prototype.Write = function(data) { + var _r, _tuple, data, err, n, w, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; data = $f.data; err = $f.err; n = $f.n; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + w = this; + _r = w.d.write(data); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + err = _tuple[1]; + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Writer.ptr.prototype.Write }; } $f._r = _r; $f._tuple = _tuple; $f.data = data; $f.err = err; $f.n = n; $f.w = w; $f.$s = $s; $f.$r = $r; return $f; + }; + Writer.prototype.Write = function(data) { return this.$val.Write(data); }; + Writer.ptr.prototype.Flush = function() { + var _r, w, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + w = this; + _r = w.d.syncFlush(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: Writer.ptr.prototype.Flush }; } $f._r = _r; $f.w = w; $f.$s = $s; $f.$r = $r; return $f; + }; + Writer.prototype.Flush = function() { return this.$val.Flush(); }; + Writer.ptr.prototype.Close = function() { + var _r, w, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + w = this; + _r = w.d.close(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: Writer.ptr.prototype.Close }; } $f._r = _r; $f.w = w; $f.$s = $s; $f.$r = $r; return $f; + }; + Writer.prototype.Close = function() { return this.$val.Close(); }; + Writer.ptr.prototype.Reset = function(dst) { + var _tuple, dst, dw, ok, w, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _tuple = $f._tuple; dst = $f.dst; dw = $f.dw; ok = $f.ok; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + w = this; + _tuple = $assertType(w.d.w.writer, ptrType$6, true); + dw = _tuple[0]; + ok = _tuple[1]; + /* */ if (ok) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (ok) { */ case 1: + dw.w = dst; + w.d.reset(dw); + $r = w.d.fillWindow(w.dict); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 3; continue; + /* } else { */ case 2: + w.d.reset(dst); + /* } */ case 3: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Writer.ptr.prototype.Reset }; } $f._tuple = _tuple; $f.dst = dst; $f.dw = dw; $f.ok = ok; $f.w = w; $f.$s = $s; $f.$r = $r; return $f; + }; + Writer.prototype.Reset = function(dst) { return this.$val.Reset(dst); }; + load32 = function(b, i) { + var b, i; + b = $subslice(b, i, (i + 4 >> 0), b.$length); + return ((((((((0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]) >>> 0)) | ((((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]) >>> 0)) << 8 >>> 0)) >>> 0) | ((((2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]) >>> 0)) << 16 >>> 0)) >>> 0) | ((((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]) >>> 0)) << 24 >>> 0)) >>> 0; + }; + load64 = function(b, i) { + var b, i, x, x$1, x$10, x$11, x$12, x$13, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + b = $subslice(b, i, (i + 8 >> 0), b.$length); + return (x = (x$1 = (x$2 = (x$3 = (x$4 = (x$5 = (x$6 = (new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), x$7 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 8), new $Uint64(x$6.$high | x$7.$high, (x$6.$low | x$7.$low) >>> 0)), x$8 = $shiftLeft64((new $Uint64(0, (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]))), 16), new $Uint64(x$5.$high | x$8.$high, (x$5.$low | x$8.$low) >>> 0)), x$9 = $shiftLeft64((new $Uint64(0, (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]))), 24), new $Uint64(x$4.$high | x$9.$high, (x$4.$low | x$9.$low) >>> 0)), x$10 = $shiftLeft64((new $Uint64(0, (4 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 4]))), 32), new $Uint64(x$3.$high | x$10.$high, (x$3.$low | x$10.$low) >>> 0)), x$11 = $shiftLeft64((new $Uint64(0, (5 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 5]))), 40), new $Uint64(x$2.$high | x$11.$high, (x$2.$low | x$11.$low) >>> 0)), x$12 = $shiftLeft64((new $Uint64(0, (6 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 6]))), 48), new $Uint64(x$1.$high | x$12.$high, (x$1.$low | x$12.$low) >>> 0)), x$13 = $shiftLeft64((new $Uint64(0, (7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7]))), 56), new $Uint64(x.$high | x$13.$high, (x.$low | x$13.$low) >>> 0)); + }; + hash = function(u) { + var u; + return (($imul(u, 506832829) >>> 0)) >>> 18 >>> 0; + }; + newDeflateFast = function() { + return new deflateFast.ptr(arrayType$4.zero(), $makeSlice(sliceType$4, 0, 65535), 65535); + }; + deflateFast.ptr.prototype.encode = function(dst, src) { + var bytesBetweenHashLookups, candidate, currHash, cv, dst, e, l, nextEmit, nextHash, nextS, now, offset, offset$1, prevHash, s, sLimit, skip, src, t, x, x$1, x$10, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s; + /* */ $s = 0; s: while (true) { switch ($s) { case 0: + e = this; + if (e.cur > 1073741824) { + e.resetAll(); + } + if (src.$length < 17) { + e.cur = e.cur + (65535) >> 0; + e.prev = $subslice(e.prev, 0, 0); + $s = -1; return emitLiteral(dst, src); + } + sLimit = (((src.$length - 15 >> 0) >> 0)); + nextEmit = 0; + s = 0; + cv = load32(src, s); + nextHash = hash(cv); + /* while (true) { */ case 1: + skip = 32; + nextS = s; + candidate = new tableEntry.ptr(0, 0); + /* while (true) { */ case 3: + s = nextS; + bytesBetweenHashLookups = skip >> 5 >> 0; + nextS = s + bytesBetweenHashLookups >> 0; + skip = skip + (bytesBetweenHashLookups) >> 0; + /* */ if (nextS > sLimit) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (nextS > sLimit) { */ case 5: + /* goto emitRemainder */ $s = 7; continue; + /* } */ case 6: + tableEntry.copy(candidate, (x = e.table, x$1 = (nextHash & 16383) >>> 0, ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1]))); + now = load32(src, nextS); + tableEntry.copy((x$2 = e.table, x$3 = (nextHash & 16383) >>> 0, ((x$3 < 0 || x$3 >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[x$3])), new tableEntry.ptr(cv, s + e.cur >> 0)); + nextHash = hash(now); + offset = s - ((candidate.offset - e.cur >> 0)) >> 0; + if (offset > 32768 || !((cv === candidate.val))) { + cv = now; + /* continue; */ $s = 3; continue; + } + /* break; */ $s = 4; continue; + /* } */ $s = 3; continue; case 4: + dst = emitLiteral(dst, $subslice(src, nextEmit, s)); + /* while (true) { */ case 8: + s = s + (4) >> 0; + t = (candidate.offset - e.cur >> 0) + 4 >> 0; + l = e.matchLen(s, t, src); + dst = $append(dst, matchToken(((((l + 4 >> 0) - 3 >> 0) >>> 0)), ((((s - t >> 0) - 1 >> 0) >>> 0)))); + s = s + (l) >> 0; + nextEmit = s; + /* */ if (s >= sLimit) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (s >= sLimit) { */ case 10: + /* goto emitRemainder */ $s = 7; continue; + /* } */ case 11: + x$4 = load64(src, s - 1 >> 0); + prevHash = hash(((x$4.$low >>> 0))); + tableEntry.copy((x$5 = e.table, x$6 = (prevHash & 16383) >>> 0, ((x$6 < 0 || x$6 >= x$5.length) ? ($throwRuntimeError("index out of range"), undefined) : x$5[x$6])), new tableEntry.ptr(((x$4.$low >>> 0)), (e.cur + s >> 0) - 1 >> 0)); + x$4 = $shiftRightUint64(x$4, (8)); + currHash = hash(((x$4.$low >>> 0))); + tableEntry.copy(candidate, (x$7 = e.table, x$8 = (currHash & 16383) >>> 0, ((x$8 < 0 || x$8 >= x$7.length) ? ($throwRuntimeError("index out of range"), undefined) : x$7[x$8]))); + tableEntry.copy((x$9 = e.table, x$10 = (currHash & 16383) >>> 0, ((x$10 < 0 || x$10 >= x$9.length) ? ($throwRuntimeError("index out of range"), undefined) : x$9[x$10])), new tableEntry.ptr(((x$4.$low >>> 0)), e.cur + s >> 0)); + offset$1 = s - ((candidate.offset - e.cur >> 0)) >> 0; + if (offset$1 > 32768 || !((((x$4.$low >>> 0)) === candidate.val))) { + cv = (($shiftRightUint64(x$4, 8).$low >>> 0)); + nextHash = hash(cv); + s = s + (1) >> 0; + /* break; */ $s = 9; continue; + } + /* } */ $s = 8; continue; case 9: + /* } */ $s = 1; continue; case 2: + /* emitRemainder: */ case 7: + if (((nextEmit >> 0)) < src.$length) { + dst = emitLiteral(dst, $subslice(src, nextEmit)); + } + e.cur = e.cur + (((src.$length >> 0))) >> 0; + e.prev = $subslice(e.prev, 0, src.$length); + $copySlice(e.prev, src); + $s = -1; return dst; + /* */ } return; } + }; + deflateFast.prototype.encode = function(dst, src) { return this.$val.encode(dst, src); }; + emitLiteral = function(dst, lit) { + var _i, _ref, dst, lit, v; + _ref = lit; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + dst = $append(dst, literalToken(((v >>> 0)))); + _i++; + } + return dst; + }; + deflateFast.ptr.prototype.matchLen = function(s, t, src) { + var _i, _i$1, _i$2, _ref, _ref$1, _ref$2, a, a$1, b, b$1, e, i, i$1, i$2, n, s, s1, src, t, tp; + e = this; + s1 = (((s >> 0)) + 258 >> 0) - 4 >> 0; + if (s1 > src.$length) { + s1 = src.$length; + } + if (t >= 0) { + b = $subslice(src, t); + a = $subslice(src, s, s1); + b = $subslice(b, 0, a.$length); + _ref = a; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + if (!((((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i]) === ((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i])))) { + return ((i >> 0)); + } + _i++; + } + return ((a.$length >> 0)); + } + tp = ((e.prev.$length >> 0)) + t >> 0; + if (tp < 0) { + return 0; + } + a$1 = $subslice(src, s, s1); + b$1 = $subslice(e.prev, tp); + if (b$1.$length > a$1.$length) { + b$1 = $subslice(b$1, 0, a$1.$length); + } + a$1 = $subslice(a$1, 0, b$1.$length); + _ref$1 = b$1; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i$1 = _i$1; + if (!((((i$1 < 0 || i$1 >= a$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : a$1.$array[a$1.$offset + i$1]) === ((i$1 < 0 || i$1 >= b$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : b$1.$array[b$1.$offset + i$1])))) { + return ((i$1 >> 0)); + } + _i$1++; + } + n = ((b$1.$length >> 0)); + if ((((s + n >> 0) >> 0)) === s1) { + return n; + } + a$1 = $subslice(src, (s + n >> 0), s1); + b$1 = $subslice(src, 0, a$1.$length); + _ref$2 = a$1; + _i$2 = 0; + while (true) { + if (!(_i$2 < _ref$2.$length)) { break; } + i$2 = _i$2; + if (!((((i$2 < 0 || i$2 >= a$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : a$1.$array[a$1.$offset + i$2]) === ((i$2 < 0 || i$2 >= b$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : b$1.$array[b$1.$offset + i$2])))) { + return ((i$2 >> 0)) + n >> 0; + } + _i$2++; + } + return ((a$1.$length >> 0)) + n >> 0; + }; + deflateFast.prototype.matchLen = function(s, t, src) { return this.$val.matchLen(s, t, src); }; + deflateFast.ptr.prototype.reset = function() { + var e; + e = this; + e.prev = $subslice(e.prev, 0, 0); + e.cur = e.cur + (32768) >> 0; + if (e.cur > 1073741824) { + e.resetAll(); + } + }; + deflateFast.prototype.reset = function() { return this.$val.reset(); }; + deflateFast.ptr.prototype.resetAll = function() { + var _i, _ref, e, i, x; + e = this; + e.cur = 65535; + e.prev = $subslice(e.prev, 0, 0); + _ref = e.table; + _i = 0; + while (true) { + if (!(_i < 16384)) { break; } + i = _i; + tableEntry.copy((x = e.table, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i])), new tableEntry.ptr(0, 0)); + _i++; + } + }; + deflateFast.prototype.resetAll = function() { return this.$val.resetAll(); }; + dictDecoder.ptr.prototype.init = function(size, dict) { + var dd, dict, size; + dd = this; + dictDecoder.copy(dd, new dictDecoder.ptr(dd.hist, 0, 0, false)); + if (dd.hist.$capacity < size) { + dd.hist = $makeSlice(sliceType$4, size); + } + dd.hist = $subslice(dd.hist, 0, size); + if (dict.$length > dd.hist.$length) { + dict = $subslice(dict, (dict.$length - dd.hist.$length >> 0)); + } + dd.wrPos = $copySlice(dd.hist, dict); + if (dd.wrPos === dd.hist.$length) { + dd.wrPos = 0; + dd.full = true; + } + dd.rdPos = dd.wrPos; + }; + dictDecoder.prototype.init = function(size, dict) { return this.$val.init(size, dict); }; + dictDecoder.ptr.prototype.histSize = function() { + var dd; + dd = this; + if (dd.full) { + return dd.hist.$length; + } + return dd.wrPos; + }; + dictDecoder.prototype.histSize = function() { return this.$val.histSize(); }; + dictDecoder.ptr.prototype.availRead = function() { + var dd; + dd = this; + return dd.wrPos - dd.rdPos >> 0; + }; + dictDecoder.prototype.availRead = function() { return this.$val.availRead(); }; + dictDecoder.ptr.prototype.availWrite = function() { + var dd; + dd = this; + return dd.hist.$length - dd.wrPos >> 0; + }; + dictDecoder.prototype.availWrite = function() { return this.$val.availWrite(); }; + dictDecoder.ptr.prototype.writeSlice = function() { + var dd; + dd = this; + return $subslice(dd.hist, dd.wrPos); + }; + dictDecoder.prototype.writeSlice = function() { return this.$val.writeSlice(); }; + dictDecoder.ptr.prototype.writeMark = function(cnt) { + var cnt, dd; + dd = this; + dd.wrPos = dd.wrPos + (cnt) >> 0; + }; + dictDecoder.prototype.writeMark = function(cnt) { return this.$val.writeMark(cnt); }; + dictDecoder.ptr.prototype.writeByte = function(c) { + var c, dd, x, x$1; + dd = this; + (x = dd.hist, x$1 = dd.wrPos, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1] = c)); + dd.wrPos = dd.wrPos + (1) >> 0; + }; + dictDecoder.prototype.writeByte = function(c) { return this.$val.writeByte(c); }; + dictDecoder.ptr.prototype.writeCopy = function(dist, length) { + var dd, dist, dstBase, dstPos, endPos, length, srcPos; + dd = this; + dstBase = dd.wrPos; + dstPos = dstBase; + srcPos = dstPos - dist >> 0; + endPos = dstPos + length >> 0; + if (endPos > dd.hist.$length) { + endPos = dd.hist.$length; + } + if (srcPos < 0) { + srcPos = srcPos + (dd.hist.$length) >> 0; + dstPos = dstPos + ($copySlice($subslice(dd.hist, dstPos, endPos), $subslice(dd.hist, srcPos))) >> 0; + srcPos = 0; + } + while (true) { + if (!(dstPos < endPos)) { break; } + dstPos = dstPos + ($copySlice($subslice(dd.hist, dstPos, endPos), $subslice(dd.hist, srcPos, dstPos))) >> 0; + } + dd.wrPos = dstPos; + return dstPos - dstBase >> 0; + }; + dictDecoder.prototype.writeCopy = function(dist, length) { return this.$val.writeCopy(dist, length); }; + dictDecoder.ptr.prototype.tryWriteCopy = function(dist, length) { + var dd, dist, dstBase, dstPos, endPos, length, srcPos, $s; + /* */ $s = 0; s: while (true) { switch ($s) { case 0: + dd = this; + dstPos = dd.wrPos; + endPos = dstPos + length >> 0; + if (dstPos < dist || endPos > dd.hist.$length) { + $s = -1; return 0; + } + dstBase = dstPos; + srcPos = dstPos - dist >> 0; + /* loop: */ case 1: + dstPos = dstPos + ($copySlice($subslice(dd.hist, dstPos, endPos), $subslice(dd.hist, srcPos, dstPos))) >> 0; + /* */ if (dstPos < endPos) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (dstPos < endPos) { */ case 2: + /* goto loop */ $s = 1; continue; + /* } */ case 3: + dd.wrPos = dstPos; + $s = -1; return dstPos - dstBase >> 0; + /* */ } return; } + }; + dictDecoder.prototype.tryWriteCopy = function(dist, length) { return this.$val.tryWriteCopy(dist, length); }; + dictDecoder.ptr.prototype.readFlush = function() { + var _tmp, _tmp$1, dd, toRead; + dd = this; + toRead = $subslice(dd.hist, dd.rdPos, dd.wrPos); + dd.rdPos = dd.wrPos; + if (dd.wrPos === dd.hist.$length) { + _tmp = 0; + _tmp$1 = 0; + dd.wrPos = _tmp; + dd.rdPos = _tmp$1; + dd.full = true; + } + return toRead; + }; + dictDecoder.prototype.readFlush = function() { return this.$val.readFlush(); }; + newHuffmanBitWriter = function(w) { + var w; + return new huffmanBitWriter.ptr(w, new $Uint64(0, 0), 0, arrayType$5.zero(), arrayType$6.zero(), 0, $makeSlice(sliceType$7, 286), $makeSlice(sliceType$7, 30), $makeSlice(sliceType$4, 317), newHuffmanEncoder(286), newHuffmanEncoder(30), newHuffmanEncoder(19), $ifaceNil); + }; + huffmanBitWriter.ptr.prototype.reset = function(writer) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, w, writer; + w = this; + w.writer = writer; + _tmp = new $Uint64(0, 0); + _tmp$1 = 0; + _tmp$2 = 0; + _tmp$3 = $ifaceNil; + w.bits = _tmp; + w.nbits = _tmp$1; + w.nbytes = _tmp$2; + w.err = _tmp$3; + arrayType$5.copy(w.bytes, arrayType$5.zero()); + }; + huffmanBitWriter.prototype.reset = function(writer) { return this.$val.reset(writer); }; + huffmanBitWriter.ptr.prototype.flush = function() { + var n, w, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; n = $f.n; w = $f.w; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + w = this; + if (!($interfaceIsEqual(w.err, $ifaceNil))) { + w.nbits = 0; + $s = -1; return; + } + n = w.nbytes; + while (true) { + if (!(!((w.nbits === 0)))) { break; } + (x = w.bytes, ((n < 0 || n >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[n] = ((w.bits.$low << 24 >>> 24)))); + w.bits = $shiftRightUint64(w.bits, (8)); + if (w.nbits > 8) { + w.nbits = w.nbits - (8) >>> 0; + } else { + w.nbits = 0; + } + n = n + (1) >> 0; + } + w.bits = new $Uint64(0, 0); + $r = w.write($subslice(new sliceType$4(w.bytes), 0, n)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + w.nbytes = 0; + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: huffmanBitWriter.ptr.prototype.flush }; } $f.n = n; $f.w = w; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + huffmanBitWriter.prototype.flush = function() { return this.$val.flush(); }; + huffmanBitWriter.ptr.prototype.write = function(b) { + var _r, _tuple, b, w, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; b = $f.b; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + w = this; + if (!($interfaceIsEqual(w.err, $ifaceNil))) { + $s = -1; return; + } + _r = w.writer.Write(b); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + w.err = _tuple[1]; + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: huffmanBitWriter.ptr.prototype.write }; } $f._r = _r; $f._tuple = _tuple; $f.b = b; $f.w = w; $f.$s = $s; $f.$r = $r; return $f; + }; + huffmanBitWriter.prototype.write = function(b) { return this.$val.write(b); }; + huffmanBitWriter.ptr.prototype.writeBits = function(b, nb) { + var b, bits$1, bytes, n, nb, w, x, x$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; b = $f.b; bits$1 = $f.bits$1; bytes = $f.bytes; n = $f.n; nb = $f.nb; w = $f.w; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + w = this; + if (!($interfaceIsEqual(w.err, $ifaceNil))) { + $s = -1; return; + } + w.bits = (x = w.bits, x$1 = $shiftLeft64((new $Uint64(0, b)), w.nbits), new $Uint64(x.$high | x$1.$high, (x.$low | x$1.$low) >>> 0)); + w.nbits = w.nbits + (nb) >>> 0; + /* */ if (w.nbits >= 48) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (w.nbits >= 48) { */ case 1: + bits$1 = w.bits; + w.bits = $shiftRightUint64(w.bits, (48)); + w.nbits = w.nbits - (48) >>> 0; + n = w.nbytes; + bytes = $subslice(new sliceType$4(w.bytes), n, (n + 6 >> 0)); + (0 >= bytes.$length ? ($throwRuntimeError("index out of range"), undefined) : bytes.$array[bytes.$offset + 0] = ((bits$1.$low << 24 >>> 24))); + (1 >= bytes.$length ? ($throwRuntimeError("index out of range"), undefined) : bytes.$array[bytes.$offset + 1] = (($shiftRightUint64(bits$1, 8).$low << 24 >>> 24))); + (2 >= bytes.$length ? ($throwRuntimeError("index out of range"), undefined) : bytes.$array[bytes.$offset + 2] = (($shiftRightUint64(bits$1, 16).$low << 24 >>> 24))); + (3 >= bytes.$length ? ($throwRuntimeError("index out of range"), undefined) : bytes.$array[bytes.$offset + 3] = (($shiftRightUint64(bits$1, 24).$low << 24 >>> 24))); + (4 >= bytes.$length ? ($throwRuntimeError("index out of range"), undefined) : bytes.$array[bytes.$offset + 4] = (($shiftRightUint64(bits$1, 32).$low << 24 >>> 24))); + (5 >= bytes.$length ? ($throwRuntimeError("index out of range"), undefined) : bytes.$array[bytes.$offset + 5] = (($shiftRightUint64(bits$1, 40).$low << 24 >>> 24))); + n = n + (6) >> 0; + /* */ if (n >= 240) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (n >= 240) { */ case 3: + $r = w.write($subslice(new sliceType$4(w.bytes), 0, n)); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + n = 0; + /* } */ case 4: + w.nbytes = n; + /* } */ case 2: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: huffmanBitWriter.ptr.prototype.writeBits }; } $f.b = b; $f.bits$1 = bits$1; $f.bytes = bytes; $f.n = n; $f.nb = nb; $f.w = w; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f; + }; + huffmanBitWriter.prototype.writeBits = function(b, nb) { return this.$val.writeBits(b, nb); }; + huffmanBitWriter.ptr.prototype.writeBytes = function(bytes) { + var bytes, n, w, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; bytes = $f.bytes; n = $f.n; w = $f.w; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + w = this; + if (!($interfaceIsEqual(w.err, $ifaceNil))) { + $s = -1; return; + } + n = w.nbytes; + if (!((((w.nbits & 7) >>> 0) === 0))) { + w.err = new InternalError("writeBytes with unfinished bits"); + $s = -1; return; + } + while (true) { + if (!(!((w.nbits === 0)))) { break; } + (x = w.bytes, ((n < 0 || n >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[n] = ((w.bits.$low << 24 >>> 24)))); + w.bits = $shiftRightUint64(w.bits, (8)); + w.nbits = w.nbits - (8) >>> 0; + n = n + (1) >> 0; + } + /* */ if (!((n === 0))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((n === 0))) { */ case 1: + $r = w.write($subslice(new sliceType$4(w.bytes), 0, n)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + w.nbytes = 0; + $r = w.write(bytes); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: huffmanBitWriter.ptr.prototype.writeBytes }; } $f.bytes = bytes; $f.n = n; $f.w = w; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + huffmanBitWriter.prototype.writeBytes = function(bytes) { return this.$val.writeBytes(bytes); }; + huffmanBitWriter.ptr.prototype.generateCodegen = function(numLiterals, numOffsets, litEnc, offEnc) { + var _i, _i$1, _i$2, _ref, _ref$1, _ref$2, cgnl, codegen, count, i, i$1, i$2, inIndex, litEnc, n, n$1, nextSize, numLiterals, numOffsets, offEnc, outIndex, size, w, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7; + w = this; + _ref = w.codegenFreq; + _i = 0; + while (true) { + if (!(_i < 19)) { break; } + i = _i; + (x = w.codegenFreq, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i] = 0)); + _i++; + } + codegen = w.codegen; + cgnl = $subslice(codegen, 0, numLiterals); + _ref$1 = cgnl; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i$1 = _i$1; + ((i$1 < 0 || i$1 >= cgnl.$length) ? ($throwRuntimeError("index out of range"), undefined) : cgnl.$array[cgnl.$offset + i$1] = (((x$1 = litEnc.codes, ((i$1 < 0 || i$1 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i$1])).len << 24 >>> 24))); + _i$1++; + } + cgnl = $subslice(codegen, numLiterals, (numLiterals + numOffsets >> 0)); + _ref$2 = cgnl; + _i$2 = 0; + while (true) { + if (!(_i$2 < _ref$2.$length)) { break; } + i$2 = _i$2; + ((i$2 < 0 || i$2 >= cgnl.$length) ? ($throwRuntimeError("index out of range"), undefined) : cgnl.$array[cgnl.$offset + i$2] = (((x$2 = offEnc.codes, ((i$2 < 0 || i$2 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$2])).len << 24 >>> 24))); + _i$2++; + } + (x$3 = numLiterals + numOffsets >> 0, ((x$3 < 0 || x$3 >= codegen.$length) ? ($throwRuntimeError("index out of range"), undefined) : codegen.$array[codegen.$offset + x$3] = 255)); + size = (0 >= codegen.$length ? ($throwRuntimeError("index out of range"), undefined) : codegen.$array[codegen.$offset + 0]); + count = 1; + outIndex = 0; + inIndex = 1; + while (true) { + if (!(!((size === 255)))) { break; } + nextSize = ((inIndex < 0 || inIndex >= codegen.$length) ? ($throwRuntimeError("index out of range"), undefined) : codegen.$array[codegen.$offset + inIndex]); + if (nextSize === size) { + count = count + (1) >> 0; + inIndex = inIndex + (1) >> 0; + continue; + } + if (!((size === 0))) { + ((outIndex < 0 || outIndex >= codegen.$length) ? ($throwRuntimeError("index out of range"), undefined) : codegen.$array[codegen.$offset + outIndex] = size); + outIndex = outIndex + (1) >> 0; + (x$5 = w.codegenFreq, ((size < 0 || size >= x$5.length) ? ($throwRuntimeError("index out of range"), undefined) : x$5[size] = ((x$4 = w.codegenFreq, ((size < 0 || size >= x$4.length) ? ($throwRuntimeError("index out of range"), undefined) : x$4[size])) + (1) >> 0))); + count = count - (1) >> 0; + while (true) { + if (!(count >= 3)) { break; } + n = 6; + if (n > count) { + n = count; + } + ((outIndex < 0 || outIndex >= codegen.$length) ? ($throwRuntimeError("index out of range"), undefined) : codegen.$array[codegen.$offset + outIndex] = 16); + outIndex = outIndex + (1) >> 0; + ((outIndex < 0 || outIndex >= codegen.$length) ? ($throwRuntimeError("index out of range"), undefined) : codegen.$array[codegen.$offset + outIndex] = (((n - 3 >> 0) << 24 >>> 24))); + outIndex = outIndex + (1) >> 0; + w.codegenFreq[16] = (w.codegenFreq[16] + (1) >> 0); + count = count - (n) >> 0; + } + } else { + while (true) { + if (!(count >= 11)) { break; } + n$1 = 138; + if (n$1 > count) { + n$1 = count; + } + ((outIndex < 0 || outIndex >= codegen.$length) ? ($throwRuntimeError("index out of range"), undefined) : codegen.$array[codegen.$offset + outIndex] = 18); + outIndex = outIndex + (1) >> 0; + ((outIndex < 0 || outIndex >= codegen.$length) ? ($throwRuntimeError("index out of range"), undefined) : codegen.$array[codegen.$offset + outIndex] = (((n$1 - 11 >> 0) << 24 >>> 24))); + outIndex = outIndex + (1) >> 0; + w.codegenFreq[18] = (w.codegenFreq[18] + (1) >> 0); + count = count - (n$1) >> 0; + } + if (count >= 3) { + ((outIndex < 0 || outIndex >= codegen.$length) ? ($throwRuntimeError("index out of range"), undefined) : codegen.$array[codegen.$offset + outIndex] = 17); + outIndex = outIndex + (1) >> 0; + ((outIndex < 0 || outIndex >= codegen.$length) ? ($throwRuntimeError("index out of range"), undefined) : codegen.$array[codegen.$offset + outIndex] = (((count - 3 >> 0) << 24 >>> 24))); + outIndex = outIndex + (1) >> 0; + w.codegenFreq[17] = (w.codegenFreq[17] + (1) >> 0); + count = 0; + } + } + count = count - (1) >> 0; + while (true) { + if (!(count >= 0)) { break; } + ((outIndex < 0 || outIndex >= codegen.$length) ? ($throwRuntimeError("index out of range"), undefined) : codegen.$array[codegen.$offset + outIndex] = size); + outIndex = outIndex + (1) >> 0; + (x$7 = w.codegenFreq, ((size < 0 || size >= x$7.length) ? ($throwRuntimeError("index out of range"), undefined) : x$7[size] = ((x$6 = w.codegenFreq, ((size < 0 || size >= x$6.length) ? ($throwRuntimeError("index out of range"), undefined) : x$6[size])) + (1) >> 0))); + count = count - (1) >> 0; + } + size = nextSize; + count = 1; + inIndex = inIndex + (1) >> 0; + } + ((outIndex < 0 || outIndex >= codegen.$length) ? ($throwRuntimeError("index out of range"), undefined) : codegen.$array[codegen.$offset + outIndex] = 255); + }; + huffmanBitWriter.prototype.generateCodegen = function(numLiterals, numOffsets, litEnc, offEnc) { return this.$val.generateCodegen(numLiterals, numOffsets, litEnc, offEnc); }; + huffmanBitWriter.ptr.prototype.dynamicSize = function(litEnc, offEnc, extraBits) { + var _tmp, _tmp$1, extraBits, header, litEnc, numCodegens, offEnc, size, w, x, x$1, x$2; + size = 0; + numCodegens = 0; + w = this; + numCodegens = 19; + while (true) { + if (!(numCodegens > 4 && ((x = w.codegenFreq, x$1 = (x$2 = numCodegens - 1 >> 0, ((x$2 < 0 || x$2 >= codegenOrder.$length) ? ($throwRuntimeError("index out of range"), undefined) : codegenOrder.$array[codegenOrder.$offset + x$2])), ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])) === 0))) { break; } + numCodegens = numCodegens - (1) >> 0; + } + header = ((((17 + (($imul(3, numCodegens))) >> 0) + w.codegenEncoding.bitLength(new sliceType$7(w.codegenFreq)) >> 0) + ($imul(((w.codegenFreq[16] >> 0)), 2)) >> 0) + ($imul(((w.codegenFreq[17] >> 0)), 3)) >> 0) + ($imul(((w.codegenFreq[18] >> 0)), 7)) >> 0; + size = ((header + litEnc.bitLength(w.literalFreq) >> 0) + offEnc.bitLength(w.offsetFreq) >> 0) + extraBits >> 0; + _tmp = size; + _tmp$1 = numCodegens; + size = _tmp; + numCodegens = _tmp$1; + return [size, numCodegens]; + }; + huffmanBitWriter.prototype.dynamicSize = function(litEnc, offEnc, extraBits) { return this.$val.dynamicSize(litEnc, offEnc, extraBits); }; + huffmanBitWriter.ptr.prototype.fixedSize = function(extraBits) { + var extraBits, w; + w = this; + return ((3 + fixedLiteralEncoding.bitLength(w.literalFreq) >> 0) + fixedOffsetEncoding.bitLength(w.offsetFreq) >> 0) + extraBits >> 0; + }; + huffmanBitWriter.prototype.fixedSize = function(extraBits) { return this.$val.fixedSize(extraBits); }; + huffmanBitWriter.ptr.prototype.storedSize = function(in$1) { + var in$1, w; + w = this; + if (in$1 === sliceType$4.nil) { + return [0, false]; + } + if (in$1.$length <= 65535) { + return [$imul(((in$1.$length + 5 >> 0)), 8), true]; + } + return [0, false]; + }; + huffmanBitWriter.prototype.storedSize = function(in$1) { return this.$val.storedSize(in$1); }; + huffmanBitWriter.ptr.prototype.writeCode = function(c) { + var bits$1, bytes, c, n, w, x, x$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; bits$1 = $f.bits$1; bytes = $f.bytes; c = $f.c; n = $f.n; w = $f.w; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + w = this; + if (!($interfaceIsEqual(w.err, $ifaceNil))) { + $s = -1; return; + } + w.bits = (x = w.bits, x$1 = $shiftLeft64((new $Uint64(0, c.code)), w.nbits), new $Uint64(x.$high | x$1.$high, (x.$low | x$1.$low) >>> 0)); + w.nbits = w.nbits + (((c.len >>> 0))) >>> 0; + /* */ if (w.nbits >= 48) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (w.nbits >= 48) { */ case 1: + bits$1 = w.bits; + w.bits = $shiftRightUint64(w.bits, (48)); + w.nbits = w.nbits - (48) >>> 0; + n = w.nbytes; + bytes = $subslice(new sliceType$4(w.bytes), n, (n + 6 >> 0)); + (0 >= bytes.$length ? ($throwRuntimeError("index out of range"), undefined) : bytes.$array[bytes.$offset + 0] = ((bits$1.$low << 24 >>> 24))); + (1 >= bytes.$length ? ($throwRuntimeError("index out of range"), undefined) : bytes.$array[bytes.$offset + 1] = (($shiftRightUint64(bits$1, 8).$low << 24 >>> 24))); + (2 >= bytes.$length ? ($throwRuntimeError("index out of range"), undefined) : bytes.$array[bytes.$offset + 2] = (($shiftRightUint64(bits$1, 16).$low << 24 >>> 24))); + (3 >= bytes.$length ? ($throwRuntimeError("index out of range"), undefined) : bytes.$array[bytes.$offset + 3] = (($shiftRightUint64(bits$1, 24).$low << 24 >>> 24))); + (4 >= bytes.$length ? ($throwRuntimeError("index out of range"), undefined) : bytes.$array[bytes.$offset + 4] = (($shiftRightUint64(bits$1, 32).$low << 24 >>> 24))); + (5 >= bytes.$length ? ($throwRuntimeError("index out of range"), undefined) : bytes.$array[bytes.$offset + 5] = (($shiftRightUint64(bits$1, 40).$low << 24 >>> 24))); + n = n + (6) >> 0; + /* */ if (n >= 240) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (n >= 240) { */ case 3: + $r = w.write($subslice(new sliceType$4(w.bytes), 0, n)); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + n = 0; + /* } */ case 4: + w.nbytes = n; + /* } */ case 2: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: huffmanBitWriter.ptr.prototype.writeCode }; } $f.bits$1 = bits$1; $f.bytes = bytes; $f.c = c; $f.n = n; $f.w = w; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f; + }; + huffmanBitWriter.prototype.writeCode = function(c) { return this.$val.writeCode(c); }; + huffmanBitWriter.ptr.prototype.writeDynamicHeader = function(numLiterals, numOffsets, numCodegens, isEof) { + var _1, codeWord, firstBits, i, i$1, isEof, numCodegens, numLiterals, numOffsets, value, w, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; codeWord = $f.codeWord; firstBits = $f.firstBits; i = $f.i; i$1 = $f.i$1; isEof = $f.isEof; numCodegens = $f.numCodegens; numLiterals = $f.numLiterals; numOffsets = $f.numOffsets; value = $f.value; w = $f.w; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + w = this; + if (!($interfaceIsEqual(w.err, $ifaceNil))) { + $s = -1; return; + } + firstBits = 4; + if (isEof) { + firstBits = 5; + } + $r = w.writeBits(firstBits, 3); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = w.writeBits((((numLiterals - 257 >> 0) >> 0)), 5); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = w.writeBits((((numOffsets - 1 >> 0) >> 0)), 5); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = w.writeBits((((numCodegens - 4 >> 0) >> 0)), 4); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = 0; + /* while (true) { */ case 5: + /* if (!(i < numCodegens)) { break; } */ if(!(i < numCodegens)) { $s = 6; continue; } + value = (((x = w.codegenEncoding.codes, x$1 = ((i < 0 || i >= codegenOrder.$length) ? ($throwRuntimeError("index out of range"), undefined) : codegenOrder.$array[codegenOrder.$offset + i]), ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).len >>> 0)); + $r = w.writeBits(((value >> 0)), 3); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = i + (1) >> 0; + /* } */ $s = 5; continue; case 6: + i$1 = 0; + /* while (true) { */ case 8: + codeWord = (((x$2 = w.codegen, ((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$1])) >> 0)); + i$1 = i$1 + (1) >> 0; + if (codeWord === 255) { + /* break; */ $s = 9; continue; + } + $r = w.writeCode($clone((x$3 = w.codegenEncoding.codes, x$4 = ((codeWord >>> 0)), ((x$4 < 0 || x$4 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + x$4])), hcode)); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _1 = codeWord; + /* */ if (_1 === (16)) { $s = 12; continue; } + /* */ if (_1 === (17)) { $s = 13; continue; } + /* */ if (_1 === (18)) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (_1 === (16)) { */ case 12: + $r = w.writeBits((((x$5 = w.codegen, ((i$1 < 0 || i$1 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + i$1])) >> 0)), 2); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i$1 = i$1 + (1) >> 0; + /* break; */ $s = 11; continue; + $s = 15; continue; + /* } else if (_1 === (17)) { */ case 13: + $r = w.writeBits((((x$6 = w.codegen, ((i$1 < 0 || i$1 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + i$1])) >> 0)), 3); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i$1 = i$1 + (1) >> 0; + /* break; */ $s = 11; continue; + $s = 15; continue; + /* } else if (_1 === (18)) { */ case 14: + $r = w.writeBits((((x$7 = w.codegen, ((i$1 < 0 || i$1 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + i$1])) >> 0)), 7); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i$1 = i$1 + (1) >> 0; + /* break; */ $s = 11; continue; + /* } */ case 15: + case 11: + /* } */ $s = 8; continue; case 9: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: huffmanBitWriter.ptr.prototype.writeDynamicHeader }; } $f._1 = _1; $f.codeWord = codeWord; $f.firstBits = firstBits; $f.i = i; $f.i$1 = i$1; $f.isEof = isEof; $f.numCodegens = numCodegens; $f.numLiterals = numLiterals; $f.numOffsets = numOffsets; $f.value = value; $f.w = w; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.$s = $s; $f.$r = $r; return $f; + }; + huffmanBitWriter.prototype.writeDynamicHeader = function(numLiterals, numOffsets, numCodegens, isEof) { return this.$val.writeDynamicHeader(numLiterals, numOffsets, numCodegens, isEof); }; + huffmanBitWriter.ptr.prototype.writeStoredHeader = function(length, isEof) { + var flag, isEof, length, w, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; flag = $f.flag; isEof = $f.isEof; length = $f.length; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + w = this; + if (!($interfaceIsEqual(w.err, $ifaceNil))) { + $s = -1; return; + } + flag = 0; + if (isEof) { + flag = 1; + } + $r = w.writeBits(flag, 3); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = w.flush(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = w.writeBits(((length >> 0)), 16); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = w.writeBits((((~((length << 16 >>> 16)) << 16 >>> 16) >> 0)), 16); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: huffmanBitWriter.ptr.prototype.writeStoredHeader }; } $f.flag = flag; $f.isEof = isEof; $f.length = length; $f.w = w; $f.$s = $s; $f.$r = $r; return $f; + }; + huffmanBitWriter.prototype.writeStoredHeader = function(length, isEof) { return this.$val.writeStoredHeader(length, isEof); }; + huffmanBitWriter.ptr.prototype.writeFixedHeader = function(isEof) { + var isEof, value, w, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; isEof = $f.isEof; value = $f.value; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + w = this; + if (!($interfaceIsEqual(w.err, $ifaceNil))) { + $s = -1; return; + } + value = 2; + if (isEof) { + value = 3; + } + $r = w.writeBits(value, 3); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: huffmanBitWriter.ptr.prototype.writeFixedHeader }; } $f.isEof = isEof; $f.value = value; $f.w = w; $f.$s = $s; $f.$r = $r; return $f; + }; + huffmanBitWriter.prototype.writeFixedHeader = function(isEof) { return this.$val.writeFixedHeader(isEof); }; + huffmanBitWriter.ptr.prototype.writeBlock = function(tokens, eof, input) { + var _r, _tuple, _tuple$1, _tuple$2, dynamicSize, eof, extraBits, input, lengthCode$1, literalEncoding, numCodegens, numLiterals, numOffsets, offsetCode$1, offsetEncoding, size, storable, storedSize, tokens, w, x, x$1, x$2, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; dynamicSize = $f.dynamicSize; eof = $f.eof; extraBits = $f.extraBits; input = $f.input; lengthCode$1 = $f.lengthCode$1; literalEncoding = $f.literalEncoding; numCodegens = $f.numCodegens; numLiterals = $f.numLiterals; numOffsets = $f.numOffsets; offsetCode$1 = $f.offsetCode$1; offsetEncoding = $f.offsetEncoding; size = $f.size; storable = $f.storable; storedSize = $f.storedSize; tokens = $f.tokens; w = $f.w; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + w = this; + if (!($interfaceIsEqual(w.err, $ifaceNil))) { + $s = -1; return; + } + tokens = $append(tokens, 256); + _r = w.indexTokens(tokens); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + numLiterals = _tuple[0]; + numOffsets = _tuple[1]; + extraBits = 0; + _tuple$1 = w.storedSize(input); + storedSize = _tuple$1[0]; + storable = _tuple$1[1]; + if (storable) { + lengthCode$1 = 265; + while (true) { + if (!(lengthCode$1 < numLiterals)) { break; } + extraBits = extraBits + (($imul((((x = w.literalFreq, ((lengthCode$1 < 0 || lengthCode$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + lengthCode$1])) >> 0)), (((x$1 = lengthCode$1 - 257 >> 0, ((x$1 < 0 || x$1 >= lengthExtraBits.$length) ? ($throwRuntimeError("index out of range"), undefined) : lengthExtraBits.$array[lengthExtraBits.$offset + x$1])) >> 0))))) >> 0; + lengthCode$1 = lengthCode$1 + (1) >> 0; + } + offsetCode$1 = 4; + while (true) { + if (!(offsetCode$1 < numOffsets)) { break; } + extraBits = extraBits + (($imul((((x$2 = w.offsetFreq, ((offsetCode$1 < 0 || offsetCode$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + offsetCode$1])) >> 0)), ((((offsetCode$1 < 0 || offsetCode$1 >= offsetExtraBits.$length) ? ($throwRuntimeError("index out of range"), undefined) : offsetExtraBits.$array[offsetExtraBits.$offset + offsetCode$1]) >> 0))))) >> 0; + offsetCode$1 = offsetCode$1 + (1) >> 0; + } + } + literalEncoding = fixedLiteralEncoding; + offsetEncoding = fixedOffsetEncoding; + size = w.fixedSize(extraBits); + numCodegens = 0; + w.generateCodegen(numLiterals, numOffsets, w.literalEncoding, w.offsetEncoding); + $r = w.codegenEncoding.generate(new sliceType$7(w.codegenFreq), 7); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tuple$2 = w.dynamicSize(w.literalEncoding, w.offsetEncoding, extraBits); + dynamicSize = _tuple$2[0]; + numCodegens = _tuple$2[1]; + if (dynamicSize < size) { + size = dynamicSize; + literalEncoding = w.literalEncoding; + offsetEncoding = w.offsetEncoding; + } + /* */ if (storable && storedSize < size) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (storable && storedSize < size) { */ case 3: + $r = w.writeStoredHeader(input.$length, eof); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = w.writeBytes(input); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 4: + /* */ if (literalEncoding === fixedLiteralEncoding) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (literalEncoding === fixedLiteralEncoding) { */ case 7: + $r = w.writeFixedHeader(eof); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 9; continue; + /* } else { */ case 8: + $r = w.writeDynamicHeader(numLiterals, numOffsets, numCodegens, eof); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 9: + $r = w.writeTokens(tokens, literalEncoding.codes, offsetEncoding.codes); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: huffmanBitWriter.ptr.prototype.writeBlock }; } $f._r = _r; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.dynamicSize = dynamicSize; $f.eof = eof; $f.extraBits = extraBits; $f.input = input; $f.lengthCode$1 = lengthCode$1; $f.literalEncoding = literalEncoding; $f.numCodegens = numCodegens; $f.numLiterals = numLiterals; $f.numOffsets = numOffsets; $f.offsetCode$1 = offsetCode$1; $f.offsetEncoding = offsetEncoding; $f.size = size; $f.storable = storable; $f.storedSize = storedSize; $f.tokens = tokens; $f.w = w; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$r = $r; return $f; + }; + huffmanBitWriter.prototype.writeBlock = function(tokens, eof, input) { return this.$val.writeBlock(tokens, eof, input); }; + huffmanBitWriter.ptr.prototype.writeBlockDynamic = function(tokens, eof, input) { + var _r, _tuple, _tuple$1, _tuple$2, eof, input, numCodegens, numLiterals, numOffsets, size, ssize, storable, tokens, w, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; eof = $f.eof; input = $f.input; numCodegens = $f.numCodegens; numLiterals = $f.numLiterals; numOffsets = $f.numOffsets; size = $f.size; ssize = $f.ssize; storable = $f.storable; tokens = $f.tokens; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + w = this; + if (!($interfaceIsEqual(w.err, $ifaceNil))) { + $s = -1; return; + } + tokens = $append(tokens, 256); + _r = w.indexTokens(tokens); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + numLiterals = _tuple[0]; + numOffsets = _tuple[1]; + w.generateCodegen(numLiterals, numOffsets, w.literalEncoding, w.offsetEncoding); + $r = w.codegenEncoding.generate(new sliceType$7(w.codegenFreq), 7); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tuple$1 = w.dynamicSize(w.literalEncoding, w.offsetEncoding, 0); + size = _tuple$1[0]; + numCodegens = _tuple$1[1]; + _tuple$2 = w.storedSize(input); + ssize = _tuple$2[0]; + storable = _tuple$2[1]; + /* */ if (storable && ssize < ((size + (size >> 4 >> 0) >> 0))) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (storable && ssize < ((size + (size >> 4 >> 0) >> 0))) { */ case 3: + $r = w.writeStoredHeader(input.$length, eof); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = w.writeBytes(input); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 4: + $r = w.writeDynamicHeader(numLiterals, numOffsets, numCodegens, eof); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = w.writeTokens(tokens, w.literalEncoding.codes, w.offsetEncoding.codes); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: huffmanBitWriter.ptr.prototype.writeBlockDynamic }; } $f._r = _r; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.eof = eof; $f.input = input; $f.numCodegens = numCodegens; $f.numLiterals = numLiterals; $f.numOffsets = numOffsets; $f.size = size; $f.ssize = ssize; $f.storable = storable; $f.tokens = tokens; $f.w = w; $f.$s = $s; $f.$r = $r; return $f; + }; + huffmanBitWriter.prototype.writeBlockDynamic = function(tokens, eof, input) { return this.$val.writeBlockDynamic(tokens, eof, input); }; + huffmanBitWriter.ptr.prototype.indexTokens = function(tokens) { + var _i, _i$1, _i$2, _index, _index$1, _index$2, _ref, _ref$1, _ref$2, i, i$1, length, numLiterals, numOffsets, offset, t, tokens, w, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _i$1 = $f._i$1; _i$2 = $f._i$2; _index = $f._index; _index$1 = $f._index$1; _index$2 = $f._index$2; _ref = $f._ref; _ref$1 = $f._ref$1; _ref$2 = $f._ref$2; i = $f.i; i$1 = $f.i$1; length = $f.length; numLiterals = $f.numLiterals; numOffsets = $f.numOffsets; offset = $f.offset; t = $f.t; tokens = $f.tokens; w = $f.w; x = $f.x; x$1 = $f.x$1; x$10 = $f.x$10; x$11 = $f.x$11; x$12 = $f.x$12; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; x$8 = $f.x$8; x$9 = $f.x$9; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + numLiterals = 0; + numOffsets = 0; + w = this; + _ref = w.literalFreq; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + (x = w.literalFreq, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i] = 0)); + _i++; + } + _ref$1 = w.offsetFreq; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i$1 = _i$1; + (x$1 = w.offsetFreq, ((i$1 < 0 || i$1 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i$1] = 0)); + _i$1++; + } + _ref$2 = tokens; + _i$2 = 0; + /* while (true) { */ case 1: + /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 2; continue; } + t = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); + if (t < 1073741824) { + _index = new token(t).literal(); + (x$3 = w.literalFreq, ((_index < 0 || _index >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + _index] = ((x$2 = w.literalFreq, ((_index < 0 || _index >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + _index])) + (1) >> 0))); + _i$2++; + /* continue; */ $s = 1; continue; + } + length = new token(t).length(); + offset = new token(t).offset(); + _index$1 = 257 + lengthCode(length) >>> 0; + (x$5 = w.literalFreq, ((_index$1 < 0 || _index$1 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + _index$1] = ((x$4 = w.literalFreq, ((_index$1 < 0 || _index$1 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + _index$1])) + (1) >> 0))); + _index$2 = offsetCode(offset); + (x$7 = w.offsetFreq, ((_index$2 < 0 || _index$2 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + _index$2] = ((x$6 = w.offsetFreq, ((_index$2 < 0 || _index$2 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + _index$2])) + (1) >> 0))); + _i$2++; + /* } */ $s = 1; continue; case 2: + numLiterals = w.literalFreq.$length; + while (true) { + if (!((x$8 = w.literalFreq, x$9 = numLiterals - 1 >> 0, ((x$9 < 0 || x$9 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + x$9])) === 0)) { break; } + numLiterals = numLiterals - (1) >> 0; + } + numOffsets = w.offsetFreq.$length; + while (true) { + if (!(numOffsets > 0 && ((x$10 = w.offsetFreq, x$11 = numOffsets - 1 >> 0, ((x$11 < 0 || x$11 >= x$10.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + x$11])) === 0))) { break; } + numOffsets = numOffsets - (1) >> 0; + } + if (numOffsets === 0) { + (x$12 = w.offsetFreq, (0 >= x$12.$length ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + 0] = 1)); + numOffsets = 1; + } + $r = w.literalEncoding.generate(w.literalFreq, 15); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = w.offsetEncoding.generate(w.offsetFreq, 15); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return [numLiterals, numOffsets]; + /* */ } return; } if ($f === undefined) { $f = { $blk: huffmanBitWriter.ptr.prototype.indexTokens }; } $f._i = _i; $f._i$1 = _i$1; $f._i$2 = _i$2; $f._index = _index; $f._index$1 = _index$1; $f._index$2 = _index$2; $f._ref = _ref; $f._ref$1 = _ref$1; $f._ref$2 = _ref$2; $f.i = i; $f.i$1 = i$1; $f.length = length; $f.numLiterals = numLiterals; $f.numOffsets = numOffsets; $f.offset = offset; $f.t = t; $f.tokens = tokens; $f.w = w; $f.x = x; $f.x$1 = x$1; $f.x$10 = x$10; $f.x$11 = x$11; $f.x$12 = x$12; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.x$8 = x$8; $f.x$9 = x$9; $f.$s = $s; $f.$r = $r; return $f; + }; + huffmanBitWriter.prototype.indexTokens = function(tokens) { return this.$val.indexTokens(tokens); }; + huffmanBitWriter.ptr.prototype.writeTokens = function(tokens, leCodes, oeCodes) { + var _i, _ref, extraLength, extraLengthBits, extraOffset, extraOffsetBits, leCodes, length, lengthCode$1, oeCodes, offset, offsetCode$1, t, tokens, w, x, x$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _ref = $f._ref; extraLength = $f.extraLength; extraLengthBits = $f.extraLengthBits; extraOffset = $f.extraOffset; extraOffsetBits = $f.extraOffsetBits; leCodes = $f.leCodes; length = $f.length; lengthCode$1 = $f.lengthCode$1; oeCodes = $f.oeCodes; offset = $f.offset; offsetCode$1 = $f.offsetCode$1; t = $f.t; tokens = $f.tokens; w = $f.w; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + w = this; + if (!($interfaceIsEqual(w.err, $ifaceNil))) { + $s = -1; return; + } + _ref = tokens; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + /* */ if (t < 1073741824) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (t < 1073741824) { */ case 3: + $r = w.writeCode($clone((x = new token(t).literal(), ((x < 0 || x >= leCodes.$length) ? ($throwRuntimeError("index out of range"), undefined) : leCodes.$array[leCodes.$offset + x])), hcode)); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + /* continue; */ $s = 1; continue; + /* } */ case 4: + length = new token(t).length(); + lengthCode$1 = lengthCode(length); + $r = w.writeCode($clone((x$1 = lengthCode$1 + 257 >>> 0, ((x$1 < 0 || x$1 >= leCodes.$length) ? ($throwRuntimeError("index out of range"), undefined) : leCodes.$array[leCodes.$offset + x$1])), hcode)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + extraLengthBits = ((((lengthCode$1 < 0 || lengthCode$1 >= lengthExtraBits.$length) ? ($throwRuntimeError("index out of range"), undefined) : lengthExtraBits.$array[lengthExtraBits.$offset + lengthCode$1]) >>> 0)); + /* */ if (extraLengthBits > 0) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (extraLengthBits > 0) { */ case 7: + extraLength = (((length - ((lengthCode$1 < 0 || lengthCode$1 >= lengthBase.$length) ? ($throwRuntimeError("index out of range"), undefined) : lengthBase.$array[lengthBase.$offset + lengthCode$1]) >>> 0) >> 0)); + $r = w.writeBits(extraLength, extraLengthBits); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 8: + offset = new token(t).offset(); + offsetCode$1 = offsetCode(offset); + $r = w.writeCode($clone(((offsetCode$1 < 0 || offsetCode$1 >= oeCodes.$length) ? ($throwRuntimeError("index out of range"), undefined) : oeCodes.$array[oeCodes.$offset + offsetCode$1]), hcode)); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + extraOffsetBits = ((((offsetCode$1 < 0 || offsetCode$1 >= offsetExtraBits.$length) ? ($throwRuntimeError("index out of range"), undefined) : offsetExtraBits.$array[offsetExtraBits.$offset + offsetCode$1]) >>> 0)); + /* */ if (extraOffsetBits > 0) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (extraOffsetBits > 0) { */ case 11: + extraOffset = (((offset - ((offsetCode$1 < 0 || offsetCode$1 >= offsetBase.$length) ? ($throwRuntimeError("index out of range"), undefined) : offsetBase.$array[offsetBase.$offset + offsetCode$1]) >>> 0) >> 0)); + $r = w.writeBits(extraOffset, extraOffsetBits); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 12: + _i++; + /* } */ $s = 1; continue; case 2: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: huffmanBitWriter.ptr.prototype.writeTokens }; } $f._i = _i; $f._ref = _ref; $f.extraLength = extraLength; $f.extraLengthBits = extraLengthBits; $f.extraOffset = extraOffset; $f.extraOffsetBits = extraOffsetBits; $f.leCodes = leCodes; $f.length = length; $f.lengthCode$1 = lengthCode$1; $f.oeCodes = oeCodes; $f.offset = offset; $f.offsetCode$1 = offsetCode$1; $f.t = t; $f.tokens = tokens; $f.w = w; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f; + }; + huffmanBitWriter.prototype.writeTokens = function(tokens, leCodes, oeCodes) { return this.$val.writeTokens(tokens, leCodes, oeCodes); }; + init = function() { + var w, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; w = $f.w; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + w = newHuffmanBitWriter($ifaceNil); + (x = w.offsetFreq, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0] = 1)); + huffOffset = newHuffmanEncoder(30); + $r = huffOffset.generate(w.offsetFreq, 15); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: init }; } $f.w = w; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + huffmanBitWriter.ptr.prototype.writeBlockHuff = function(eof, input) { + var _i, _i$1, _ref, _ref$1, _tuple, _tuple$1, bits$1, bytes, c, encoding, eof, i, input, n, numCodegens, size, ssize, storable, t, w, x, x$1, x$2, x$3, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _i$1 = $f._i$1; _ref = $f._ref; _ref$1 = $f._ref$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; bits$1 = $f.bits$1; bytes = $f.bytes; c = $f.c; encoding = $f.encoding; eof = $f.eof; i = $f.i; input = $f.input; n = $f.n; numCodegens = $f.numCodegens; size = $f.size; ssize = $f.ssize; storable = $f.storable; t = $f.t; w = $f.w; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + w = this; + if (!($interfaceIsEqual(w.err, $ifaceNil))) { + $s = -1; return; + } + _ref = w.literalFreq; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + (x = w.literalFreq, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i] = 0)); + _i++; + } + histogram(input, w.literalFreq); + (x$1 = w.literalFreq, (256 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 256] = 1)); + $r = w.literalEncoding.generate(w.literalFreq, 15); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + numCodegens = 0; + w.generateCodegen(257, 1, w.literalEncoding, huffOffset); + $r = w.codegenEncoding.generate(new sliceType$7(w.codegenFreq), 7); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tuple = w.dynamicSize(w.literalEncoding, huffOffset, 0); + size = _tuple[0]; + numCodegens = _tuple[1]; + _tuple$1 = w.storedSize(input); + ssize = _tuple$1[0]; + storable = _tuple$1[1]; + /* */ if (storable && ssize < ((size + (size >> 4 >> 0) >> 0))) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (storable && ssize < ((size + (size >> 4 >> 0) >> 0))) { */ case 3: + $r = w.writeStoredHeader(input.$length, eof); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = w.writeBytes(input); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 4: + $r = w.writeDynamicHeader(257, 1, numCodegens, eof); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + encoding = $subslice(w.literalEncoding.codes, 0, 257); + n = w.nbytes; + _ref$1 = input; + _i$1 = 0; + /* while (true) { */ case 8: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 9; continue; } + t = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + c = $clone(((t < 0 || t >= encoding.$length) ? ($throwRuntimeError("index out of range"), undefined) : encoding.$array[encoding.$offset + t]), hcode); + w.bits = (x$2 = w.bits, x$3 = $shiftLeft64((new $Uint64(0, c.code)), w.nbits), new $Uint64(x$2.$high | x$3.$high, (x$2.$low | x$3.$low) >>> 0)); + w.nbits = w.nbits + (((c.len >>> 0))) >>> 0; + /* */ if (w.nbits < 48) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (w.nbits < 48) { */ case 10: + _i$1++; + /* continue; */ $s = 8; continue; + /* } */ case 11: + bits$1 = w.bits; + w.bits = $shiftRightUint64(w.bits, (48)); + w.nbits = w.nbits - (48) >>> 0; + bytes = $subslice(new sliceType$4(w.bytes), n, (n + 6 >> 0)); + (0 >= bytes.$length ? ($throwRuntimeError("index out of range"), undefined) : bytes.$array[bytes.$offset + 0] = ((bits$1.$low << 24 >>> 24))); + (1 >= bytes.$length ? ($throwRuntimeError("index out of range"), undefined) : bytes.$array[bytes.$offset + 1] = (($shiftRightUint64(bits$1, 8).$low << 24 >>> 24))); + (2 >= bytes.$length ? ($throwRuntimeError("index out of range"), undefined) : bytes.$array[bytes.$offset + 2] = (($shiftRightUint64(bits$1, 16).$low << 24 >>> 24))); + (3 >= bytes.$length ? ($throwRuntimeError("index out of range"), undefined) : bytes.$array[bytes.$offset + 3] = (($shiftRightUint64(bits$1, 24).$low << 24 >>> 24))); + (4 >= bytes.$length ? ($throwRuntimeError("index out of range"), undefined) : bytes.$array[bytes.$offset + 4] = (($shiftRightUint64(bits$1, 32).$low << 24 >>> 24))); + (5 >= bytes.$length ? ($throwRuntimeError("index out of range"), undefined) : bytes.$array[bytes.$offset + 5] = (($shiftRightUint64(bits$1, 40).$low << 24 >>> 24))); + n = n + (6) >> 0; + /* */ if (n < 240) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (n < 240) { */ case 12: + _i$1++; + /* continue; */ $s = 8; continue; + /* } */ case 13: + $r = w.write($subslice(new sliceType$4(w.bytes), 0, n)); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (!($interfaceIsEqual(w.err, $ifaceNil))) { + $s = -1; return; + } + n = 0; + _i$1++; + /* } */ $s = 8; continue; case 9: + w.nbytes = n; + $r = w.writeCode($clone((256 >= encoding.$length ? ($throwRuntimeError("index out of range"), undefined) : encoding.$array[encoding.$offset + 256]), hcode)); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: huffmanBitWriter.ptr.prototype.writeBlockHuff }; } $f._i = _i; $f._i$1 = _i$1; $f._ref = _ref; $f._ref$1 = _ref$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.bits$1 = bits$1; $f.bytes = bytes; $f.c = c; $f.encoding = encoding; $f.eof = eof; $f.i = i; $f.input = input; $f.n = n; $f.numCodegens = numCodegens; $f.size = size; $f.ssize = ssize; $f.storable = storable; $f.t = t; $f.w = w; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.$s = $s; $f.$r = $r; return $f; + }; + huffmanBitWriter.prototype.writeBlockHuff = function(eof, input) { return this.$val.writeBlockHuff(eof, input); }; + histogram = function(b, h) { + var _i, _ref, b, h, t; + h = $subslice(h, 0, 256); + _ref = b; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + ((t < 0 || t >= h.$length) ? ($throwRuntimeError("index out of range"), undefined) : h.$array[h.$offset + t] = (((t < 0 || t >= h.$length) ? ($throwRuntimeError("index out of range"), undefined) : h.$array[h.$offset + t]) + (1) >> 0)); + _i++; + } + }; + hcode.ptr.prototype.set = function(code, length) { + var code, h, length; + h = this; + h.len = length; + h.code = code; + }; + hcode.prototype.set = function(code, length) { return this.$val.set(code, length); }; + maxNode = function() { + return new literalNode.ptr(65535, 2147483647); + }; + newHuffmanEncoder = function(size) { + var size; + return new huffmanEncoder.ptr($makeSlice(sliceType$8, size), sliceType$9.nil, arrayType$7.zero(), byLiteral.nil, byFreq.nil); + }; + generateFixedLiteralEncoding = function() { + var bits$1, ch, codes, h, size; + h = newHuffmanEncoder(286); + codes = h.codes; + ch = 0; + ch = 0; + while (true) { + if (!(ch < 286)) { break; } + bits$1 = 0; + size = 0; + switch (0) { default: + if (ch < 144) { + bits$1 = ch + 48 << 16 >>> 16; + size = 8; + break; + } else if (ch < 256) { + bits$1 = (ch + 400 << 16 >>> 16) - 144 << 16 >>> 16; + size = 9; + break; + } else if (ch < 280) { + bits$1 = ch - 256 << 16 >>> 16; + size = 7; + break; + } else { + bits$1 = (ch + 192 << 16 >>> 16) - 280 << 16 >>> 16; + size = 8; + } + } + hcode.copy(((ch < 0 || ch >= codes.$length) ? ($throwRuntimeError("index out of range"), undefined) : codes.$array[codes.$offset + ch]), new hcode.ptr(reverseBits(bits$1, ((size << 24 >>> 24))), size)); + ch = ch + (1) << 16 >>> 16; + } + return h; + }; + generateFixedOffsetEncoding = function() { + var _i, _ref, ch, codes, h; + h = newHuffmanEncoder(30); + codes = h.codes; + _ref = codes; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + ch = _i; + hcode.copy(((ch < 0 || ch >= codes.$length) ? ($throwRuntimeError("index out of range"), undefined) : codes.$array[codes.$offset + ch]), new hcode.ptr(reverseBits(((ch << 16 >>> 16)), 5), 5)); + _i++; + } + return h; + }; + huffmanEncoder.ptr.prototype.bitLength = function(freq) { + var _i, _ref, f, freq, h, i, total, x; + h = this; + total = 0; + _ref = freq; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!((f === 0))) { + total = total + (($imul(((f >> 0)), (((x = h.codes, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])).len >> 0))))) >> 0; + } + _i++; + } + return total; + }; + huffmanEncoder.prototype.bitLength = function(freq) { return this.$val.bitLength(freq); }; + huffmanEncoder.ptr.prototype.bitCounts = function(list, maxBits) { + var bitCount, bits$1, counts, h, l, leafCounts, level, level$1, level$2, levels$1, list, maxBits, n, n$1, prevFreq, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + h = this; + if (maxBits >= 16) { + $panic(new $String("flate: maxBits too large")); + } + n = ((list.$length >> 0)); + list = $subslice(list, 0, (n + 1 >> 0)); + literalNode.copy(((n < 0 || n >= list.$length) ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + n]), maxNode()); + if (maxBits > (n - 1 >> 0)) { + maxBits = n - 1 >> 0; + } + levels$1 = arrayType$8.zero(); + leafCounts = arrayType$10.zero(); + level = 1; + while (true) { + if (!(level <= maxBits)) { break; } + levelInfo.copy(((level < 0 || level >= levels$1.length) ? ($throwRuntimeError("index out of range"), undefined) : levels$1[level]), new levelInfo.ptr(level, (1 >= list.$length ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + 1]).freq, (2 >= list.$length ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + 2]).freq, (0 >= list.$length ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + 0]).freq + (1 >= list.$length ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + 1]).freq >> 0, 0)); + (x = ((level < 0 || level >= leafCounts.length) ? ($throwRuntimeError("index out of range"), undefined) : leafCounts[level]), ((level < 0 || level >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[level] = 2)); + if (level === 1) { + ((level < 0 || level >= levels$1.length) ? ($throwRuntimeError("index out of range"), undefined) : levels$1[level]).nextPairFreq = 2147483647; + } + level = level + (1) >> 0; + } + ((maxBits < 0 || maxBits >= levels$1.length) ? ($throwRuntimeError("index out of range"), undefined) : levels$1[maxBits]).needed = ($imul(2, n)) - 4 >> 0; + level$1 = maxBits; + while (true) { + l = ((level$1 < 0 || level$1 >= levels$1.length) ? ($throwRuntimeError("index out of range"), undefined) : levels$1[level$1]); + if ((l.nextPairFreq === 2147483647) && (l.nextCharFreq === 2147483647)) { + l.needed = 0; + (x$1 = level$1 + 1 >> 0, ((x$1 < 0 || x$1 >= levels$1.length) ? ($throwRuntimeError("index out of range"), undefined) : levels$1[x$1])).nextPairFreq = 2147483647; + level$1 = level$1 + (1) >> 0; + continue; + } + prevFreq = l.lastFreq; + if (l.nextCharFreq < l.nextPairFreq) { + n$1 = (x$2 = ((level$1 < 0 || level$1 >= leafCounts.length) ? ($throwRuntimeError("index out of range"), undefined) : leafCounts[level$1]), ((level$1 < 0 || level$1 >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[level$1])) + 1 >> 0; + l.lastFreq = l.nextCharFreq; + (x$3 = ((level$1 < 0 || level$1 >= leafCounts.length) ? ($throwRuntimeError("index out of range"), undefined) : leafCounts[level$1]), ((level$1 < 0 || level$1 >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[level$1] = n$1)); + l.nextCharFreq = ((n$1 < 0 || n$1 >= list.$length) ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + n$1]).freq; + } else { + l.lastFreq = l.nextPairFreq; + $copySlice($subslice(new sliceType$7(((level$1 < 0 || level$1 >= leafCounts.length) ? ($throwRuntimeError("index out of range"), undefined) : leafCounts[level$1])), 0, level$1), $subslice(new sliceType$7((x$4 = level$1 - 1 >> 0, ((x$4 < 0 || x$4 >= leafCounts.length) ? ($throwRuntimeError("index out of range"), undefined) : leafCounts[x$4]))), 0, level$1)); + (x$5 = l.level - 1 >> 0, ((x$5 < 0 || x$5 >= levels$1.length) ? ($throwRuntimeError("index out of range"), undefined) : levels$1[x$5])).needed = 2; + } + l.needed = l.needed - (1) >> 0; + if (l.needed === 0) { + if (l.level === maxBits) { + break; + } + (x$6 = l.level + 1 >> 0, ((x$6 < 0 || x$6 >= levels$1.length) ? ($throwRuntimeError("index out of range"), undefined) : levels$1[x$6])).nextPairFreq = prevFreq + l.lastFreq >> 0; + level$1 = level$1 + (1) >> 0; + } else { + while (true) { + if (!((x$7 = level$1 - 1 >> 0, ((x$7 < 0 || x$7 >= levels$1.length) ? ($throwRuntimeError("index out of range"), undefined) : levels$1[x$7])).needed > 0)) { break; } + level$1 = level$1 - (1) >> 0; + } + } + } + if (!(((x$8 = ((maxBits < 0 || maxBits >= leafCounts.length) ? ($throwRuntimeError("index out of range"), undefined) : leafCounts[maxBits]), ((maxBits < 0 || maxBits >= x$8.length) ? ($throwRuntimeError("index out of range"), undefined) : x$8[maxBits])) === n))) { + $panic(new $String("leafCounts[maxBits][maxBits] != n")); + } + bitCount = $subslice(new sliceType$7(h.bitCount), 0, (maxBits + 1 >> 0)); + bits$1 = 1; + counts = ((maxBits < 0 || maxBits >= leafCounts.length) ? ($throwRuntimeError("index out of range"), undefined) : leafCounts[maxBits]); + level$2 = maxBits; + while (true) { + if (!(level$2 > 0)) { break; } + ((bits$1 < 0 || bits$1 >= bitCount.$length) ? ($throwRuntimeError("index out of range"), undefined) : bitCount.$array[bitCount.$offset + bits$1] = ((counts.nilCheck, ((level$2 < 0 || level$2 >= counts.length) ? ($throwRuntimeError("index out of range"), undefined) : counts[level$2])) - (x$9 = level$2 - 1 >> 0, (counts.nilCheck, ((x$9 < 0 || x$9 >= counts.length) ? ($throwRuntimeError("index out of range"), undefined) : counts[x$9]))) >> 0)); + bits$1 = bits$1 + (1) >> 0; + level$2 = level$2 - (1) >> 0; + } + return bitCount; + }; + huffmanEncoder.prototype.bitCounts = function(list, maxBits) { return this.$val.bitCounts(list, maxBits); }; + huffmanEncoder.ptr.prototype.assignEncodingAndSize = function(bitCount, list) { + var _i, _i$1, _ref, _ref$1, bitCount, bits$1, chunk, code, h, list, n, node, x, x$1, y, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _i$1 = $f._i$1; _ref = $f._ref; _ref$1 = $f._ref$1; bitCount = $f.bitCount; bits$1 = $f.bits$1; chunk = $f.chunk; code = $f.code; h = $f.h; list = $f.list; n = $f.n; node = $f.node; x = $f.x; x$1 = $f.x$1; y = $f.y; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + h = this; + code = 0; + _ref = bitCount; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + n = _i; + bits$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + code = (y = (1), y < 32 ? (code << y) : 0) << 16 >>> 16; + /* */ if ((n === 0) || (bits$1 === 0)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if ((n === 0) || (bits$1 === 0)) { */ case 3: + _i++; + /* continue; */ $s = 1; continue; + /* } */ case 4: + chunk = $subslice(list, (list.$length - ((bits$1 >> 0)) >> 0)); + $r = (h.$ptr_lns || (h.$ptr_lns = new ptrType$7(function() { return this.$target.lns; }, function($v) { this.$target.lns = $v; }, h))).sort(chunk); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _ref$1 = chunk; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + node = $clone(((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]), literalNode); + hcode.copy((x = h.codes, x$1 = node.literal, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])), new hcode.ptr(reverseBits(code, ((n << 24 >>> 24))), ((n << 16 >>> 16)))); + code = code + (1) << 16 >>> 16; + _i$1++; + } + list = $subslice(list, 0, (list.$length - ((bits$1 >> 0)) >> 0)); + _i++; + /* } */ $s = 1; continue; case 2: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: huffmanEncoder.ptr.prototype.assignEncodingAndSize }; } $f._i = _i; $f._i$1 = _i$1; $f._ref = _ref; $f._ref$1 = _ref$1; $f.bitCount = bitCount; $f.bits$1 = bits$1; $f.chunk = chunk; $f.code = code; $f.h = h; $f.list = list; $f.n = n; $f.node = node; $f.x = x; $f.x$1 = x$1; $f.y = y; $f.$s = $s; $f.$r = $r; return $f; + }; + huffmanEncoder.prototype.assignEncodingAndSize = function(bitCount, list) { return this.$val.assignEncodingAndSize(bitCount, list); }; + huffmanEncoder.ptr.prototype.generate = function(freq, maxBits) { + var _i, _i$1, _ref, _ref$1, bitCount, count, f, freq, h, i, i$1, list, maxBits, node, x, x$1, x$2, x$3, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _i$1 = $f._i$1; _ref = $f._ref; _ref$1 = $f._ref$1; bitCount = $f.bitCount; count = $f.count; f = $f.f; freq = $f.freq; h = $f.h; i = $f.i; i$1 = $f.i$1; list = $f.list; maxBits = $f.maxBits; node = $f.node; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + h = this; + if (h.freqcache === sliceType$9.nil) { + h.freqcache = $makeSlice(sliceType$9, 287); + } + list = $subslice(h.freqcache, 0, (freq.$length + 1 >> 0)); + count = 0; + _ref = freq; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!((f === 0))) { + literalNode.copy(((count < 0 || count >= list.$length) ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + count]), new literalNode.ptr(((i << 16 >>> 16)), f)); + count = count + (1) >> 0; + } else { + literalNode.copy(((count < 0 || count >= list.$length) ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + count]), new literalNode.ptr(0, 0)); + (x = h.codes, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])).len = 0; + } + _i++; + } + literalNode.copy((x$1 = freq.$length, ((x$1 < 0 || x$1 >= list.$length) ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + x$1])), new literalNode.ptr(0, 0)); + list = $subslice(list, 0, count); + if (count <= 2) { + _ref$1 = list; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i$1 = _i$1; + node = $clone(((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]), literalNode); + (x$2 = h.codes, x$3 = node.literal, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])).set(((i$1 << 16 >>> 16)), 1); + _i$1++; + } + $s = -1; return; + } + $r = (h.$ptr_lfs || (h.$ptr_lfs = new ptrType$8(function() { return this.$target.lfs; }, function($v) { this.$target.lfs = $v; }, h))).sort(list); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + bitCount = h.bitCounts(list, maxBits); + $r = h.assignEncodingAndSize(bitCount, list); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: huffmanEncoder.ptr.prototype.generate }; } $f._i = _i; $f._i$1 = _i$1; $f._ref = _ref; $f._ref$1 = _ref$1; $f.bitCount = bitCount; $f.count = count; $f.f = f; $f.freq = freq; $f.h = h; $f.i = i; $f.i$1 = i$1; $f.list = list; $f.maxBits = maxBits; $f.node = node; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.$s = $s; $f.$r = $r; return $f; + }; + huffmanEncoder.prototype.generate = function(freq, maxBits) { return this.$val.generate(freq, maxBits); }; + $ptrType(byLiteral).prototype.sort = function(a) { + var a, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; a = $f.a; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + s = this; + s.$set(($subslice(new byLiteral(a.$array), a.$offset, a.$offset + a.$length))); + $r = sort.Sort(s); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: $ptrType(byLiteral).prototype.sort }; } $f.a = a; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + byLiteral.prototype.Len = function() { + var s; + s = this; + return s.$length; + }; + $ptrType(byLiteral).prototype.Len = function() { return this.$get().Len(); }; + byLiteral.prototype.Less = function(i, j) { + var i, j, s; + s = this; + return ((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i]).literal < ((j < 0 || j >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + j]).literal; + }; + $ptrType(byLiteral).prototype.Less = function(i, j) { return this.$get().Less(i, j); }; + byLiteral.prototype.Swap = function(i, j) { + var _tmp, _tmp$1, i, j, s; + s = this; + _tmp = $clone(((j < 0 || j >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + j]), literalNode); + _tmp$1 = $clone(((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i]), literalNode); + literalNode.copy(((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i]), _tmp); + literalNode.copy(((j < 0 || j >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + j]), _tmp$1); + }; + $ptrType(byLiteral).prototype.Swap = function(i, j) { return this.$get().Swap(i, j); }; + $ptrType(byFreq).prototype.sort = function(a) { + var a, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; a = $f.a; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + s = this; + s.$set(($subslice(new byFreq(a.$array), a.$offset, a.$offset + a.$length))); + $r = sort.Sort(s); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: $ptrType(byFreq).prototype.sort }; } $f.a = a; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + byFreq.prototype.Len = function() { + var s; + s = this; + return s.$length; + }; + $ptrType(byFreq).prototype.Len = function() { return this.$get().Len(); }; + byFreq.prototype.Less = function(i, j) { + var i, j, s; + s = this; + if (((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i]).freq === ((j < 0 || j >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + j]).freq) { + return ((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i]).literal < ((j < 0 || j >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + j]).literal; + } + return ((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i]).freq < ((j < 0 || j >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + j]).freq; + }; + $ptrType(byFreq).prototype.Less = function(i, j) { return this.$get().Less(i, j); }; + byFreq.prototype.Swap = function(i, j) { + var _tmp, _tmp$1, i, j, s; + s = this; + _tmp = $clone(((j < 0 || j >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + j]), literalNode); + _tmp$1 = $clone(((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i]), literalNode); + literalNode.copy(((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i]), _tmp); + literalNode.copy(((j < 0 || j >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + j]), _tmp$1); + }; + $ptrType(byFreq).prototype.Swap = function(i, j) { return this.$get().Swap(i, j); }; + reverseBits = function(number, bitLength) { + var bitLength, number, y; + return bits.Reverse16((y = ((16 - bitLength << 24 >>> 24)), y < 32 ? (number << y) : 0) << 16 >>> 16); + }; + CorruptInputError.prototype.Error = function() { + var e; + e = this; + return "flate: corrupt input before offset " + strconv.FormatInt((new $Int64(e.$high, e.$low)), 10); + }; + $ptrType(CorruptInputError).prototype.Error = function() { return this.$get().Error(); }; + InternalError.prototype.Error = function() { + var e; + e = this.$val; + return "flate: internal error: " + (e); + }; + $ptrType(InternalError).prototype.Error = function() { return new InternalError(this.$get()).Error(); }; + huffmanDecoder.ptr.prototype.init = function(lengths) { + var _i, _i$1, _i$2, _i$3, _i$4, _r, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tmp, _tmp$1, chunk, chunk$1, chunk$2, code, code$1, count, h, i, i$1, i$2, j, j$1, lengths, link, linktab, linktab$1, max, min, n, n$1, nextcode, numLinks, off, off$1, off$2, reverse, reverse$1, value, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, y, y$1, y$2, y$3, y$4; + h = this; + if (!((h.min === 0))) { + huffmanDecoder.copy(h, new huffmanDecoder.ptr(0, arrayType.zero(), sliceType$1.nil, 0)); + } + count = arrayType$11.zero(); + _tmp = 0; + _tmp$1 = 0; + min = _tmp; + max = _tmp$1; + _ref = lengths; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + n = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (n === 0) { + _i++; + continue; + } + if ((min === 0) || n < min) { + min = n; + } + if (n > max) { + max = n; + } + ((n < 0 || n >= count.length) ? ($throwRuntimeError("index out of range"), undefined) : count[n] = (((n < 0 || n >= count.length) ? ($throwRuntimeError("index out of range"), undefined) : count[n]) + (1) >> 0)); + _i++; + } + if (max === 0) { + return true; + } + code = 0; + nextcode = arrayType$11.zero(); + i = min; + while (true) { + if (!(i <= max)) { break; } + code = (y = (1), y < 32 ? (code << y) : 0) >> 0; + ((i < 0 || i >= nextcode.length) ? ($throwRuntimeError("index out of range"), undefined) : nextcode[i] = code); + code = code + (((i < 0 || i >= count.length) ? ($throwRuntimeError("index out of range"), undefined) : count[i])) >> 0; + i = i + (1) >> 0; + } + if (!((code === ((y$1 = ((max >>> 0)), y$1 < 32 ? (1 << y$1) : 0) >> 0))) && !((code === 1) && (max === 1))) { + return false; + } + h.min = min; + if (max > 9) { + numLinks = (y$2 = ((((max >>> 0)) - 9 >>> 0)), y$2 < 32 ? (1 << y$2) : 0) >> 0; + h.linkMask = (((numLinks - 1 >> 0) >>> 0)); + link = nextcode[10] >> 1 >> 0; + h.links = $makeSlice(sliceType$1, (512 - link >> 0)); + j = ((link >>> 0)); + while (true) { + if (!(j < 512)) { break; } + reverse = ((bits.Reverse16(((j << 16 >>> 16))) >> 0)); + reverse = (reverse >> $min((7), 31)) >> 0; + off = j - ((link >>> 0)) >>> 0; + if (false && !(((x = h.chunks, ((reverse < 0 || reverse >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[reverse])) === 0))) { + $panic(new $String("impossible: overwriting existing chunk")); + } + (x$1 = h.chunks, ((reverse < 0 || reverse >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[reverse] = (((((off << 4 >>> 0) | 10) >>> 0) >>> 0)))); + (x$2 = h.links, ((off < 0 || off >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + off] = $makeSlice(sliceType, numLinks))); + j = j + (1) >>> 0; + } + } + _ref$1 = lengths; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i$1 = _i$1; + n$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + if (n$1 === 0) { + _i$1++; + continue; + } + code$1 = ((n$1 < 0 || n$1 >= nextcode.length) ? ($throwRuntimeError("index out of range"), undefined) : nextcode[n$1]); + ((n$1 < 0 || n$1 >= nextcode.length) ? ($throwRuntimeError("index out of range"), undefined) : nextcode[n$1] = (((n$1 < 0 || n$1 >= nextcode.length) ? ($throwRuntimeError("index out of range"), undefined) : nextcode[n$1]) + (1) >> 0)); + chunk = ((((i$1 << 4 >> 0) | n$1) >>> 0)); + reverse$1 = ((bits.Reverse16(((code$1 << 16 >>> 16))) >> 0)); + reverse$1 = (reverse$1 >> $min(((((16 - n$1 >> 0) >>> 0))), 31)) >> 0; + if (n$1 <= 9) { + off$1 = reverse$1; + while (true) { + if (!(off$1 < 512)) { break; } + if (false && !(((x$3 = h.chunks, ((off$1 < 0 || off$1 >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[off$1])) === 0))) { + $panic(new $String("impossible: overwriting existing chunk")); + } + (x$4 = h.chunks, ((off$1 < 0 || off$1 >= x$4.length) ? ($throwRuntimeError("index out of range"), undefined) : x$4[off$1] = chunk)); + off$1 = off$1 + (((y$3 = ((n$1 >>> 0)), y$3 < 32 ? (1 << y$3) : 0) >> 0)) >> 0; + } + } else { + j$1 = reverse$1 & 511; + if (false && !(((((x$5 = h.chunks, ((j$1 < 0 || j$1 >= x$5.length) ? ($throwRuntimeError("index out of range"), undefined) : x$5[j$1])) & 15) >>> 0) === 10))) { + $panic(new $String("impossible: not an indirect chunk")); + } + value = (x$6 = h.chunks, ((j$1 < 0 || j$1 >= x$6.length) ? ($throwRuntimeError("index out of range"), undefined) : x$6[j$1])) >>> 4 >>> 0; + linktab = (x$7 = h.links, ((value < 0 || value >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + value])); + reverse$1 = (reverse$1 >> $min((9), 31)) >> 0; + off$2 = reverse$1; + while (true) { + if (!(off$2 < linktab.$length)) { break; } + if (false && !((((off$2 < 0 || off$2 >= linktab.$length) ? ($throwRuntimeError("index out of range"), undefined) : linktab.$array[linktab.$offset + off$2]) === 0))) { + $panic(new $String("impossible: overwriting existing chunk")); + } + ((off$2 < 0 || off$2 >= linktab.$length) ? ($throwRuntimeError("index out of range"), undefined) : linktab.$array[linktab.$offset + off$2] = chunk); + off$2 = off$2 + (((y$4 = (((n$1 - 9 >> 0) >>> 0)), y$4 < 32 ? (1 << y$4) : 0) >> 0)) >> 0; + } + } + _i$1++; + } + if (false) { + _ref$2 = h.chunks; + _i$2 = 0; + while (true) { + if (!(_i$2 < 512)) { break; } + i$2 = _i$2; + chunk$1 = ((_i$2 < 0 || _i$2 >= _ref$2.length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2[_i$2]); + if (chunk$1 === 0) { + if ((code === 1) && ((_r = i$2 % 2, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) === 1)) { + _i$2++; + continue; + } + $panic(new $String("impossible: missing chunk")); + } + _i$2++; + } + _ref$3 = h.links; + _i$3 = 0; + while (true) { + if (!(_i$3 < _ref$3.$length)) { break; } + linktab$1 = ((_i$3 < 0 || _i$3 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$3]); + _ref$4 = linktab$1; + _i$4 = 0; + while (true) { + if (!(_i$4 < _ref$4.$length)) { break; } + chunk$2 = ((_i$4 < 0 || _i$4 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$4]); + if (chunk$2 === 0) { + $panic(new $String("impossible: missing chunk")); + } + _i$4++; + } + _i$3++; + } + } + return true; + }; + huffmanDecoder.prototype.init = function(lengths) { return this.$val.init(lengths); }; + decompressor.ptr.prototype.nextBlock = function() { + var _1, _r, _r$1, f, typ, x, y, y$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _r$1 = $f._r$1; f = $f.f; typ = $f.typ; x = $f.x; y = $f.y; y$1 = $f.y$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + /* while (true) { */ case 1: + /* if (!(f.nb < 3)) { break; } */ if(!(f.nb < 3)) { $s = 2; continue; } + _r = f.moreBits(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + f.err = _r; + if (!($interfaceIsEqual(f.err, $ifaceNil))) { + $s = -1; return; + } + /* } */ $s = 1; continue; case 2: + f.final$12 = ((f.b & 1) >>> 0) === 1; + f.b = (y = (1), y < 32 ? (f.b >>> y) : 0) >>> 0; + typ = (f.b & 3) >>> 0; + f.b = (y$1 = (2), y$1 < 32 ? (f.b >>> y$1) : 0) >>> 0; + f.nb = f.nb - (3) >>> 0; + _1 = typ; + /* */ if (_1 === (0)) { $s = 5; continue; } + /* */ if (_1 === (1)) { $s = 6; continue; } + /* */ if (_1 === (2)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (_1 === (0)) { */ case 5: + $r = f.dataBlock(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 9; continue; + /* } else if (_1 === (1)) { */ case 6: + f.hl = fixedHuffmanDecoder; + f.hd = ptrType$9.nil; + $r = f.huffmanBlock(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 9; continue; + /* } else if (_1 === (2)) { */ case 7: + _r$1 = f.readHuffman(); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + f.err = _r$1; + if (!($interfaceIsEqual(f.err, $ifaceNil))) { + /* break; */ $s = 4; continue; + } + f.hl = f.h1; + f.hd = f.h2; + $r = f.huffmanBlock(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 9; continue; + /* } else { */ case 8: + f.err = ((x = f.roffset, new CorruptInputError(x.$high, x.$low))); + /* } */ case 9: + case 4: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: decompressor.ptr.prototype.nextBlock }; } $f._1 = _1; $f._r = _r; $f._r$1 = _r$1; $f.f = f; $f.typ = typ; $f.x = x; $f.y = y; $f.y$1 = y$1; $f.$s = $s; $f.$r = $r; return $f; + }; + decompressor.prototype.nextBlock = function() { return this.$val.nextBlock(); }; + decompressor.ptr.prototype.Read = function(b) { + var b, f, n, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; b = $f.b; f = $f.f; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + /* while (true) { */ case 1: + if (f.toRead.$length > 0) { + n = $copySlice(b, f.toRead); + f.toRead = $subslice(f.toRead, n); + if (f.toRead.$length === 0) { + $s = -1; return [n, f.err]; + } + $s = -1; return [n, $ifaceNil]; + } + if (!($interfaceIsEqual(f.err, $ifaceNil))) { + $s = -1; return [0, f.err]; + } + $r = f.step(f); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (!($interfaceIsEqual(f.err, $ifaceNil)) && (f.toRead.$length === 0)) { + f.toRead = f.dict.readFlush(); + } + /* } */ $s = 1; continue; case 2: + $s = -1; return [0, $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: decompressor.ptr.prototype.Read }; } $f.b = b; $f.f = f; $f.n = n; $f.$s = $s; $f.$r = $r; return $f; + }; + decompressor.prototype.Read = function(b) { return this.$val.Read(b); }; + decompressor.ptr.prototype.Close = function() { + var f; + f = this; + if ($interfaceIsEqual(f.err, io.EOF)) { + return $ifaceNil; + } + return f.err; + }; + decompressor.prototype.Close = function() { return this.$val.Close(); }; + decompressor.ptr.prototype.readHuffman = function() { + var _1, _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tuple, b, err, err$1, err$2, err$3, f, i, i$1, i$2, j, n, nb, nclen, ndist, nlit, rep, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, y, y$1, y$2, y$3, y$4, y$5, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; b = $f.b; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; err$3 = $f.err$3; f = $f.f; i = $f.i; i$1 = $f.i$1; i$2 = $f.i$2; j = $f.j; n = $f.n; nb = $f.nb; nclen = $f.nclen; ndist = $f.ndist; nlit = $f.nlit; rep = $f.rep; x = $f.x; x$1 = $f.x$1; x$10 = $f.x$10; x$11 = $f.x$11; x$12 = $f.x$12; x$13 = $f.x$13; x$14 = $f.x$14; x$15 = $f.x$15; x$16 = $f.x$16; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; x$8 = $f.x$8; x$9 = $f.x$9; y = $f.y; y$1 = $f.y$1; y$2 = $f.y$2; y$3 = $f.y$3; y$4 = $f.y$4; y$5 = $f.y$5; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + /* while (true) { */ case 1: + /* if (!(f.nb < 14)) { break; } */ if(!(f.nb < 14)) { $s = 2; continue; } + _r = f.moreBits(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + /* } */ $s = 1; continue; case 2: + nlit = ((((f.b & 31) >>> 0) >> 0)) + 257 >> 0; + if (nlit > 286) { + $s = -1; return ((x = f.roffset, new CorruptInputError(x.$high, x.$low))); + } + f.b = (y = (5), y < 32 ? (f.b >>> y) : 0) >>> 0; + ndist = ((((f.b & 31) >>> 0) >> 0)) + 1 >> 0; + if (ndist > 30) { + $s = -1; return ((x$1 = f.roffset, new CorruptInputError(x$1.$high, x$1.$low))); + } + f.b = (y$1 = (5), y$1 < 32 ? (f.b >>> y$1) : 0) >>> 0; + nclen = ((((f.b & 15) >>> 0) >> 0)) + 4 >> 0; + f.b = (y$2 = (4), y$2 < 32 ? (f.b >>> y$2) : 0) >>> 0; + f.nb = f.nb - (14) >>> 0; + i = 0; + /* while (true) { */ case 4: + /* if (!(i < nclen)) { break; } */ if(!(i < nclen)) { $s = 5; continue; } + /* while (true) { */ case 6: + /* if (!(f.nb < 3)) { break; } */ if(!(f.nb < 3)) { $s = 7; continue; } + _r$1 = f.moreBits(); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + err$1 = _r$1; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return err$1; + } + /* } */ $s = 6; continue; case 7: + (x$2 = f.codebits, x$3 = ((i < 0 || i >= codeOrder.length) ? ($throwRuntimeError("index out of range"), undefined) : codeOrder[i]), x$2.nilCheck, ((x$3 < 0 || x$3 >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[x$3] = ((((f.b & 7) >>> 0) >> 0)))); + f.b = (y$3 = (3), y$3 < 32 ? (f.b >>> y$3) : 0) >>> 0; + f.nb = f.nb - (3) >>> 0; + i = i + (1) >> 0; + /* } */ $s = 4; continue; case 5: + i$1 = nclen; + while (true) { + if (!(i$1 < 19)) { break; } + (x$4 = f.codebits, x$5 = ((i$1 < 0 || i$1 >= codeOrder.length) ? ($throwRuntimeError("index out of range"), undefined) : codeOrder[i$1]), x$4.nilCheck, ((x$5 < 0 || x$5 >= x$4.length) ? ($throwRuntimeError("index out of range"), undefined) : x$4[x$5] = 0)); + i$1 = i$1 + (1) >> 0; + } + if (!f.h1.init($subslice(new sliceType$10(f.codebits), 0))) { + $s = -1; return ((x$6 = f.roffset, new CorruptInputError(x$6.$high, x$6.$low))); + } + _tmp = 0; + _tmp$1 = nlit + ndist >> 0; + i$2 = _tmp; + n = _tmp$1; + /* while (true) { */ case 9: + /* if (!(i$2 < n)) { break; } */ if(!(i$2 < n)) { $s = 10; continue; } + _r$2 = f.huffSym(f.h1); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple = _r$2; + x$7 = _tuple[0]; + err$2 = _tuple[1]; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + $s = -1; return err$2; + } + /* */ if (x$7 < 16) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (x$7 < 16) { */ case 12: + (x$8 = f.bits, x$8.nilCheck, ((i$2 < 0 || i$2 >= x$8.length) ? ($throwRuntimeError("index out of range"), undefined) : x$8[i$2] = x$7)); + i$2 = i$2 + (1) >> 0; + /* continue; */ $s = 9; continue; + /* } */ case 13: + rep = 0; + nb = 0; + b = 0; + _1 = x$7; + if (_1 === (16)) { + rep = 3; + nb = 2; + if (i$2 === 0) { + $s = -1; return ((x$9 = f.roffset, new CorruptInputError(x$9.$high, x$9.$low))); + } + b = (x$10 = f.bits, x$11 = i$2 - 1 >> 0, (x$10.nilCheck, ((x$11 < 0 || x$11 >= x$10.length) ? ($throwRuntimeError("index out of range"), undefined) : x$10[x$11]))); + } else if (_1 === (17)) { + rep = 3; + nb = 3; + b = 0; + } else if (_1 === (18)) { + rep = 11; + nb = 7; + b = 0; + } else { + $s = -1; return new InternalError("unexpected length code"); + } + /* while (true) { */ case 14: + /* if (!(f.nb < nb)) { break; } */ if(!(f.nb < nb)) { $s = 15; continue; } + _r$3 = f.moreBits(); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + err$3 = _r$3; + if (!($interfaceIsEqual(err$3, $ifaceNil))) { + $s = -1; return err$3; + } + /* } */ $s = 14; continue; case 15: + rep = rep + (((((f.b & ((((y$4 = nb, y$4 < 32 ? (1 << y$4) : 0) >>> 0) - 1 >>> 0))) >>> 0) >> 0))) >> 0; + f.b = (y$5 = (nb), y$5 < 32 ? (f.b >>> y$5) : 0) >>> 0; + f.nb = f.nb - (nb) >>> 0; + if ((i$2 + rep >> 0) > n) { + $s = -1; return ((x$12 = f.roffset, new CorruptInputError(x$12.$high, x$12.$low))); + } + j = 0; + while (true) { + if (!(j < rep)) { break; } + (x$13 = f.bits, x$13.nilCheck, ((i$2 < 0 || i$2 >= x$13.length) ? ($throwRuntimeError("index out of range"), undefined) : x$13[i$2] = b)); + i$2 = i$2 + (1) >> 0; + j = j + (1) >> 0; + } + /* } */ $s = 9; continue; case 10: + if (!f.h1.init($subslice(new sliceType$10(f.bits), 0, nlit)) || !f.h2.init($subslice(new sliceType$10(f.bits), nlit, (nlit + ndist >> 0)))) { + $s = -1; return ((x$14 = f.roffset, new CorruptInputError(x$14.$high, x$14.$low))); + } + if (f.h1.min < (x$15 = f.bits, (x$15.nilCheck, x$15[256]))) { + f.h1.min = (x$16 = f.bits, (x$16.nilCheck, x$16[256])); + } + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: decompressor.ptr.prototype.readHuffman }; } $f._1 = _1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.b = b; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.err$3 = err$3; $f.f = f; $f.i = i; $f.i$1 = i$1; $f.i$2 = i$2; $f.j = j; $f.n = n; $f.nb = nb; $f.nclen = nclen; $f.ndist = ndist; $f.nlit = nlit; $f.rep = rep; $f.x = x; $f.x$1 = x$1; $f.x$10 = x$10; $f.x$11 = x$11; $f.x$12 = x$12; $f.x$13 = x$13; $f.x$14 = x$14; $f.x$15 = x$15; $f.x$16 = x$16; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.x$8 = x$8; $f.x$9 = x$9; $f.y = y; $f.y$1 = y$1; $f.y$2 = y$2; $f.y$3 = y$3; $f.y$4 = y$4; $f.y$5 = y$5; $f.$s = $s; $f.$r = $r; return $f; + }; + decompressor.prototype.readHuffman = function() { return this.$val.readHuffman(); }; + decompressor.ptr.prototype.huffmanBlock = function() { + var _1, _r, _r$1, _r$2, _r$3, _r$4, _tmp, _tmp$1, _tuple, _tuple$1, cnt, dist, err, extra, f, length, n, nb, v, x, x$1, x$2, y, y$1, y$2, y$3, y$4, y$5, y$6, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; cnt = $f.cnt; dist = $f.dist; err = $f.err; extra = $f.extra; f = $f.f; length = $f.length; n = $f.n; nb = $f.nb; v = $f.v; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; y = $f.y; y$1 = $f.y$1; y$2 = $f.y$2; y$3 = $f.y$3; y$4 = $f.y$4; y$5 = $f.y$5; y$6 = $f.y$6; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + _1 = f.stepState; + /* */ if (_1 === (0)) { $s = 2; continue; } + /* */ if (_1 === (1)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_1 === (0)) { */ case 2: + /* goto readLiteral */ $s = 5; continue; + $s = 4; continue; + /* } else if (_1 === (1)) { */ case 3: + /* goto copyHistory */ $s = 6; continue; + /* } */ case 4: + case 1: + /* readLiteral: */ case 5: + _r = f.huffSym(f.hl); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + v = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + f.err = err; + $s = -1; return; + } + n = 0; + length = 0; + /* */ if (v < 256) { $s = 9; continue; } + /* */ if ((v === 256)) { $s = 10; continue; } + /* */ if (v < 265) { $s = 11; continue; } + /* */ if (v < 269) { $s = 12; continue; } + /* */ if (v < 273) { $s = 13; continue; } + /* */ if (v < 277) { $s = 14; continue; } + /* */ if (v < 281) { $s = 15; continue; } + /* */ if (v < 285) { $s = 16; continue; } + /* */ if (v < 286) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (v < 256) { */ case 9: + f.dict.writeByte(((v << 24 >>> 24))); + if (f.dict.availWrite() === 0) { + f.toRead = f.dict.readFlush(); + f.step = $methodExpr(ptrType$10, "huffmanBlock"); + f.stepState = 0; + $s = -1; return; + } + /* goto readLiteral */ $s = 5; continue; + $s = 19; continue; + /* } else if ((v === 256)) { */ case 10: + f.finishBlock(); + $s = -1; return; + /* } else if (v < 265) { */ case 11: + length = v - 254 >> 0; + n = 0; + $s = 19; continue; + /* } else if (v < 269) { */ case 12: + length = ($imul(v, 2)) - 519 >> 0; + n = 1; + $s = 19; continue; + /* } else if (v < 273) { */ case 13: + length = ($imul(v, 4)) - 1057 >> 0; + n = 2; + $s = 19; continue; + /* } else if (v < 277) { */ case 14: + length = ($imul(v, 8)) - 2149 >> 0; + n = 3; + $s = 19; continue; + /* } else if (v < 281) { */ case 15: + length = ($imul(v, 16)) - 4365 >> 0; + n = 4; + $s = 19; continue; + /* } else if (v < 285) { */ case 16: + length = ($imul(v, 32)) - 8861 >> 0; + n = 5; + $s = 19; continue; + /* } else if (v < 286) { */ case 17: + length = 258; + n = 0; + $s = 19; continue; + /* } else { */ case 18: + f.err = ((x = f.roffset, new CorruptInputError(x.$high, x.$low))); + $s = -1; return; + /* } */ case 19: + case 8: + /* */ if (n > 0) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (n > 0) { */ case 20: + /* while (true) { */ case 22: + /* if (!(f.nb < n)) { break; } */ if(!(f.nb < n)) { $s = 23; continue; } + _r$1 = f.moreBits(); /* */ $s = 24; case 24: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + err = _r$1; + if (!($interfaceIsEqual(err, $ifaceNil))) { + f.err = err; + $s = -1; return; + } + /* } */ $s = 22; continue; case 23: + length = length + (((((f.b & ((((y = n, y < 32 ? (1 << y) : 0) >>> 0) - 1 >>> 0))) >>> 0) >> 0))) >> 0; + f.b = (y$1 = (n), y$1 < 32 ? (f.b >>> y$1) : 0) >>> 0; + f.nb = f.nb - (n) >>> 0; + /* } */ case 21: + dist = 0; + /* */ if (f.hd === ptrType$9.nil) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (f.hd === ptrType$9.nil) { */ case 25: + /* while (true) { */ case 28: + /* if (!(f.nb < 5)) { break; } */ if(!(f.nb < 5)) { $s = 29; continue; } + _r$2 = f.moreBits(); /* */ $s = 30; case 30: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + err = _r$2; + if (!($interfaceIsEqual(err, $ifaceNil))) { + f.err = err; + $s = -1; return; + } + /* } */ $s = 28; continue; case 29: + dist = ((bits.Reverse8((((((f.b & 31) >>> 0) << 3 >>> 0) << 24 >>> 24))) >> 0)); + f.b = (y$2 = (5), y$2 < 32 ? (f.b >>> y$2) : 0) >>> 0; + f.nb = f.nb - (5) >>> 0; + $s = 27; continue; + /* } else { */ case 26: + _r$3 = f.huffSym(f.hd); /* */ $s = 31; case 31: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$1 = _r$3; + dist = _tuple$1[0]; + err = _tuple$1[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + f.err = err; + $s = -1; return; + } + /* } */ case 27: + /* */ if (dist < 4) { $s = 33; continue; } + /* */ if (dist < 30) { $s = 34; continue; } + /* */ $s = 35; continue; + /* if (dist < 4) { */ case 33: + dist = dist + (1) >> 0; + $s = 36; continue; + /* } else if (dist < 30) { */ case 34: + nb = (((dist - 2 >> 0) >>> 0)) >>> 1 >>> 0; + extra = (y$3 = nb, y$3 < 32 ? (((dist & 1)) << y$3) : 0) >> 0; + /* while (true) { */ case 37: + /* if (!(f.nb < nb)) { break; } */ if(!(f.nb < nb)) { $s = 38; continue; } + _r$4 = f.moreBits(); /* */ $s = 39; case 39: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + err = _r$4; + if (!($interfaceIsEqual(err, $ifaceNil))) { + f.err = err; + $s = -1; return; + } + /* } */ $s = 37; continue; case 38: + extra = extra | (((((f.b & ((((y$4 = nb, y$4 < 32 ? (1 << y$4) : 0) >>> 0) - 1 >>> 0))) >>> 0) >> 0))); + f.b = (y$5 = (nb), y$5 < 32 ? (f.b >>> y$5) : 0) >>> 0; + f.nb = f.nb - (nb) >>> 0; + dist = (((y$6 = ((nb + 1 >>> 0)), y$6 < 32 ? (1 << y$6) : 0) >> 0) + 1 >> 0) + extra >> 0; + $s = 36; continue; + /* } else { */ case 35: + f.err = ((x$1 = f.roffset, new CorruptInputError(x$1.$high, x$1.$low))); + $s = -1; return; + /* } */ case 36: + case 32: + if (dist > f.dict.histSize()) { + f.err = ((x$2 = f.roffset, new CorruptInputError(x$2.$high, x$2.$low))); + $s = -1; return; + } + _tmp = length; + _tmp$1 = dist; + f.copyLen = _tmp; + f.copyDist = _tmp$1; + /* goto copyHistory */ $s = 6; continue; + /* copyHistory: */ case 6: + cnt = f.dict.tryWriteCopy(f.copyDist, f.copyLen); + if (cnt === 0) { + cnt = f.dict.writeCopy(f.copyDist, f.copyLen); + } + f.copyLen = f.copyLen - (cnt) >> 0; + if ((f.dict.availWrite() === 0) || f.copyLen > 0) { + f.toRead = f.dict.readFlush(); + f.step = $methodExpr(ptrType$10, "huffmanBlock"); + f.stepState = 1; + $s = -1; return; + } + /* goto readLiteral */ $s = 5; continue; + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: decompressor.ptr.prototype.huffmanBlock }; } $f._1 = _1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.cnt = cnt; $f.dist = dist; $f.err = err; $f.extra = extra; $f.f = f; $f.length = length; $f.n = n; $f.nb = nb; $f.v = v; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.y = y; $f.y$1 = y$1; $f.y$2 = y$2; $f.y$3 = y$3; $f.y$4 = y$4; $f.y$5 = y$5; $f.y$6 = y$6; $f.$s = $s; $f.$r = $r; return $f; + }; + decompressor.prototype.huffmanBlock = function() { return this.$val.huffmanBlock(); }; + decompressor.ptr.prototype.dataBlock = function() { + var _r, _tuple, err, f, n, nn, nr, x, x$1, x$2, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; f = $f.f; n = $f.n; nn = $f.nn; nr = $f.nr; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + f.nb = 0; + f.b = 0; + _r = io.ReadFull(f.r, $subslice(new sliceType$4(f.buf), 0, 4)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + nr = _tuple[0]; + err = _tuple[1]; + f.roffset = (x = f.roffset, x$1 = (new $Int64(0, nr)), new $Int64(x.$high + x$1.$high, x.$low + x$1.$low)); + if (!($interfaceIsEqual(err, $ifaceNil))) { + f.err = noEOF(err); + $s = -1; return; + } + n = ((f.buf[0] >> 0)) | (((f.buf[1] >> 0)) << 8 >> 0); + nn = ((f.buf[2] >> 0)) | (((f.buf[3] >> 0)) << 8 >> 0); + if (!((((nn << 16 >>> 16)) === (((~n >> 0) << 16 >>> 16))))) { + f.err = ((x$2 = f.roffset, new CorruptInputError(x$2.$high, x$2.$low))); + $s = -1; return; + } + if (n === 0) { + f.toRead = f.dict.readFlush(); + f.finishBlock(); + $s = -1; return; + } + f.copyLen = n; + $r = f.copyData(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: decompressor.ptr.prototype.dataBlock }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.f = f; $f.n = n; $f.nn = nn; $f.nr = nr; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$r = $r; return $f; + }; + decompressor.prototype.dataBlock = function() { return this.$val.dataBlock(); }; + decompressor.ptr.prototype.copyData = function() { + var _r, _tuple, buf, cnt, err, f, x, x$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; buf = $f.buf; cnt = $f.cnt; err = $f.err; f = $f.f; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + buf = f.dict.writeSlice(); + if (buf.$length > f.copyLen) { + buf = $subslice(buf, 0, f.copyLen); + } + _r = io.ReadFull(f.r, buf); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + cnt = _tuple[0]; + err = _tuple[1]; + f.roffset = (x = f.roffset, x$1 = (new $Int64(0, cnt)), new $Int64(x.$high + x$1.$high, x.$low + x$1.$low)); + f.copyLen = f.copyLen - (cnt) >> 0; + f.dict.writeMark(cnt); + if (!($interfaceIsEqual(err, $ifaceNil))) { + f.err = noEOF(err); + $s = -1; return; + } + if ((f.dict.availWrite() === 0) || f.copyLen > 0) { + f.toRead = f.dict.readFlush(); + f.step = $methodExpr(ptrType$10, "copyData"); + $s = -1; return; + } + f.finishBlock(); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: decompressor.ptr.prototype.copyData }; } $f._r = _r; $f._tuple = _tuple; $f.buf = buf; $f.cnt = cnt; $f.err = err; $f.f = f; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f; + }; + decompressor.prototype.copyData = function() { return this.$val.copyData(); }; + decompressor.ptr.prototype.finishBlock = function() { + var f; + f = this; + if (f.final$12) { + if (f.dict.availRead() > 0) { + f.toRead = f.dict.readFlush(); + } + f.err = io.EOF; + } + f.step = $methodExpr(ptrType$10, "nextBlock"); + }; + decompressor.prototype.finishBlock = function() { return this.$val.finishBlock(); }; + noEOF = function(e) { + var e; + if ($interfaceIsEqual(e, io.EOF)) { + return io.ErrUnexpectedEOF; + } + return e; + }; + decompressor.ptr.prototype.moreBits = function() { + var _r, _tuple, c, err, f, x, x$1, y, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; c = $f.c; err = $f.err; f = $f.f; x = $f.x; x$1 = $f.x$1; y = $f.y; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + _r = f.r.ReadByte(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + c = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return noEOF(err); + } + f.roffset = (x = f.roffset, x$1 = new $Int64(0, 1), new $Int64(x.$high + x$1.$high, x.$low + x$1.$low)); + f.b = (f.b | (((y = f.nb, y < 32 ? (((c >>> 0)) << y) : 0) >>> 0))) >>> 0; + f.nb = f.nb + (8) >>> 0; + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: decompressor.ptr.prototype.moreBits }; } $f._r = _r; $f._tuple = _tuple; $f.c = c; $f.err = err; $f.f = f; $f.x = x; $f.x$1 = x$1; $f.y = y; $f.$s = $s; $f.$r = $r; return $f; + }; + decompressor.prototype.moreBits = function() { return this.$val.moreBits(); }; + decompressor.ptr.prototype.huffSym = function(h) { + var _r, _tmp, _tmp$1, _tuple, b, c, chunk, err, f, h, n, nb, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, y, y$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; b = $f.b; c = $f.c; chunk = $f.chunk; err = $f.err; f = $f.f; h = $f.h; n = $f.n; nb = $f.nb; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; x$8 = $f.x$8; y = $f.y; y$1 = $f.y$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + n = ((h.min >>> 0)); + _tmp = f.nb; + _tmp$1 = f.b; + nb = _tmp; + b = _tmp$1; + /* while (true) { */ case 1: + /* while (true) { */ case 3: + /* if (!(nb < n)) { break; } */ if(!(nb < n)) { $s = 4; continue; } + _r = f.r.ReadByte(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + c = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + f.b = b; + f.nb = nb; + $s = -1; return [0, noEOF(err)]; + } + f.roffset = (x = f.roffset, x$1 = new $Int64(0, 1), new $Int64(x.$high + x$1.$high, x.$low + x$1.$low)); + b = (b | (((y = (((nb & 31) >>> 0)), y < 32 ? (((c >>> 0)) << y) : 0) >>> 0))) >>> 0; + nb = nb + (8) >>> 0; + /* } */ $s = 3; continue; case 4: + chunk = (x$2 = h.chunks, x$3 = (b & 511) >>> 0, ((x$3 < 0 || x$3 >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[x$3])); + n = ((((chunk & 15) >>> 0) >>> 0)); + if (n > 9) { + chunk = (x$4 = (x$5 = h.links, x$6 = chunk >>> 4 >>> 0, ((x$6 < 0 || x$6 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + x$6])), x$7 = (((b >>> 9 >>> 0)) & h.linkMask) >>> 0, ((x$7 < 0 || x$7 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$7])); + n = ((((chunk & 15) >>> 0) >>> 0)); + } + if (n <= nb) { + if (n === 0) { + f.b = b; + f.nb = nb; + f.err = ((x$8 = f.roffset, new CorruptInputError(x$8.$high, x$8.$low))); + $s = -1; return [0, f.err]; + } + f.b = (y$1 = (((n & 31) >>> 0)), y$1 < 32 ? (b >>> y$1) : 0) >>> 0; + f.nb = nb - n >>> 0; + $s = -1; return [(((chunk >>> 4 >>> 0) >> 0)), $ifaceNil]; + } + /* } */ $s = 1; continue; case 2: + $s = -1; return [0, $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: decompressor.ptr.prototype.huffSym }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.b = b; $f.c = c; $f.chunk = chunk; $f.err = err; $f.f = f; $f.h = h; $f.n = n; $f.nb = nb; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.x$8 = x$8; $f.y = y; $f.y$1 = y$1; $f.$s = $s; $f.$r = $r; return $f; + }; + decompressor.prototype.huffSym = function(h) { return this.$val.huffSym(h); }; + makeReader = function(r) { + var _tuple, ok, r, rr; + _tuple = $assertType(r, Reader, true); + rr = _tuple[0]; + ok = _tuple[1]; + if (ok) { + return rr; + } + return bufio.NewReader(r); + }; + fixedHuffmanDecoderInit = function() { + var $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = fixedOnce.Do((function() { + var bits$1, i, i$1, i$2, i$3; + bits$1 = arrayType$12.zero(); + i = 0; + while (true) { + if (!(i < 144)) { break; } + ((i < 0 || i >= bits$1.length) ? ($throwRuntimeError("index out of range"), undefined) : bits$1[i] = 8); + i = i + (1) >> 0; + } + i$1 = 144; + while (true) { + if (!(i$1 < 256)) { break; } + ((i$1 < 0 || i$1 >= bits$1.length) ? ($throwRuntimeError("index out of range"), undefined) : bits$1[i$1] = 9); + i$1 = i$1 + (1) >> 0; + } + i$2 = 256; + while (true) { + if (!(i$2 < 280)) { break; } + ((i$2 < 0 || i$2 >= bits$1.length) ? ($throwRuntimeError("index out of range"), undefined) : bits$1[i$2] = 7); + i$2 = i$2 + (1) >> 0; + } + i$3 = 280; + while (true) { + if (!(i$3 < 288)) { break; } + ((i$3 < 0 || i$3 >= bits$1.length) ? ($throwRuntimeError("index out of range"), undefined) : bits$1[i$3] = 8); + i$3 = i$3 + (1) >> 0; + } + fixedHuffmanDecoder.init(new sliceType$10(bits$1)); + })); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: fixedHuffmanDecoderInit }; } $f.$s = $s; $f.$r = $r; return $f; + }; + decompressor.ptr.prototype.Reset = function(r, dict) { + var dict, f, r; + f = this; + decompressor.copy(f, new decompressor.ptr(makeReader(r), new $Int64(0, 0), 0, 0, new huffmanDecoder.ptr(0, arrayType.zero(), sliceType$1.nil, 0), new huffmanDecoder.ptr(0, arrayType.zero(), sliceType$1.nil, 0), f.bits, f.codebits, $clone(f.dict, dictDecoder), arrayType$15.zero(), $methodExpr(ptrType$10, "nextBlock"), 0, false, $ifaceNil, sliceType$4.nil, ptrType$9.nil, ptrType$9.nil, 0, 0)); + f.dict.init(32768, dict); + return $ifaceNil; + }; + decompressor.prototype.Reset = function(r, dict) { return this.$val.Reset(r, dict); }; + NewReader = function(r) { + var f, r, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; f = $f.f; r = $f.r; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = [f]; + $r = fixedHuffmanDecoderInit(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + f[0] = new decompressor.ptr($ifaceNil, new $Int64(0, 0), 0, 0, new huffmanDecoder.ptr(0, arrayType.zero(), sliceType$1.nil, 0), new huffmanDecoder.ptr(0, arrayType.zero(), sliceType$1.nil, 0), ptrType$11.nil, ptrType$12.nil, new dictDecoder.ptr(sliceType$4.nil, 0, 0, false), arrayType$15.zero(), $throwNilPointerError, 0, false, $ifaceNil, sliceType$4.nil, ptrType$9.nil, ptrType$9.nil, 0, 0); + f[0].r = makeReader(r); + f[0].bits = arrayType$13.zero(); + f[0].codebits = arrayType$14.zero(); + f[0].step = $methodExpr(ptrType$10, "nextBlock"); + f[0].dict.init(32768, sliceType$4.nil); + $s = -1; return f[0]; + /* */ } return; } if ($f === undefined) { $f = { $blk: NewReader }; } $f.f = f; $f.r = r; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.NewReader = NewReader; + NewReaderDict = function(r, dict) { + var dict, f, r, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; dict = $f.dict; f = $f.f; r = $f.r; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = [f]; + $r = fixedHuffmanDecoderInit(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + f[0] = new decompressor.ptr($ifaceNil, new $Int64(0, 0), 0, 0, new huffmanDecoder.ptr(0, arrayType.zero(), sliceType$1.nil, 0), new huffmanDecoder.ptr(0, arrayType.zero(), sliceType$1.nil, 0), ptrType$11.nil, ptrType$12.nil, new dictDecoder.ptr(sliceType$4.nil, 0, 0, false), arrayType$15.zero(), $throwNilPointerError, 0, false, $ifaceNil, sliceType$4.nil, ptrType$9.nil, ptrType$9.nil, 0, 0); + f[0].r = makeReader(r); + f[0].bits = arrayType$13.zero(); + f[0].codebits = arrayType$14.zero(); + f[0].step = $methodExpr(ptrType$10, "nextBlock"); + f[0].dict.init(32768, dict); + $s = -1; return f[0]; + /* */ } return; } if ($f === undefined) { $f = { $blk: NewReaderDict }; } $f.dict = dict; $f.f = f; $f.r = r; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.NewReaderDict = NewReaderDict; + literalToken = function(literal) { + var literal; + return (((0 + literal >>> 0) >>> 0)); + }; + matchToken = function(xlength, xoffset) { + var xlength, xoffset; + return ((((1073741824 + (xlength << 22 >>> 0) >>> 0) + xoffset >>> 0) >>> 0)); + }; + token.prototype.literal = function() { + var t; + t = this.$val; + return (((t - 0 >>> 0) >>> 0)); + }; + $ptrType(token).prototype.literal = function() { return new token(this.$get()).literal(); }; + token.prototype.offset = function() { + var t; + t = this.$val; + return (((t >>> 0)) & 4194303) >>> 0; + }; + $ptrType(token).prototype.offset = function() { return new token(this.$get()).offset(); }; + token.prototype.length = function() { + var t; + t = this.$val; + return (((((t - 1073741824 >>> 0)) >>> 22 >>> 0) >>> 0)); + }; + $ptrType(token).prototype.length = function() { return new token(this.$get()).length(); }; + lengthCode = function(len) { + var len; + return ((len < 0 || len >= lengthCodes.length) ? ($throwRuntimeError("index out of range"), undefined) : lengthCodes[len]); + }; + offsetCode = function(off) { + var off, x, x$1; + if (off < 256) { + return ((off < 0 || off >= offsetCodes.length) ? ($throwRuntimeError("index out of range"), undefined) : offsetCodes[off]); + } + if ((off >>> 7 >>> 0) < 256) { + return (x = off >>> 7 >>> 0, ((x < 0 || x >= offsetCodes.length) ? ($throwRuntimeError("index out of range"), undefined) : offsetCodes[x])) + 14 >>> 0; + } + return (x$1 = off >>> 14 >>> 0, ((x$1 < 0 || x$1 >= offsetCodes.length) ? ($throwRuntimeError("index out of range"), undefined) : offsetCodes[x$1])) + 28 >>> 0; + }; + ptrType$2.methods = [{prop: "fillDeflate", name: "fillDeflate", pkg: "compress/flate", typ: $funcType([sliceType$4], [$Int], false)}, {prop: "writeBlock", name: "writeBlock", pkg: "compress/flate", typ: $funcType([sliceType$5, $Int], [$error], false)}, {prop: "fillWindow", name: "fillWindow", pkg: "compress/flate", typ: $funcType([sliceType$4], [], false)}, {prop: "findMatch", name: "findMatch", pkg: "compress/flate", typ: $funcType([$Int, $Int, $Int, $Int], [$Int, $Int, $Bool], false)}, {prop: "writeStoredBlock", name: "writeStoredBlock", pkg: "compress/flate", typ: $funcType([sliceType$4], [$error], false)}, {prop: "encSpeed", name: "encSpeed", pkg: "compress/flate", typ: $funcType([], [], false)}, {prop: "initDeflate", name: "initDeflate", pkg: "compress/flate", typ: $funcType([], [], false)}, {prop: "deflate", name: "deflate", pkg: "compress/flate", typ: $funcType([], [], false)}, {prop: "fillStore", name: "fillStore", pkg: "compress/flate", typ: $funcType([sliceType$4], [$Int], false)}, {prop: "store", name: "store", pkg: "compress/flate", typ: $funcType([], [], false)}, {prop: "storeHuff", name: "storeHuff", pkg: "compress/flate", typ: $funcType([], [], false)}, {prop: "write", name: "write", pkg: "compress/flate", typ: $funcType([sliceType$4], [$Int, $error], false)}, {prop: "syncFlush", name: "syncFlush", pkg: "compress/flate", typ: $funcType([], [$error], false)}, {prop: "init", name: "init", pkg: "compress/flate", typ: $funcType([io.Writer, $Int], [$error], false)}, {prop: "reset", name: "reset", pkg: "compress/flate", typ: $funcType([io.Writer], [], false)}, {prop: "close", name: "close", pkg: "compress/flate", typ: $funcType([], [$error], false)}]; + ptrType$6.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$4], [$Int, $error], false)}]; + ptrType$5.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$4], [$Int, $error], false)}, {prop: "Flush", name: "Flush", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([io.Writer], [], false)}]; + ptrType$4.methods = [{prop: "encode", name: "encode", pkg: "compress/flate", typ: $funcType([sliceType$5, sliceType$4], [sliceType$5], false)}, {prop: "matchLen", name: "matchLen", pkg: "compress/flate", typ: $funcType([$Int32, $Int32, sliceType$4], [$Int32], false)}, {prop: "reset", name: "reset", pkg: "compress/flate", typ: $funcType([], [], false)}, {prop: "resetAll", name: "resetAll", pkg: "compress/flate", typ: $funcType([], [], false)}]; + ptrType$13.methods = [{prop: "init", name: "init", pkg: "compress/flate", typ: $funcType([$Int, sliceType$4], [], false)}, {prop: "histSize", name: "histSize", pkg: "compress/flate", typ: $funcType([], [$Int], false)}, {prop: "availRead", name: "availRead", pkg: "compress/flate", typ: $funcType([], [$Int], false)}, {prop: "availWrite", name: "availWrite", pkg: "compress/flate", typ: $funcType([], [$Int], false)}, {prop: "writeSlice", name: "writeSlice", pkg: "compress/flate", typ: $funcType([], [sliceType$4], false)}, {prop: "writeMark", name: "writeMark", pkg: "compress/flate", typ: $funcType([$Int], [], false)}, {prop: "writeByte", name: "writeByte", pkg: "compress/flate", typ: $funcType([$Uint8], [], false)}, {prop: "writeCopy", name: "writeCopy", pkg: "compress/flate", typ: $funcType([$Int, $Int], [$Int], false)}, {prop: "tryWriteCopy", name: "tryWriteCopy", pkg: "compress/flate", typ: $funcType([$Int, $Int], [$Int], false)}, {prop: "readFlush", name: "readFlush", pkg: "compress/flate", typ: $funcType([], [sliceType$4], false)}]; + ptrType$3.methods = [{prop: "reset", name: "reset", pkg: "compress/flate", typ: $funcType([io.Writer], [], false)}, {prop: "flush", name: "flush", pkg: "compress/flate", typ: $funcType([], [], false)}, {prop: "write", name: "write", pkg: "compress/flate", typ: $funcType([sliceType$4], [], false)}, {prop: "writeBits", name: "writeBits", pkg: "compress/flate", typ: $funcType([$Int32, $Uint], [], false)}, {prop: "writeBytes", name: "writeBytes", pkg: "compress/flate", typ: $funcType([sliceType$4], [], false)}, {prop: "generateCodegen", name: "generateCodegen", pkg: "compress/flate", typ: $funcType([$Int, $Int, ptrType, ptrType], [], false)}, {prop: "dynamicSize", name: "dynamicSize", pkg: "compress/flate", typ: $funcType([ptrType, ptrType, $Int], [$Int, $Int], false)}, {prop: "fixedSize", name: "fixedSize", pkg: "compress/flate", typ: $funcType([$Int], [$Int], false)}, {prop: "storedSize", name: "storedSize", pkg: "compress/flate", typ: $funcType([sliceType$4], [$Int, $Bool], false)}, {prop: "writeCode", name: "writeCode", pkg: "compress/flate", typ: $funcType([hcode], [], false)}, {prop: "writeDynamicHeader", name: "writeDynamicHeader", pkg: "compress/flate", typ: $funcType([$Int, $Int, $Int, $Bool], [], false)}, {prop: "writeStoredHeader", name: "writeStoredHeader", pkg: "compress/flate", typ: $funcType([$Int, $Bool], [], false)}, {prop: "writeFixedHeader", name: "writeFixedHeader", pkg: "compress/flate", typ: $funcType([$Bool], [], false)}, {prop: "writeBlock", name: "writeBlock", pkg: "compress/flate", typ: $funcType([sliceType$5, $Bool, sliceType$4], [], false)}, {prop: "writeBlockDynamic", name: "writeBlockDynamic", pkg: "compress/flate", typ: $funcType([sliceType$5, $Bool, sliceType$4], [], false)}, {prop: "indexTokens", name: "indexTokens", pkg: "compress/flate", typ: $funcType([sliceType$5], [$Int, $Int], false)}, {prop: "writeTokens", name: "writeTokens", pkg: "compress/flate", typ: $funcType([sliceType$5, sliceType$8, sliceType$8], [], false)}, {prop: "writeBlockHuff", name: "writeBlockHuff", pkg: "compress/flate", typ: $funcType([$Bool, sliceType$4], [], false)}]; + ptrType$14.methods = [{prop: "set", name: "set", pkg: "compress/flate", typ: $funcType([$Uint16, $Uint16], [], false)}]; + ptrType.methods = [{prop: "bitLength", name: "bitLength", pkg: "compress/flate", typ: $funcType([sliceType$7], [$Int], false)}, {prop: "bitCounts", name: "bitCounts", pkg: "compress/flate", typ: $funcType([sliceType$9, $Int32], [sliceType$7], false)}, {prop: "assignEncodingAndSize", name: "assignEncodingAndSize", pkg: "compress/flate", typ: $funcType([sliceType$7, sliceType$9], [], false)}, {prop: "generate", name: "generate", pkg: "compress/flate", typ: $funcType([sliceType$7, $Int32], [], false)}]; + byLiteral.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}]; + ptrType$7.methods = [{prop: "sort", name: "sort", pkg: "compress/flate", typ: $funcType([sliceType$9], [], false)}]; + byFreq.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}]; + ptrType$8.methods = [{prop: "sort", name: "sort", pkg: "compress/flate", typ: $funcType([sliceType$9], [], false)}]; + CorruptInputError.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + InternalError.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$9.methods = [{prop: "init", name: "init", pkg: "compress/flate", typ: $funcType([sliceType$10], [$Bool], false)}]; + ptrType$10.methods = [{prop: "nextBlock", name: "nextBlock", pkg: "compress/flate", typ: $funcType([], [], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$4], [$Int, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "readHuffman", name: "readHuffman", pkg: "compress/flate", typ: $funcType([], [$error], false)}, {prop: "huffmanBlock", name: "huffmanBlock", pkg: "compress/flate", typ: $funcType([], [], false)}, {prop: "dataBlock", name: "dataBlock", pkg: "compress/flate", typ: $funcType([], [], false)}, {prop: "copyData", name: "copyData", pkg: "compress/flate", typ: $funcType([], [], false)}, {prop: "finishBlock", name: "finishBlock", pkg: "compress/flate", typ: $funcType([], [], false)}, {prop: "moreBits", name: "moreBits", pkg: "compress/flate", typ: $funcType([], [$error], false)}, {prop: "huffSym", name: "huffSym", pkg: "compress/flate", typ: $funcType([ptrType$9], [$Int, $error], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([io.Reader, sliceType$4], [$error], false)}]; + token.methods = [{prop: "literal", name: "literal", pkg: "compress/flate", typ: $funcType([], [$Uint32], false)}, {prop: "offset", name: "offset", pkg: "compress/flate", typ: $funcType([], [$Uint32], false)}, {prop: "length", name: "length", pkg: "compress/flate", typ: $funcType([], [$Uint32], false)}]; + compressionLevel.init("compress/flate", [{prop: "level", name: "level", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "good", name: "good", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lazy", name: "lazy", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "nice", name: "nice", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "chain", name: "chain", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "fastSkipHashing", name: "fastSkipHashing", embedded: false, exported: false, typ: $Int, tag: ""}]); + compressor.init("compress/flate", [{prop: "compressionLevel", name: "compressionLevel", embedded: true, exported: false, typ: compressionLevel, tag: ""}, {prop: "w", name: "w", embedded: false, exported: false, typ: ptrType$3, tag: ""}, {prop: "bulkHasher", name: "bulkHasher", embedded: false, exported: false, typ: funcType, tag: ""}, {prop: "fill", name: "fill", embedded: false, exported: false, typ: funcType$1, tag: ""}, {prop: "step", name: "step", embedded: false, exported: false, typ: funcType$2, tag: ""}, {prop: "sync", name: "sync", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "bestSpeed", name: "bestSpeed", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "chainHead", name: "chainHead", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "hashHead", name: "hashHead", embedded: false, exported: false, typ: arrayType$1, tag: ""}, {prop: "hashPrev", name: "hashPrev", embedded: false, exported: false, typ: arrayType$2, tag: ""}, {prop: "hashOffset", name: "hashOffset", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "index", name: "index", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "window", name: "window", embedded: false, exported: false, typ: sliceType$4, tag: ""}, {prop: "windowEnd", name: "windowEnd", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "blockStart", name: "blockStart", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "byteAvailable", name: "byteAvailable", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "tokens", name: "tokens", embedded: false, exported: false, typ: sliceType$5, tag: ""}, {prop: "length", name: "length", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "offset", name: "offset", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "hash", name: "hash", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "maxInsertIndex", name: "maxInsertIndex", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "hashMatch", name: "hashMatch", embedded: false, exported: false, typ: arrayType$3, tag: ""}]); + dictWriter.init("compress/flate", [{prop: "w", name: "w", embedded: false, exported: false, typ: io.Writer, tag: ""}]); + Writer.init("compress/flate", [{prop: "d", name: "d", embedded: false, exported: false, typ: compressor, tag: ""}, {prop: "dict", name: "dict", embedded: false, exported: false, typ: sliceType$4, tag: ""}]); + tableEntry.init("compress/flate", [{prop: "val", name: "val", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "offset", name: "offset", embedded: false, exported: false, typ: $Int32, tag: ""}]); + deflateFast.init("compress/flate", [{prop: "table", name: "table", embedded: false, exported: false, typ: arrayType$4, tag: ""}, {prop: "prev", name: "prev", embedded: false, exported: false, typ: sliceType$4, tag: ""}, {prop: "cur", name: "cur", embedded: false, exported: false, typ: $Int32, tag: ""}]); + dictDecoder.init("compress/flate", [{prop: "hist", name: "hist", embedded: false, exported: false, typ: sliceType$4, tag: ""}, {prop: "wrPos", name: "wrPos", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "rdPos", name: "rdPos", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "full", name: "full", embedded: false, exported: false, typ: $Bool, tag: ""}]); + huffmanBitWriter.init("compress/flate", [{prop: "writer", name: "writer", embedded: false, exported: false, typ: io.Writer, tag: ""}, {prop: "bits", name: "bits", embedded: false, exported: false, typ: $Uint64, tag: ""}, {prop: "nbits", name: "nbits", embedded: false, exported: false, typ: $Uint, tag: ""}, {prop: "bytes", name: "bytes", embedded: false, exported: false, typ: arrayType$5, tag: ""}, {prop: "codegenFreq", name: "codegenFreq", embedded: false, exported: false, typ: arrayType$6, tag: ""}, {prop: "nbytes", name: "nbytes", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "literalFreq", name: "literalFreq", embedded: false, exported: false, typ: sliceType$7, tag: ""}, {prop: "offsetFreq", name: "offsetFreq", embedded: false, exported: false, typ: sliceType$7, tag: ""}, {prop: "codegen", name: "codegen", embedded: false, exported: false, typ: sliceType$4, tag: ""}, {prop: "literalEncoding", name: "literalEncoding", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "offsetEncoding", name: "offsetEncoding", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "codegenEncoding", name: "codegenEncoding", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}]); + hcode.init("compress/flate", [{prop: "code", name: "code", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "len", name: "len", embedded: false, exported: false, typ: $Uint16, tag: ""}]); + huffmanEncoder.init("compress/flate", [{prop: "codes", name: "codes", embedded: false, exported: false, typ: sliceType$8, tag: ""}, {prop: "freqcache", name: "freqcache", embedded: false, exported: false, typ: sliceType$9, tag: ""}, {prop: "bitCount", name: "bitCount", embedded: false, exported: false, typ: arrayType$7, tag: ""}, {prop: "lns", name: "lns", embedded: false, exported: false, typ: byLiteral, tag: ""}, {prop: "lfs", name: "lfs", embedded: false, exported: false, typ: byFreq, tag: ""}]); + literalNode.init("compress/flate", [{prop: "literal", name: "literal", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "freq", name: "freq", embedded: false, exported: false, typ: $Int32, tag: ""}]); + levelInfo.init("compress/flate", [{prop: "level", name: "level", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "lastFreq", name: "lastFreq", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "nextCharFreq", name: "nextCharFreq", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "nextPairFreq", name: "nextPairFreq", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "needed", name: "needed", embedded: false, exported: false, typ: $Int32, tag: ""}]); + byLiteral.init(literalNode); + byFreq.init(literalNode); + Resetter.init([{prop: "Reset", name: "Reset", pkg: "", typ: $funcType([io.Reader, sliceType$4], [$error], false)}]); + huffmanDecoder.init("compress/flate", [{prop: "min", name: "min", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "chunks", name: "chunks", embedded: false, exported: false, typ: arrayType, tag: ""}, {prop: "links", name: "links", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "linkMask", name: "linkMask", embedded: false, exported: false, typ: $Uint32, tag: ""}]); + Reader.init([{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$4], [$Int, $error], false)}, {prop: "ReadByte", name: "ReadByte", pkg: "", typ: $funcType([], [$Uint8, $error], false)}]); + decompressor.init("compress/flate", [{prop: "r", name: "r", embedded: false, exported: false, typ: Reader, tag: ""}, {prop: "roffset", name: "roffset", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "b", name: "b", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "nb", name: "nb", embedded: false, exported: false, typ: $Uint, tag: ""}, {prop: "h1", name: "h1", embedded: false, exported: false, typ: huffmanDecoder, tag: ""}, {prop: "h2", name: "h2", embedded: false, exported: false, typ: huffmanDecoder, tag: ""}, {prop: "bits", name: "bits", embedded: false, exported: false, typ: ptrType$11, tag: ""}, {prop: "codebits", name: "codebits", embedded: false, exported: false, typ: ptrType$12, tag: ""}, {prop: "dict", name: "dict", embedded: false, exported: false, typ: dictDecoder, tag: ""}, {prop: "buf", name: "buf", embedded: false, exported: false, typ: arrayType$15, tag: ""}, {prop: "step", name: "step", embedded: false, exported: false, typ: funcType$3, tag: ""}, {prop: "stepState", name: "stepState", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "final$12", name: "final", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "toRead", name: "toRead", embedded: false, exported: false, typ: sliceType$4, tag: ""}, {prop: "hl", name: "hl", embedded: false, exported: false, typ: ptrType$9, tag: ""}, {prop: "hd", name: "hd", embedded: false, exported: false, typ: ptrType$9, tag: ""}, {prop: "copyLen", name: "copyLen", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "copyDist", name: "copyDist", embedded: false, exported: false, typ: $Int, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = bufio.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fmt.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = math.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = bits.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sort.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sync.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + huffOffset = ptrType.nil; + fixedOnce = new sync.Once.ptr(new sync.Mutex.ptr(0, 0), 0); + fixedHuffmanDecoder = new huffmanDecoder.ptr(0, arrayType.zero(), sliceType$1.nil, 0); + levels = new sliceType$2([new compressionLevel.ptr(0, 0, 0, 0, 0, 0), new compressionLevel.ptr(1, 0, 0, 0, 0, 0), new compressionLevel.ptr(2, 4, 0, 16, 8, 5), new compressionLevel.ptr(3, 4, 0, 32, 32, 6), new compressionLevel.ptr(4, 4, 4, 16, 16, 2147483647), new compressionLevel.ptr(5, 8, 16, 32, 32, 2147483647), new compressionLevel.ptr(6, 8, 16, 128, 128, 2147483647), new compressionLevel.ptr(7, 8, 32, 128, 256, 2147483647), new compressionLevel.ptr(8, 32, 128, 258, 1024, 2147483647), new compressionLevel.ptr(9, 32, 258, 258, 4096, 2147483647)]); + lengthExtraBits = new sliceType$3([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0]); + lengthBase = new sliceType([0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, 24, 28, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 255]); + offsetExtraBits = new sliceType$3([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13]); + offsetBase = new sliceType([0, 1, 2, 3, 4, 6, 8, 12, 16, 24, 32, 48, 64, 96, 128, 192, 256, 384, 512, 768, 1024, 1536, 2048, 3072, 4096, 6144, 8192, 12288, 16384, 24576]); + codegenOrder = new sliceType([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]); + fixedOffsetEncoding = generateFixedOffsetEncoding(); + fixedLiteralEncoding = generateFixedLiteralEncoding(); + codeOrder = $toNativeArray($kindInt, [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]); + lengthCodes = $toNativeArray($kindUint32, [0, 1, 2, 3, 4, 5, 6, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28]); + offsetCodes = $toNativeArray($kindUint32, [0, 1, 2, 3, 4, 4, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15]); + $r = init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["hash"] = (function() { + var $pkg = {}, $init, io, Hash32, sliceType; + io = $packages["io"]; + Hash32 = $pkg.Hash32 = $newType(8, $kindInterface, "hash.Hash32", true, "hash", true, null); + sliceType = $sliceType($Uint8); + Hash32.init([{prop: "BlockSize", name: "BlockSize", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Sum", name: "Sum", pkg: "", typ: $funcType([sliceType], [sliceType], false)}, {prop: "Sum32", name: "Sum32", pkg: "", typ: $funcType([], [$Uint32], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = io.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["hash/adler32"] = (function() { + var $pkg = {}, $init, errors, hash, digest, ptrType, sliceType, New, appendUint32, readUint32, update, Checksum; + errors = $packages["errors"]; + hash = $packages["hash"]; + digest = $pkg.digest = $newType(4, $kindUint32, "adler32.digest", true, "hash/adler32", false, null); + ptrType = $ptrType(digest); + sliceType = $sliceType($Uint8); + $ptrType(digest).prototype.Reset = function() { + var d; + d = this; + d.$set(1); + }; + New = function() { + var d; + d = $newDataPointer(0, ptrType); + d.Reset(); + return d; + }; + $pkg.New = New; + $ptrType(digest).prototype.Size = function() { + var d; + d = this; + return 4; + }; + $ptrType(digest).prototype.BlockSize = function() { + var d; + d = this; + return 4; + }; + $ptrType(digest).prototype.MarshalBinary = function() { + var b, d; + d = this; + b = $makeSlice(sliceType, 0, 8); + b = $appendSlice(b, "adl\x01"); + b = appendUint32(b, ((d.$get() >>> 0))); + return [b, $ifaceNil]; + }; + $ptrType(digest).prototype.UnmarshalBinary = function(b) { + var b, d; + d = this; + if (b.$length < 4 || !(($bytesToString($subslice(b, 0, 4))) === "adl\x01")) { + return errors.New("hash/adler32: invalid hash state identifier"); + } + if (!((b.$length === 8))) { + return errors.New("hash/adler32: invalid hash state size"); + } + d.$set(((readUint32($subslice(b, 4)) >>> 0))); + return $ifaceNil; + }; + appendUint32 = function(b, x) { + var a, b, x; + a = $toNativeArray($kindUint8, [(((x >>> 24 >>> 0) << 24 >>> 24)), (((x >>> 16 >>> 0) << 24 >>> 24)), (((x >>> 8 >>> 0) << 24 >>> 24)), ((x << 24 >>> 24))]); + return $appendSlice(b, new sliceType(a)); + }; + readUint32 = function(b) { + var b; + $unused((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3])); + return ((((((((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]) >>> 0)) | ((((2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]) >>> 0)) << 8 >>> 0)) >>> 0) | ((((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]) >>> 0)) << 16 >>> 0)) >>> 0) | ((((0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]) >>> 0)) << 24 >>> 0)) >>> 0; + }; + update = function(d, p) { + var _i, _r, _r$1, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, d, p, q, s1, s2, x; + _tmp = ((((d & 65535) >>> 0) >>> 0)); + _tmp$1 = (((d >>> 16 >>> 0) >>> 0)); + s1 = _tmp; + s2 = _tmp$1; + while (true) { + if (!(p.$length > 0)) { break; } + q = sliceType.nil; + if (p.$length > 5552) { + _tmp$2 = $subslice(p, 0, 5552); + _tmp$3 = $subslice(p, 5552); + p = _tmp$2; + q = _tmp$3; + } + while (true) { + if (!(p.$length >= 4)) { break; } + s1 = s1 + ((((0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0]) >>> 0))) >>> 0; + s2 = s2 + (s1) >>> 0; + s1 = s1 + ((((1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1]) >>> 0))) >>> 0; + s2 = s2 + (s1) >>> 0; + s1 = s1 + ((((2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2]) >>> 0))) >>> 0; + s2 = s2 + (s1) >>> 0; + s1 = s1 + ((((3 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 3]) >>> 0))) >>> 0; + s2 = s2 + (s1) >>> 0; + p = $subslice(p, 4); + } + _ref = p; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + s1 = s1 + (((x >>> 0))) >>> 0; + s2 = s2 + (s1) >>> 0; + _i++; + } + s1 = (_r = s1 % (65521), _r === _r ? _r : $throwRuntimeError("integer divide by zero")); + s2 = (_r$1 = s2 % (65521), _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")); + p = q; + } + return (((((s2 << 16 >>> 0) | s1) >>> 0) >>> 0)); + }; + $ptrType(digest).prototype.Write = function(p) { + var _tmp, _tmp$1, d, err, nn, p; + nn = 0; + err = $ifaceNil; + d = this; + d.$set(update(d.$get(), p)); + _tmp = p.$length; + _tmp$1 = $ifaceNil; + nn = _tmp; + err = _tmp$1; + return [nn, err]; + }; + $ptrType(digest).prototype.Sum32 = function() { + var d; + d = this; + return ((d.$get() >>> 0)); + }; + $ptrType(digest).prototype.Sum = function(in$1) { + var d, in$1, s; + d = this; + s = ((d.$get() >>> 0)); + return $append(in$1, (((s >>> 24 >>> 0) << 24 >>> 24)), (((s >>> 16 >>> 0) << 24 >>> 24)), (((s >>> 8 >>> 0) << 24 >>> 24)), ((s << 24 >>> 24))); + }; + Checksum = function(data) { + var data; + return ((update(1, data) >>> 0)); + }; + $pkg.Checksum = Checksum; + ptrType.methods = [{prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "BlockSize", name: "BlockSize", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "MarshalBinary", name: "MarshalBinary", pkg: "", typ: $funcType([], [sliceType, $error], false)}, {prop: "UnmarshalBinary", name: "UnmarshalBinary", pkg: "", typ: $funcType([sliceType], [$error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "Sum32", name: "Sum32", pkg: "", typ: $funcType([], [$Uint32], false)}, {prop: "Sum", name: "Sum", pkg: "", typ: $funcType([sliceType], [sliceType], false)}]; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = hash.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["compress/zlib"] = (function() { + var $pkg = {}, $init, bufio, flate, errors, fmt, hash, adler32, io, reader, Writer, sliceType, arrayType, ptrType, sliceType$1, ptrType$1, ptrType$2, NewReader, NewReaderDict, NewWriterLevel, NewWriterLevelDict; + bufio = $packages["bufio"]; + flate = $packages["compress/flate"]; + errors = $packages["errors"]; + fmt = $packages["fmt"]; + hash = $packages["hash"]; + adler32 = $packages["hash/adler32"]; + io = $packages["io"]; + reader = $pkg.reader = $newType(0, $kindStruct, "zlib.reader", true, "compress/zlib", false, function(r_, decompressor_, digest_, err_, scratch_) { + this.$val = this; + if (arguments.length === 0) { + this.r = $ifaceNil; + this.decompressor = $ifaceNil; + this.digest = $ifaceNil; + this.err = $ifaceNil; + this.scratch = arrayType.zero(); + return; + } + this.r = r_; + this.decompressor = decompressor_; + this.digest = digest_; + this.err = err_; + this.scratch = scratch_; + }); + Writer = $pkg.Writer = $newType(0, $kindStruct, "zlib.Writer", true, "compress/zlib", true, function(w_, level_, dict_, compressor_, digest_, err_, scratch_, wroteHeader_) { + this.$val = this; + if (arguments.length === 0) { + this.w = $ifaceNil; + this.level = 0; + this.dict = sliceType.nil; + this.compressor = ptrType$1.nil; + this.digest = $ifaceNil; + this.err = $ifaceNil; + this.scratch = arrayType.zero(); + this.wroteHeader = false; + return; + } + this.w = w_; + this.level = level_; + this.dict = dict_; + this.compressor = compressor_; + this.digest = digest_; + this.err = err_; + this.scratch = scratch_; + this.wroteHeader = wroteHeader_; + }); + sliceType = $sliceType($Uint8); + arrayType = $arrayType($Uint8, 4); + ptrType = $ptrType(Writer); + sliceType$1 = $sliceType($emptyInterface); + ptrType$1 = $ptrType(flate.Writer); + ptrType$2 = $ptrType(reader); + NewReader = function(r) { + var _r, r, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; r = $f.r; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = NewReaderDict(r, sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: NewReader }; } $f._r = _r; $f.r = r; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.NewReader = NewReader; + NewReaderDict = function(r, dict) { + var _r, dict, err, r, z, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; dict = $f.dict; err = $f.err; r = $f.r; z = $f.z; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + z = new reader.ptr($ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, arrayType.zero()); + _r = z.Reset(r, dict); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [$ifaceNil, err]; + } + $s = -1; return [z, $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: NewReaderDict }; } $f._r = _r; $f.dict = dict; $f.err = err; $f.r = r; $f.z = z; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.NewReaderDict = NewReaderDict; + reader.ptr.prototype.Read = function(p) { + var _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, checksum, err, n, p, z, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; checksum = $f.checksum; err = $f.err; n = $f.n; p = $f.p; z = $f.z; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + z = this; + if (!($interfaceIsEqual(z.err, $ifaceNil))) { + $s = -1; return [0, z.err]; + } + n = 0; + _r = z.decompressor.Read(p); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + z.err = _tuple[1]; + _r$1 = z.digest.Write($subslice(p, 0, n)); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + if (!($interfaceIsEqual(z.err, io.EOF))) { + $s = -1; return [n, z.err]; + } + _r$2 = io.ReadFull(z.r, $subslice(new sliceType(z.scratch), 0, 4)); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$1 = _r$2; + err = _tuple$1[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + if ($interfaceIsEqual(err, io.EOF)) { + err = io.ErrUnexpectedEOF; + } + z.err = err; + $s = -1; return [n, z.err]; + } + checksum = ((((((((z.scratch[0] >>> 0)) << 24 >>> 0) | (((z.scratch[1] >>> 0)) << 16 >>> 0)) >>> 0) | (((z.scratch[2] >>> 0)) << 8 >>> 0)) >>> 0) | ((z.scratch[3] >>> 0))) >>> 0; + _r$3 = z.digest.Sum32(); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!((checksum === _r$3))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!((checksum === _r$3))) { */ case 4: + z.err = $pkg.ErrChecksum; + $s = -1; return [n, z.err]; + /* } */ case 5: + $s = -1; return [n, io.EOF]; + /* */ } return; } if ($f === undefined) { $f = { $blk: reader.ptr.prototype.Read }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.checksum = checksum; $f.err = err; $f.n = n; $f.p = p; $f.z = z; $f.$s = $s; $f.$r = $r; return $f; + }; + reader.prototype.Read = function(p) { return this.$val.Read(p); }; + reader.ptr.prototype.Close = function() { + var _r, z, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; z = $f.z; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + z = this; + if (!($interfaceIsEqual(z.err, $ifaceNil)) && !($interfaceIsEqual(z.err, io.EOF))) { + $s = -1; return z.err; + } + _r = z.decompressor.Close(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + z.err = _r; + $s = -1; return z.err; + /* */ } return; } if ($f === undefined) { $f = { $blk: reader.ptr.prototype.Close }; } $f._r = _r; $f.z = z; $f.$s = $s; $f.$r = $r; return $f; + }; + reader.prototype.Close = function() { return this.$val.Close(); }; + reader.ptr.prototype.Reset = function(r, dict) { + var _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, _tuple$2, checksum, dict, fr, h, haveDict, ok, r, z, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; checksum = $f.checksum; dict = $f.dict; fr = $f.fr; h = $f.h; haveDict = $f.haveDict; ok = $f.ok; r = $f.r; z = $f.z; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + z = this; + reader.copy(z, new reader.ptr($ifaceNil, z.decompressor, $ifaceNil, $ifaceNil, arrayType.zero())); + _tuple = $assertType(r, flate.Reader, true); + fr = _tuple[0]; + ok = _tuple[1]; + if (ok) { + z.r = fr; + } else { + z.r = bufio.NewReader(r); + } + _r = io.ReadFull(z.r, $subslice(new sliceType(z.scratch), 0, 2)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple$1 = _r; + z.err = _tuple$1[1]; + if (!($interfaceIsEqual(z.err, $ifaceNil))) { + if ($interfaceIsEqual(z.err, io.EOF)) { + z.err = io.ErrUnexpectedEOF; + } + $s = -1; return z.err; + } + h = ((((z.scratch[0] >>> 0)) << 8 >>> 0) | ((z.scratch[1] >>> 0))) >>> 0; + if ((!((((z.scratch[0] & 15) >>> 0) === 8))) || (!(((_r$1 = h % 31, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) === 0)))) { + z.err = $pkg.ErrHeader; + $s = -1; return z.err; + } + haveDict = !((((z.scratch[1] & 32) >>> 0) === 0)); + /* */ if (haveDict) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (haveDict) { */ case 2: + _r$2 = io.ReadFull(z.r, $subslice(new sliceType(z.scratch), 0, 4)); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$2 = _r$2; + z.err = _tuple$2[1]; + if (!($interfaceIsEqual(z.err, $ifaceNil))) { + if ($interfaceIsEqual(z.err, io.EOF)) { + z.err = io.ErrUnexpectedEOF; + } + $s = -1; return z.err; + } + checksum = ((((((((z.scratch[0] >>> 0)) << 24 >>> 0) | (((z.scratch[1] >>> 0)) << 16 >>> 0)) >>> 0) | (((z.scratch[2] >>> 0)) << 8 >>> 0)) >>> 0) | ((z.scratch[3] >>> 0))) >>> 0; + if (!((checksum === adler32.Checksum(dict)))) { + z.err = $pkg.ErrDictionary; + $s = -1; return z.err; + } + /* } */ case 3: + /* */ if ($interfaceIsEqual(z.decompressor, $ifaceNil)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if ($interfaceIsEqual(z.decompressor, $ifaceNil)) { */ case 5: + /* */ if (haveDict) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (haveDict) { */ case 8: + _r$3 = flate.NewReaderDict(z.r, dict); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + z.decompressor = _r$3; + $s = 10; continue; + /* } else { */ case 9: + _r$4 = flate.NewReader(z.r); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + z.decompressor = _r$4; + /* } */ case 10: + $s = 7; continue; + /* } else { */ case 6: + _r$5 = $assertType(z.decompressor, flate.Resetter).Reset(z.r, dict); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$5; + /* } */ case 7: + z.digest = adler32.New(); + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: reader.ptr.prototype.Reset }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.checksum = checksum; $f.dict = dict; $f.fr = fr; $f.h = h; $f.haveDict = haveDict; $f.ok = ok; $f.r = r; $f.z = z; $f.$s = $s; $f.$r = $r; return $f; + }; + reader.prototype.Reset = function(r, dict) { return this.$val.Reset(r, dict); }; + NewWriterLevel = function(w, level) { + var _r, level, w, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; level = $f.level; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = NewWriterLevelDict(w, level, sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: NewWriterLevel }; } $f._r = _r; $f.level = level; $f.w = w; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.NewWriterLevel = NewWriterLevel; + NewWriterLevelDict = function(w, level, dict) { + var _r, dict, level, w, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; dict = $f.dict; level = $f.level; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ if (level < -2 || level > 9) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (level < -2 || level > 9) { */ case 1: + _r = fmt.Errorf("zlib: invalid compression level: %d", new sliceType$1([new $Int(level)])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return [ptrType.nil, _r]; + /* } */ case 2: + $s = -1; return [new Writer.ptr(w, level, dict, ptrType$1.nil, $ifaceNil, $ifaceNil, arrayType.zero(), false), $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: NewWriterLevelDict }; } $f._r = _r; $f.dict = dict; $f.level = level; $f.w = w; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.NewWriterLevelDict = NewWriterLevelDict; + Writer.ptr.prototype.Reset = function(w) { + var w, z, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; w = $f.w; z = $f.z; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + z = this; + z.w = w; + /* */ if (!(z.compressor === ptrType$1.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(z.compressor === ptrType$1.nil)) { */ case 1: + $r = z.compressor.Reset(w); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + /* */ if (!($interfaceIsEqual(z.digest, $ifaceNil))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!($interfaceIsEqual(z.digest, $ifaceNil))) { */ case 4: + $r = z.digest.Reset(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 5: + z.err = $ifaceNil; + arrayType.copy(z.scratch, arrayType.zero()); + z.wroteHeader = false; + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Writer.ptr.prototype.Reset }; } $f.w = w; $f.z = z; $f.$s = $s; $f.$r = $r; return $f; + }; + Writer.prototype.Reset = function(w) { return this.$val.Reset(w); }; + Writer.ptr.prototype.writeHeader = function() { + var _1, _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, _tuple$2, checksum, err, z, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; checksum = $f.checksum; err = $f.err; z = $f.z; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + err = $ifaceNil; + z = this; + z.wroteHeader = true; + z.scratch[0] = 120; + _1 = z.level; + if ((_1 === (-2)) || (_1 === (0)) || (_1 === (1))) { + z.scratch[1] = 0; + } else if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5))) { + z.scratch[1] = 64; + } else if ((_1 === (6)) || (_1 === (-1))) { + z.scratch[1] = 128; + } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9))) { + z.scratch[1] = 192; + } else { + $panic(new $String("unreachable")); + } + if (!(z.dict === sliceType.nil)) { + z.scratch[1] = ((z.scratch[1] | (32)) >>> 0); + } + z.scratch[1] = (z.scratch[1] + ((((31 - (_r = (((((z.scratch[0] << 16 >>> 16)) << 8 << 16 >>> 16) + ((z.scratch[1] << 16 >>> 16)) << 16 >>> 16)) % 31, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) << 16 >>> 16) << 24 >>> 24))) << 24 >>> 24); + _r$1 = z.w.Write($subslice(new sliceType(z.scratch), 0, 2)); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + err = err; + $s = -1; return err; + } + /* */ if (!(z.dict === sliceType.nil)) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!(z.dict === sliceType.nil)) { */ case 2: + checksum = adler32.Checksum(z.dict); + z.scratch[0] = (((checksum >>> 24 >>> 0) << 24 >>> 24)); + z.scratch[1] = (((checksum >>> 16 >>> 0) << 24 >>> 24)); + z.scratch[2] = (((checksum >>> 8 >>> 0) << 24 >>> 24)); + z.scratch[3] = (((checksum >>> 0 >>> 0) << 24 >>> 24)); + _r$2 = z.w.Write($subslice(new sliceType(z.scratch), 0, 4)); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$1 = _r$2; + err = _tuple$1[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + err = err; + $s = -1; return err; + } + /* } */ case 3: + /* */ if (z.compressor === ptrType$1.nil) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (z.compressor === ptrType$1.nil) { */ case 5: + _r$3 = flate.NewWriterDict(z.w, z.level, z.dict); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$2 = _r$3; + z.compressor = _tuple$2[0]; + err = _tuple$2[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + err = err; + $s = -1; return err; + } + z.digest = adler32.New(); + /* } */ case 6: + err = $ifaceNil; + $s = -1; return err; + /* */ } return; } if ($f === undefined) { $f = { $blk: Writer.ptr.prototype.writeHeader }; } $f._1 = _1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.checksum = checksum; $f.err = err; $f.z = z; $f.$s = $s; $f.$r = $r; return $f; + }; + Writer.prototype.writeHeader = function() { return this.$val.writeHeader(); }; + Writer.ptr.prototype.Write = function(p) { + var _r, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, err, n, p, z, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tuple = $f._tuple; err = $f.err; n = $f.n; p = $f.p; z = $f.z; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + z = this; + /* */ if (!z.wroteHeader) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!z.wroteHeader) { */ case 1: + _r = z.writeHeader(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + z.err = _r; + /* } */ case 2: + if (!($interfaceIsEqual(z.err, $ifaceNil))) { + _tmp = 0; + _tmp$1 = z.err; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + } + if (p.$length === 0) { + _tmp$2 = 0; + _tmp$3 = $ifaceNil; + n = _tmp$2; + err = _tmp$3; + $s = -1; return [n, err]; + } + _r$1 = z.compressor.Write(p); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + n = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + z.err = err; + $s = -1; return [n, err]; + } + _r$2 = z.digest.Write(p); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Writer.ptr.prototype.Write }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tuple = _tuple; $f.err = err; $f.n = n; $f.p = p; $f.z = z; $f.$s = $s; $f.$r = $r; return $f; + }; + Writer.prototype.Write = function(p) { return this.$val.Write(p); }; + Writer.ptr.prototype.Flush = function() { + var _r, _r$1, z, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; z = $f.z; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + z = this; + /* */ if (!z.wroteHeader) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!z.wroteHeader) { */ case 1: + _r = z.writeHeader(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + z.err = _r; + /* } */ case 2: + if (!($interfaceIsEqual(z.err, $ifaceNil))) { + $s = -1; return z.err; + } + _r$1 = z.compressor.Flush(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + z.err = _r$1; + $s = -1; return z.err; + /* */ } return; } if ($f === undefined) { $f = { $blk: Writer.ptr.prototype.Flush }; } $f._r = _r; $f._r$1 = _r$1; $f.z = z; $f.$s = $s; $f.$r = $r; return $f; + }; + Writer.prototype.Flush = function() { return this.$val.Flush(); }; + Writer.ptr.prototype.Close = function() { + var _r, _r$1, _r$2, _r$3, _tuple, checksum, z, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _tuple = $f._tuple; checksum = $f.checksum; z = $f.z; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + z = this; + /* */ if (!z.wroteHeader) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!z.wroteHeader) { */ case 1: + _r = z.writeHeader(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + z.err = _r; + /* } */ case 2: + if (!($interfaceIsEqual(z.err, $ifaceNil))) { + $s = -1; return z.err; + } + _r$1 = z.compressor.Close(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + z.err = _r$1; + if (!($interfaceIsEqual(z.err, $ifaceNil))) { + $s = -1; return z.err; + } + _r$2 = z.digest.Sum32(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + checksum = _r$2; + z.scratch[0] = (((checksum >>> 24 >>> 0) << 24 >>> 24)); + z.scratch[1] = (((checksum >>> 16 >>> 0) << 24 >>> 24)); + z.scratch[2] = (((checksum >>> 8 >>> 0) << 24 >>> 24)); + z.scratch[3] = (((checksum >>> 0 >>> 0) << 24 >>> 24)); + _r$3 = z.w.Write($subslice(new sliceType(z.scratch), 0, 4)); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + z.err = _tuple[1]; + $s = -1; return z.err; + /* */ } return; } if ($f === undefined) { $f = { $blk: Writer.ptr.prototype.Close }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._tuple = _tuple; $f.checksum = checksum; $f.z = z; $f.$s = $s; $f.$r = $r; return $f; + }; + Writer.prototype.Close = function() { return this.$val.Close(); }; + ptrType$2.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([io.Reader, sliceType], [$error], false)}]; + ptrType.methods = [{prop: "Reset", name: "Reset", pkg: "", typ: $funcType([io.Writer], [], false)}, {prop: "writeHeader", name: "writeHeader", pkg: "compress/zlib", typ: $funcType([], [$error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "Flush", name: "Flush", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}]; + reader.init("compress/zlib", [{prop: "r", name: "r", embedded: false, exported: false, typ: flate.Reader, tag: ""}, {prop: "decompressor", name: "decompressor", embedded: false, exported: false, typ: io.ReadCloser, tag: ""}, {prop: "digest", name: "digest", embedded: false, exported: false, typ: hash.Hash32, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "scratch", name: "scratch", embedded: false, exported: false, typ: arrayType, tag: ""}]); + Writer.init("compress/zlib", [{prop: "w", name: "w", embedded: false, exported: false, typ: io.Writer, tag: ""}, {prop: "level", name: "level", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "dict", name: "dict", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "compressor", name: "compressor", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "digest", name: "digest", embedded: false, exported: false, typ: hash.Hash32, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "scratch", name: "scratch", embedded: false, exported: false, typ: arrayType, tag: ""}, {prop: "wroteHeader", name: "wroteHeader", embedded: false, exported: false, typ: $Bool, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = bufio.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = flate.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errors.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fmt.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = hash.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = adler32.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.ErrChecksum = errors.New("zlib: invalid checksum"); + $pkg.ErrDictionary = errors.New("zlib: invalid dictionary"); + $pkg.ErrHeader = errors.New("zlib: invalid header"); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["hash/crc32"] = (function() { + var $pkg = {}, $init, errors, hash, sync, Table, digest, slicing8Table, ptrType, ptrType$1, sliceType, arrayType, arrayType$1, arrayType$2, ptrType$2, castagnoliTable, updateCastagnoli, ieeeTable8, ieeeArchImpl, updateIEEE, ieeeOnce, ieeeInit, New, NewIEEE, appendUint32, readUint32, ChecksumIEEE, tableSum, simpleMakeTable, simplePopulateTable, simpleUpdate, slicingMakeTable, slicingUpdate, archAvailableIEEE, archInitIEEE, archUpdateIEEE; + errors = $packages["errors"]; + hash = $packages["hash"]; + sync = $packages["sync"]; + Table = $pkg.Table = $newType(1024, $kindArray, "crc32.Table", true, "hash/crc32", true, null); + digest = $pkg.digest = $newType(0, $kindStruct, "crc32.digest", true, "hash/crc32", false, function(crc_, tab_) { + this.$val = this; + if (arguments.length === 0) { + this.crc = 0; + this.tab = ptrType.nil; + return; + } + this.crc = crc_; + this.tab = tab_; + }); + slicing8Table = $pkg.slicing8Table = $newType(8192, $kindArray, "crc32.slicing8Table", true, "hash/crc32", false, null); + ptrType = $ptrType(Table); + ptrType$1 = $ptrType(slicing8Table); + sliceType = $sliceType($Uint8); + arrayType = $arrayType($Uint8, 1024); + arrayType$1 = $arrayType($Uint32, 256); + arrayType$2 = $arrayType(Table, 8); + ptrType$2 = $ptrType(digest); + ieeeInit = function() { + ieeeArchImpl = archAvailableIEEE(); + if (ieeeArchImpl) { + archInitIEEE(); + updateIEEE = archUpdateIEEE; + } else { + ieeeTable8 = slicingMakeTable(3988292384); + updateIEEE = (function(crc, p) { + var crc, p; + return slicingUpdate(crc, ieeeTable8, p); + }); + } + }; + New = function(tab) { + var tab, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; tab = $f.tab; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ if ($equal(tab, $pkg.IEEETable, Table)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ($equal(tab, $pkg.IEEETable, Table)) { */ case 1: + $r = ieeeOnce.Do(ieeeInit); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $s = -1; return new digest.ptr(0, tab); + /* */ } return; } if ($f === undefined) { $f = { $blk: New }; } $f.tab = tab; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.New = New; + NewIEEE = function() { + var _r, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = New($pkg.IEEETable); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: NewIEEE }; } $f._r = _r; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.NewIEEE = NewIEEE; + digest.ptr.prototype.Size = function() { + var d; + d = this; + return 4; + }; + digest.prototype.Size = function() { return this.$val.Size(); }; + digest.ptr.prototype.BlockSize = function() { + var d; + d = this; + return 1; + }; + digest.prototype.BlockSize = function() { return this.$val.BlockSize(); }; + digest.ptr.prototype.Reset = function() { + var d; + d = this; + d.crc = 0; + }; + digest.prototype.Reset = function() { return this.$val.Reset(); }; + digest.ptr.prototype.MarshalBinary = function() { + var _arg, _arg$1, _r, _r$1, b, d, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _r = $f._r; _r$1 = $f._r$1; b = $f.b; d = $f.d; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + d = this; + b = $makeSlice(sliceType, 0, 12); + b = $appendSlice(b, "crc\x01"); + _arg = b; + _r = tableSum(d.tab); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = _r; + _r$1 = appendUint32(_arg, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + b = _r$1; + b = appendUint32(b, d.crc); + $s = -1; return [b, $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: digest.ptr.prototype.MarshalBinary }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._r = _r; $f._r$1 = _r$1; $f.b = b; $f.d = d; $f.$s = $s; $f.$r = $r; return $f; + }; + digest.prototype.MarshalBinary = function() { return this.$val.MarshalBinary(); }; + digest.ptr.prototype.UnmarshalBinary = function(b) { + var _r, b, d, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; b = $f.b; d = $f.d; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + d = this; + if (b.$length < 4 || !(($bytesToString($subslice(b, 0, 4))) === "crc\x01")) { + $s = -1; return errors.New("hash/crc32: invalid hash state identifier"); + } + if (!((b.$length === 12))) { + $s = -1; return errors.New("hash/crc32: invalid hash state size"); + } + _r = tableSum(d.tab); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!((_r === readUint32($subslice(b, 4))))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((_r === readUint32($subslice(b, 4))))) { */ case 1: + $s = -1; return errors.New("hash/crc32: tables do not match"); + /* } */ case 2: + d.crc = readUint32($subslice(b, 8)); + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: digest.ptr.prototype.UnmarshalBinary }; } $f._r = _r; $f.b = b; $f.d = d; $f.$s = $s; $f.$r = $r; return $f; + }; + digest.prototype.UnmarshalBinary = function(b) { return this.$val.UnmarshalBinary(b); }; + appendUint32 = function(b, x) { + var a, b, x; + a = $toNativeArray($kindUint8, [(((x >>> 24 >>> 0) << 24 >>> 24)), (((x >>> 16 >>> 0) << 24 >>> 24)), (((x >>> 8 >>> 0) << 24 >>> 24)), ((x << 24 >>> 24))]); + return $appendSlice(b, new sliceType(a)); + }; + readUint32 = function(b) { + var b; + $unused((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3])); + return ((((((((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]) >>> 0)) | ((((2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]) >>> 0)) << 8 >>> 0)) >>> 0) | ((((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]) >>> 0)) << 16 >>> 0)) >>> 0) | ((((0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]) >>> 0)) << 24 >>> 0)) >>> 0; + }; + digest.ptr.prototype.Write = function(p) { + var _1, _r, _r$1, _tmp, _tmp$1, d, err, n, p, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _r$1 = $f._r$1; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; d = $f.d; err = $f.err; n = $f.n; p = $f.p; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + d = this; + _1 = d.tab; + /* */ if ($equal(_1, (castagnoliTable), Table)) { $s = 2; continue; } + /* */ if ($equal(_1, ($pkg.IEEETable), Table)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if ($equal(_1, (castagnoliTable), Table)) { */ case 2: + _r = updateCastagnoli(d.crc, p); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + d.crc = _r; + $s = 5; continue; + /* } else if ($equal(_1, ($pkg.IEEETable), Table)) { */ case 3: + _r$1 = updateIEEE(d.crc, p); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + d.crc = _r$1; + $s = 5; continue; + /* } else { */ case 4: + d.crc = simpleUpdate(d.crc, d.tab, p); + /* } */ case 5: + case 1: + _tmp = p.$length; + _tmp$1 = $ifaceNil; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: digest.ptr.prototype.Write }; } $f._1 = _1; $f._r = _r; $f._r$1 = _r$1; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f.d = d; $f.err = err; $f.n = n; $f.p = p; $f.$s = $s; $f.$r = $r; return $f; + }; + digest.prototype.Write = function(p) { return this.$val.Write(p); }; + digest.ptr.prototype.Sum32 = function() { + var d; + d = this; + return d.crc; + }; + digest.prototype.Sum32 = function() { return this.$val.Sum32(); }; + digest.ptr.prototype.Sum = function(in$1) { + var d, in$1, s; + d = this; + s = d.Sum32(); + return $append(in$1, (((s >>> 24 >>> 0) << 24 >>> 24)), (((s >>> 16 >>> 0) << 24 >>> 24)), (((s >>> 8 >>> 0) << 24 >>> 24)), ((s << 24 >>> 24))); + }; + digest.prototype.Sum = function(in$1) { return this.$val.Sum(in$1); }; + ChecksumIEEE = function(data) { + var _r, data, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; data = $f.data; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = ieeeOnce.Do(ieeeInit); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r = updateIEEE(0, data); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: ChecksumIEEE }; } $f._r = _r; $f.data = data; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.ChecksumIEEE = ChecksumIEEE; + tableSum = function(t) { + var _i, _r, _ref, a, b, t, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; a = $f.a; b = $f.b; t = $f.t; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + a = arrayType.zero(); + b = $subslice(new sliceType(a), 0, 0); + if (!($equal(t, ptrType.nil, Table))) { + _ref = t; + _i = 0; + while (true) { + if (!(_i < 256)) { break; } + x = (_ref.nilCheck, ((_i < 0 || _i >= _ref.length) ? ($throwRuntimeError("index out of range"), undefined) : _ref[_i])); + b = appendUint32(b, x); + _i++; + } + } + _r = ChecksumIEEE(b); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: tableSum }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f.a = a; $f.b = b; $f.t = t; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + simpleMakeTable = function(poly) { + var poly, t; + t = arrayType$1.zero(); + simplePopulateTable(poly, t); + return t; + }; + simplePopulateTable = function(poly, t) { + var crc, i, j, poly, t, y; + i = 0; + while (true) { + if (!(i < 256)) { break; } + crc = ((i >>> 0)); + j = 0; + while (true) { + if (!(j < 8)) { break; } + if (((crc & 1) >>> 0) === 1) { + crc = (((crc >>> 1 >>> 0)) ^ poly) >>> 0; + } else { + crc = (y = (1), y < 32 ? (crc >>> y) : 0) >>> 0; + } + j = j + (1) >> 0; + } + t.nilCheck, ((i < 0 || i >= t.length) ? ($throwRuntimeError("index out of range"), undefined) : t[i] = crc); + i = i + (1) >> 0; + } + }; + simpleUpdate = function(crc, tab, p) { + var _i, _ref, crc, p, tab, v, x; + crc = ~crc >>> 0; + _ref = p; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + crc = ((x = (((crc << 24 >>> 24)) ^ v) << 24 >>> 24, (tab.nilCheck, ((x < 0 || x >= tab.length) ? ($throwRuntimeError("index out of range"), undefined) : tab[x]))) ^ ((crc >>> 8 >>> 0))) >>> 0; + _i++; + } + return ~crc >>> 0; + }; + slicingMakeTable = function(poly) { + var crc, i, j, poly, t, x, x$1, x$2, x$3; + t = arrayType$2.zero(); + simplePopulateTable(poly, (t.nilCheck, t[0])); + i = 0; + while (true) { + if (!(i < 256)) { break; } + crc = (x = (t.nilCheck, t[0]), ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i])); + j = 1; + while (true) { + if (!(j < 8)) { break; } + crc = ((x$1 = (t.nilCheck, t[0]), x$2 = (crc & 255) >>> 0, ((x$2 < 0 || x$2 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[x$2])) ^ ((crc >>> 8 >>> 0))) >>> 0; + (x$3 = (t.nilCheck, ((j < 0 || j >= t.length) ? ($throwRuntimeError("index out of range"), undefined) : t[j])), ((i < 0 || i >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[i] = crc)); + j = j + (1) >> 0; + } + i = i + (1) >> 0; + } + return t; + }; + slicingUpdate = function(crc, tab, p) { + var crc, p, tab, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + if (p.$length >= 16) { + crc = ~crc >>> 0; + while (true) { + if (!(p.$length > 8)) { break; } + crc = (crc ^ ((((((((((0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0]) >>> 0)) | ((((1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1]) >>> 0)) << 8 >>> 0)) >>> 0) | ((((2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2]) >>> 0)) << 16 >>> 0)) >>> 0) | ((((3 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 3]) >>> 0)) << 24 >>> 0)) >>> 0))) >>> 0; + crc = ((((((((((((((x = (tab.nilCheck, tab[0]), x$1 = (7 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 7]), ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])) ^ (x$2 = (tab.nilCheck, tab[1]), x$3 = (6 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 6]), ((x$3 < 0 || x$3 >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[x$3]))) >>> 0) ^ (x$4 = (tab.nilCheck, tab[2]), x$5 = (5 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 5]), ((x$5 < 0 || x$5 >= x$4.length) ? ($throwRuntimeError("index out of range"), undefined) : x$4[x$5]))) >>> 0) ^ (x$6 = (tab.nilCheck, tab[3]), x$7 = (4 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 4]), ((x$7 < 0 || x$7 >= x$6.length) ? ($throwRuntimeError("index out of range"), undefined) : x$6[x$7]))) >>> 0) ^ (x$8 = (tab.nilCheck, tab[4]), x$9 = crc >>> 24 >>> 0, ((x$9 < 0 || x$9 >= x$8.length) ? ($throwRuntimeError("index out of range"), undefined) : x$8[x$9]))) >>> 0) ^ (x$10 = (tab.nilCheck, tab[5]), x$11 = (((crc >>> 16 >>> 0)) & 255) >>> 0, ((x$11 < 0 || x$11 >= x$10.length) ? ($throwRuntimeError("index out of range"), undefined) : x$10[x$11]))) >>> 0) ^ (x$12 = (tab.nilCheck, tab[6]), x$13 = (((crc >>> 8 >>> 0)) & 255) >>> 0, ((x$13 < 0 || x$13 >= x$12.length) ? ($throwRuntimeError("index out of range"), undefined) : x$12[x$13]))) >>> 0) ^ (x$14 = (tab.nilCheck, tab[7]), x$15 = (crc & 255) >>> 0, ((x$15 < 0 || x$15 >= x$14.length) ? ($throwRuntimeError("index out of range"), undefined) : x$14[x$15]))) >>> 0; + p = $subslice(p, 8); + } + crc = ~crc >>> 0; + } + if (p.$length === 0) { + return crc; + } + return simpleUpdate(crc, (tab.nilCheck, tab[0]), p); + }; + archAvailableIEEE = function() { + return false; + }; + archInitIEEE = function() { + $panic(new $String("not available")); + }; + archUpdateIEEE = function(crc, p) { + var crc, p; + $panic(new $String("not available")); + }; + ptrType$2.methods = [{prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "BlockSize", name: "BlockSize", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}, {prop: "MarshalBinary", name: "MarshalBinary", pkg: "", typ: $funcType([], [sliceType, $error], false)}, {prop: "UnmarshalBinary", name: "UnmarshalBinary", pkg: "", typ: $funcType([sliceType], [$error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "Sum32", name: "Sum32", pkg: "", typ: $funcType([], [$Uint32], false)}, {prop: "Sum", name: "Sum", pkg: "", typ: $funcType([sliceType], [sliceType], false)}]; + Table.init($Uint32, 256); + digest.init("hash/crc32", [{prop: "crc", name: "crc", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "tab", name: "tab", embedded: false, exported: false, typ: ptrType, tag: ""}]); + slicing8Table.init(Table, 8); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = hash.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sync.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + castagnoliTable = ptrType.nil; + updateCastagnoli = $throwNilPointerError; + ieeeTable8 = ptrType$1.nil; + ieeeArchImpl = false; + updateIEEE = $throwNilPointerError; + ieeeOnce = new sync.Once.ptr(new sync.Mutex.ptr(0, 0), 0); + $pkg.IEEETable = simpleMakeTable(3988292384); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["image/png"] = (function() { + var $pkg = {}, $init, bufio, zlib, binary, fmt, hash, crc32, image, color, io, strconv, interlaceScan, decoder, FormatError, UnsupportedError, Encoder, EncoderBufferPool, EncoderBuffer, encoder, CompressionLevel, opaquer, sliceType, sliceType$1, sliceType$2, ptrType, ptrType$1, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, arrayType, arrayType$1, arrayType$2, ptrType$9, arrayType$3, ptrType$10, ptrType$11, ptrType$12, arrayType$4, arrayType$5, arrayType$6, ptrType$13, ptrType$14, interlacing, chunkOrderError, abs, paeth, filterPaeth, cbPaletted, min, Decode, DecodeConfig, init, writeUint32, opaque, abs8, filter, zeroMemory, levelToZlib, Encode; + bufio = $packages["bufio"]; + zlib = $packages["compress/zlib"]; + binary = $packages["encoding/binary"]; + fmt = $packages["fmt"]; + hash = $packages["hash"]; + crc32 = $packages["hash/crc32"]; + image = $packages["image"]; + color = $packages["image/color"]; + io = $packages["io"]; + strconv = $packages["strconv"]; + interlaceScan = $pkg.interlaceScan = $newType(0, $kindStruct, "png.interlaceScan", true, "image/png", false, function(xFactor_, yFactor_, xOffset_, yOffset_) { + this.$val = this; + if (arguments.length === 0) { + this.xFactor = 0; + this.yFactor = 0; + this.xOffset = 0; + this.yOffset = 0; + return; + } + this.xFactor = xFactor_; + this.yFactor = yFactor_; + this.xOffset = xOffset_; + this.yOffset = yOffset_; + }); + decoder = $pkg.decoder = $newType(0, $kindStruct, "png.decoder", true, "image/png", false, function(r_, img_, crc_, width_, height_, depth_, palette_, cb_, stage_, idatLength_, tmp_, interlace_, useTransparent_, transparent_) { + this.$val = this; + if (arguments.length === 0) { + this.r = $ifaceNil; + this.img = $ifaceNil; + this.crc = $ifaceNil; + this.width = 0; + this.height = 0; + this.depth = 0; + this.palette = color.Palette.nil; + this.cb = 0; + this.stage = 0; + this.idatLength = 0; + this.tmp = arrayType$1.zero(); + this.interlace = 0; + this.useTransparent = false; + this.transparent = arrayType$2.zero(); + return; + } + this.r = r_; + this.img = img_; + this.crc = crc_; + this.width = width_; + this.height = height_; + this.depth = depth_; + this.palette = palette_; + this.cb = cb_; + this.stage = stage_; + this.idatLength = idatLength_; + this.tmp = tmp_; + this.interlace = interlace_; + this.useTransparent = useTransparent_; + this.transparent = transparent_; + }); + FormatError = $pkg.FormatError = $newType(8, $kindString, "png.FormatError", true, "image/png", true, null); + UnsupportedError = $pkg.UnsupportedError = $newType(8, $kindString, "png.UnsupportedError", true, "image/png", true, null); + Encoder = $pkg.Encoder = $newType(0, $kindStruct, "png.Encoder", true, "image/png", true, function(CompressionLevel_, BufferPool_) { + this.$val = this; + if (arguments.length === 0) { + this.CompressionLevel = 0; + this.BufferPool = $ifaceNil; + return; + } + this.CompressionLevel = CompressionLevel_; + this.BufferPool = BufferPool_; + }); + EncoderBufferPool = $pkg.EncoderBufferPool = $newType(8, $kindInterface, "png.EncoderBufferPool", true, "image/png", true, null); + EncoderBuffer = $pkg.EncoderBuffer = $newType(0, $kindStruct, "png.EncoderBuffer", true, "image/png", true, function(enc_, w_, m_, cb_, err_, header_, footer_, tmp_, cr_, pr_, zw_, zwLevel_, bw_) { + this.$val = this; + if (arguments.length === 0) { + this.enc = ptrType$12.nil; + this.w = $ifaceNil; + this.m = $ifaceNil; + this.cb = 0; + this.err = $ifaceNil; + this.header = arrayType$4.zero(); + this.footer = arrayType$5.zero(); + this.tmp = arrayType$6.zero(); + this.cr = arrayType$3.zero(); + this.pr = sliceType$1.nil; + this.zw = ptrType$9.nil; + this.zwLevel = 0; + this.bw = ptrType$10.nil; + return; + } + this.enc = enc_; + this.w = w_; + this.m = m_; + this.cb = cb_; + this.err = err_; + this.header = header_; + this.footer = footer_; + this.tmp = tmp_; + this.cr = cr_; + this.pr = pr_; + this.zw = zw_; + this.zwLevel = zwLevel_; + this.bw = bw_; + }); + encoder = $pkg.encoder = $newType(0, $kindStruct, "png.encoder", true, "image/png", false, function(enc_, w_, m_, cb_, err_, header_, footer_, tmp_, cr_, pr_, zw_, zwLevel_, bw_) { + this.$val = this; + if (arguments.length === 0) { + this.enc = ptrType$12.nil; + this.w = $ifaceNil; + this.m = $ifaceNil; + this.cb = 0; + this.err = $ifaceNil; + this.header = arrayType$4.zero(); + this.footer = arrayType$5.zero(); + this.tmp = arrayType$6.zero(); + this.cr = arrayType$3.zero(); + this.pr = sliceType$1.nil; + this.zw = ptrType$9.nil; + this.zwLevel = 0; + this.bw = ptrType$10.nil; + return; + } + this.enc = enc_; + this.w = w_; + this.m = m_; + this.cb = cb_; + this.err = err_; + this.header = header_; + this.footer = footer_; + this.tmp = tmp_; + this.cr = cr_; + this.pr = pr_; + this.zw = zw_; + this.zwLevel = zwLevel_; + this.bw = bw_; + }); + CompressionLevel = $pkg.CompressionLevel = $newType(4, $kindInt, "png.CompressionLevel", true, "image/png", true, null); + opaquer = $pkg.opaquer = $newType(8, $kindInterface, "png.opaquer", true, "image/png", false, null); + sliceType = $sliceType(interlaceScan); + sliceType$1 = $sliceType($Uint8); + sliceType$2 = $sliceType($emptyInterface); + ptrType = $ptrType(image.Gray); + ptrType$1 = $ptrType(image.RGBA); + ptrType$2 = $ptrType(image.Paletted); + ptrType$3 = $ptrType(image.NRGBA); + ptrType$4 = $ptrType(image.Gray16); + ptrType$5 = $ptrType(image.RGBA64); + ptrType$6 = $ptrType(image.NRGBA64); + ptrType$7 = $ptrType(image.Alpha); + ptrType$8 = $ptrType(image.Alpha16); + arrayType = $arrayType($Uint8, 4096); + arrayType$1 = $arrayType($Uint8, 768); + arrayType$2 = $arrayType($Uint8, 6); + ptrType$9 = $ptrType(zlib.Writer); + arrayType$3 = $arrayType(sliceType$1, 5); + ptrType$10 = $ptrType(bufio.Writer); + ptrType$11 = $ptrType(encoder); + ptrType$12 = $ptrType(Encoder); + arrayType$4 = $arrayType($Uint8, 8); + arrayType$5 = $arrayType($Uint8, 4); + arrayType$6 = $arrayType($Uint8, 1024); + ptrType$13 = $ptrType(EncoderBuffer); + ptrType$14 = $ptrType(decoder); + abs = function(x) { + var m, x; + m = x >> 31 >> 0; + return (((x ^ m) >> 0)) - m >> 0; + }; + paeth = function(a, b, c) { + var a, b, c, pa, pb, pc; + pc = ((c >> 0)); + pa = ((b >> 0)) - pc >> 0; + pb = ((a >> 0)) - pc >> 0; + pc = abs(pa + pb >> 0); + pa = abs(pa); + pb = abs(pb); + if (pa <= pb && pa <= pc) { + return a; + } else if (pb <= pc) { + return b; + } + return c; + }; + filterPaeth = function(cdat, pdat, bytesPerPixel) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, a, b, bytesPerPixel, c, cdat, i, j, pa, pb, pc, pdat; + _tmp = 0; + _tmp$1 = 0; + _tmp$2 = 0; + _tmp$3 = 0; + _tmp$4 = 0; + _tmp$5 = 0; + a = _tmp; + b = _tmp$1; + c = _tmp$2; + pa = _tmp$3; + pb = _tmp$4; + pc = _tmp$5; + i = 0; + while (true) { + if (!(i < bytesPerPixel)) { break; } + _tmp$6 = 0; + _tmp$7 = 0; + a = _tmp$6; + c = _tmp$7; + j = i; + while (true) { + if (!(j < cdat.$length)) { break; } + b = ((((j < 0 || j >= pdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : pdat.$array[pdat.$offset + j]) >> 0)); + pa = b - c >> 0; + pb = a - c >> 0; + pc = abs(pa + pb >> 0); + pa = abs(pa); + pb = abs(pb); + if (pa <= pb && pa <= pc) { + } else if (pb <= pc) { + a = b; + } else { + a = c; + } + a = a + (((((j < 0 || j >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + j]) >> 0))) >> 0; + a = a & (255); + ((j < 0 || j >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + j] = ((a << 24 >>> 24))); + c = b; + j = j + (bytesPerPixel) >> 0; + } + i = i + (1) >> 0; + } + }; + cbPaletted = function(cb) { + var cb; + return 7 <= cb && cb <= 10; + }; + FormatError.prototype.Error = function() { + var e; + e = this.$val; + return "png: invalid format: " + (e); + }; + $ptrType(FormatError).prototype.Error = function() { return new FormatError(this.$get()).Error(); }; + UnsupportedError.prototype.Error = function() { + var e; + e = this.$val; + return "png: unsupported feature: " + (e); + }; + $ptrType(UnsupportedError).prototype.Error = function() { return new UnsupportedError(this.$get()).Error(); }; + min = function(a, b) { + var a, b; + if (a < b) { + return a; + } + return b; + }; + decoder.ptr.prototype.parseIHDR = function(length) { + var _1, _2, _3, _4, _5, _6, _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tuple, d, err, h, length, nPixels, w, x, x$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _2 = $f._2; _3 = $f._3; _4 = $f._4; _5 = $f._5; _6 = $f._6; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; d = $f.d; err = $f.err; h = $f.h; length = $f.length; nPixels = $f.nPixels; w = $f.w; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + d = this; + if (!((length === 13))) { + $s = -1; return new FormatError("bad IHDR length"); + } + _r = io.ReadFull(d.r, $subslice(new sliceType$1(d.tmp), 0, 13)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r$1 = d.crc.Write($subslice(new sliceType$1(d.tmp), 0, 13)); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + if (!((d.tmp[10] === 0))) { + $s = -1; return new UnsupportedError("compression method"); + } + if (!((d.tmp[11] === 0))) { + $s = -1; return new UnsupportedError("filter method"); + } + if (!((d.tmp[12] === 0)) && !((d.tmp[12] === 1))) { + $s = -1; return new FormatError("invalid interlace method"); + } + d.interlace = ((d.tmp[12] >> 0)); + w = (($clone(binary.BigEndian, binary.bigEndian).Uint32($subslice(new sliceType$1(d.tmp), 0, 4)) >> 0)); + h = (($clone(binary.BigEndian, binary.bigEndian).Uint32($subslice(new sliceType$1(d.tmp), 4, 8)) >> 0)); + if (w <= 0 || h <= 0) { + $s = -1; return new FormatError("non-positive dimension"); + } + nPixels = $mul64((new $Int64(0, w)), (new $Int64(0, h))); + if (!((x = (new $Int64(0, (((nPixels.$low + ((nPixels.$high >> 31) * 4294967296)) >> 0)))), (nPixels.$high === x.$high && nPixels.$low === x.$low)))) { + $s = -1; return new UnsupportedError("dimension overflow"); + } + if (!((x$1 = $div64(($mul64(nPixels, new $Int64(0, 8))), new $Int64(0, 8), false), (nPixels.$high === x$1.$high && nPixels.$low === x$1.$low)))) { + $s = -1; return new UnsupportedError("dimension overflow"); + } + d.cb = 0; + d.depth = ((d.tmp[8] >> 0)); + _1 = d.depth; + if (_1 === (1)) { + _2 = d.tmp[9]; + if (_2 === (0)) { + d.cb = 1; + } else if (_2 === (3)) { + d.cb = 7; + } + } else if (_1 === (2)) { + _3 = d.tmp[9]; + if (_3 === (0)) { + d.cb = 2; + } else if (_3 === (3)) { + d.cb = 8; + } + } else if (_1 === (4)) { + _4 = d.tmp[9]; + if (_4 === (0)) { + d.cb = 3; + } else if (_4 === (3)) { + d.cb = 9; + } + } else if (_1 === (8)) { + _5 = d.tmp[9]; + if (_5 === (0)) { + d.cb = 4; + } else if (_5 === (2)) { + d.cb = 6; + } else if (_5 === (3)) { + d.cb = 10; + } else if (_5 === (4)) { + d.cb = 5; + } else if (_5 === (6)) { + d.cb = 11; + } + } else if (_1 === (16)) { + _6 = d.tmp[9]; + if (_6 === (0)) { + d.cb = 12; + } else if (_6 === (2)) { + d.cb = 14; + } else if (_6 === (4)) { + d.cb = 13; + } else if (_6 === (6)) { + d.cb = 15; + } + } + /* */ if (d.cb === 0) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (d.cb === 0) { */ case 3: + _r$2 = fmt.Sprintf("bit depth %d, color type %d", new sliceType$2([new $Uint8(d.tmp[8]), new $Uint8(d.tmp[9])])); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $s = -1; return new UnsupportedError((_r$2)); + /* } */ case 4: + _tmp = ((w >> 0)); + _tmp$1 = ((h >> 0)); + d.width = _tmp; + d.height = _tmp$1; + _r$3 = d.verifyChecksum(); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $s = -1; return _r$3; + /* */ } return; } if ($f === undefined) { $f = { $blk: decoder.ptr.prototype.parseIHDR }; } $f._1 = _1; $f._2 = _2; $f._3 = _3; $f._4 = _4; $f._5 = _5; $f._6 = _6; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.d = d; $f.err = err; $f.h = h; $f.length = length; $f.nPixels = nPixels; $f.w = w; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f; + }; + decoder.prototype.parseIHDR = function(length) { return this.$val.parseIHDR(length); }; + decoder.ptr.prototype.parsePLTE = function(length) { + var _1, _q, _r, _r$1, _r$2, _r$3, _tuple, d, err, i, i$1, length, n, np, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, y, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _q = $f._q; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _tuple = $f._tuple; d = $f.d; err = $f.err; i = $f.i; i$1 = $f.i$1; length = $f.length; n = $f.n; np = $f.np; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; x$8 = $f.x$8; x$9 = $f.x$9; y = $f.y; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + d = this; + np = (((_q = length / 3, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")) >> 0)); + if (!(((_r = length % 3, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) === 0)) || np <= 0 || np > 256 || np > ((y = ((d.depth >>> 0)), y < 32 ? (1 << y) : 0) >> 0)) { + $s = -1; return new FormatError("bad PLTE length"); + } + _r$1 = io.ReadFull(d.r, $subslice(new sliceType$1(d.tmp), 0, ($imul(3, np)))); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + n = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r$2 = d.crc.Write($subslice(new sliceType$1(d.tmp), 0, n)); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + _1 = d.cb; + if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10))) { + d.palette = $makeSlice(color.Palette, 256); + i = 0; + while (true) { + if (!(i < np)) { break; } + (x$7 = d.palette, ((i < 0 || i >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + i] = (x = new color.RGBA.ptr((x$1 = d.tmp, x$2 = ($imul(3, i)) + 0 >> 0, ((x$2 < 0 || x$2 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[x$2])), (x$3 = d.tmp, x$4 = ($imul(3, i)) + 1 >> 0, ((x$4 < 0 || x$4 >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[x$4])), (x$5 = d.tmp, x$6 = ($imul(3, i)) + 2 >> 0, ((x$6 < 0 || x$6 >= x$5.length) ? ($throwRuntimeError("index out of range"), undefined) : x$5[x$6])), 255), new x.constructor.elem(x)))); + i = i + (1) >> 0; + } + i$1 = np; + while (true) { + if (!(i$1 < 256)) { break; } + (x$9 = d.palette, ((i$1 < 0 || i$1 >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + i$1] = (x$8 = new color.RGBA.ptr(0, 0, 0, 255), new x$8.constructor.elem(x$8)))); + i$1 = i$1 + (1) >> 0; + } + d.palette = $subslice(d.palette, 0, np); + } else if ((_1 === (6)) || (_1 === (11)) || (_1 === (14)) || (_1 === (15))) { + } else { + $s = -1; return new FormatError("PLTE, color type mismatch"); + } + _r$3 = d.verifyChecksum(); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $s = -1; return _r$3; + /* */ } return; } if ($f === undefined) { $f = { $blk: decoder.ptr.prototype.parsePLTE }; } $f._1 = _1; $f._q = _q; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._tuple = _tuple; $f.d = d; $f.err = err; $f.i = i; $f.i$1 = i$1; $f.length = length; $f.n = n; $f.np = np; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.x$8 = x$8; $f.x$9 = x$9; $f.y = y; $f.$s = $s; $f.$r = $r; return $f; + }; + decoder.prototype.parsePLTE = function(length) { return this.$val.parsePLTE(length); }; + decoder.ptr.prototype.parsetRNS = function(length) { + var _1, _2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, _tuple$2, d, err, err$1, err$2, i, length, n, n$1, n$2, rgba, x, x$1, x$2, x$3, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _2 = $f._2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; d = $f.d; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; i = $f.i; length = $f.length; n = $f.n; n$1 = $f.n$1; n$2 = $f.n$2; rgba = $f.rgba; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + d = this; + _1 = d.cb; + /* */ if ((_1 === (1)) || (_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (12))) { $s = 2; continue; } + /* */ if ((_1 === (6)) || (_1 === (14))) { $s = 3; continue; } + /* */ if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ((_1 === (1)) || (_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (12))) { */ case 2: + if (!((length === 2))) { + $s = -1; return new FormatError("bad tRNS length"); + } + _r = io.ReadFull(d.r, $subslice(new sliceType$1(d.tmp), 0, length)); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r$1 = d.crc.Write($subslice(new sliceType$1(d.tmp), 0, n)); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + $copySlice(new sliceType$1(d.transparent), $subslice(new sliceType$1(d.tmp), 0, length)); + _2 = d.cb; + if (_2 === (1)) { + d.transparent[1] = (d.transparent[1] * (255) << 24 >>> 24); + } else if (_2 === (2)) { + d.transparent[1] = (d.transparent[1] * (85) << 24 >>> 24); + } else if (_2 === (3)) { + d.transparent[1] = (d.transparent[1] * (17) << 24 >>> 24); + } + d.useTransparent = true; + $s = 6; continue; + /* } else if ((_1 === (6)) || (_1 === (14))) { */ case 3: + if (!((length === 6))) { + $s = -1; return new FormatError("bad tRNS length"); + } + _r$2 = io.ReadFull(d.r, $subslice(new sliceType$1(d.tmp), 0, length)); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$1 = _r$2; + n$1 = _tuple$1[0]; + err$1 = _tuple$1[1]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return err$1; + } + _r$3 = d.crc.Write($subslice(new sliceType$1(d.tmp), 0, n$1)); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + $copySlice(new sliceType$1(d.transparent), $subslice(new sliceType$1(d.tmp), 0, length)); + d.useTransparent = true; + $s = 6; continue; + /* } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10))) { */ case 4: + if (length > 256) { + $s = -1; return new FormatError("bad tRNS length"); + } + _r$4 = io.ReadFull(d.r, $subslice(new sliceType$1(d.tmp), 0, length)); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$2 = _r$4; + n$2 = _tuple$2[0]; + err$2 = _tuple$2[1]; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + $s = -1; return err$2; + } + _r$5 = d.crc.Write($subslice(new sliceType$1(d.tmp), 0, n$2)); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$5; + if (d.palette.$length < n$2) { + d.palette = $subslice(d.palette, 0, n$2); + } + i = 0; + while (true) { + if (!(i < n$2)) { break; } + rgba = $clone($assertType((x = d.palette, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])), color.RGBA), color.RGBA); + (x$3 = d.palette, ((i < 0 || i >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + i] = (x$1 = new color.NRGBA.ptr(rgba.R, rgba.G, rgba.B, (x$2 = d.tmp, ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i]))), new x$1.constructor.elem(x$1)))); + i = i + (1) >> 0; + } + $s = 6; continue; + /* } else { */ case 5: + $s = -1; return new FormatError("tRNS, color type mismatch"); + /* } */ case 6: + case 1: + _r$6 = d.verifyChecksum(); /* */ $s = 13; case 13: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $s = -1; return _r$6; + /* */ } return; } if ($f === undefined) { $f = { $blk: decoder.ptr.prototype.parsetRNS }; } $f._1 = _1; $f._2 = _2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.d = d; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.i = i; $f.length = length; $f.n = n; $f.n$1 = n$1; $f.n$2 = n$2; $f.rgba = rgba; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.$s = $s; $f.$r = $r; return $f; + }; + decoder.prototype.parsetRNS = function(length) { return this.$val.parsetRNS(length); }; + decoder.ptr.prototype.Read = function(p) { + var _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, d, err, err$1, err$2, n, p, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; d = $f.d; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; n = $f.n; p = $f.p; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + d = this; + if (p.$length === 0) { + $s = -1; return [0, $ifaceNil]; + } + /* while (true) { */ case 1: + /* if (!(d.idatLength === 0)) { break; } */ if(!(d.idatLength === 0)) { $s = 2; continue; } + _r = d.verifyChecksum(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, err]; + } + _r$1 = io.ReadFull(d.r, $subslice(new sliceType$1(d.tmp), 0, 8)); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + err$1 = _tuple[1]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return [0, err$1]; + } + d.idatLength = $clone(binary.BigEndian, binary.bigEndian).Uint32($subslice(new sliceType$1(d.tmp), 0, 4)); + if (!(($bytesToString($subslice(new sliceType$1(d.tmp), 4, 8))) === "IDAT")) { + $s = -1; return [0, new FormatError("not enough pixel data")]; + } + $r = d.crc.Reset(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = d.crc.Write($subslice(new sliceType$1(d.tmp), 4, 8)); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + /* } */ $s = 1; continue; case 2: + if (((d.idatLength >> 0)) < 0) { + $s = -1; return [0, new UnsupportedError("IDAT chunk length overflow")]; + } + _r$3 = d.r.Read($subslice(p, 0, min(p.$length, ((d.idatLength >> 0))))); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$1 = _r$3; + n = _tuple$1[0]; + err$2 = _tuple$1[1]; + _r$4 = d.crc.Write($subslice(p, 0, n)); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4; + d.idatLength = d.idatLength - (((n >>> 0))) >>> 0; + $s = -1; return [n, err$2]; + /* */ } return; } if ($f === undefined) { $f = { $blk: decoder.ptr.prototype.Read }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.d = d; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.n = n; $f.p = p; $f.$s = $s; $f.$r = $r; return $f; + }; + decoder.prototype.Read = function(p) { return this.$val.Read(p); }; + decoder.ptr.prototype.decode = function() { + var _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, d, err, err$1, i, imagePass, img, n, pass, r, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; d = $f.d; err = $f.err; err$1 = $f.err$1; i = $f.i; imagePass = $f.imagePass; img = $f.img; n = $f.n; pass = $f.pass; r = $f.r; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + d = this; + _r = zlib.NewReader(d); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + r = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [$ifaceNil, err]; + } + $deferred.push([$methodVal(r, "Close"), []]); + img = $ifaceNil; + /* */ if (d.interlace === 0) { $s = 2; continue; } + /* */ if (d.interlace === 1) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (d.interlace === 0) { */ case 2: + _r$1 = d.readImagePass(r, 0, false); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + img = _tuple$1[0]; + err = _tuple$1[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [$ifaceNil, err]; + } + $s = 4; continue; + /* } else if (d.interlace === 1) { */ case 3: + _r$2 = d.readImagePass($ifaceNil, 0, true); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$2 = _r$2; + img = _tuple$2[0]; + err = _tuple$2[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [$ifaceNil, err]; + } + pass = 0; + /* while (true) { */ case 7: + /* if (!(pass < 7)) { break; } */ if(!(pass < 7)) { $s = 8; continue; } + _r$3 = d.readImagePass(r, pass, false); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$3 = _r$3; + imagePass = _tuple$3[0]; + err$1 = _tuple$3[1]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return [$ifaceNil, err$1]; + } + /* */ if (!($interfaceIsEqual(imagePass, $ifaceNil))) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (!($interfaceIsEqual(imagePass, $ifaceNil))) { */ case 10: + $r = d.mergePassInto(img, imagePass, pass); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 11: + pass = pass + (1) >> 0; + /* } */ $s = 7; continue; case 8: + /* } */ case 4: + n = 0; + i = 0; + /* while (true) { */ case 13: + /* if (!((n === 0) && $interfaceIsEqual(err, $ifaceNil))) { break; } */ if(!((n === 0) && $interfaceIsEqual(err, $ifaceNil))) { $s = 14; continue; } + if (i === 100) { + $s = -1; return [$ifaceNil, io.ErrNoProgress]; + } + _r$4 = r.Read($subslice(new sliceType$1(d.tmp), 0, 1)); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$4 = _r$4; + n = _tuple$4[0]; + err = _tuple$4[1]; + i = i + (1) >> 0; + /* } */ $s = 13; continue; case 14: + /* */ if (!($interfaceIsEqual(err, $ifaceNil)) && !($interfaceIsEqual(err, io.EOF))) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil)) && !($interfaceIsEqual(err, io.EOF))) { */ case 16: + _r$5 = err.Error(); /* */ $s = 18; case 18: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $s = -1; return [$ifaceNil, new FormatError((_r$5))]; + /* } */ case 17: + if (!((n === 0)) || !((d.idatLength === 0))) { + $s = -1; return [$ifaceNil, new FormatError("too much pixel data")]; + } + $s = -1; return [img, $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [$ifaceNil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: decoder.ptr.prototype.decode }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f.d = d; $f.err = err; $f.err$1 = err$1; $f.i = i; $f.imagePass = imagePass; $f.img = img; $f.n = n; $f.pass = pass; $f.r = r; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + decoder.prototype.decode = function() { return this.$val.decode(); }; + decoder.ptr.prototype.readImagePass = function(r, pass, allocateOnly) { + var _1, _2, _3, _i, _q, _q$1, _q$10, _q$11, _q$12, _q$13, _q$14, _q$2, _q$3, _q$4, _q$5, _q$6, _q$7, _q$8, _q$9, _r, _ref, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, a, acol, acol$1, acol$2, acol$3, acol$4, acol$5, acol$6, acol$7, allocateOnly, b, b$1, b$2, b$3, b$4, b$5, b$6, b$7, b$8, b$9, bcol, bcol$1, bcol$2, bitsPerPixel, bytesPerPixel, cdat, cr, d, err, g, gcol, gcol$1, gcol$2, gray, gray16, height, i, i$1, i$2, i$3, i$4, i$5, idx, idx$1, idx$2, img, j, j$1, nrgba, nrgba64, p, p$1, paletted, pass, pdat, pix, pix$1, pixOffset, pr, r, r$1, rcol, rcol$1, rcol$2, rgba, rgba64, rowSize, tb, tb$1, tg, tg$1, tr, tr$1, ty, ty$1, ty$2, ty$3, ty$4, width, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$25, x$26, x$27, x$28, x$29, x$3, x$30, x$31, x$32, x$33, x$34, x$35, x$36, x$37, x$38, x$39, x$4, x$40, x$41, x$42, x$43, x$44, x$45, x$46, x$47, x$48, x$49, x$5, x$50, x$51, x$52, x$53, x$54, x$55, x$56, x$57, x$58, x$59, x$6, x$60, x$61, x$62, x$63, x$64, x$65, x$66, x$67, x$68, x$69, x$7, x$70, x$71, x$72, x$73, x$74, x$8, x$9, x2, x2$1, x2$2, x2$3, x2$4, x2$5, x2$6, x2$7, x2$8, y, y$1, y$2, y$3, y$4, y$5, y$6, y$7, y$8, y$9, ycol, ycol$1, ycol$2, ycol$3, ycol$4, ycol$5, ycol$6, ycol$7, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _2 = $f._2; _3 = $f._3; _i = $f._i; _q = $f._q; _q$1 = $f._q$1; _q$10 = $f._q$10; _q$11 = $f._q$11; _q$12 = $f._q$12; _q$13 = $f._q$13; _q$14 = $f._q$14; _q$2 = $f._q$2; _q$3 = $f._q$3; _q$4 = $f._q$4; _q$5 = $f._q$5; _q$6 = $f._q$6; _q$7 = $f._q$7; _q$8 = $f._q$8; _q$9 = $f._q$9; _r = $f._r; _ref = $f._ref; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$10 = $f._tmp$10; _tmp$11 = $f._tmp$11; _tmp$12 = $f._tmp$12; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tmp$6 = $f._tmp$6; _tmp$7 = $f._tmp$7; _tmp$8 = $f._tmp$8; _tmp$9 = $f._tmp$9; _tuple = $f._tuple; a = $f.a; acol = $f.acol; acol$1 = $f.acol$1; acol$2 = $f.acol$2; acol$3 = $f.acol$3; acol$4 = $f.acol$4; acol$5 = $f.acol$5; acol$6 = $f.acol$6; acol$7 = $f.acol$7; allocateOnly = $f.allocateOnly; b = $f.b; b$1 = $f.b$1; b$2 = $f.b$2; b$3 = $f.b$3; b$4 = $f.b$4; b$5 = $f.b$5; b$6 = $f.b$6; b$7 = $f.b$7; b$8 = $f.b$8; b$9 = $f.b$9; bcol = $f.bcol; bcol$1 = $f.bcol$1; bcol$2 = $f.bcol$2; bitsPerPixel = $f.bitsPerPixel; bytesPerPixel = $f.bytesPerPixel; cdat = $f.cdat; cr = $f.cr; d = $f.d; err = $f.err; g = $f.g; gcol = $f.gcol; gcol$1 = $f.gcol$1; gcol$2 = $f.gcol$2; gray = $f.gray; gray16 = $f.gray16; height = $f.height; i = $f.i; i$1 = $f.i$1; i$2 = $f.i$2; i$3 = $f.i$3; i$4 = $f.i$4; i$5 = $f.i$5; idx = $f.idx; idx$1 = $f.idx$1; idx$2 = $f.idx$2; img = $f.img; j = $f.j; j$1 = $f.j$1; nrgba = $f.nrgba; nrgba64 = $f.nrgba64; p = $f.p; p$1 = $f.p$1; paletted = $f.paletted; pass = $f.pass; pdat = $f.pdat; pix = $f.pix; pix$1 = $f.pix$1; pixOffset = $f.pixOffset; pr = $f.pr; r = $f.r; r$1 = $f.r$1; rcol = $f.rcol; rcol$1 = $f.rcol$1; rcol$2 = $f.rcol$2; rgba = $f.rgba; rgba64 = $f.rgba64; rowSize = $f.rowSize; tb = $f.tb; tb$1 = $f.tb$1; tg = $f.tg; tg$1 = $f.tg$1; tr = $f.tr; tr$1 = $f.tr$1; ty = $f.ty; ty$1 = $f.ty$1; ty$2 = $f.ty$2; ty$3 = $f.ty$3; ty$4 = $f.ty$4; width = $f.width; x = $f.x; x$1 = $f.x$1; x$10 = $f.x$10; x$11 = $f.x$11; x$12 = $f.x$12; x$13 = $f.x$13; x$14 = $f.x$14; x$15 = $f.x$15; x$16 = $f.x$16; x$17 = $f.x$17; x$18 = $f.x$18; x$19 = $f.x$19; x$2 = $f.x$2; x$20 = $f.x$20; x$21 = $f.x$21; x$22 = $f.x$22; x$23 = $f.x$23; x$24 = $f.x$24; x$25 = $f.x$25; x$26 = $f.x$26; x$27 = $f.x$27; x$28 = $f.x$28; x$29 = $f.x$29; x$3 = $f.x$3; x$30 = $f.x$30; x$31 = $f.x$31; x$32 = $f.x$32; x$33 = $f.x$33; x$34 = $f.x$34; x$35 = $f.x$35; x$36 = $f.x$36; x$37 = $f.x$37; x$38 = $f.x$38; x$39 = $f.x$39; x$4 = $f.x$4; x$40 = $f.x$40; x$41 = $f.x$41; x$42 = $f.x$42; x$43 = $f.x$43; x$44 = $f.x$44; x$45 = $f.x$45; x$46 = $f.x$46; x$47 = $f.x$47; x$48 = $f.x$48; x$49 = $f.x$49; x$5 = $f.x$5; x$50 = $f.x$50; x$51 = $f.x$51; x$52 = $f.x$52; x$53 = $f.x$53; x$54 = $f.x$54; x$55 = $f.x$55; x$56 = $f.x$56; x$57 = $f.x$57; x$58 = $f.x$58; x$59 = $f.x$59; x$6 = $f.x$6; x$60 = $f.x$60; x$61 = $f.x$61; x$62 = $f.x$62; x$63 = $f.x$63; x$64 = $f.x$64; x$65 = $f.x$65; x$66 = $f.x$66; x$67 = $f.x$67; x$68 = $f.x$68; x$69 = $f.x$69; x$7 = $f.x$7; x$70 = $f.x$70; x$71 = $f.x$71; x$72 = $f.x$72; x$73 = $f.x$73; x$74 = $f.x$74; x$8 = $f.x$8; x$9 = $f.x$9; x2 = $f.x2; x2$1 = $f.x2$1; x2$2 = $f.x2$2; x2$3 = $f.x2$3; x2$4 = $f.x2$4; x2$5 = $f.x2$5; x2$6 = $f.x2$6; x2$7 = $f.x2$7; x2$8 = $f.x2$8; y = $f.y; y$1 = $f.y$1; y$2 = $f.y$2; y$3 = $f.y$3; y$4 = $f.y$4; y$5 = $f.y$5; y$6 = $f.y$6; y$7 = $f.y$7; y$8 = $f.y$8; y$9 = $f.y$9; ycol = $f.ycol; ycol$1 = $f.ycol$1; ycol$2 = $f.ycol$2; ycol$3 = $f.ycol$3; ycol$4 = $f.ycol$4; ycol$5 = $f.ycol$5; ycol$6 = $f.ycol$6; ycol$7 = $f.ycol$7; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + d = this; + bitsPerPixel = 0; + pixOffset = 0; + gray = ptrType.nil; + rgba = ptrType$1.nil; + paletted = ptrType$2.nil; + nrgba = ptrType$3.nil; + gray16 = ptrType$4.nil; + rgba64 = ptrType$5.nil; + nrgba64 = ptrType$6.nil; + img = $ifaceNil; + _tmp = d.width; + _tmp$1 = d.height; + width = _tmp; + height = _tmp$1; + if ((d.interlace === 1) && !allocateOnly) { + p = $clone(((pass < 0 || pass >= interlacing.$length) ? ($throwRuntimeError("index out of range"), undefined) : interlacing.$array[interlacing.$offset + pass]), interlaceScan); + width = (_q = ((((width - p.xOffset >> 0) + p.xFactor >> 0) - 1 >> 0)) / p.xFactor, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + height = (_q$1 = ((((height - p.yOffset >> 0) + p.yFactor >> 0) - 1 >> 0)) / p.yFactor, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")); + if ((width === 0) || (height === 0)) { + $s = -1; return [$ifaceNil, $ifaceNil]; + } + } + _1 = d.cb; + if ((_1 === (1)) || (_1 === (2)) || (_1 === (3)) || (_1 === (4))) { + bitsPerPixel = d.depth; + if (d.useTransparent) { + nrgba = image.NewNRGBA($clone(image.Rect(0, 0, width, height), image.Rectangle)); + img = nrgba; + } else { + gray = image.NewGray($clone(image.Rect(0, 0, width, height), image.Rectangle)); + img = gray; + } + } else if (_1 === (5)) { + bitsPerPixel = 16; + nrgba = image.NewNRGBA($clone(image.Rect(0, 0, width, height), image.Rectangle)); + img = nrgba; + } else if (_1 === (6)) { + bitsPerPixel = 24; + if (d.useTransparent) { + nrgba = image.NewNRGBA($clone(image.Rect(0, 0, width, height), image.Rectangle)); + img = nrgba; + } else { + rgba = image.NewRGBA($clone(image.Rect(0, 0, width, height), image.Rectangle)); + img = rgba; + } + } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10))) { + bitsPerPixel = d.depth; + paletted = image.NewPaletted($clone(image.Rect(0, 0, width, height), image.Rectangle), d.palette); + img = paletted; + } else if (_1 === (11)) { + bitsPerPixel = 32; + nrgba = image.NewNRGBA($clone(image.Rect(0, 0, width, height), image.Rectangle)); + img = nrgba; + } else if (_1 === (12)) { + bitsPerPixel = 16; + if (d.useTransparent) { + nrgba64 = image.NewNRGBA64($clone(image.Rect(0, 0, width, height), image.Rectangle)); + img = nrgba64; + } else { + gray16 = image.NewGray16($clone(image.Rect(0, 0, width, height), image.Rectangle)); + img = gray16; + } + } else if (_1 === (13)) { + bitsPerPixel = 32; + nrgba64 = image.NewNRGBA64($clone(image.Rect(0, 0, width, height), image.Rectangle)); + img = nrgba64; + } else if (_1 === (14)) { + bitsPerPixel = 48; + if (d.useTransparent) { + nrgba64 = image.NewNRGBA64($clone(image.Rect(0, 0, width, height), image.Rectangle)); + img = nrgba64; + } else { + rgba64 = image.NewRGBA64($clone(image.Rect(0, 0, width, height), image.Rectangle)); + img = rgba64; + } + } else if (_1 === (15)) { + bitsPerPixel = 64; + nrgba64 = image.NewNRGBA64($clone(image.Rect(0, 0, width, height), image.Rectangle)); + img = nrgba64; + } + if (allocateOnly) { + $s = -1; return [img, $ifaceNil]; + } + bytesPerPixel = (_q$2 = ((bitsPerPixel + 7 >> 0)) / 8, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero")); + rowSize = 1 + (_q$3 = ((($imul(bitsPerPixel, width)) + 7 >> 0)) / 8, (_q$3 === _q$3 && _q$3 !== 1/0 && _q$3 !== -1/0) ? _q$3 >> 0 : $throwRuntimeError("integer divide by zero")) >> 0; + cr = $makeSlice(sliceType$1, rowSize); + pr = $makeSlice(sliceType$1, rowSize); + y = 0; + /* while (true) { */ case 1: + /* if (!(y < height)) { break; } */ if(!(y < height)) { $s = 2; continue; } + _r = io.ReadFull(r, cr); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + if ($interfaceIsEqual(err, io.EOF) || $interfaceIsEqual(err, io.ErrUnexpectedEOF)) { + $s = -1; return [$ifaceNil, new FormatError("not enough pixel data")]; + } + $s = -1; return [$ifaceNil, err]; + } + cdat = $subslice(cr, 1); + pdat = $subslice(pr, 1); + _2 = (0 >= cr.$length ? ($throwRuntimeError("index out of range"), undefined) : cr.$array[cr.$offset + 0]); + if (_2 === (0)) { + } else if (_2 === (1)) { + i = bytesPerPixel; + while (true) { + if (!(i < cdat.$length)) { break; } + ((i < 0 || i >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + i] = (((i < 0 || i >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + i]) + ((x = i - bytesPerPixel >> 0, ((x < 0 || x >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x]))) << 24 >>> 24)); + i = i + (1) >> 0; + } + } else if (_2 === (2)) { + _ref = pdat; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i$1 = _i; + p$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + ((i$1 < 0 || i$1 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + i$1] = (((i$1 < 0 || i$1 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + i$1]) + (p$1) << 24 >>> 24)); + _i++; + } + } else if (_2 === (3)) { + i$2 = 0; + while (true) { + if (!(i$2 < bytesPerPixel)) { break; } + ((i$2 < 0 || i$2 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + i$2] = (((i$2 < 0 || i$2 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + i$2]) + ((_q$4 = ((i$2 < 0 || i$2 >= pdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : pdat.$array[pdat.$offset + i$2]) / 2, (_q$4 === _q$4 && _q$4 !== 1/0 && _q$4 !== -1/0) ? _q$4 >>> 0 : $throwRuntimeError("integer divide by zero"))) << 24 >>> 24)); + i$2 = i$2 + (1) >> 0; + } + i$3 = bytesPerPixel; + while (true) { + if (!(i$3 < cdat.$length)) { break; } + ((i$3 < 0 || i$3 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + i$3] = (((i$3 < 0 || i$3 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + i$3]) + ((((_q$5 = (((((x$1 = i$3 - bytesPerPixel >> 0, ((x$1 < 0 || x$1 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$1])) >> 0)) + ((((i$3 < 0 || i$3 >= pdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : pdat.$array[pdat.$offset + i$3]) >> 0)) >> 0)) / 2, (_q$5 === _q$5 && _q$5 !== 1/0 && _q$5 !== -1/0) ? _q$5 >> 0 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24))) << 24 >>> 24)); + i$3 = i$3 + (1) >> 0; + } + } else if (_2 === (4)) { + filterPaeth(cdat, pdat, bytesPerPixel); + } else { + $s = -1; return [$ifaceNil, new FormatError("bad filter type")]; + } + _3 = d.cb; + if (_3 === (1)) { + if (d.useTransparent) { + ty = d.transparent[1]; + x$2 = 0; + while (true) { + if (!(x$2 < width)) { break; } + b = (x$3 = (_q$6 = x$2 / 8, (_q$6 === _q$6 && _q$6 !== 1/0 && _q$6 !== -1/0) ? _q$6 >> 0 : $throwRuntimeError("integer divide by zero")), ((x$3 < 0 || x$3 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$3])); + x2 = 0; + while (true) { + if (!(x2 < 8 && (x$2 + x2 >> 0) < width)) { break; } + ycol = ((b >>> 7 << 24 >>> 24)) * 255 << 24 >>> 24; + acol = 255; + if (ycol === ty) { + acol = 0; + } + nrgba.SetNRGBA(x$2 + x2 >> 0, y, new color.NRGBA.ptr(ycol, ycol, ycol, acol)); + b = (y$1 = (1), y$1 < 32 ? (b << y$1) : 0) << 24 >>> 24; + x2 = x2 + (1) >> 0; + } + x$2 = x$2 + (8) >> 0; + } + } else { + x$4 = 0; + while (true) { + if (!(x$4 < width)) { break; } + b$1 = (x$5 = (_q$7 = x$4 / 8, (_q$7 === _q$7 && _q$7 !== 1/0 && _q$7 !== -1/0) ? _q$7 >> 0 : $throwRuntimeError("integer divide by zero")), ((x$5 < 0 || x$5 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$5])); + x2$1 = 0; + while (true) { + if (!(x2$1 < 8 && (x$4 + x2$1 >> 0) < width)) { break; } + gray.SetGray(x$4 + x2$1 >> 0, y, new color.Gray.ptr(((b$1 >>> 7 << 24 >>> 24)) * 255 << 24 >>> 24)); + b$1 = (y$2 = (1), y$2 < 32 ? (b$1 << y$2) : 0) << 24 >>> 24; + x2$1 = x2$1 + (1) >> 0; + } + x$4 = x$4 + (8) >> 0; + } + } + } else if (_3 === (2)) { + if (d.useTransparent) { + ty$1 = d.transparent[1]; + x$6 = 0; + while (true) { + if (!(x$6 < width)) { break; } + b$2 = (x$7 = (_q$8 = x$6 / 4, (_q$8 === _q$8 && _q$8 !== 1/0 && _q$8 !== -1/0) ? _q$8 >> 0 : $throwRuntimeError("integer divide by zero")), ((x$7 < 0 || x$7 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$7])); + x2$2 = 0; + while (true) { + if (!(x2$2 < 4 && (x$6 + x2$2 >> 0) < width)) { break; } + ycol$1 = ((b$2 >>> 6 << 24 >>> 24)) * 85 << 24 >>> 24; + acol$1 = 255; + if (ycol$1 === ty$1) { + acol$1 = 0; + } + nrgba.SetNRGBA(x$6 + x2$2 >> 0, y, new color.NRGBA.ptr(ycol$1, ycol$1, ycol$1, acol$1)); + b$2 = (y$3 = (2), y$3 < 32 ? (b$2 << y$3) : 0) << 24 >>> 24; + x2$2 = x2$2 + (1) >> 0; + } + x$6 = x$6 + (4) >> 0; + } + } else { + x$8 = 0; + while (true) { + if (!(x$8 < width)) { break; } + b$3 = (x$9 = (_q$9 = x$8 / 4, (_q$9 === _q$9 && _q$9 !== 1/0 && _q$9 !== -1/0) ? _q$9 >> 0 : $throwRuntimeError("integer divide by zero")), ((x$9 < 0 || x$9 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$9])); + x2$3 = 0; + while (true) { + if (!(x2$3 < 4 && (x$8 + x2$3 >> 0) < width)) { break; } + gray.SetGray(x$8 + x2$3 >> 0, y, new color.Gray.ptr(((b$3 >>> 6 << 24 >>> 24)) * 85 << 24 >>> 24)); + b$3 = (y$4 = (2), y$4 < 32 ? (b$3 << y$4) : 0) << 24 >>> 24; + x2$3 = x2$3 + (1) >> 0; + } + x$8 = x$8 + (4) >> 0; + } + } + } else if (_3 === (3)) { + if (d.useTransparent) { + ty$2 = d.transparent[1]; + x$10 = 0; + while (true) { + if (!(x$10 < width)) { break; } + b$4 = (x$11 = (_q$10 = x$10 / 2, (_q$10 === _q$10 && _q$10 !== 1/0 && _q$10 !== -1/0) ? _q$10 >> 0 : $throwRuntimeError("integer divide by zero")), ((x$11 < 0 || x$11 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$11])); + x2$4 = 0; + while (true) { + if (!(x2$4 < 2 && (x$10 + x2$4 >> 0) < width)) { break; } + ycol$2 = ((b$4 >>> 4 << 24 >>> 24)) * 17 << 24 >>> 24; + acol$2 = 255; + if (ycol$2 === ty$2) { + acol$2 = 0; + } + nrgba.SetNRGBA(x$10 + x2$4 >> 0, y, new color.NRGBA.ptr(ycol$2, ycol$2, ycol$2, acol$2)); + b$4 = (y$5 = (4), y$5 < 32 ? (b$4 << y$5) : 0) << 24 >>> 24; + x2$4 = x2$4 + (1) >> 0; + } + x$10 = x$10 + (2) >> 0; + } + } else { + x$12 = 0; + while (true) { + if (!(x$12 < width)) { break; } + b$5 = (x$13 = (_q$11 = x$12 / 2, (_q$11 === _q$11 && _q$11 !== 1/0 && _q$11 !== -1/0) ? _q$11 >> 0 : $throwRuntimeError("integer divide by zero")), ((x$13 < 0 || x$13 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$13])); + x2$5 = 0; + while (true) { + if (!(x2$5 < 2 && (x$12 + x2$5 >> 0) < width)) { break; } + gray.SetGray(x$12 + x2$5 >> 0, y, new color.Gray.ptr(((b$5 >>> 4 << 24 >>> 24)) * 17 << 24 >>> 24)); + b$5 = (y$6 = (4), y$6 < 32 ? (b$5 << y$6) : 0) << 24 >>> 24; + x2$5 = x2$5 + (1) >> 0; + } + x$12 = x$12 + (2) >> 0; + } + } + } else if (_3 === (4)) { + if (d.useTransparent) { + ty$3 = d.transparent[1]; + x$14 = 0; + while (true) { + if (!(x$14 < width)) { break; } + ycol$3 = ((x$14 < 0 || x$14 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$14]); + acol$3 = 255; + if (ycol$3 === ty$3) { + acol$3 = 0; + } + nrgba.SetNRGBA(x$14, y, new color.NRGBA.ptr(ycol$3, ycol$3, ycol$3, acol$3)); + x$14 = x$14 + (1) >> 0; + } + } else { + $copySlice($subslice(gray.Pix, pixOffset), cdat); + pixOffset = pixOffset + (gray.Stride) >> 0; + } + } else if (_3 === (5)) { + x$15 = 0; + while (true) { + if (!(x$15 < width)) { break; } + ycol$4 = (x$16 = ($imul(2, x$15)) + 0 >> 0, ((x$16 < 0 || x$16 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$16])); + nrgba.SetNRGBA(x$15, y, new color.NRGBA.ptr(ycol$4, ycol$4, ycol$4, (x$17 = ($imul(2, x$15)) + 1 >> 0, ((x$17 < 0 || x$17 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$17])))); + x$15 = x$15 + (1) >> 0; + } + } else if (_3 === (6)) { + if (d.useTransparent) { + _tmp$2 = nrgba.Pix; + _tmp$3 = pixOffset; + _tmp$4 = 0; + pix = _tmp$2; + i$4 = _tmp$3; + j = _tmp$4; + _tmp$5 = d.transparent[1]; + _tmp$6 = d.transparent[3]; + _tmp$7 = d.transparent[5]; + tr = _tmp$5; + tg = _tmp$6; + tb = _tmp$7; + x$18 = 0; + while (true) { + if (!(x$18 < width)) { break; } + r$1 = (x$19 = j + 0 >> 0, ((x$19 < 0 || x$19 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$19])); + g = (x$20 = j + 1 >> 0, ((x$20 < 0 || x$20 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$20])); + b$6 = (x$21 = j + 2 >> 0, ((x$21 < 0 || x$21 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$21])); + a = 255; + if ((r$1 === tr) && (g === tg) && (b$6 === tb)) { + a = 0; + } + (x$22 = i$4 + 0 >> 0, ((x$22 < 0 || x$22 >= pix.$length) ? ($throwRuntimeError("index out of range"), undefined) : pix.$array[pix.$offset + x$22] = r$1)); + (x$23 = i$4 + 1 >> 0, ((x$23 < 0 || x$23 >= pix.$length) ? ($throwRuntimeError("index out of range"), undefined) : pix.$array[pix.$offset + x$23] = g)); + (x$24 = i$4 + 2 >> 0, ((x$24 < 0 || x$24 >= pix.$length) ? ($throwRuntimeError("index out of range"), undefined) : pix.$array[pix.$offset + x$24] = b$6)); + (x$25 = i$4 + 3 >> 0, ((x$25 < 0 || x$25 >= pix.$length) ? ($throwRuntimeError("index out of range"), undefined) : pix.$array[pix.$offset + x$25] = a)); + i$4 = i$4 + (4) >> 0; + j = j + (3) >> 0; + x$18 = x$18 + (1) >> 0; + } + pixOffset = pixOffset + (nrgba.Stride) >> 0; + } else { + _tmp$8 = rgba.Pix; + _tmp$9 = pixOffset; + _tmp$10 = 0; + pix$1 = _tmp$8; + i$5 = _tmp$9; + j$1 = _tmp$10; + x$26 = 0; + while (true) { + if (!(x$26 < width)) { break; } + (x$28 = i$5 + 0 >> 0, ((x$28 < 0 || x$28 >= pix$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : pix$1.$array[pix$1.$offset + x$28] = (x$27 = j$1 + 0 >> 0, ((x$27 < 0 || x$27 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$27])))); + (x$30 = i$5 + 1 >> 0, ((x$30 < 0 || x$30 >= pix$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : pix$1.$array[pix$1.$offset + x$30] = (x$29 = j$1 + 1 >> 0, ((x$29 < 0 || x$29 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$29])))); + (x$32 = i$5 + 2 >> 0, ((x$32 < 0 || x$32 >= pix$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : pix$1.$array[pix$1.$offset + x$32] = (x$31 = j$1 + 2 >> 0, ((x$31 < 0 || x$31 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$31])))); + (x$33 = i$5 + 3 >> 0, ((x$33 < 0 || x$33 >= pix$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : pix$1.$array[pix$1.$offset + x$33] = 255)); + i$5 = i$5 + (4) >> 0; + j$1 = j$1 + (3) >> 0; + x$26 = x$26 + (1) >> 0; + } + pixOffset = pixOffset + (rgba.Stride) >> 0; + } + } else if (_3 === (7)) { + x$34 = 0; + while (true) { + if (!(x$34 < width)) { break; } + b$7 = (x$35 = (_q$12 = x$34 / 8, (_q$12 === _q$12 && _q$12 !== 1/0 && _q$12 !== -1/0) ? _q$12 >> 0 : $throwRuntimeError("integer divide by zero")), ((x$35 < 0 || x$35 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$35])); + x2$6 = 0; + while (true) { + if (!(x2$6 < 8 && (x$34 + x2$6 >> 0) < width)) { break; } + idx = b$7 >>> 7 << 24 >>> 24; + if (paletted.Palette.$length <= ((idx >> 0))) { + paletted.Palette = $subslice(paletted.Palette, 0, (((idx >> 0)) + 1 >> 0)); + } + paletted.SetColorIndex(x$34 + x2$6 >> 0, y, idx); + b$7 = (y$7 = (1), y$7 < 32 ? (b$7 << y$7) : 0) << 24 >>> 24; + x2$6 = x2$6 + (1) >> 0; + } + x$34 = x$34 + (8) >> 0; + } + } else if (_3 === (8)) { + x$36 = 0; + while (true) { + if (!(x$36 < width)) { break; } + b$8 = (x$37 = (_q$13 = x$36 / 4, (_q$13 === _q$13 && _q$13 !== 1/0 && _q$13 !== -1/0) ? _q$13 >> 0 : $throwRuntimeError("integer divide by zero")), ((x$37 < 0 || x$37 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$37])); + x2$7 = 0; + while (true) { + if (!(x2$7 < 4 && (x$36 + x2$7 >> 0) < width)) { break; } + idx$1 = b$8 >>> 6 << 24 >>> 24; + if (paletted.Palette.$length <= ((idx$1 >> 0))) { + paletted.Palette = $subslice(paletted.Palette, 0, (((idx$1 >> 0)) + 1 >> 0)); + } + paletted.SetColorIndex(x$36 + x2$7 >> 0, y, idx$1); + b$8 = (y$8 = (2), y$8 < 32 ? (b$8 << y$8) : 0) << 24 >>> 24; + x2$7 = x2$7 + (1) >> 0; + } + x$36 = x$36 + (4) >> 0; + } + } else if (_3 === (9)) { + x$38 = 0; + while (true) { + if (!(x$38 < width)) { break; } + b$9 = (x$39 = (_q$14 = x$38 / 2, (_q$14 === _q$14 && _q$14 !== 1/0 && _q$14 !== -1/0) ? _q$14 >> 0 : $throwRuntimeError("integer divide by zero")), ((x$39 < 0 || x$39 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$39])); + x2$8 = 0; + while (true) { + if (!(x2$8 < 2 && (x$38 + x2$8 >> 0) < width)) { break; } + idx$2 = b$9 >>> 4 << 24 >>> 24; + if (paletted.Palette.$length <= ((idx$2 >> 0))) { + paletted.Palette = $subslice(paletted.Palette, 0, (((idx$2 >> 0)) + 1 >> 0)); + } + paletted.SetColorIndex(x$38 + x2$8 >> 0, y, idx$2); + b$9 = (y$9 = (4), y$9 < 32 ? (b$9 << y$9) : 0) << 24 >>> 24; + x2$8 = x2$8 + (1) >> 0; + } + x$38 = x$38 + (2) >> 0; + } + } else if (_3 === (10)) { + if (!((paletted.Palette.$length === 255))) { + x$40 = 0; + while (true) { + if (!(x$40 < width)) { break; } + if (paletted.Palette.$length <= ((((x$40 < 0 || x$40 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$40]) >> 0))) { + paletted.Palette = $subslice(paletted.Palette, 0, (((((x$40 < 0 || x$40 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$40]) >> 0)) + 1 >> 0)); + } + x$40 = x$40 + (1) >> 0; + } + } + $copySlice($subslice(paletted.Pix, pixOffset), cdat); + pixOffset = pixOffset + (paletted.Stride) >> 0; + } else if (_3 === (11)) { + $copySlice($subslice(nrgba.Pix, pixOffset), cdat); + pixOffset = pixOffset + (nrgba.Stride) >> 0; + } else if (_3 === (12)) { + if (d.useTransparent) { + ty$4 = ((((d.transparent[0] << 16 >>> 16)) << 8 << 16 >>> 16) | ((d.transparent[1] << 16 >>> 16))) >>> 0; + x$41 = 0; + while (true) { + if (!(x$41 < width)) { break; } + ycol$5 = (((((x$42 = ($imul(2, x$41)) + 0 >> 0, ((x$42 < 0 || x$42 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$42])) << 16 >>> 16)) << 8 << 16 >>> 16) | (((x$43 = ($imul(2, x$41)) + 1 >> 0, ((x$43 < 0 || x$43 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$43])) << 16 >>> 16))) >>> 0; + acol$4 = 65535; + if (ycol$5 === ty$4) { + acol$4 = 0; + } + nrgba64.SetNRGBA64(x$41, y, new color.NRGBA64.ptr(ycol$5, ycol$5, ycol$5, acol$4)); + x$41 = x$41 + (1) >> 0; + } + } else { + x$44 = 0; + while (true) { + if (!(x$44 < width)) { break; } + ycol$6 = (((((x$45 = ($imul(2, x$44)) + 0 >> 0, ((x$45 < 0 || x$45 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$45])) << 16 >>> 16)) << 8 << 16 >>> 16) | (((x$46 = ($imul(2, x$44)) + 1 >> 0, ((x$46 < 0 || x$46 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$46])) << 16 >>> 16))) >>> 0; + gray16.SetGray16(x$44, y, new color.Gray16.ptr(ycol$6)); + x$44 = x$44 + (1) >> 0; + } + } + } else if (_3 === (13)) { + x$47 = 0; + while (true) { + if (!(x$47 < width)) { break; } + ycol$7 = (((((x$48 = ($imul(4, x$47)) + 0 >> 0, ((x$48 < 0 || x$48 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$48])) << 16 >>> 16)) << 8 << 16 >>> 16) | (((x$49 = ($imul(4, x$47)) + 1 >> 0, ((x$49 < 0 || x$49 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$49])) << 16 >>> 16))) >>> 0; + acol$5 = (((((x$50 = ($imul(4, x$47)) + 2 >> 0, ((x$50 < 0 || x$50 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$50])) << 16 >>> 16)) << 8 << 16 >>> 16) | (((x$51 = ($imul(4, x$47)) + 3 >> 0, ((x$51 < 0 || x$51 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$51])) << 16 >>> 16))) >>> 0; + nrgba64.SetNRGBA64(x$47, y, new color.NRGBA64.ptr(ycol$7, ycol$7, ycol$7, acol$5)); + x$47 = x$47 + (1) >> 0; + } + } else if (_3 === (14)) { + if (d.useTransparent) { + tr$1 = ((((d.transparent[0] << 16 >>> 16)) << 8 << 16 >>> 16) | ((d.transparent[1] << 16 >>> 16))) >>> 0; + tg$1 = ((((d.transparent[2] << 16 >>> 16)) << 8 << 16 >>> 16) | ((d.transparent[3] << 16 >>> 16))) >>> 0; + tb$1 = ((((d.transparent[4] << 16 >>> 16)) << 8 << 16 >>> 16) | ((d.transparent[5] << 16 >>> 16))) >>> 0; + x$52 = 0; + while (true) { + if (!(x$52 < width)) { break; } + rcol = (((((x$53 = ($imul(6, x$52)) + 0 >> 0, ((x$53 < 0 || x$53 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$53])) << 16 >>> 16)) << 8 << 16 >>> 16) | (((x$54 = ($imul(6, x$52)) + 1 >> 0, ((x$54 < 0 || x$54 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$54])) << 16 >>> 16))) >>> 0; + gcol = (((((x$55 = ($imul(6, x$52)) + 2 >> 0, ((x$55 < 0 || x$55 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$55])) << 16 >>> 16)) << 8 << 16 >>> 16) | (((x$56 = ($imul(6, x$52)) + 3 >> 0, ((x$56 < 0 || x$56 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$56])) << 16 >>> 16))) >>> 0; + bcol = (((((x$57 = ($imul(6, x$52)) + 4 >> 0, ((x$57 < 0 || x$57 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$57])) << 16 >>> 16)) << 8 << 16 >>> 16) | (((x$58 = ($imul(6, x$52)) + 5 >> 0, ((x$58 < 0 || x$58 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$58])) << 16 >>> 16))) >>> 0; + acol$6 = 65535; + if ((rcol === tr$1) && (gcol === tg$1) && (bcol === tb$1)) { + acol$6 = 0; + } + nrgba64.SetNRGBA64(x$52, y, new color.NRGBA64.ptr(rcol, gcol, bcol, acol$6)); + x$52 = x$52 + (1) >> 0; + } + } else { + x$59 = 0; + while (true) { + if (!(x$59 < width)) { break; } + rcol$1 = (((((x$60 = ($imul(6, x$59)) + 0 >> 0, ((x$60 < 0 || x$60 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$60])) << 16 >>> 16)) << 8 << 16 >>> 16) | (((x$61 = ($imul(6, x$59)) + 1 >> 0, ((x$61 < 0 || x$61 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$61])) << 16 >>> 16))) >>> 0; + gcol$1 = (((((x$62 = ($imul(6, x$59)) + 2 >> 0, ((x$62 < 0 || x$62 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$62])) << 16 >>> 16)) << 8 << 16 >>> 16) | (((x$63 = ($imul(6, x$59)) + 3 >> 0, ((x$63 < 0 || x$63 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$63])) << 16 >>> 16))) >>> 0; + bcol$1 = (((((x$64 = ($imul(6, x$59)) + 4 >> 0, ((x$64 < 0 || x$64 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$64])) << 16 >>> 16)) << 8 << 16 >>> 16) | (((x$65 = ($imul(6, x$59)) + 5 >> 0, ((x$65 < 0 || x$65 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$65])) << 16 >>> 16))) >>> 0; + rgba64.SetRGBA64(x$59, y, new color.RGBA64.ptr(rcol$1, gcol$1, bcol$1, 65535)); + x$59 = x$59 + (1) >> 0; + } + } + } else if (_3 === (15)) { + x$66 = 0; + while (true) { + if (!(x$66 < width)) { break; } + rcol$2 = (((((x$67 = ($imul(8, x$66)) + 0 >> 0, ((x$67 < 0 || x$67 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$67])) << 16 >>> 16)) << 8 << 16 >>> 16) | (((x$68 = ($imul(8, x$66)) + 1 >> 0, ((x$68 < 0 || x$68 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$68])) << 16 >>> 16))) >>> 0; + gcol$2 = (((((x$69 = ($imul(8, x$66)) + 2 >> 0, ((x$69 < 0 || x$69 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$69])) << 16 >>> 16)) << 8 << 16 >>> 16) | (((x$70 = ($imul(8, x$66)) + 3 >> 0, ((x$70 < 0 || x$70 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$70])) << 16 >>> 16))) >>> 0; + bcol$2 = (((((x$71 = ($imul(8, x$66)) + 4 >> 0, ((x$71 < 0 || x$71 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$71])) << 16 >>> 16)) << 8 << 16 >>> 16) | (((x$72 = ($imul(8, x$66)) + 5 >> 0, ((x$72 < 0 || x$72 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$72])) << 16 >>> 16))) >>> 0; + acol$7 = (((((x$73 = ($imul(8, x$66)) + 6 >> 0, ((x$73 < 0 || x$73 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$73])) << 16 >>> 16)) << 8 << 16 >>> 16) | (((x$74 = ($imul(8, x$66)) + 7 >> 0, ((x$74 < 0 || x$74 >= cdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat.$array[cdat.$offset + x$74])) << 16 >>> 16))) >>> 0; + nrgba64.SetNRGBA64(x$66, y, new color.NRGBA64.ptr(rcol$2, gcol$2, bcol$2, acol$7)); + x$66 = x$66 + (1) >> 0; + } + } + _tmp$11 = cr; + _tmp$12 = pr; + pr = _tmp$11; + cr = _tmp$12; + y = y + (1) >> 0; + /* } */ $s = 1; continue; case 2: + $s = -1; return [img, $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: decoder.ptr.prototype.readImagePass }; } $f._1 = _1; $f._2 = _2; $f._3 = _3; $f._i = _i; $f._q = _q; $f._q$1 = _q$1; $f._q$10 = _q$10; $f._q$11 = _q$11; $f._q$12 = _q$12; $f._q$13 = _q$13; $f._q$14 = _q$14; $f._q$2 = _q$2; $f._q$3 = _q$3; $f._q$4 = _q$4; $f._q$5 = _q$5; $f._q$6 = _q$6; $f._q$7 = _q$7; $f._q$8 = _q$8; $f._q$9 = _q$9; $f._r = _r; $f._ref = _ref; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$10 = _tmp$10; $f._tmp$11 = _tmp$11; $f._tmp$12 = _tmp$12; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tmp$6 = _tmp$6; $f._tmp$7 = _tmp$7; $f._tmp$8 = _tmp$8; $f._tmp$9 = _tmp$9; $f._tuple = _tuple; $f.a = a; $f.acol = acol; $f.acol$1 = acol$1; $f.acol$2 = acol$2; $f.acol$3 = acol$3; $f.acol$4 = acol$4; $f.acol$5 = acol$5; $f.acol$6 = acol$6; $f.acol$7 = acol$7; $f.allocateOnly = allocateOnly; $f.b = b; $f.b$1 = b$1; $f.b$2 = b$2; $f.b$3 = b$3; $f.b$4 = b$4; $f.b$5 = b$5; $f.b$6 = b$6; $f.b$7 = b$7; $f.b$8 = b$8; $f.b$9 = b$9; $f.bcol = bcol; $f.bcol$1 = bcol$1; $f.bcol$2 = bcol$2; $f.bitsPerPixel = bitsPerPixel; $f.bytesPerPixel = bytesPerPixel; $f.cdat = cdat; $f.cr = cr; $f.d = d; $f.err = err; $f.g = g; $f.gcol = gcol; $f.gcol$1 = gcol$1; $f.gcol$2 = gcol$2; $f.gray = gray; $f.gray16 = gray16; $f.height = height; $f.i = i; $f.i$1 = i$1; $f.i$2 = i$2; $f.i$3 = i$3; $f.i$4 = i$4; $f.i$5 = i$5; $f.idx = idx; $f.idx$1 = idx$1; $f.idx$2 = idx$2; $f.img = img; $f.j = j; $f.j$1 = j$1; $f.nrgba = nrgba; $f.nrgba64 = nrgba64; $f.p = p; $f.p$1 = p$1; $f.paletted = paletted; $f.pass = pass; $f.pdat = pdat; $f.pix = pix; $f.pix$1 = pix$1; $f.pixOffset = pixOffset; $f.pr = pr; $f.r = r; $f.r$1 = r$1; $f.rcol = rcol; $f.rcol$1 = rcol$1; $f.rcol$2 = rcol$2; $f.rgba = rgba; $f.rgba64 = rgba64; $f.rowSize = rowSize; $f.tb = tb; $f.tb$1 = tb$1; $f.tg = tg; $f.tg$1 = tg$1; $f.tr = tr; $f.tr$1 = tr$1; $f.ty = ty; $f.ty$1 = ty$1; $f.ty$2 = ty$2; $f.ty$3 = ty$3; $f.ty$4 = ty$4; $f.width = width; $f.x = x; $f.x$1 = x$1; $f.x$10 = x$10; $f.x$11 = x$11; $f.x$12 = x$12; $f.x$13 = x$13; $f.x$14 = x$14; $f.x$15 = x$15; $f.x$16 = x$16; $f.x$17 = x$17; $f.x$18 = x$18; $f.x$19 = x$19; $f.x$2 = x$2; $f.x$20 = x$20; $f.x$21 = x$21; $f.x$22 = x$22; $f.x$23 = x$23; $f.x$24 = x$24; $f.x$25 = x$25; $f.x$26 = x$26; $f.x$27 = x$27; $f.x$28 = x$28; $f.x$29 = x$29; $f.x$3 = x$3; $f.x$30 = x$30; $f.x$31 = x$31; $f.x$32 = x$32; $f.x$33 = x$33; $f.x$34 = x$34; $f.x$35 = x$35; $f.x$36 = x$36; $f.x$37 = x$37; $f.x$38 = x$38; $f.x$39 = x$39; $f.x$4 = x$4; $f.x$40 = x$40; $f.x$41 = x$41; $f.x$42 = x$42; $f.x$43 = x$43; $f.x$44 = x$44; $f.x$45 = x$45; $f.x$46 = x$46; $f.x$47 = x$47; $f.x$48 = x$48; $f.x$49 = x$49; $f.x$5 = x$5; $f.x$50 = x$50; $f.x$51 = x$51; $f.x$52 = x$52; $f.x$53 = x$53; $f.x$54 = x$54; $f.x$55 = x$55; $f.x$56 = x$56; $f.x$57 = x$57; $f.x$58 = x$58; $f.x$59 = x$59; $f.x$6 = x$6; $f.x$60 = x$60; $f.x$61 = x$61; $f.x$62 = x$62; $f.x$63 = x$63; $f.x$64 = x$64; $f.x$65 = x$65; $f.x$66 = x$66; $f.x$67 = x$67; $f.x$68 = x$68; $f.x$69 = x$69; $f.x$7 = x$7; $f.x$70 = x$70; $f.x$71 = x$71; $f.x$72 = x$72; $f.x$73 = x$73; $f.x$74 = x$74; $f.x$8 = x$8; $f.x$9 = x$9; $f.x2 = x2; $f.x2$1 = x2$1; $f.x2$2 = x2$2; $f.x2$3 = x2$3; $f.x2$4 = x2$4; $f.x2$5 = x2$5; $f.x2$6 = x2$6; $f.x2$7 = x2$7; $f.x2$8 = x2$8; $f.y = y; $f.y$1 = y$1; $f.y$2 = y$2; $f.y$3 = y$3; $f.y$4 = y$4; $f.y$5 = y$5; $f.y$6 = y$6; $f.y$7 = y$7; $f.y$8 = y$8; $f.y$9 = y$9; $f.ycol = ycol; $f.ycol$1 = ycol$1; $f.ycol$2 = ycol$2; $f.ycol$3 = ycol$3; $f.ycol$4 = ycol$4; $f.ycol$5 = ycol$5; $f.ycol$6 = ycol$6; $f.ycol$7 = ycol$7; $f.$s = $s; $f.$r = $r; return $f; + }; + decoder.prototype.readImagePass = function(r, pass, allocateOnly) { return this.$val.readImagePass(r, pass, allocateOnly); }; + decoder.ptr.prototype.mergePassInto = function(dst, src, pass) { + var _r, _ref, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, bounds, bytesPerPixel, d, d$1, dBase, dst, dstPix, p, pass, rect, s, src, srcPix, stride, target, target$1, target$2, target$3, target$4, target$5, target$6, target$7, target$8, x, y, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _ref = $f._ref; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$10 = $f._tmp$10; _tmp$11 = $f._tmp$11; _tmp$12 = $f._tmp$12; _tmp$13 = $f._tmp$13; _tmp$14 = $f._tmp$14; _tmp$15 = $f._tmp$15; _tmp$16 = $f._tmp$16; _tmp$17 = $f._tmp$17; _tmp$18 = $f._tmp$18; _tmp$19 = $f._tmp$19; _tmp$2 = $f._tmp$2; _tmp$20 = $f._tmp$20; _tmp$21 = $f._tmp$21; _tmp$22 = $f._tmp$22; _tmp$23 = $f._tmp$23; _tmp$24 = $f._tmp$24; _tmp$25 = $f._tmp$25; _tmp$26 = $f._tmp$26; _tmp$27 = $f._tmp$27; _tmp$28 = $f._tmp$28; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tmp$6 = $f._tmp$6; _tmp$7 = $f._tmp$7; _tmp$8 = $f._tmp$8; _tmp$9 = $f._tmp$9; bounds = $f.bounds; bytesPerPixel = $f.bytesPerPixel; d = $f.d; d$1 = $f.d$1; dBase = $f.dBase; dst = $f.dst; dstPix = $f.dstPix; p = $f.p; pass = $f.pass; rect = $f.rect; s = $f.s; src = $f.src; srcPix = $f.srcPix; stride = $f.stride; target = $f.target; target$1 = $f.target$1; target$2 = $f.target$2; target$3 = $f.target$3; target$4 = $f.target$4; target$5 = $f.target$5; target$6 = $f.target$6; target$7 = $f.target$7; target$8 = $f.target$8; x = $f.x; y = $f.y; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + d = this; + p = $clone(((pass < 0 || pass >= interlacing.$length) ? ($throwRuntimeError("index out of range"), undefined) : interlacing.$array[interlacing.$offset + pass]), interlaceScan); + srcPix = sliceType$1.nil; + dstPix = sliceType$1.nil; + stride = 0; + rect = new image.Rectangle.ptr(new image.Point.ptr(0, 0), new image.Point.ptr(0, 0)); + bytesPerPixel = 0; + _ref = dst; + if ($assertType(_ref, ptrType$7, true)[1]) { + target = _ref.$val; + srcPix = $assertType(src, ptrType$7).Pix; + _tmp = target.Pix; + _tmp$1 = target.Stride; + _tmp$2 = $clone(target.Rect, image.Rectangle); + dstPix = _tmp; + stride = _tmp$1; + image.Rectangle.copy(rect, _tmp$2); + bytesPerPixel = 1; + } else if ($assertType(_ref, ptrType$8, true)[1]) { + target$1 = _ref.$val; + srcPix = $assertType(src, ptrType$8).Pix; + _tmp$3 = target$1.Pix; + _tmp$4 = target$1.Stride; + _tmp$5 = $clone(target$1.Rect, image.Rectangle); + dstPix = _tmp$3; + stride = _tmp$4; + image.Rectangle.copy(rect, _tmp$5); + bytesPerPixel = 2; + } else if ($assertType(_ref, ptrType, true)[1]) { + target$2 = _ref.$val; + srcPix = $assertType(src, ptrType).Pix; + _tmp$6 = target$2.Pix; + _tmp$7 = target$2.Stride; + _tmp$8 = $clone(target$2.Rect, image.Rectangle); + dstPix = _tmp$6; + stride = _tmp$7; + image.Rectangle.copy(rect, _tmp$8); + bytesPerPixel = 1; + } else if ($assertType(_ref, ptrType$4, true)[1]) { + target$3 = _ref.$val; + srcPix = $assertType(src, ptrType$4).Pix; + _tmp$9 = target$3.Pix; + _tmp$10 = target$3.Stride; + _tmp$11 = $clone(target$3.Rect, image.Rectangle); + dstPix = _tmp$9; + stride = _tmp$10; + image.Rectangle.copy(rect, _tmp$11); + bytesPerPixel = 2; + } else if ($assertType(_ref, ptrType$3, true)[1]) { + target$4 = _ref.$val; + srcPix = $assertType(src, ptrType$3).Pix; + _tmp$12 = target$4.Pix; + _tmp$13 = target$4.Stride; + _tmp$14 = $clone(target$4.Rect, image.Rectangle); + dstPix = _tmp$12; + stride = _tmp$13; + image.Rectangle.copy(rect, _tmp$14); + bytesPerPixel = 4; + } else if ($assertType(_ref, ptrType$6, true)[1]) { + target$5 = _ref.$val; + srcPix = $assertType(src, ptrType$6).Pix; + _tmp$15 = target$5.Pix; + _tmp$16 = target$5.Stride; + _tmp$17 = $clone(target$5.Rect, image.Rectangle); + dstPix = _tmp$15; + stride = _tmp$16; + image.Rectangle.copy(rect, _tmp$17); + bytesPerPixel = 8; + } else if ($assertType(_ref, ptrType$2, true)[1]) { + target$6 = _ref.$val; + srcPix = $assertType(src, ptrType$2).Pix; + _tmp$18 = target$6.Pix; + _tmp$19 = target$6.Stride; + _tmp$20 = $clone(target$6.Rect, image.Rectangle); + dstPix = _tmp$18; + stride = _tmp$19; + image.Rectangle.copy(rect, _tmp$20); + bytesPerPixel = 1; + } else if ($assertType(_ref, ptrType$1, true)[1]) { + target$7 = _ref.$val; + srcPix = $assertType(src, ptrType$1).Pix; + _tmp$21 = target$7.Pix; + _tmp$22 = target$7.Stride; + _tmp$23 = $clone(target$7.Rect, image.Rectangle); + dstPix = _tmp$21; + stride = _tmp$22; + image.Rectangle.copy(rect, _tmp$23); + bytesPerPixel = 4; + } else if ($assertType(_ref, ptrType$5, true)[1]) { + target$8 = _ref.$val; + srcPix = $assertType(src, ptrType$5).Pix; + _tmp$24 = target$8.Pix; + _tmp$25 = target$8.Stride; + _tmp$26 = $clone(target$8.Rect, image.Rectangle); + dstPix = _tmp$24; + stride = _tmp$25; + image.Rectangle.copy(rect, _tmp$26); + bytesPerPixel = 8; + } + _tmp$27 = 0; + _r = src.Bounds(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tmp$28 = $clone(_r, image.Rectangle); + s = _tmp$27; + bounds = $clone(_tmp$28, image.Rectangle); + y = bounds.Min.Y; + while (true) { + if (!(y < bounds.Max.Y)) { break; } + dBase = ($imul((((($imul(y, p.yFactor)) + p.yOffset >> 0) - rect.Min.Y >> 0)), stride)) + ($imul(((p.xOffset - rect.Min.X >> 0)), bytesPerPixel)) >> 0; + x = bounds.Min.X; + while (true) { + if (!(x < bounds.Max.X)) { break; } + d$1 = dBase + ($imul(($imul(x, p.xFactor)), bytesPerPixel)) >> 0; + $copySlice($subslice(dstPix, d$1), $subslice(srcPix, s, (s + bytesPerPixel >> 0))); + s = s + (bytesPerPixel) >> 0; + x = x + (1) >> 0; + } + y = y + (1) >> 0; + } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: decoder.ptr.prototype.mergePassInto }; } $f._r = _r; $f._ref = _ref; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$10 = _tmp$10; $f._tmp$11 = _tmp$11; $f._tmp$12 = _tmp$12; $f._tmp$13 = _tmp$13; $f._tmp$14 = _tmp$14; $f._tmp$15 = _tmp$15; $f._tmp$16 = _tmp$16; $f._tmp$17 = _tmp$17; $f._tmp$18 = _tmp$18; $f._tmp$19 = _tmp$19; $f._tmp$2 = _tmp$2; $f._tmp$20 = _tmp$20; $f._tmp$21 = _tmp$21; $f._tmp$22 = _tmp$22; $f._tmp$23 = _tmp$23; $f._tmp$24 = _tmp$24; $f._tmp$25 = _tmp$25; $f._tmp$26 = _tmp$26; $f._tmp$27 = _tmp$27; $f._tmp$28 = _tmp$28; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tmp$6 = _tmp$6; $f._tmp$7 = _tmp$7; $f._tmp$8 = _tmp$8; $f._tmp$9 = _tmp$9; $f.bounds = bounds; $f.bytesPerPixel = bytesPerPixel; $f.d = d; $f.d$1 = d$1; $f.dBase = dBase; $f.dst = dst; $f.dstPix = dstPix; $f.p = p; $f.pass = pass; $f.rect = rect; $f.s = s; $f.src = src; $f.srcPix = srcPix; $f.stride = stride; $f.target = target; $f.target$1 = target$1; $f.target$2 = target$2; $f.target$3 = target$3; $f.target$4 = target$4; $f.target$5 = target$5; $f.target$6 = target$6; $f.target$7 = target$7; $f.target$8 = target$8; $f.x = x; $f.y = y; $f.$s = $s; $f.$r = $r; return $f; + }; + decoder.prototype.mergePassInto = function(dst, src, pass) { return this.$val.mergePassInto(dst, src, pass); }; + decoder.ptr.prototype.parseIDAT = function(length) { + var _r, _r$1, _tuple, d, err, length, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; d = $f.d; err = $f.err; length = $f.length; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + err = $ifaceNil; + d = this; + d.idatLength = length; + _r = d.decode(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + d.img = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + err = err; + $s = -1; return err; + } + _r$1 = d.verifyChecksum(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + err = _r$1; + $s = -1; return err; + /* */ } return; } if ($f === undefined) { $f = { $blk: decoder.ptr.prototype.parseIDAT }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.d = d; $f.err = err; $f.length = length; $f.$s = $s; $f.$r = $r; return $f; + }; + decoder.prototype.parseIDAT = function(length) { return this.$val.parseIDAT(length); }; + decoder.ptr.prototype.parseIEND = function(length) { + var _r, d, length, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; d = $f.d; length = $f.length; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + d = this; + if (!((length === 0))) { + $s = -1; return new FormatError("bad IEND length"); + } + _r = d.verifyChecksum(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: decoder.ptr.prototype.parseIEND }; } $f._r = _r; $f.d = d; $f.length = length; $f.$s = $s; $f.$r = $r; return $f; + }; + decoder.prototype.parseIEND = function(length) { return this.$val.parseIEND(length); }; + decoder.ptr.prototype.parseChunk = function() { + var _1, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, d, err, ignored, length, n, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; d = $f.d; err = $f.err; ignored = $f.ignored; length = $f.length; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + d = this; + _r = io.ReadFull(d.r, $subslice(new sliceType$1(d.tmp), 0, 8)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + length = $clone(binary.BigEndian, binary.bigEndian).Uint32($subslice(new sliceType$1(d.tmp), 0, 4)); + $r = d.crc.Reset(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$1 = d.crc.Write($subslice(new sliceType$1(d.tmp), 4, 8)); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + _1 = ($bytesToString($subslice(new sliceType$1(d.tmp), 4, 8))); + /* */ if (_1 === ("IHDR")) { $s = 5; continue; } + /* */ if (_1 === ("PLTE")) { $s = 6; continue; } + /* */ if (_1 === ("tRNS")) { $s = 7; continue; } + /* */ if (_1 === ("IDAT")) { $s = 8; continue; } + /* */ if (_1 === ("IEND")) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (_1 === ("IHDR")) { */ case 5: + if (!((d.stage === 0))) { + $s = -1; return new FormatError(chunkOrderError); + } + d.stage = 1; + _r$2 = d.parseIHDR(length); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $s = -1; return _r$2; + /* } else if (_1 === ("PLTE")) { */ case 6: + if (!((d.stage === 1))) { + $s = -1; return new FormatError(chunkOrderError); + } + d.stage = 2; + _r$3 = d.parsePLTE(length); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $s = -1; return _r$3; + /* } else if (_1 === ("tRNS")) { */ case 7: + if (cbPaletted(d.cb)) { + if (!((d.stage === 2))) { + $s = -1; return new FormatError(chunkOrderError); + } + } else if (!((d.stage === 1))) { + $s = -1; return new FormatError(chunkOrderError); + } + d.stage = 3; + _r$4 = d.parsetRNS(length); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $s = -1; return _r$4; + /* } else if (_1 === ("IDAT")) { */ case 8: + if (d.stage < 1 || d.stage > 4 || ((d.stage === 1) && cbPaletted(d.cb))) { + $s = -1; return new FormatError(chunkOrderError); + } else if (d.stage === 4) { + /* break; */ $s = 4; continue; + } + d.stage = 4; + _r$5 = d.parseIDAT(length); /* */ $s = 14; case 14: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $s = -1; return _r$5; + /* } else if (_1 === ("IEND")) { */ case 9: + if (!((d.stage === 4))) { + $s = -1; return new FormatError(chunkOrderError); + } + d.stage = 5; + _r$6 = d.parseIEND(length); /* */ $s = 15; case 15: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $s = -1; return _r$6; + /* } */ case 10: + case 4: + /* */ if (length > 2147483647) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (length > 2147483647) { */ case 16: + _r$7 = fmt.Sprintf("Bad chunk length: %d", new sliceType$2([new $Uint32(length)])); /* */ $s = 18; case 18: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + $s = -1; return new FormatError((_r$7)); + /* } */ case 17: + ignored = arrayType.zero(); + /* while (true) { */ case 19: + /* if (!(length > 0)) { break; } */ if(!(length > 0)) { $s = 20; continue; } + _r$8 = io.ReadFull(d.r, $subslice(new sliceType$1(ignored), 0, min(4096, ((length >> 0))))); /* */ $s = 21; case 21: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _tuple$1 = _r$8; + n = _tuple$1[0]; + err = _tuple$1[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r$9 = d.crc.Write($subslice(new sliceType$1(ignored), 0, n)); /* */ $s = 22; case 22: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$9; + length = length - (((n >>> 0))) >>> 0; + /* } */ $s = 19; continue; case 20: + _r$10 = d.verifyChecksum(); /* */ $s = 23; case 23: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + $s = -1; return _r$10; + /* */ } return; } if ($f === undefined) { $f = { $blk: decoder.ptr.prototype.parseChunk }; } $f._1 = _1; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.d = d; $f.err = err; $f.ignored = ignored; $f.length = length; $f.n = n; $f.$s = $s; $f.$r = $r; return $f; + }; + decoder.prototype.parseChunk = function() { return this.$val.parseChunk(); }; + decoder.ptr.prototype.verifyChecksum = function() { + var _r, _r$1, _tuple, d, err, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; d = $f.d; err = $f.err; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + d = this; + _r = io.ReadFull(d.r, $subslice(new sliceType$1(d.tmp), 0, 4)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r$1 = d.crc.Sum32(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!(($clone(binary.BigEndian, binary.bigEndian).Uint32($subslice(new sliceType$1(d.tmp), 0, 4)) === _r$1))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!(($clone(binary.BigEndian, binary.bigEndian).Uint32($subslice(new sliceType$1(d.tmp), 0, 4)) === _r$1))) { */ case 2: + $s = -1; return new FormatError("invalid checksum"); + /* } */ case 3: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: decoder.ptr.prototype.verifyChecksum }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.d = d; $f.err = err; $f.$s = $s; $f.$r = $r; return $f; + }; + decoder.prototype.verifyChecksum = function() { return this.$val.verifyChecksum(); }; + decoder.ptr.prototype.checkHeader = function() { + var _r, _tuple, d, err, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; d = $f.d; err = $f.err; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + d = this; + _r = io.ReadFull(d.r, $subslice(new sliceType$1(d.tmp), 0, 8)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + if (!(($bytesToString($subslice(new sliceType$1(d.tmp), 0, 8))) === "\x89PNG\r\n\x1A\n")) { + $s = -1; return new FormatError("not a PNG file"); + } + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: decoder.ptr.prototype.checkHeader }; } $f._r = _r; $f._tuple = _tuple; $f.d = d; $f.err = err; $f.$s = $s; $f.$r = $r; return $f; + }; + decoder.prototype.checkHeader = function() { return this.$val.checkHeader(); }; + Decode = function(r) { + var _r, _r$1, _r$2, d, err, err$1, r, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; d = $f.d; err = $f.err; err$1 = $f.err$1; r = $f.r; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = crc32.NewIEEE(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + d = new decoder.ptr(r, $ifaceNil, _r, 0, 0, 0, color.Palette.nil, 0, 0, 0, arrayType$1.zero(), 0, false, arrayType$2.zero()); + _r$1 = d.checkHeader(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + err = _r$1; + if (!($interfaceIsEqual(err, $ifaceNil))) { + if ($interfaceIsEqual(err, io.EOF)) { + err = io.ErrUnexpectedEOF; + } + $s = -1; return [$ifaceNil, err]; + } + /* while (true) { */ case 3: + /* if (!(!((d.stage === 5)))) { break; } */ if(!(!((d.stage === 5)))) { $s = 4; continue; } + _r$2 = d.parseChunk(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + err$1 = _r$2; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + if ($interfaceIsEqual(err$1, io.EOF)) { + err$1 = io.ErrUnexpectedEOF; + } + $s = -1; return [$ifaceNil, err$1]; + } + /* } */ $s = 3; continue; case 4: + $s = -1; return [d.img, $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Decode }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.d = d; $f.err = err; $f.err$1 = err$1; $f.r = r; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Decode = Decode; + DecodeConfig = function(r) { + var _1, _r, _r$1, _r$2, cm, d, err, err$1, paletted, r, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; cm = $f.cm; d = $f.d; err = $f.err; err$1 = $f.err$1; paletted = $f.paletted; r = $f.r; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = crc32.NewIEEE(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + d = new decoder.ptr(r, $ifaceNil, _r, 0, 0, 0, color.Palette.nil, 0, 0, 0, arrayType$1.zero(), 0, false, arrayType$2.zero()); + _r$1 = d.checkHeader(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + err = _r$1; + if (!($interfaceIsEqual(err, $ifaceNil))) { + if ($interfaceIsEqual(err, io.EOF)) { + err = io.ErrUnexpectedEOF; + } + $s = -1; return [new image.Config.ptr($ifaceNil, 0, 0), err]; + } + /* while (true) { */ case 3: + _r$2 = d.parseChunk(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + err$1 = _r$2; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + if ($interfaceIsEqual(err$1, io.EOF)) { + err$1 = io.ErrUnexpectedEOF; + } + $s = -1; return [new image.Config.ptr($ifaceNil, 0, 0), err$1]; + } + paletted = cbPaletted(d.cb); + if ((d.stage === 1) && !paletted) { + /* break; */ $s = 4; continue; + } + if ((d.stage === 2) && paletted) { + /* break; */ $s = 4; continue; + } + /* } */ $s = 3; continue; case 4: + cm = $ifaceNil; + _1 = d.cb; + if ((_1 === (1)) || (_1 === (2)) || (_1 === (3)) || (_1 === (4))) { + cm = color.GrayModel; + } else if (_1 === (5)) { + cm = color.NRGBAModel; + } else if (_1 === (6)) { + cm = color.RGBAModel; + } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10))) { + cm = d.palette; + } else if (_1 === (11)) { + cm = color.NRGBAModel; + } else if (_1 === (12)) { + cm = color.Gray16Model; + } else if (_1 === (13)) { + cm = color.NRGBA64Model; + } else if (_1 === (14)) { + cm = color.RGBA64Model; + } else if (_1 === (15)) { + cm = color.NRGBA64Model; + } + $s = -1; return [new image.Config.ptr(cm, d.width, d.height), $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: DecodeConfig }; } $f._1 = _1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.cm = cm; $f.d = d; $f.err = err; $f.err$1 = err$1; $f.paletted = paletted; $f.r = r; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.DecodeConfig = DecodeConfig; + init = function() { + image.RegisterFormat("png", "\x89PNG\r\n\x1A\n", Decode, DecodeConfig); + }; + writeUint32 = function(b, u) { + var b, u; + (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0] = (((u >>> 24 >>> 0) << 24 >>> 24))); + (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1] = (((u >>> 16 >>> 0) << 24 >>> 24))); + (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2] = (((u >>> 8 >>> 0) << 24 >>> 24))); + (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3] = (((u >>> 0 >>> 0) << 24 >>> 24))); + }; + opaque = function(m) { + var _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, a, b, m, o, ok, x, y, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; a = $f.a; b = $f.b; m = $f.m; o = $f.o; ok = $f.ok; x = $f.x; y = $f.y; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _tuple = $assertType(m, opaquer, true); + o = _tuple[0]; + ok = _tuple[1]; + /* */ if (ok) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (ok) { */ case 1: + _r = o.Opaque(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* } */ case 2: + _r$1 = m.Bounds(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + b = $clone(_r$1, image.Rectangle); + y = b.Min.Y; + /* while (true) { */ case 5: + /* if (!(y < b.Max.Y)) { break; } */ if(!(y < b.Max.Y)) { $s = 6; continue; } + x = b.Min.X; + /* while (true) { */ case 7: + /* if (!(x < b.Max.X)) { break; } */ if(!(x < b.Max.X)) { $s = 8; continue; } + _r$2 = m.At(x, y); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = _r$2.RGBA(); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$1 = _r$3; + a = _tuple$1[3]; + if (!((a === 65535))) { + $s = -1; return false; + } + x = x + (1) >> 0; + /* } */ $s = 7; continue; case 8: + y = y + (1) >> 0; + /* } */ $s = 5; continue; case 6: + $s = -1; return true; + /* */ } return; } if ($f === undefined) { $f = { $blk: opaque }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.a = a; $f.b = b; $f.m = m; $f.o = o; $f.ok = ok; $f.x = x; $f.y = y; $f.$s = $s; $f.$r = $r; return $f; + }; + abs8 = function(d) { + var d; + if (d < 128) { + return ((d >> 0)); + } + return 256 - ((d >> 0)) >> 0; + }; + encoder.ptr.prototype.writeChunk = function(b, name) { + var _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, _tuple$2, b, crc, e, n, name, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; b = $f.b; crc = $f.crc; e = $f.e; n = $f.n; name = $f.name; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + e = this; + if (!($interfaceIsEqual(e.err, $ifaceNil))) { + $s = -1; return; + } + n = ((b.$length >>> 0)); + if (!((((n >> 0)) === b.$length))) { + e.err = new UnsupportedError((name + " chunk is too large: " + strconv.Itoa(b.$length))); + $s = -1; return; + } + writeUint32($subslice(new sliceType$1(e.header), 0, 4), n); + e.header[4] = name.charCodeAt(0); + e.header[5] = name.charCodeAt(1); + e.header[6] = name.charCodeAt(2); + e.header[7] = name.charCodeAt(3); + _r = crc32.NewIEEE(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + crc = _r; + _r$1 = crc.Write($subslice(new sliceType$1(e.header), 4, 8)); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + _r$2 = crc.Write(b); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + _arg = $subslice(new sliceType$1(e.footer), 0, 4); + _r$3 = crc.Sum32(); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _arg$1 = _r$3; + $r = writeUint32(_arg, _arg$1); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$4 = e.w.Write($subslice(new sliceType$1(e.header), 0, 8)); /* */ $s = 6; case 6: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple = _r$4; + e.err = _tuple[1]; + if (!($interfaceIsEqual(e.err, $ifaceNil))) { + $s = -1; return; + } + _r$5 = e.w.Write(b); /* */ $s = 7; case 7: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple$1 = _r$5; + e.err = _tuple$1[1]; + if (!($interfaceIsEqual(e.err, $ifaceNil))) { + $s = -1; return; + } + _r$6 = e.w.Write($subslice(new sliceType$1(e.footer), 0, 4)); /* */ $s = 8; case 8: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _tuple$2 = _r$6; + e.err = _tuple$2[1]; + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: encoder.ptr.prototype.writeChunk }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.b = b; $f.crc = crc; $f.e = e; $f.n = n; $f.name = name; $f.$s = $s; $f.$r = $r; return $f; + }; + encoder.prototype.writeChunk = function(b, name) { return this.$val.writeChunk(b, name); }; + encoder.ptr.prototype.writeIHDR = function() { + var _1, _r, b, e, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; b = $f.b; e = $f.e; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + e = this; + _r = e.m.Bounds(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + b = $clone(_r, image.Rectangle); + writeUint32($subslice(new sliceType$1(e.tmp), 0, 4), (($clone(b, image.Rectangle).Dx() >>> 0))); + writeUint32($subslice(new sliceType$1(e.tmp), 4, 8), (($clone(b, image.Rectangle).Dy() >>> 0))); + _1 = e.cb; + if (_1 === (4)) { + e.tmp[8] = 8; + e.tmp[9] = 0; + } else if (_1 === (6)) { + e.tmp[8] = 8; + e.tmp[9] = 2; + } else if (_1 === (10)) { + e.tmp[8] = 8; + e.tmp[9] = 3; + } else if (_1 === (11)) { + e.tmp[8] = 8; + e.tmp[9] = 6; + } else if (_1 === (12)) { + e.tmp[8] = 16; + e.tmp[9] = 0; + } else if (_1 === (14)) { + e.tmp[8] = 16; + e.tmp[9] = 2; + } else if (_1 === (15)) { + e.tmp[8] = 16; + e.tmp[9] = 6; + } + e.tmp[10] = 0; + e.tmp[11] = 0; + e.tmp[12] = 0; + $r = e.writeChunk($subslice(new sliceType$1(e.tmp), 0, 13), "IHDR"); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: encoder.ptr.prototype.writeIHDR }; } $f._1 = _1; $f._r = _r; $f.b = b; $f.e = e; $f.$s = $s; $f.$r = $r; return $f; + }; + encoder.prototype.writeIHDR = function() { return this.$val.writeIHDR(); }; + encoder.ptr.prototype.writePLTEAndTRNS = function(p) { + var _i, _r, _ref, c, c1, e, i, last, p, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; c = $f.c; c1 = $f.c1; e = $f.e; i = $f.i; last = $f.last; p = $f.p; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + e = this; + if (p.$length < 1 || p.$length > 256) { + e.err = new FormatError(("bad palette length: " + strconv.Itoa(p.$length))); + $s = -1; return; + } + last = -1; + _ref = p; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r = color.NRGBAModel.Convert(c); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + c1 = $clone($assertType(_r, color.NRGBA), color.NRGBA); + (x = e.tmp, x$1 = ($imul(3, i)) + 0 >> 0, ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1] = c1.R)); + (x$2 = e.tmp, x$3 = ($imul(3, i)) + 1 >> 0, ((x$3 < 0 || x$3 >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[x$3] = c1.G)); + (x$4 = e.tmp, x$5 = ($imul(3, i)) + 2 >> 0, ((x$5 < 0 || x$5 >= x$4.length) ? ($throwRuntimeError("index out of range"), undefined) : x$4[x$5] = c1.B)); + if (!((c1.A === 255))) { + last = i; + } + (x$6 = e.tmp, x$7 = 768 + i >> 0, ((x$7 < 0 || x$7 >= x$6.length) ? ($throwRuntimeError("index out of range"), undefined) : x$6[x$7] = c1.A)); + _i++; + /* } */ $s = 1; continue; case 2: + $r = e.writeChunk($subslice(new sliceType$1(e.tmp), 0, ($imul(3, p.$length))), "PLTE"); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!((last === -1))) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!((last === -1))) { */ case 5: + $r = e.writeChunk($subslice(new sliceType$1(e.tmp), 768, (769 + last >> 0)), "tRNS"); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: encoder.ptr.prototype.writePLTEAndTRNS }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f.c = c; $f.c1 = c1; $f.e = e; $f.i = i; $f.last = last; $f.p = p; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.$s = $s; $f.$r = $r; return $f; + }; + encoder.prototype.writePLTEAndTRNS = function(p) { return this.$val.writePLTEAndTRNS(p); }; + encoder.ptr.prototype.Write = function(b) { + var b, e, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; b = $f.b; e = $f.e; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + e = this; + $r = e.writeChunk(b, "IDAT"); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (!($interfaceIsEqual(e.err, $ifaceNil))) { + $s = -1; return [0, e.err]; + } + $s = -1; return [b.$length, $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: encoder.ptr.prototype.Write }; } $f.b = b; $f.e = e; $f.$s = $s; $f.$r = $r; return $f; + }; + encoder.prototype.Write = function(b) { return this.$val.Write(b); }; + filter = function(cr, pr, bpp) { + var _q, _q$1, best, bpp, cdat0, cdat1, cdat2, cdat3, cdat4, cr, filter$1, i, i$1, i$2, i$3, i$4, i$5, i$6, i$7, n, pdat, pr, sum, x, x$1, x$2, x$3; + cdat0 = $subslice((cr.nilCheck, cr[0]), 1); + cdat1 = $subslice((cr.nilCheck, cr[1]), 1); + cdat2 = $subslice((cr.nilCheck, cr[2]), 1); + cdat3 = $subslice((cr.nilCheck, cr[3]), 1); + cdat4 = $subslice((cr.nilCheck, cr[4]), 1); + pdat = $subslice(pr, 1); + n = cdat0.$length; + sum = 0; + i = 0; + while (true) { + if (!(i < n)) { break; } + ((i < 0 || i >= cdat2.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat2.$array[cdat2.$offset + i] = (((i < 0 || i >= cdat0.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat0.$array[cdat0.$offset + i]) - ((i < 0 || i >= pdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : pdat.$array[pdat.$offset + i]) << 24 >>> 24)); + sum = sum + (abs8(((i < 0 || i >= cdat2.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat2.$array[cdat2.$offset + i]))) >> 0; + i = i + (1) >> 0; + } + best = sum; + filter$1 = 2; + sum = 0; + i$1 = 0; + while (true) { + if (!(i$1 < bpp)) { break; } + ((i$1 < 0 || i$1 >= cdat4.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat4.$array[cdat4.$offset + i$1] = (((i$1 < 0 || i$1 >= cdat0.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat0.$array[cdat0.$offset + i$1]) - ((i$1 < 0 || i$1 >= pdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : pdat.$array[pdat.$offset + i$1]) << 24 >>> 24)); + sum = sum + (abs8(((i$1 < 0 || i$1 >= cdat4.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat4.$array[cdat4.$offset + i$1]))) >> 0; + i$1 = i$1 + (1) >> 0; + } + i$2 = bpp; + while (true) { + if (!(i$2 < n)) { break; } + ((i$2 < 0 || i$2 >= cdat4.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat4.$array[cdat4.$offset + i$2] = (((i$2 < 0 || i$2 >= cdat0.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat0.$array[cdat0.$offset + i$2]) - paeth((x = i$2 - bpp >> 0, ((x < 0 || x >= cdat0.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat0.$array[cdat0.$offset + x])), ((i$2 < 0 || i$2 >= pdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : pdat.$array[pdat.$offset + i$2]), (x$1 = i$2 - bpp >> 0, ((x$1 < 0 || x$1 >= pdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : pdat.$array[pdat.$offset + x$1]))) << 24 >>> 24)); + sum = sum + (abs8(((i$2 < 0 || i$2 >= cdat4.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat4.$array[cdat4.$offset + i$2]))) >> 0; + if (sum >= best) { + break; + } + i$2 = i$2 + (1) >> 0; + } + if (sum < best) { + best = sum; + filter$1 = 4; + } + sum = 0; + i$3 = 0; + while (true) { + if (!(i$3 < n)) { break; } + sum = sum + (abs8(((i$3 < 0 || i$3 >= cdat0.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat0.$array[cdat0.$offset + i$3]))) >> 0; + if (sum >= best) { + break; + } + i$3 = i$3 + (1) >> 0; + } + if (sum < best) { + best = sum; + filter$1 = 0; + } + sum = 0; + i$4 = 0; + while (true) { + if (!(i$4 < bpp)) { break; } + ((i$4 < 0 || i$4 >= cdat1.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat1.$array[cdat1.$offset + i$4] = ((i$4 < 0 || i$4 >= cdat0.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat0.$array[cdat0.$offset + i$4])); + sum = sum + (abs8(((i$4 < 0 || i$4 >= cdat1.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat1.$array[cdat1.$offset + i$4]))) >> 0; + i$4 = i$4 + (1) >> 0; + } + i$5 = bpp; + while (true) { + if (!(i$5 < n)) { break; } + ((i$5 < 0 || i$5 >= cdat1.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat1.$array[cdat1.$offset + i$5] = (((i$5 < 0 || i$5 >= cdat0.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat0.$array[cdat0.$offset + i$5]) - (x$2 = i$5 - bpp >> 0, ((x$2 < 0 || x$2 >= cdat0.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat0.$array[cdat0.$offset + x$2])) << 24 >>> 24)); + sum = sum + (abs8(((i$5 < 0 || i$5 >= cdat1.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat1.$array[cdat1.$offset + i$5]))) >> 0; + if (sum >= best) { + break; + } + i$5 = i$5 + (1) >> 0; + } + if (sum < best) { + best = sum; + filter$1 = 1; + } + sum = 0; + i$6 = 0; + while (true) { + if (!(i$6 < bpp)) { break; } + ((i$6 < 0 || i$6 >= cdat3.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat3.$array[cdat3.$offset + i$6] = (((i$6 < 0 || i$6 >= cdat0.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat0.$array[cdat0.$offset + i$6]) - (_q = ((i$6 < 0 || i$6 >= pdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : pdat.$array[pdat.$offset + i$6]) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)); + sum = sum + (abs8(((i$6 < 0 || i$6 >= cdat3.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat3.$array[cdat3.$offset + i$6]))) >> 0; + i$6 = i$6 + (1) >> 0; + } + i$7 = bpp; + while (true) { + if (!(i$7 < n)) { break; } + ((i$7 < 0 || i$7 >= cdat3.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat3.$array[cdat3.$offset + i$7] = (((i$7 < 0 || i$7 >= cdat0.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat0.$array[cdat0.$offset + i$7]) - (((_q$1 = (((((x$3 = i$7 - bpp >> 0, ((x$3 < 0 || x$3 >= cdat0.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat0.$array[cdat0.$offset + x$3])) >> 0)) + ((((i$7 < 0 || i$7 >= pdat.$length) ? ($throwRuntimeError("index out of range"), undefined) : pdat.$array[pdat.$offset + i$7]) >> 0)) >> 0)) / 2, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) << 24 >>> 24)); + sum = sum + (abs8(((i$7 < 0 || i$7 >= cdat3.$length) ? ($throwRuntimeError("index out of range"), undefined) : cdat3.$array[cdat3.$offset + i$7]))) >> 0; + if (sum >= best) { + break; + } + i$7 = i$7 + (1) >> 0; + } + if (sum < best) { + best = sum; + filter$1 = 3; + } + return filter$1; + }; + zeroMemory = function(v) { + var _i, _ref, i, v; + _ref = v; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + ((i < 0 || i >= v.$length) ? ($throwRuntimeError("index out of range"), undefined) : v.$array[v.$offset + i] = 0); + _i++; + } + }; + encoder.ptr.prototype.writeImage = function(w, m, cb, level) { + var _1, _2, _i, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, b, b$1, b$2, bpp, c, c$1, c$2, c$3, cb, cr, cr0, e, err, err$1, f, g, g$1, gray, i, i$1, j, j0, j1, level, m, nrgba, offset, offset$1, offset$2, paletted, pi, pix, pr, r, r$1, rgba, stride, sz, w, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$25, x$26, x$27, x$28, x$29, x$3, x$30, x$31, x$32, x$33, x$34, x$35, x$36, x$37, x$38, x$39, x$4, x$40, x$41, x$42, x$43, x$44, x$45, x$46, x$47, x$48, x$49, x$5, x$50, x$51, x$52, x$53, x$54, x$55, x$56, x$57, x$58, x$59, x$6, x$60, x$61, x$62, x$63, x$7, x$8, x$9, y, zw, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _2 = $f._2; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$13 = $f._r$13; _r$14 = $f._r$14; _r$15 = $f._r$15; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _ref = $f._ref; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tmp$6 = $f._tmp$6; _tmp$7 = $f._tmp$7; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; _tuple$5 = $f._tuple$5; _tuple$6 = $f._tuple$6; _tuple$7 = $f._tuple$7; b = $f.b; b$1 = $f.b$1; b$2 = $f.b$2; bpp = $f.bpp; c = $f.c; c$1 = $f.c$1; c$2 = $f.c$2; c$3 = $f.c$3; cb = $f.cb; cr = $f.cr; cr0 = $f.cr0; e = $f.e; err = $f.err; err$1 = $f.err$1; f = $f.f; g = $f.g; g$1 = $f.g$1; gray = $f.gray; i = $f.i; i$1 = $f.i$1; j = $f.j; j0 = $f.j0; j1 = $f.j1; level = $f.level; m = $f.m; nrgba = $f.nrgba; offset = $f.offset; offset$1 = $f.offset$1; offset$2 = $f.offset$2; paletted = $f.paletted; pi = $f.pi; pix = $f.pix; pr = $f.pr; r = $f.r; r$1 = $f.r$1; rgba = $f.rgba; stride = $f.stride; sz = $f.sz; w = $f.w; x = $f.x; x$1 = $f.x$1; x$10 = $f.x$10; x$11 = $f.x$11; x$12 = $f.x$12; x$13 = $f.x$13; x$14 = $f.x$14; x$15 = $f.x$15; x$16 = $f.x$16; x$17 = $f.x$17; x$18 = $f.x$18; x$19 = $f.x$19; x$2 = $f.x$2; x$20 = $f.x$20; x$21 = $f.x$21; x$22 = $f.x$22; x$23 = $f.x$23; x$24 = $f.x$24; x$25 = $f.x$25; x$26 = $f.x$26; x$27 = $f.x$27; x$28 = $f.x$28; x$29 = $f.x$29; x$3 = $f.x$3; x$30 = $f.x$30; x$31 = $f.x$31; x$32 = $f.x$32; x$33 = $f.x$33; x$34 = $f.x$34; x$35 = $f.x$35; x$36 = $f.x$36; x$37 = $f.x$37; x$38 = $f.x$38; x$39 = $f.x$39; x$4 = $f.x$4; x$40 = $f.x$40; x$41 = $f.x$41; x$42 = $f.x$42; x$43 = $f.x$43; x$44 = $f.x$44; x$45 = $f.x$45; x$46 = $f.x$46; x$47 = $f.x$47; x$48 = $f.x$48; x$49 = $f.x$49; x$5 = $f.x$5; x$50 = $f.x$50; x$51 = $f.x$51; x$52 = $f.x$52; x$53 = $f.x$53; x$54 = $f.x$54; x$55 = $f.x$55; x$56 = $f.x$56; x$57 = $f.x$57; x$58 = $f.x$58; x$59 = $f.x$59; x$6 = $f.x$6; x$60 = $f.x$60; x$61 = $f.x$61; x$62 = $f.x$62; x$63 = $f.x$63; x$7 = $f.x$7; x$8 = $f.x$8; x$9 = $f.x$9; y = $f.y; zw = $f.zw; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + cr = [cr]; + e = this; + /* */ if (e.zw === ptrType$9.nil || !((e.zwLevel === level))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (e.zw === ptrType$9.nil || !((e.zwLevel === level))) { */ case 1: + _r = zlib.NewWriterLevel(w, level); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + zw = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + e.zw = zw; + e.zwLevel = level; + $s = 3; continue; + /* } else { */ case 2: + $r = e.zw.Reset(w); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 3: + $deferred.push([$methodVal(e.zw, "Close"), []]); + bpp = 0; + _1 = cb; + if (_1 === (4)) { + bpp = 1; + } else if (_1 === (6)) { + bpp = 3; + } else if (_1 === (10)) { + bpp = 1; + } else if (_1 === (11)) { + bpp = 4; + } else if (_1 === (14)) { + bpp = 6; + } else if (_1 === (15)) { + bpp = 8; + } else if (_1 === (12)) { + bpp = 2; + } + _r$1 = m.Bounds(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + b = $clone(_r$1, image.Rectangle); + sz = 1 + ($imul(bpp, $clone(b, image.Rectangle).Dx())) >> 0; + _ref = e.cr; + _i = 0; + while (true) { + if (!(_i < 5)) { break; } + i = _i; + if ((x = e.cr, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i])).$capacity < sz) { + (x$1 = e.cr, ((i < 0 || i >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[i] = $makeSlice(sliceType$1, sz))); + } else { + (x$3 = e.cr, ((i < 0 || i >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[i] = $subslice((x$2 = e.cr, ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i])), 0, sz))); + } + (x$4 = (x$5 = e.cr, ((i < 0 || i >= x$5.length) ? ($throwRuntimeError("index out of range"), undefined) : x$5[i])), (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0] = ((i << 24 >>> 24)))); + _i++; + } + cr[0] = $clone(e.cr, arrayType$3); + if (e.pr.$capacity < sz) { + e.pr = $makeSlice(sliceType$1, sz); + } else { + e.pr = $subslice(e.pr, 0, sz); + zeroMemory(e.pr); + } + pr = e.pr; + _tuple$1 = $assertType(m, ptrType, true); + gray = _tuple$1[0]; + _tuple$2 = $assertType(m, ptrType$1, true); + rgba = _tuple$2[0]; + _tuple$3 = $assertType(m, ptrType$2, true); + paletted = _tuple$3[0]; + _tuple$4 = $assertType(m, ptrType$3, true); + nrgba = _tuple$4[0]; + y = b.Min.Y; + /* while (true) { */ case 7: + /* if (!(y < b.Max.Y)) { break; } */ if(!(y < b.Max.Y)) { $s = 8; continue; } + i$1 = 1; + _2 = cb; + /* */ if (_2 === (4)) { $s = 10; continue; } + /* */ if (_2 === (6)) { $s = 11; continue; } + /* */ if (_2 === (10)) { $s = 12; continue; } + /* */ if (_2 === (11)) { $s = 13; continue; } + /* */ if (_2 === (12)) { $s = 14; continue; } + /* */ if (_2 === (14)) { $s = 15; continue; } + /* */ if (_2 === (15)) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (_2 === (4)) { */ case 10: + /* */ if (!(gray === ptrType.nil)) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (!(gray === ptrType.nil)) { */ case 18: + offset = $imul(((y - b.Min.Y >> 0)), gray.Stride); + $copySlice($subslice(cr[0][0], 1), $subslice(gray.Pix, offset, (offset + $clone(b, image.Rectangle).Dx() >> 0))); + $s = 20; continue; + /* } else { */ case 19: + x$6 = b.Min.X; + /* while (true) { */ case 21: + /* if (!(x$6 < b.Max.X)) { break; } */ if(!(x$6 < b.Max.X)) { $s = 22; continue; } + _r$2 = m.At(x$6, y); /* */ $s = 23; case 23: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = color.GrayModel.Convert(_r$2); /* */ $s = 24; case 24: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + c = $clone($assertType(_r$3, color.Gray), color.Gray); + (x$7 = cr[0][0], ((i$1 < 0 || i$1 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + i$1] = c.Y)); + i$1 = i$1 + (1) >> 0; + x$6 = x$6 + (1) >> 0; + /* } */ $s = 21; continue; case 22: + /* } */ case 20: + $s = 17; continue; + /* } else if (_2 === (6)) { */ case 11: + cr0 = cr[0][0]; + _tmp = 0; + _tmp$1 = (sliceType$1.nil); + stride = _tmp; + pix = _tmp$1; + if (!(rgba === ptrType$1.nil)) { + _tmp$2 = rgba.Stride; + _tmp$3 = rgba.Pix; + stride = _tmp$2; + pix = _tmp$3; + } else if (!(nrgba === ptrType$3.nil)) { + _tmp$4 = nrgba.Stride; + _tmp$5 = nrgba.Pix; + stride = _tmp$4; + pix = _tmp$5; + } + /* */ if (!((stride === 0))) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (!((stride === 0))) { */ case 25: + j0 = $imul(((y - b.Min.Y >> 0)), stride); + j1 = j0 + ($imul($clone(b, image.Rectangle).Dx(), 4)) >> 0; + j = j0; + while (true) { + if (!(j < j1)) { break; } + (x$9 = i$1 + 0 >> 0, ((x$9 < 0 || x$9 >= cr0.$length) ? ($throwRuntimeError("index out of range"), undefined) : cr0.$array[cr0.$offset + x$9] = (x$8 = j + 0 >> 0, ((x$8 < 0 || x$8 >= pix.$length) ? ($throwRuntimeError("index out of range"), undefined) : pix.$array[pix.$offset + x$8])))); + (x$11 = i$1 + 1 >> 0, ((x$11 < 0 || x$11 >= cr0.$length) ? ($throwRuntimeError("index out of range"), undefined) : cr0.$array[cr0.$offset + x$11] = (x$10 = j + 1 >> 0, ((x$10 < 0 || x$10 >= pix.$length) ? ($throwRuntimeError("index out of range"), undefined) : pix.$array[pix.$offset + x$10])))); + (x$13 = i$1 + 2 >> 0, ((x$13 < 0 || x$13 >= cr0.$length) ? ($throwRuntimeError("index out of range"), undefined) : cr0.$array[cr0.$offset + x$13] = (x$12 = j + 2 >> 0, ((x$12 < 0 || x$12 >= pix.$length) ? ($throwRuntimeError("index out of range"), undefined) : pix.$array[pix.$offset + x$12])))); + i$1 = i$1 + (3) >> 0; + j = j + (4) >> 0; + } + $s = 27; continue; + /* } else { */ case 26: + x$14 = b.Min.X; + /* while (true) { */ case 28: + /* if (!(x$14 < b.Max.X)) { break; } */ if(!(x$14 < b.Max.X)) { $s = 29; continue; } + _r$4 = m.At(x$14, y); /* */ $s = 30; case 30: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$5 = _r$4.RGBA(); /* */ $s = 31; case 31: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple$5 = _r$5; + r = _tuple$5[0]; + g = _tuple$5[1]; + b$1 = _tuple$5[2]; + (x$15 = i$1 + 0 >> 0, ((x$15 < 0 || x$15 >= cr0.$length) ? ($throwRuntimeError("index out of range"), undefined) : cr0.$array[cr0.$offset + x$15] = (((r >>> 8 >>> 0) << 24 >>> 24)))); + (x$16 = i$1 + 1 >> 0, ((x$16 < 0 || x$16 >= cr0.$length) ? ($throwRuntimeError("index out of range"), undefined) : cr0.$array[cr0.$offset + x$16] = (((g >>> 8 >>> 0) << 24 >>> 24)))); + (x$17 = i$1 + 2 >> 0, ((x$17 < 0 || x$17 >= cr0.$length) ? ($throwRuntimeError("index out of range"), undefined) : cr0.$array[cr0.$offset + x$17] = (((b$1 >>> 8 >>> 0) << 24 >>> 24)))); + i$1 = i$1 + (3) >> 0; + x$14 = x$14 + (1) >> 0; + /* } */ $s = 28; continue; case 29: + /* } */ case 27: + $s = 17; continue; + /* } else if (_2 === (10)) { */ case 12: + /* */ if (!(paletted === ptrType$2.nil)) { $s = 32; continue; } + /* */ $s = 33; continue; + /* if (!(paletted === ptrType$2.nil)) { */ case 32: + offset$1 = $imul(((y - b.Min.Y >> 0)), paletted.Stride); + $copySlice($subslice(cr[0][0], 1), $subslice(paletted.Pix, offset$1, (offset$1 + $clone(b, image.Rectangle).Dx() >> 0))); + $s = 34; continue; + /* } else { */ case 33: + pi = $assertType(m, image.PalettedImage); + x$18 = b.Min.X; + /* while (true) { */ case 35: + /* if (!(x$18 < b.Max.X)) { break; } */ if(!(x$18 < b.Max.X)) { $s = 36; continue; } + _r$6 = pi.ColorIndexAt(x$18, y); /* */ $s = 37; case 37: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + (x$19 = cr[0][0], ((i$1 < 0 || i$1 >= x$19.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$19.$array[x$19.$offset + i$1] = _r$6)); + i$1 = i$1 + (1) >> 0; + x$18 = x$18 + (1) >> 0; + /* } */ $s = 35; continue; case 36: + /* } */ case 34: + $s = 17; continue; + /* } else if (_2 === (11)) { */ case 13: + /* */ if (!(nrgba === ptrType$3.nil)) { $s = 38; continue; } + /* */ $s = 39; continue; + /* if (!(nrgba === ptrType$3.nil)) { */ case 38: + offset$2 = $imul(((y - b.Min.Y >> 0)), nrgba.Stride); + $copySlice($subslice(cr[0][0], 1), $subslice(nrgba.Pix, offset$2, (offset$2 + ($imul($clone(b, image.Rectangle).Dx(), 4)) >> 0))); + $s = 40; continue; + /* } else { */ case 39: + x$20 = b.Min.X; + /* while (true) { */ case 41: + /* if (!(x$20 < b.Max.X)) { break; } */ if(!(x$20 < b.Max.X)) { $s = 42; continue; } + _r$7 = m.At(x$20, y); /* */ $s = 43; case 43: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$8 = color.NRGBAModel.Convert(_r$7); /* */ $s = 44; case 44: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + c$1 = $clone($assertType(_r$8, color.NRGBA), color.NRGBA); + (x$21 = cr[0][0], x$22 = i$1 + 0 >> 0, ((x$22 < 0 || x$22 >= x$21.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$21.$array[x$21.$offset + x$22] = c$1.R)); + (x$23 = cr[0][0], x$24 = i$1 + 1 >> 0, ((x$24 < 0 || x$24 >= x$23.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$23.$array[x$23.$offset + x$24] = c$1.G)); + (x$25 = cr[0][0], x$26 = i$1 + 2 >> 0, ((x$26 < 0 || x$26 >= x$25.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$25.$array[x$25.$offset + x$26] = c$1.B)); + (x$27 = cr[0][0], x$28 = i$1 + 3 >> 0, ((x$28 < 0 || x$28 >= x$27.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$27.$array[x$27.$offset + x$28] = c$1.A)); + i$1 = i$1 + (4) >> 0; + x$20 = x$20 + (1) >> 0; + /* } */ $s = 41; continue; case 42: + /* } */ case 40: + $s = 17; continue; + /* } else if (_2 === (12)) { */ case 14: + x$29 = b.Min.X; + /* while (true) { */ case 45: + /* if (!(x$29 < b.Max.X)) { break; } */ if(!(x$29 < b.Max.X)) { $s = 46; continue; } + _r$9 = m.At(x$29, y); /* */ $s = 47; case 47: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$10 = color.Gray16Model.Convert(_r$9); /* */ $s = 48; case 48: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + c$2 = $clone($assertType(_r$10, color.Gray16), color.Gray16); + (x$30 = cr[0][0], x$31 = i$1 + 0 >> 0, ((x$31 < 0 || x$31 >= x$30.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$30.$array[x$30.$offset + x$31] = (((c$2.Y >>> 8 << 16 >>> 16) << 24 >>> 24)))); + (x$32 = cr[0][0], x$33 = i$1 + 1 >> 0, ((x$33 < 0 || x$33 >= x$32.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$32.$array[x$32.$offset + x$33] = ((c$2.Y << 24 >>> 24)))); + i$1 = i$1 + (2) >> 0; + x$29 = x$29 + (1) >> 0; + /* } */ $s = 45; continue; case 46: + $s = 17; continue; + /* } else if (_2 === (14)) { */ case 15: + x$34 = b.Min.X; + /* while (true) { */ case 49: + /* if (!(x$34 < b.Max.X)) { break; } */ if(!(x$34 < b.Max.X)) { $s = 50; continue; } + _r$11 = m.At(x$34, y); /* */ $s = 51; case 51: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _r$12 = _r$11.RGBA(); /* */ $s = 52; case 52: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _tuple$6 = _r$12; + r$1 = _tuple$6[0]; + g$1 = _tuple$6[1]; + b$2 = _tuple$6[2]; + (x$35 = cr[0][0], x$36 = i$1 + 0 >> 0, ((x$36 < 0 || x$36 >= x$35.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$35.$array[x$35.$offset + x$36] = (((r$1 >>> 8 >>> 0) << 24 >>> 24)))); + (x$37 = cr[0][0], x$38 = i$1 + 1 >> 0, ((x$38 < 0 || x$38 >= x$37.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$37.$array[x$37.$offset + x$38] = ((r$1 << 24 >>> 24)))); + (x$39 = cr[0][0], x$40 = i$1 + 2 >> 0, ((x$40 < 0 || x$40 >= x$39.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$39.$array[x$39.$offset + x$40] = (((g$1 >>> 8 >>> 0) << 24 >>> 24)))); + (x$41 = cr[0][0], x$42 = i$1 + 3 >> 0, ((x$42 < 0 || x$42 >= x$41.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$41.$array[x$41.$offset + x$42] = ((g$1 << 24 >>> 24)))); + (x$43 = cr[0][0], x$44 = i$1 + 4 >> 0, ((x$44 < 0 || x$44 >= x$43.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$43.$array[x$43.$offset + x$44] = (((b$2 >>> 8 >>> 0) << 24 >>> 24)))); + (x$45 = cr[0][0], x$46 = i$1 + 5 >> 0, ((x$46 < 0 || x$46 >= x$45.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$45.$array[x$45.$offset + x$46] = ((b$2 << 24 >>> 24)))); + i$1 = i$1 + (6) >> 0; + x$34 = x$34 + (1) >> 0; + /* } */ $s = 49; continue; case 50: + $s = 17; continue; + /* } else if (_2 === (15)) { */ case 16: + x$47 = b.Min.X; + /* while (true) { */ case 53: + /* if (!(x$47 < b.Max.X)) { break; } */ if(!(x$47 < b.Max.X)) { $s = 54; continue; } + _r$13 = m.At(x$47, y); /* */ $s = 55; case 55: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _r$14 = color.NRGBA64Model.Convert(_r$13); /* */ $s = 56; case 56: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + c$3 = $clone($assertType(_r$14, color.NRGBA64), color.NRGBA64); + (x$48 = cr[0][0], x$49 = i$1 + 0 >> 0, ((x$49 < 0 || x$49 >= x$48.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$48.$array[x$48.$offset + x$49] = (((c$3.R >>> 8 << 16 >>> 16) << 24 >>> 24)))); + (x$50 = cr[0][0], x$51 = i$1 + 1 >> 0, ((x$51 < 0 || x$51 >= x$50.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$50.$array[x$50.$offset + x$51] = ((c$3.R << 24 >>> 24)))); + (x$52 = cr[0][0], x$53 = i$1 + 2 >> 0, ((x$53 < 0 || x$53 >= x$52.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$52.$array[x$52.$offset + x$53] = (((c$3.G >>> 8 << 16 >>> 16) << 24 >>> 24)))); + (x$54 = cr[0][0], x$55 = i$1 + 3 >> 0, ((x$55 < 0 || x$55 >= x$54.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$54.$array[x$54.$offset + x$55] = ((c$3.G << 24 >>> 24)))); + (x$56 = cr[0][0], x$57 = i$1 + 4 >> 0, ((x$57 < 0 || x$57 >= x$56.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$56.$array[x$56.$offset + x$57] = (((c$3.B >>> 8 << 16 >>> 16) << 24 >>> 24)))); + (x$58 = cr[0][0], x$59 = i$1 + 5 >> 0, ((x$59 < 0 || x$59 >= x$58.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$58.$array[x$58.$offset + x$59] = ((c$3.B << 24 >>> 24)))); + (x$60 = cr[0][0], x$61 = i$1 + 6 >> 0, ((x$61 < 0 || x$61 >= x$60.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$60.$array[x$60.$offset + x$61] = (((c$3.A >>> 8 << 16 >>> 16) << 24 >>> 24)))); + (x$62 = cr[0][0], x$63 = i$1 + 7 >> 0, ((x$63 < 0 || x$63 >= x$62.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$62.$array[x$62.$offset + x$63] = ((c$3.A << 24 >>> 24)))); + i$1 = i$1 + (8) >> 0; + x$47 = x$47 + (1) >> 0; + /* } */ $s = 53; continue; case 54: + /* } */ case 17: + case 9: + f = 0; + if (!((level === 0)) && !((cb === 10))) { + f = filter(cr[0], pr, bpp); + } + _r$15 = e.zw.Write(((f < 0 || f >= cr[0].length) ? ($throwRuntimeError("index out of range"), undefined) : cr[0][f])); /* */ $s = 57; case 57: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + _tuple$7 = _r$15; + err$1 = _tuple$7[1]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return err$1; + } + _tmp$6 = cr[0][0]; + _tmp$7 = pr; + pr = _tmp$6; + cr[0][0] = _tmp$7; + y = y + (1) >> 0; + /* } */ $s = 7; continue; case 8: + $s = -1; return $ifaceNil; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: encoder.ptr.prototype.writeImage }; } $f._1 = _1; $f._2 = _2; $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$13 = _r$13; $f._r$14 = _r$14; $f._r$15 = _r$15; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._ref = _ref; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tmp$6 = _tmp$6; $f._tmp$7 = _tmp$7; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f._tuple$5 = _tuple$5; $f._tuple$6 = _tuple$6; $f._tuple$7 = _tuple$7; $f.b = b; $f.b$1 = b$1; $f.b$2 = b$2; $f.bpp = bpp; $f.c = c; $f.c$1 = c$1; $f.c$2 = c$2; $f.c$3 = c$3; $f.cb = cb; $f.cr = cr; $f.cr0 = cr0; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.f = f; $f.g = g; $f.g$1 = g$1; $f.gray = gray; $f.i = i; $f.i$1 = i$1; $f.j = j; $f.j0 = j0; $f.j1 = j1; $f.level = level; $f.m = m; $f.nrgba = nrgba; $f.offset = offset; $f.offset$1 = offset$1; $f.offset$2 = offset$2; $f.paletted = paletted; $f.pi = pi; $f.pix = pix; $f.pr = pr; $f.r = r; $f.r$1 = r$1; $f.rgba = rgba; $f.stride = stride; $f.sz = sz; $f.w = w; $f.x = x; $f.x$1 = x$1; $f.x$10 = x$10; $f.x$11 = x$11; $f.x$12 = x$12; $f.x$13 = x$13; $f.x$14 = x$14; $f.x$15 = x$15; $f.x$16 = x$16; $f.x$17 = x$17; $f.x$18 = x$18; $f.x$19 = x$19; $f.x$2 = x$2; $f.x$20 = x$20; $f.x$21 = x$21; $f.x$22 = x$22; $f.x$23 = x$23; $f.x$24 = x$24; $f.x$25 = x$25; $f.x$26 = x$26; $f.x$27 = x$27; $f.x$28 = x$28; $f.x$29 = x$29; $f.x$3 = x$3; $f.x$30 = x$30; $f.x$31 = x$31; $f.x$32 = x$32; $f.x$33 = x$33; $f.x$34 = x$34; $f.x$35 = x$35; $f.x$36 = x$36; $f.x$37 = x$37; $f.x$38 = x$38; $f.x$39 = x$39; $f.x$4 = x$4; $f.x$40 = x$40; $f.x$41 = x$41; $f.x$42 = x$42; $f.x$43 = x$43; $f.x$44 = x$44; $f.x$45 = x$45; $f.x$46 = x$46; $f.x$47 = x$47; $f.x$48 = x$48; $f.x$49 = x$49; $f.x$5 = x$5; $f.x$50 = x$50; $f.x$51 = x$51; $f.x$52 = x$52; $f.x$53 = x$53; $f.x$54 = x$54; $f.x$55 = x$55; $f.x$56 = x$56; $f.x$57 = x$57; $f.x$58 = x$58; $f.x$59 = x$59; $f.x$6 = x$6; $f.x$60 = x$60; $f.x$61 = x$61; $f.x$62 = x$62; $f.x$63 = x$63; $f.x$7 = x$7; $f.x$8 = x$8; $f.x$9 = x$9; $f.y = y; $f.zw = zw; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + encoder.prototype.writeImage = function(w, m, cb, level) { return this.$val.writeImage(w, m, cb, level); }; + encoder.ptr.prototype.writeIDATs = function() { + var _r, _r$1, e, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; e = $f.e; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + e = this; + if (!($interfaceIsEqual(e.err, $ifaceNil))) { + $s = -1; return; + } + if (e.bw === ptrType$10.nil) { + e.bw = bufio.NewWriterSize(e, 32768); + } else { + e.bw.Reset(e); + } + _r = e.writeImage(e.bw, e.m, e.cb, levelToZlib(e.enc.CompressionLevel)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + e.err = _r; + if (!($interfaceIsEqual(e.err, $ifaceNil))) { + $s = -1; return; + } + _r$1 = e.bw.Flush(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + e.err = _r$1; + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: encoder.ptr.prototype.writeIDATs }; } $f._r = _r; $f._r$1 = _r$1; $f.e = e; $f.$s = $s; $f.$r = $r; return $f; + }; + encoder.prototype.writeIDATs = function() { return this.$val.writeIDATs(); }; + levelToZlib = function(l) { + var _1, l; + _1 = l; + if (_1 === (0)) { + return -1; + } else if (_1 === (-1)) { + return 0; + } else if (_1 === (-2)) { + return 1; + } else if (_1 === (-3)) { + return 9; + } else { + return -1; + } + }; + encoder.ptr.prototype.writeIEND = function() { + var e, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; e = $f.e; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + e = this; + $r = e.writeChunk(sliceType$1.nil, "IEND"); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: encoder.ptr.prototype.writeIEND }; } $f.e = e; $f.$s = $s; $f.$r = $r; return $f; + }; + encoder.prototype.writeIEND = function() { return this.$val.writeIEND(); }; + Encode = function(w, m) { + var _r, e, m, w, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; m = $f.m; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + e = new Encoder.ptr(0, $ifaceNil); + _r = e.Encode(w, m); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: Encode }; } $f._r = _r; $f.e = e; $f.m = m; $f.w = w; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Encode = Encode; + Encoder.ptr.prototype.Encode = function(w, m) { + var _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, buffer, e, enc, m, mh, mw, ok, pal, w, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; buffer = $f.buffer; e = $f.e; enc = $f.enc; m = $f.m; mh = $f.mh; mw = $f.mw; ok = $f.ok; pal = $f.pal; w = $f.w; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + enc = this; + _r = m.Bounds(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = $clone(_r, image.Rectangle).Dx(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tmp = (new $Int64(0, _r$1)); + _r$2 = m.Bounds(); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = $clone(_r$2, image.Rectangle).Dy(); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tmp$1 = (new $Int64(0, _r$3)); + mw = _tmp; + mh = _tmp$1; + if ((mw.$high < 0 || (mw.$high === 0 && mw.$low <= 0)) || (mh.$high < 0 || (mh.$high === 0 && mh.$low <= 0)) || (mw.$high > 1 || (mw.$high === 1 && mw.$low >= 0)) || (mh.$high > 1 || (mh.$high === 1 && mh.$low >= 0))) { + $s = -1; return new FormatError(("invalid image size: " + strconv.FormatInt(mw, 10) + "x" + strconv.FormatInt(mh, 10))); + } + e = ptrType$11.nil; + /* */ if (!($interfaceIsEqual(enc.BufferPool, $ifaceNil))) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!($interfaceIsEqual(enc.BufferPool, $ifaceNil))) { */ case 5: + _r$4 = enc.BufferPool.Get(); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + buffer = _r$4; + e = ($pointerOfStructConversion(buffer, ptrType$11)); + /* } */ case 6: + if (e === ptrType$11.nil) { + e = new encoder.ptr(ptrType$12.nil, $ifaceNil, $ifaceNil, 0, $ifaceNil, arrayType$4.zero(), arrayType$5.zero(), arrayType$6.zero(), arrayType$3.zero(), sliceType$1.nil, ptrType$9.nil, 0, ptrType$10.nil); + } + /* */ if (!($interfaceIsEqual(enc.BufferPool, $ifaceNil))) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!($interfaceIsEqual(enc.BufferPool, $ifaceNil))) { */ case 8: + $deferred.push([$methodVal(enc.BufferPool, "Put"), [($pointerOfStructConversion(e, ptrType$13))]]); + /* } */ case 9: + e.enc = enc; + e.w = w; + e.m = m; + pal = color.Palette.nil; + _tuple = $assertType(m, image.PalettedImage, true); + ok = _tuple[1]; + /* */ if (ok) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (ok) { */ case 10: + _r$5 = m.ColorModel(); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple$1 = $assertType(_r$5, color.Palette, true); + pal = _tuple$1[0]; + /* } */ case 11: + /* */ if (!(pal === color.Palette.nil)) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (!(pal === color.Palette.nil)) { */ case 13: + e.cb = 10; + $s = 15; continue; + /* } else { */ case 14: + _r$6 = m.ColorModel(); /* */ $s = 17; case 17: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _1 = _r$6; + /* */ if ($interfaceIsEqual(_1, (color.GrayModel))) { $s = 18; continue; } + /* */ if ($interfaceIsEqual(_1, (color.Gray16Model))) { $s = 19; continue; } + /* */ if ($interfaceIsEqual(_1, (color.RGBAModel)) || $interfaceIsEqual(_1, (color.NRGBAModel)) || $interfaceIsEqual(_1, (color.AlphaModel))) { $s = 20; continue; } + _r$7 = opaque(m); /* */ $s = 24; case 24: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + /* */ if (_r$7) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if ($interfaceIsEqual(_1, (color.GrayModel))) { */ case 18: + e.cb = 4; + $s = 23; continue; + /* } else if ($interfaceIsEqual(_1, (color.Gray16Model))) { */ case 19: + e.cb = 12; + $s = 23; continue; + /* } else if ($interfaceIsEqual(_1, (color.RGBAModel)) || $interfaceIsEqual(_1, (color.NRGBAModel)) || $interfaceIsEqual(_1, (color.AlphaModel))) { */ case 20: + _r$8 = opaque(m); /* */ $s = 28; case 28: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + /* */ if (_r$8) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (_r$8) { */ case 25: + e.cb = 6; + $s = 27; continue; + /* } else { */ case 26: + e.cb = 11; + /* } */ case 27: + $s = 23; continue; + /* } else if (_r$7) { */ case 21: + e.cb = 14; + $s = 23; continue; + /* } else { */ case 22: + e.cb = 15; + /* } */ case 23: + case 16: + /* } */ case 15: + _r$9 = io.WriteString(w, "\x89PNG\r\n\x1A\n"); /* */ $s = 29; case 29: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _tuple$2 = _r$9; + e.err = _tuple$2[1]; + $r = e.writeIHDR(); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!(pal === color.Palette.nil)) { $s = 31; continue; } + /* */ $s = 32; continue; + /* if (!(pal === color.Palette.nil)) { */ case 31: + $r = e.writePLTEAndTRNS(pal); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 32: + $r = e.writeIDATs(); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = e.writeIEND(); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return e.err; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: Encoder.ptr.prototype.Encode }; } $f._1 = _1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.buffer = buffer; $f.e = e; $f.enc = enc; $f.m = m; $f.mh = mh; $f.mw = mw; $f.ok = ok; $f.pal = pal; $f.w = w; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + Encoder.prototype.Encode = function(w, m) { return this.$val.Encode(w, m); }; + ptrType$14.methods = [{prop: "parseIHDR", name: "parseIHDR", pkg: "image/png", typ: $funcType([$Uint32], [$error], false)}, {prop: "parsePLTE", name: "parsePLTE", pkg: "image/png", typ: $funcType([$Uint32], [$error], false)}, {prop: "parsetRNS", name: "parsetRNS", pkg: "image/png", typ: $funcType([$Uint32], [$error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "decode", name: "decode", pkg: "image/png", typ: $funcType([], [image.Image, $error], false)}, {prop: "readImagePass", name: "readImagePass", pkg: "image/png", typ: $funcType([io.Reader, $Int, $Bool], [image.Image, $error], false)}, {prop: "mergePassInto", name: "mergePassInto", pkg: "image/png", typ: $funcType([image.Image, image.Image, $Int], [], false)}, {prop: "parseIDAT", name: "parseIDAT", pkg: "image/png", typ: $funcType([$Uint32], [$error], false)}, {prop: "parseIEND", name: "parseIEND", pkg: "image/png", typ: $funcType([$Uint32], [$error], false)}, {prop: "parseChunk", name: "parseChunk", pkg: "image/png", typ: $funcType([], [$error], false)}, {prop: "verifyChecksum", name: "verifyChecksum", pkg: "image/png", typ: $funcType([], [$error], false)}, {prop: "checkHeader", name: "checkHeader", pkg: "image/png", typ: $funcType([], [$error], false)}]; + FormatError.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + UnsupportedError.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$12.methods = [{prop: "Encode", name: "Encode", pkg: "", typ: $funcType([io.Writer, image.Image], [$error], false)}]; + ptrType$11.methods = [{prop: "writeChunk", name: "writeChunk", pkg: "image/png", typ: $funcType([sliceType$1, $String], [], false)}, {prop: "writeIHDR", name: "writeIHDR", pkg: "image/png", typ: $funcType([], [], false)}, {prop: "writePLTEAndTRNS", name: "writePLTEAndTRNS", pkg: "image/png", typ: $funcType([color.Palette], [], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "writeImage", name: "writeImage", pkg: "image/png", typ: $funcType([io.Writer, image.Image, $Int, $Int], [$error], false)}, {prop: "writeIDATs", name: "writeIDATs", pkg: "image/png", typ: $funcType([], [], false)}, {prop: "writeIEND", name: "writeIEND", pkg: "image/png", typ: $funcType([], [], false)}]; + interlaceScan.init("image/png", [{prop: "xFactor", name: "xFactor", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "yFactor", name: "yFactor", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "xOffset", name: "xOffset", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "yOffset", name: "yOffset", embedded: false, exported: false, typ: $Int, tag: ""}]); + decoder.init("image/png", [{prop: "r", name: "r", embedded: false, exported: false, typ: io.Reader, tag: ""}, {prop: "img", name: "img", embedded: false, exported: false, typ: image.Image, tag: ""}, {prop: "crc", name: "crc", embedded: false, exported: false, typ: hash.Hash32, tag: ""}, {prop: "width", name: "width", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "height", name: "height", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "depth", name: "depth", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "palette", name: "palette", embedded: false, exported: false, typ: color.Palette, tag: ""}, {prop: "cb", name: "cb", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "stage", name: "stage", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "idatLength", name: "idatLength", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "tmp", name: "tmp", embedded: false, exported: false, typ: arrayType$1, tag: ""}, {prop: "interlace", name: "interlace", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "useTransparent", name: "useTransparent", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "transparent", name: "transparent", embedded: false, exported: false, typ: arrayType$2, tag: ""}]); + Encoder.init("", [{prop: "CompressionLevel", name: "CompressionLevel", embedded: false, exported: true, typ: CompressionLevel, tag: ""}, {prop: "BufferPool", name: "BufferPool", embedded: false, exported: true, typ: EncoderBufferPool, tag: ""}]); + EncoderBufferPool.init([{prop: "Get", name: "Get", pkg: "", typ: $funcType([], [ptrType$13], false)}, {prop: "Put", name: "Put", pkg: "", typ: $funcType([ptrType$13], [], false)}]); + EncoderBuffer.init("image/png", [{prop: "enc", name: "enc", embedded: false, exported: false, typ: ptrType$12, tag: ""}, {prop: "w", name: "w", embedded: false, exported: false, typ: io.Writer, tag: ""}, {prop: "m", name: "m", embedded: false, exported: false, typ: image.Image, tag: ""}, {prop: "cb", name: "cb", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "header", name: "header", embedded: false, exported: false, typ: arrayType$4, tag: ""}, {prop: "footer", name: "footer", embedded: false, exported: false, typ: arrayType$5, tag: ""}, {prop: "tmp", name: "tmp", embedded: false, exported: false, typ: arrayType$6, tag: ""}, {prop: "cr", name: "cr", embedded: false, exported: false, typ: arrayType$3, tag: ""}, {prop: "pr", name: "pr", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "zw", name: "zw", embedded: false, exported: false, typ: ptrType$9, tag: ""}, {prop: "zwLevel", name: "zwLevel", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "bw", name: "bw", embedded: false, exported: false, typ: ptrType$10, tag: ""}]); + encoder.init("image/png", [{prop: "enc", name: "enc", embedded: false, exported: false, typ: ptrType$12, tag: ""}, {prop: "w", name: "w", embedded: false, exported: false, typ: io.Writer, tag: ""}, {prop: "m", name: "m", embedded: false, exported: false, typ: image.Image, tag: ""}, {prop: "cb", name: "cb", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "header", name: "header", embedded: false, exported: false, typ: arrayType$4, tag: ""}, {prop: "footer", name: "footer", embedded: false, exported: false, typ: arrayType$5, tag: ""}, {prop: "tmp", name: "tmp", embedded: false, exported: false, typ: arrayType$6, tag: ""}, {prop: "cr", name: "cr", embedded: false, exported: false, typ: arrayType$3, tag: ""}, {prop: "pr", name: "pr", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "zw", name: "zw", embedded: false, exported: false, typ: ptrType$9, tag: ""}, {prop: "zwLevel", name: "zwLevel", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "bw", name: "bw", embedded: false, exported: false, typ: ptrType$10, tag: ""}]); + opaquer.init([{prop: "Opaque", name: "Opaque", pkg: "", typ: $funcType([], [$Bool], false)}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = bufio.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = zlib.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = binary.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fmt.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = hash.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = crc32.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = image.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = color.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + interlacing = new sliceType([new interlaceScan.ptr(8, 8, 0, 0), new interlaceScan.ptr(8, 8, 4, 0), new interlaceScan.ptr(4, 8, 0, 4), new interlaceScan.ptr(4, 4, 2, 0), new interlaceScan.ptr(2, 4, 0, 2), new interlaceScan.ptr(2, 2, 1, 0), new interlaceScan.ptr(1, 2, 0, 1)]); + chunkOrderError = "chunk out of order"; + init(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["path/filepath"] = (function() { + var $pkg = {}, $init, errors, os, runtime, sort, strings, utf8; + errors = $packages["errors"]; + os = $packages["os"]; + runtime = $packages["runtime"]; + sort = $packages["sort"]; + strings = $packages["strings"]; + utf8 = $packages["unicode/utf8"]; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = os.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sort.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.ErrBadPattern = errors.New("syntax error in pattern"); + $pkg.SkipDir = errors.New("skip this directory"); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["io/ioutil"] = (function() { + var $pkg = {}, $init, bytes, io, os, filepath, sort, strconv, strings, sync, time, sliceType, sliceType$1, ptrType, blackHolePool, WriteFile; + bytes = $packages["bytes"]; + io = $packages["io"]; + os = $packages["os"]; + filepath = $packages["path/filepath"]; + sort = $packages["sort"]; + strconv = $packages["strconv"]; + strings = $packages["strings"]; + sync = $packages["sync"]; + time = $packages["time"]; + sliceType = $sliceType($emptyInterface); + sliceType$1 = $sliceType($Uint8); + ptrType = $ptrType(sliceType$1); + WriteFile = function(filename, data, perm) { + var _r, _r$1, _r$2, _tuple, _tuple$1, data, err, err1, f, filename, n, perm, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; data = $f.data; err = $f.err; err1 = $f.err1; f = $f.f; filename = $f.filename; n = $f.n; perm = $f.perm; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = os.OpenFile(filename, 1537, perm); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + f = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r$1 = f.Write(data); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + n = _tuple$1[0]; + err = _tuple$1[1]; + if ($interfaceIsEqual(err, $ifaceNil) && n < data.$length) { + err = io.ErrShortWrite; + } + _r$2 = f.Close(); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + err1 = _r$2; + if ($interfaceIsEqual(err, $ifaceNil)) { + err = err1; + } + $s = -1; return err; + /* */ } return; } if ($f === undefined) { $f = { $blk: WriteFile }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.data = data; $f.err = err; $f.err1 = err1; $f.f = f; $f.filename = filename; $f.n = n; $f.perm = perm; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.WriteFile = WriteFile; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = os.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = filepath.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sort.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sync.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = time.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + blackHolePool = new sync.Pool.ptr(0, 0, sliceType.nil, (function() { + var b, b$24ptr; + b = $makeSlice(sliceType$1, 8192); + return (b$24ptr || (b$24ptr = new ptrType(function() { return b; }, function($v) { b = $subslice(new sliceType$1($v.$array), $v.$offset, $v.$offset + $v.$length); }))); + })); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["github.com/skip2/go-qrcode"] = (function() { + var $pkg = {}, $init, bytes, errors, bitset, reedsolomon, image, color, png, io, ioutil, log, os, dataMode, dataEncoderType, segment, dataEncoder, QRCode, regularSymbol, symbol, RecoveryLevel, qrCodeVersion, block, dataBlock, sliceType, sliceType$1, sliceType$2, sliceType$3, sliceType$4, sliceType$5, structType, sliceType$6, sliceType$7, ptrType, sliceType$8, sliceType$9, sliceType$10, ptrType$1, sliceType$11, ptrType$2, ptrType$3, ptrType$4, sliceType$12, arrayType, sliceType$13, ptrType$5, alignmentPatternCenter, finderPattern, finderPatternSize, finderPatternHorizontalBorder, finderPatternVerticalBorder, alignmentPattern, versions, formatBitSequence, versionBitSequence, newDataEncoder, encodeAlphanumericCharacter, New, buildRegularSymbol, newSymbol, chooseQRCodeVersion; + bytes = $packages["bytes"]; + errors = $packages["errors"]; + bitset = $packages["github.com/skip2/go-qrcode/bitset"]; + reedsolomon = $packages["github.com/skip2/go-qrcode/reedsolomon"]; + image = $packages["image"]; + color = $packages["image/color"]; + png = $packages["image/png"]; + io = $packages["io"]; + ioutil = $packages["io/ioutil"]; + log = $packages["log"]; + os = $packages["os"]; + dataMode = $pkg.dataMode = $newType(1, $kindUint8, "qrcode.dataMode", true, "github.com/skip2/go-qrcode", false, null); + dataEncoderType = $pkg.dataEncoderType = $newType(1, $kindUint8, "qrcode.dataEncoderType", true, "github.com/skip2/go-qrcode", false, null); + segment = $pkg.segment = $newType(0, $kindStruct, "qrcode.segment", true, "github.com/skip2/go-qrcode", false, function(dataMode_, data_) { + this.$val = this; + if (arguments.length === 0) { + this.dataMode = 0; + this.data = sliceType$8.nil; + return; + } + this.dataMode = dataMode_; + this.data = data_; + }); + dataEncoder = $pkg.dataEncoder = $newType(0, $kindStruct, "qrcode.dataEncoder", true, "github.com/skip2/go-qrcode", false, function(minVersion_, maxVersion_, numericModeIndicator_, alphanumericModeIndicator_, byteModeIndicator_, numNumericCharCountBits_, numAlphanumericCharCountBits_, numByteCharCountBits_, data_, actual_, optimised_) { + this.$val = this; + if (arguments.length === 0) { + this.minVersion = 0; + this.maxVersion = 0; + this.numericModeIndicator = ptrType.nil; + this.alphanumericModeIndicator = ptrType.nil; + this.byteModeIndicator = ptrType.nil; + this.numNumericCharCountBits = 0; + this.numAlphanumericCharCountBits = 0; + this.numByteCharCountBits = 0; + this.data = sliceType$8.nil; + this.actual = sliceType$9.nil; + this.optimised = sliceType$9.nil; + return; + } + this.minVersion = minVersion_; + this.maxVersion = maxVersion_; + this.numericModeIndicator = numericModeIndicator_; + this.alphanumericModeIndicator = alphanumericModeIndicator_; + this.byteModeIndicator = byteModeIndicator_; + this.numNumericCharCountBits = numNumericCharCountBits_; + this.numAlphanumericCharCountBits = numAlphanumericCharCountBits_; + this.numByteCharCountBits = numByteCharCountBits_; + this.data = data_; + this.actual = actual_; + this.optimised = optimised_; + }); + QRCode = $pkg.QRCode = $newType(0, $kindStruct, "qrcode.QRCode", true, "github.com/skip2/go-qrcode", true, function(Content_, Level_, VersionNumber_, ForegroundColor_, BackgroundColor_, encoder_, version_, data_, symbol_, mask_) { + this.$val = this; + if (arguments.length === 0) { + this.Content = ""; + this.Level = 0; + this.VersionNumber = 0; + this.ForegroundColor = $ifaceNil; + this.BackgroundColor = $ifaceNil; + this.encoder = ptrType$2.nil; + this.version = new qrCodeVersion.ptr(0, 0, 0, sliceType$5.nil, 0); + this.data = ptrType.nil; + this.symbol = ptrType$4.nil; + this.mask = 0; + return; + } + this.Content = Content_; + this.Level = Level_; + this.VersionNumber = VersionNumber_; + this.ForegroundColor = ForegroundColor_; + this.BackgroundColor = BackgroundColor_; + this.encoder = encoder_; + this.version = version_; + this.data = data_; + this.symbol = symbol_; + this.mask = mask_; + }); + regularSymbol = $pkg.regularSymbol = $newType(0, $kindStruct, "qrcode.regularSymbol", true, "github.com/skip2/go-qrcode", false, function(version_, mask_, data_, symbol_, size_) { + this.$val = this; + if (arguments.length === 0) { + this.version = new qrCodeVersion.ptr(0, 0, 0, sliceType$5.nil, 0); + this.mask = 0; + this.data = ptrType.nil; + this.symbol = ptrType$4.nil; + this.size = 0; + return; + } + this.version = version_; + this.mask = mask_; + this.data = data_; + this.symbol = symbol_; + this.size = size_; + }); + symbol = $pkg.symbol = $newType(0, $kindStruct, "qrcode.symbol", true, "github.com/skip2/go-qrcode", false, function(module_, isUsed_, size_, symbolSize_, quietZoneSize_) { + this.$val = this; + if (arguments.length === 0) { + this.module = sliceType$3.nil; + this.isUsed = sliceType$3.nil; + this.size = 0; + this.symbolSize = 0; + this.quietZoneSize = 0; + return; + } + this.module = module_; + this.isUsed = isUsed_; + this.size = size_; + this.symbolSize = symbolSize_; + this.quietZoneSize = quietZoneSize_; + }); + RecoveryLevel = $pkg.RecoveryLevel = $newType(4, $kindInt, "qrcode.RecoveryLevel", true, "github.com/skip2/go-qrcode", true, null); + qrCodeVersion = $pkg.qrCodeVersion = $newType(0, $kindStruct, "qrcode.qrCodeVersion", true, "github.com/skip2/go-qrcode", false, function(version_, level_, dataEncoderType_, block_, numRemainderBits_) { + this.$val = this; + if (arguments.length === 0) { + this.version = 0; + this.level = 0; + this.dataEncoderType = 0; + this.block = sliceType$5.nil; + this.numRemainderBits = 0; + return; + } + this.version = version_; + this.level = level_; + this.dataEncoderType = dataEncoderType_; + this.block = block_; + this.numRemainderBits = numRemainderBits_; + }); + block = $pkg.block = $newType(0, $kindStruct, "qrcode.block", true, "github.com/skip2/go-qrcode", false, function(numBlocks_, numCodewords_, numDataCodewords_) { + this.$val = this; + if (arguments.length === 0) { + this.numBlocks = 0; + this.numCodewords = 0; + this.numDataCodewords = 0; + return; + } + this.numBlocks = numBlocks_; + this.numCodewords = numCodewords_; + this.numDataCodewords = numDataCodewords_; + }); + dataBlock = $newType(0, $kindStruct, "qrcode.dataBlock", true, "github.com/skip2/go-qrcode", false, function(data_, ecStartOffset_) { + this.$val = this; + if (arguments.length === 0) { + this.data = ptrType.nil; + this.ecStartOffset = 0; + return; + } + this.data = data_; + this.ecStartOffset = ecStartOffset_; + }); + sliceType = $sliceType($Int); + sliceType$1 = $sliceType(sliceType); + sliceType$2 = $sliceType($Bool); + sliceType$3 = $sliceType(sliceType$2); + sliceType$4 = $sliceType(qrCodeVersion); + sliceType$5 = $sliceType(block); + structType = $structType("github.com/skip2/go-qrcode", [{prop: "regular", name: "regular", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "micro", name: "micro", embedded: false, exported: false, typ: $Uint32, tag: ""}]); + sliceType$6 = $sliceType(structType); + sliceType$7 = $sliceType($Uint32); + ptrType = $ptrType(bitset.Bitset); + sliceType$8 = $sliceType($Uint8); + sliceType$9 = $sliceType(segment); + sliceType$10 = $sliceType($emptyInterface); + ptrType$1 = $ptrType(QRCode); + sliceType$11 = $sliceType(dataEncoderType); + ptrType$2 = $ptrType(dataEncoder); + ptrType$3 = $ptrType(qrCodeVersion); + ptrType$4 = $ptrType(symbol); + sliceType$12 = $sliceType(color.Color); + arrayType = $arrayType($Uint8, 64); + sliceType$13 = $sliceType(dataBlock); + ptrType$5 = $ptrType(regularSymbol); + newDataEncoder = function(t) { + var _1, d, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; d = $f.d; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + d = new dataEncoder.ptr(0, 0, ptrType.nil, ptrType.nil, ptrType.nil, 0, 0, 0, sliceType$8.nil, sliceType$9.nil, sliceType$9.nil); + _1 = t; + /* */ if (_1 === (0)) { $s = 2; continue; } + /* */ if (_1 === (1)) { $s = 3; continue; } + /* */ if (_1 === (2)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_1 === (0)) { */ case 2: + d = new dataEncoder.ptr(1, 9, bitset.New(new sliceType$2([false, false, false, true])), bitset.New(new sliceType$2([false, false, true, false])), bitset.New(new sliceType$2([false, true, false, false])), 10, 9, 8, sliceType$8.nil, sliceType$9.nil, sliceType$9.nil); + $s = 6; continue; + /* } else if (_1 === (1)) { */ case 3: + d = new dataEncoder.ptr(10, 26, bitset.New(new sliceType$2([false, false, false, true])), bitset.New(new sliceType$2([false, false, true, false])), bitset.New(new sliceType$2([false, true, false, false])), 12, 11, 16, sliceType$8.nil, sliceType$9.nil, sliceType$9.nil); + $s = 6; continue; + /* } else if (_1 === (2)) { */ case 4: + d = new dataEncoder.ptr(27, 40, bitset.New(new sliceType$2([false, false, false, true])), bitset.New(new sliceType$2([false, false, true, false])), bitset.New(new sliceType$2([false, true, false, false])), 14, 13, 16, sliceType$8.nil, sliceType$9.nil, sliceType$9.nil); + $s = 6; continue; + /* } else { */ case 5: + $r = log.Panic(new sliceType$10([new $String("Unknown dataEncoderType")])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + case 1: + $s = -1; return d; + /* */ } return; } if ($f === undefined) { $f = { $blk: newDataEncoder }; } $f._1 = _1; $f.d = d; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + dataEncoder.ptr.prototype.encode = function(data) { + var _i, _r, _ref, d, data, encoded, err, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; d = $f.d; data = $f.data; encoded = $f.encoded; err = $f.err; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + d = this; + d.data = data; + d.actual = sliceType$9.nil; + d.optimised = sliceType$9.nil; + if (data.$length === 0) { + $s = -1; return [ptrType.nil, errors.New("no data to encode")]; + } + d.classifyDataModes(); + _r = d.optimiseDataModes(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [ptrType.nil, err]; + } + encoded = bitset.New(new sliceType$2([])); + _ref = d.optimised; + _i = 0; + /* while (true) { */ case 2: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } + s = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), segment); + $r = d.encodeDataRaw(s.data, s.dataMode, encoded); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + /* } */ $s = 2; continue; case 3: + $s = -1; return [encoded, $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: dataEncoder.ptr.prototype.encode }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f.d = d; $f.data = data; $f.encoded = encoded; $f.err = err; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + dataEncoder.prototype.encode = function(data) { return this.$val.encode(data); }; + dataEncoder.ptr.prototype.classifyDataModes = function() { + var _i, _ref, d, i, mode, newMode, start, v; + d = this; + start = 0; + mode = 1; + _ref = d.data; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + newMode = 1; + if (v >= 48 && v <= 57) { + newMode = 2; + } else if ((v === 32) || (v === 36) || (v === 37) || (v === 42) || (v === 43) || (v === 45) || (v === 46) || (v === 47) || (v === 58) || (v >= 65 && v <= 90)) { + newMode = 4; + } else { + newMode = 8; + } + if (!((newMode === mode))) { + if (i > 0) { + d.actual = $append(d.actual, new segment.ptr(mode, $subslice(d.data, start, i))); + start = i; + } + mode = newMode; + } + _i++; + } + d.actual = $append(d.actual, new segment.ptr(mode, $subslice(d.data, start, d.data.$length))); + }; + dataEncoder.prototype.classifyDataModes = function() { return this.$val.classifyDataModes(); }; + dataEncoder.ptr.prototype.optimiseDataModes = function() { + var _r, _r$1, _r$2, _tuple, _tuple$1, _tuple$2, coalescedLength, d, err, i, j, k, mode, nextMode, nextNumChars, numChars, optimised, seperateLength1, seperateLength2, x, x$1, x$2, x$3, x$4, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; coalescedLength = $f.coalescedLength; d = $f.d; err = $f.err; i = $f.i; j = $f.j; k = $f.k; mode = $f.mode; nextMode = $f.nextMode; nextNumChars = $f.nextNumChars; numChars = $f.numChars; optimised = $f.optimised; seperateLength1 = $f.seperateLength1; seperateLength2 = $f.seperateLength2; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + d = this; + i = 0; + /* while (true) { */ case 1: + /* if (!(i < d.actual.$length)) { break; } */ if(!(i < d.actual.$length)) { $s = 2; continue; } + mode = (x = d.actual, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])).dataMode; + numChars = (x$1 = d.actual, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])).data.$length; + j = i + 1 >> 0; + /* while (true) { */ case 3: + /* if (!(j < d.actual.$length)) { break; } */ if(!(j < d.actual.$length)) { $s = 4; continue; } + nextNumChars = (x$2 = d.actual, ((j < 0 || j >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + j])).data.$length; + nextMode = (x$3 = d.actual, ((j < 0 || j >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + j])).dataMode; + if (nextMode > mode) { + /* break; */ $s = 4; continue; + } + _r = d.encodedLength(mode, numChars + nextNumChars >> 0); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + coalescedLength = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r$1 = d.encodedLength(mode, numChars); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + seperateLength1 = _tuple$1[0]; + err = _tuple$1[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r$2 = d.encodedLength(nextMode, nextNumChars); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$2 = _r$2; + seperateLength2 = _tuple$2[0]; + err = _tuple$2[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + if (coalescedLength < (seperateLength1 + seperateLength2 >> 0)) { + j = j + (1) >> 0; + numChars = numChars + (nextNumChars) >> 0; + } else { + /* break; */ $s = 4; continue; + } + /* } */ $s = 3; continue; case 4: + optimised = new segment.ptr(mode, $makeSlice(sliceType$8, 0, numChars)); + k = i; + while (true) { + if (!(k < j)) { break; } + optimised.data = $appendSlice(optimised.data, (x$4 = d.actual, ((k < 0 || k >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + k])).data); + k = k + (1) >> 0; + } + d.optimised = $append(d.optimised, optimised); + i = j; + /* } */ $s = 1; continue; case 2: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: dataEncoder.ptr.prototype.optimiseDataModes }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.coalescedLength = coalescedLength; $f.d = d; $f.err = err; $f.i = i; $f.j = j; $f.k = k; $f.mode = mode; $f.nextMode = nextMode; $f.nextNumChars = nextNumChars; $f.numChars = numChars; $f.optimised = optimised; $f.seperateLength1 = seperateLength1; $f.seperateLength2 = seperateLength2; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.$s = $s; $f.$r = $r; return $f; + }; + dataEncoder.prototype.optimiseDataModes = function() { return this.$val.optimiseDataModes(); }; + dataEncoder.ptr.prototype.encodeDataRaw = function(data, dataMode$1, encoded) { + var _1, _i, _r, _r$1, _r$2, _ref, b, bitsUsed, bitsUsed$1, charCountBits, charsRemaining, charsRemaining$1, d, data, dataMode$1, encoded, i, i$1, j, j$1, modeIndicator, value, value$1, x, x$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _ref = $f._ref; b = $f.b; bitsUsed = $f.bitsUsed; bitsUsed$1 = $f.bitsUsed$1; charCountBits = $f.charCountBits; charsRemaining = $f.charsRemaining; charsRemaining$1 = $f.charsRemaining$1; d = $f.d; data = $f.data; dataMode$1 = $f.dataMode$1; encoded = $f.encoded; i = $f.i; i$1 = $f.i$1; j = $f.j; j$1 = $f.j$1; modeIndicator = $f.modeIndicator; value = $f.value; value$1 = $f.value$1; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + d = this; + _r = d.modeIndicator(dataMode$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + modeIndicator = _r; + _r$1 = d.charCountBits(dataMode$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + charCountBits = _r$1; + $r = encoded.Append(modeIndicator); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = encoded.AppendUint32(((data.$length >>> 0)), charCountBits); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _1 = dataMode$1; + /* */ if (_1 === (2)) { $s = 6; continue; } + /* */ if (_1 === (4)) { $s = 7; continue; } + /* */ if (_1 === (8)) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (_1 === (2)) { */ case 6: + i = 0; + /* while (true) { */ case 10: + /* if (!(i < data.$length)) { break; } */ if(!(i < data.$length)) { $s = 11; continue; } + charsRemaining = data.$length - i >> 0; + value = 0; + bitsUsed = 1; + j = 0; + while (true) { + if (!(j < charsRemaining && j < 3)) { break; } + value = $imul(value, (10)) >>> 0; + value = value + (((((x = i + j >> 0, ((x < 0 || x >= data.$length) ? ($throwRuntimeError("index out of range"), undefined) : data.$array[data.$offset + x])) - 48 << 24 >>> 24) >>> 0))) >>> 0; + bitsUsed = bitsUsed + (3) >> 0; + j = j + (1) >> 0; + } + $r = encoded.AppendUint32(value, bitsUsed); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = i + (3) >> 0; + /* } */ $s = 10; continue; case 11: + $s = 9; continue; + /* } else if (_1 === (4)) { */ case 7: + i$1 = 0; + /* while (true) { */ case 13: + /* if (!(i$1 < data.$length)) { break; } */ if(!(i$1 < data.$length)) { $s = 14; continue; } + charsRemaining$1 = data.$length - i$1 >> 0; + value$1 = 0; + j$1 = 0; + /* while (true) { */ case 15: + /* if (!(j$1 < charsRemaining$1 && j$1 < 2)) { break; } */ if(!(j$1 < charsRemaining$1 && j$1 < 2)) { $s = 16; continue; } + value$1 = $imul(value$1, (45)) >>> 0; + _r$2 = encodeAlphanumericCharacter((x$1 = i$1 + j$1 >> 0, ((x$1 < 0 || x$1 >= data.$length) ? ($throwRuntimeError("index out of range"), undefined) : data.$array[data.$offset + x$1]))); /* */ $s = 17; case 17: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + value$1 = value$1 + (_r$2) >>> 0; + j$1 = j$1 + (1) >> 0; + /* } */ $s = 15; continue; case 16: + bitsUsed$1 = 6; + if (charsRemaining$1 > 1) { + bitsUsed$1 = 11; + } + $r = encoded.AppendUint32(value$1, bitsUsed$1); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i$1 = i$1 + (2) >> 0; + /* } */ $s = 13; continue; case 14: + $s = 9; continue; + /* } else if (_1 === (8)) { */ case 8: + _ref = data; + _i = 0; + /* while (true) { */ case 19: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 20; continue; } + b = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = encoded.AppendByte(b, 8); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + /* } */ $s = 19; continue; case 20: + /* } */ case 9: + case 5: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: dataEncoder.ptr.prototype.encodeDataRaw }; } $f._1 = _1; $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._ref = _ref; $f.b = b; $f.bitsUsed = bitsUsed; $f.bitsUsed$1 = bitsUsed$1; $f.charCountBits = charCountBits; $f.charsRemaining = charsRemaining; $f.charsRemaining$1 = charsRemaining$1; $f.d = d; $f.data = data; $f.dataMode$1 = dataMode$1; $f.encoded = encoded; $f.i = i; $f.i$1 = i$1; $f.j = j; $f.j$1 = j$1; $f.modeIndicator = modeIndicator; $f.value = value; $f.value$1 = value$1; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f; + }; + dataEncoder.prototype.encodeDataRaw = function(data, dataMode$1, encoded) { return this.$val.encodeDataRaw(data, dataMode$1, encoded); }; + dataEncoder.ptr.prototype.modeIndicator = function(dataMode$1) { + var _1, d, dataMode$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; d = $f.d; dataMode$1 = $f.dataMode$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + d = this; + _1 = dataMode$1; + /* */ if (_1 === (2)) { $s = 2; continue; } + /* */ if (_1 === (4)) { $s = 3; continue; } + /* */ if (_1 === (8)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_1 === (2)) { */ case 2: + $s = -1; return d.numericModeIndicator; + /* } else if (_1 === (4)) { */ case 3: + $s = -1; return d.alphanumericModeIndicator; + /* } else if (_1 === (8)) { */ case 4: + $s = -1; return d.byteModeIndicator; + /* } else { */ case 5: + $r = log.Panic(new sliceType$10([new $String("Unknown data mode")])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + case 1: + $s = -1; return ptrType.nil; + /* */ } return; } if ($f === undefined) { $f = { $blk: dataEncoder.ptr.prototype.modeIndicator }; } $f._1 = _1; $f.d = d; $f.dataMode$1 = dataMode$1; $f.$s = $s; $f.$r = $r; return $f; + }; + dataEncoder.prototype.modeIndicator = function(dataMode$1) { return this.$val.modeIndicator(dataMode$1); }; + dataEncoder.ptr.prototype.charCountBits = function(dataMode$1) { + var _1, d, dataMode$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; d = $f.d; dataMode$1 = $f.dataMode$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + d = this; + _1 = dataMode$1; + /* */ if (_1 === (2)) { $s = 2; continue; } + /* */ if (_1 === (4)) { $s = 3; continue; } + /* */ if (_1 === (8)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_1 === (2)) { */ case 2: + $s = -1; return d.numNumericCharCountBits; + /* } else if (_1 === (4)) { */ case 3: + $s = -1; return d.numAlphanumericCharCountBits; + /* } else if (_1 === (8)) { */ case 4: + $s = -1; return d.numByteCharCountBits; + /* } else { */ case 5: + $r = log.Panic(new sliceType$10([new $String("Unknown data mode")])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + case 1: + $s = -1; return 0; + /* */ } return; } if ($f === undefined) { $f = { $blk: dataEncoder.ptr.prototype.charCountBits }; } $f._1 = _1; $f.d = d; $f.dataMode$1 = dataMode$1; $f.$s = $s; $f.$r = $r; return $f; + }; + dataEncoder.prototype.charCountBits = function(dataMode$1) { return this.$val.charCountBits(dataMode$1); }; + dataEncoder.ptr.prototype.encodedLength = function(dataMode$1, n) { + var _1, _q, _q$1, _r, _r$1, _r$2, _r$3, _r$4, charCountBits, d, dataMode$1, length, maxLength, modeIndicator, n, y, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _q = $f._q; _q$1 = $f._q$1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; charCountBits = $f.charCountBits; d = $f.d; dataMode$1 = $f.dataMode$1; length = $f.length; maxLength = $f.maxLength; modeIndicator = $f.modeIndicator; n = $f.n; y = $f.y; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + d = this; + _r = d.modeIndicator(dataMode$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + modeIndicator = _r; + _r$1 = d.charCountBits(dataMode$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + charCountBits = _r$1; + if (modeIndicator === ptrType.nil) { + $s = -1; return [0, errors.New("mode not supported")]; + } + maxLength = (((y = ((charCountBits << 24 >>> 24)), y < 32 ? (1 << y) : 0) >> 0)) - 1 >> 0; + if (n > maxLength) { + $s = -1; return [0, errors.New("length too long to be represented")]; + } + length = modeIndicator.Len() + charCountBits >> 0; + _1 = dataMode$1; + if (_1 === (2)) { + length = length + (($imul(10, ((_q = n / 3, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")))))) >> 0; + if (!(((_r$2 = n % 3, _r$2 === _r$2 ? _r$2 : $throwRuntimeError("integer divide by zero")) === 0))) { + length = length + ((1 + ($imul(3, ((_r$3 = n % 3, _r$3 === _r$3 ? _r$3 : $throwRuntimeError("integer divide by zero"))))) >> 0)) >> 0; + } + } else if (_1 === (4)) { + length = length + (($imul(11, ((_q$1 = n / 2, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")))))) >> 0; + length = length + (($imul(6, ((_r$4 = n % 2, _r$4 === _r$4 ? _r$4 : $throwRuntimeError("integer divide by zero")))))) >> 0; + } else if (_1 === (8)) { + length = length + (($imul(8, n))) >> 0; + } + $s = -1; return [length, $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: dataEncoder.ptr.prototype.encodedLength }; } $f._1 = _1; $f._q = _q; $f._q$1 = _q$1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f.charCountBits = charCountBits; $f.d = d; $f.dataMode$1 = dataMode$1; $f.length = length; $f.maxLength = maxLength; $f.modeIndicator = modeIndicator; $f.n = n; $f.y = y; $f.$s = $s; $f.$r = $r; return $f; + }; + dataEncoder.prototype.encodedLength = function(dataMode$1, n) { return this.$val.encodedLength(dataMode$1, n); }; + encodeAlphanumericCharacter = function(v) { + var c, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; c = $f.c; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + c = ((v >>> 0)); + /* */ if (c >= 48 && c <= 57) { $s = 2; continue; } + /* */ if (c >= 65 && c <= 90) { $s = 3; continue; } + /* */ if ((c === 32)) { $s = 4; continue; } + /* */ if ((c === 36)) { $s = 5; continue; } + /* */ if ((c === 37)) { $s = 6; continue; } + /* */ if ((c === 42)) { $s = 7; continue; } + /* */ if ((c === 43)) { $s = 8; continue; } + /* */ if ((c === 45)) { $s = 9; continue; } + /* */ if ((c === 46)) { $s = 10; continue; } + /* */ if ((c === 47)) { $s = 11; continue; } + /* */ if ((c === 58)) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (c >= 48 && c <= 57) { */ case 2: + $s = -1; return c - 48 >>> 0; + /* } else if (c >= 65 && c <= 90) { */ case 3: + $s = -1; return (c - 65 >>> 0) + 10 >>> 0; + /* } else if ((c === 32)) { */ case 4: + $s = -1; return 36; + /* } else if ((c === 36)) { */ case 5: + $s = -1; return 37; + /* } else if ((c === 37)) { */ case 6: + $s = -1; return 38; + /* } else if ((c === 42)) { */ case 7: + $s = -1; return 39; + /* } else if ((c === 43)) { */ case 8: + $s = -1; return 40; + /* } else if ((c === 45)) { */ case 9: + $s = -1; return 41; + /* } else if ((c === 46)) { */ case 10: + $s = -1; return 42; + /* } else if ((c === 47)) { */ case 11: + $s = -1; return 43; + /* } else if ((c === 58)) { */ case 12: + $s = -1; return 44; + /* } else { */ case 13: + $r = log.Panicf("encodeAlphanumericCharacter() with non alphanumeric char %v.", new sliceType$10([new $Uint8(v)])); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 14: + case 1: + $s = -1; return 0; + /* */ } return; } if ($f === undefined) { $f = { $blk: encodeAlphanumericCharacter }; } $f.c = c; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + New = function(content, level) { + var _i, _r, _r$1, _ref, _tuple, chosenVersion, content, encoded, encoder, encoders, err, level, q, t, x, x$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _ref = $f._ref; _tuple = $f._tuple; chosenVersion = $f.chosenVersion; content = $f.content; encoded = $f.encoded; encoder = $f.encoder; encoders = $f.encoders; err = $f.err; level = $f.level; q = $f.q; t = $f.t; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + encoders = new sliceType$11([0, 1, 2]); + encoder = ptrType$2.nil; + encoded = ptrType.nil; + chosenVersion = ptrType$3.nil; + err = $ifaceNil; + _ref = encoders; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r = newDataEncoder(t); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + encoder = _r; + _r$1 = encoder.encode((new sliceType$8($stringToBytes(content)))); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + encoded = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _i++; + /* continue; */ $s = 1; continue; + } + chosenVersion = chooseQRCodeVersion(level, encoder, encoded.Len()); + if (!(chosenVersion === ptrType$3.nil)) { + /* break; */ $s = 2; continue; + } + _i++; + /* } */ $s = 1; continue; case 2: + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [ptrType$1.nil, err]; + } else if (chosenVersion === ptrType$3.nil) { + $s = -1; return [ptrType$1.nil, errors.New("content too long to encode")]; + } + q = new QRCode.ptr(content, level, chosenVersion.version, (x = color.Black, new x.constructor.elem(x)), (x$1 = color.White, new x$1.constructor.elem(x$1)), encoder, $clone(chosenVersion, qrCodeVersion), encoded, ptrType$4.nil, 0); + $r = q.encode($clone(chosenVersion, qrCodeVersion).numTerminatorBitsRequired(encoded.Len())); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return [q, $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: New }; } $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._ref = _ref; $f._tuple = _tuple; $f.chosenVersion = chosenVersion; $f.content = content; $f.encoded = encoded; $f.encoder = encoder; $f.encoders = encoders; $f.err = err; $f.level = level; $f.q = q; $f.t = t; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.New = New; + QRCode.ptr.prototype.Bitmap = function() { + var q; + q = this; + return q.symbol.bitmap(); + }; + QRCode.prototype.Bitmap = function() { return this.$val.Bitmap(); }; + QRCode.ptr.prototype.Image = function(size) { + var _i, _i$1, _q, _q$1, _ref, _ref$1, bitmap, i, i$1, img, j, j$1, offset, p, pixelsPerModule, q, realSize, rect, row, size, startX, startY, v, x, x$1, y, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _i$1 = $f._i$1; _q = $f._q; _q$1 = $f._q$1; _ref = $f._ref; _ref$1 = $f._ref$1; bitmap = $f.bitmap; i = $f.i; i$1 = $f.i$1; img = $f.img; j = $f.j; j$1 = $f.j$1; offset = $f.offset; p = $f.p; pixelsPerModule = $f.pixelsPerModule; q = $f.q; realSize = $f.realSize; rect = $f.rect; row = $f.row; size = $f.size; startX = $f.startX; startY = $f.startY; v = $f.v; x = $f.x; x$1 = $f.x$1; y = $f.y; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + q = this; + realSize = q.symbol.size; + if (size < 0) { + size = $imul(($imul(size, -1)), realSize); + } + if (size < realSize) { + size = realSize; + } + pixelsPerModule = (_q = size / realSize, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + offset = (_q$1 = ((size - ($imul(realSize, pixelsPerModule)) >> 0)) / 2, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")); + rect = new image.Rectangle.ptr(new image.Point.ptr(0, 0), new image.Point.ptr(size, size)); + p = ((x = new sliceType$12([q.BackgroundColor, q.ForegroundColor]), $subslice(new color.Palette(x.$array), x.$offset, x.$offset + x.$length))); + img = image.NewPaletted($clone(rect, image.Rectangle), p); + i = 0; + /* while (true) { */ case 1: + /* if (!(i < size)) { break; } */ if(!(i < size)) { $s = 2; continue; } + j = 0; + /* while (true) { */ case 3: + /* if (!(j < size)) { break; } */ if(!(j < size)) { $s = 4; continue; } + $r = img.Set(i, j, q.BackgroundColor); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + j = j + (1) >> 0; + /* } */ $s = 3; continue; case 4: + i = i + (1) >> 0; + /* } */ $s = 1; continue; case 2: + bitmap = q.symbol.bitmap(); + _ref = bitmap; + _i = 0; + /* while (true) { */ case 6: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 7; continue; } + y = _i; + row = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _ref$1 = row; + _i$1 = 0; + /* while (true) { */ case 8: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 9; continue; } + x$1 = _i$1; + v = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + /* */ if (v) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (v) { */ case 10: + startX = ($imul(x$1, pixelsPerModule)) + offset >> 0; + startY = ($imul(y, pixelsPerModule)) + offset >> 0; + i$1 = startX; + /* while (true) { */ case 12: + /* if (!(i$1 < (startX + pixelsPerModule >> 0))) { break; } */ if(!(i$1 < (startX + pixelsPerModule >> 0))) { $s = 13; continue; } + j$1 = startY; + /* while (true) { */ case 14: + /* if (!(j$1 < (startY + pixelsPerModule >> 0))) { break; } */ if(!(j$1 < (startY + pixelsPerModule >> 0))) { $s = 15; continue; } + $r = img.Set(i$1, j$1, q.ForegroundColor); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + j$1 = j$1 + (1) >> 0; + /* } */ $s = 14; continue; case 15: + i$1 = i$1 + (1) >> 0; + /* } */ $s = 12; continue; case 13: + /* } */ case 11: + _i$1++; + /* } */ $s = 8; continue; case 9: + _i++; + /* } */ $s = 6; continue; case 7: + $s = -1; return img; + /* */ } return; } if ($f === undefined) { $f = { $blk: QRCode.ptr.prototype.Image }; } $f._i = _i; $f._i$1 = _i$1; $f._q = _q; $f._q$1 = _q$1; $f._ref = _ref; $f._ref$1 = _ref$1; $f.bitmap = bitmap; $f.i = i; $f.i$1 = i$1; $f.img = img; $f.j = j; $f.j$1 = j$1; $f.offset = offset; $f.p = p; $f.pixelsPerModule = pixelsPerModule; $f.q = q; $f.realSize = realSize; $f.rect = rect; $f.row = row; $f.size = size; $f.startX = startX; $f.startY = startY; $f.v = v; $f.x = x; $f.x$1 = x$1; $f.y = y; $f.$s = $s; $f.$r = $r; return $f; + }; + QRCode.prototype.Image = function(size) { return this.$val.Image(size); }; + QRCode.ptr.prototype.PNG = function(size) { + var _r, _r$1, b, encoder, err, img, q, size, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; b = $f.b; encoder = $f.encoder; err = $f.err; img = $f.img; q = $f.q; size = $f.size; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + b = [b]; + q = this; + _r = q.Image(size); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + img = _r; + encoder = new png.Encoder.ptr(-3, $ifaceNil); + b[0] = new bytes.Buffer.ptr(sliceType$8.nil, 0, arrayType.zero(), 0); + _r$1 = encoder.Encode(b[0], img); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + err = _r$1; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [sliceType$8.nil, err]; + } + $s = -1; return [b[0].Bytes(), $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: QRCode.ptr.prototype.PNG }; } $f._r = _r; $f._r$1 = _r$1; $f.b = b; $f.encoder = encoder; $f.err = err; $f.img = img; $f.q = q; $f.size = size; $f.$s = $s; $f.$r = $r; return $f; + }; + QRCode.prototype.PNG = function(size) { return this.$val.PNG(size); }; + QRCode.ptr.prototype.Write = function(size, out) { + var _r, _r$1, _tuple, _tuple$1, err, out, png$1, q, size, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; err = $f.err; out = $f.out; png$1 = $f.png$1; q = $f.q; size = $f.size; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + q = this; + png$1 = sliceType$8.nil; + _r = q.PNG(size); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + png$1 = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r$1 = out.Write(png$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + err = _tuple$1[1]; + $s = -1; return err; + /* */ } return; } if ($f === undefined) { $f = { $blk: QRCode.ptr.prototype.Write }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.err = err; $f.out = out; $f.png$1 = png$1; $f.q = q; $f.size = size; $f.$s = $s; $f.$r = $r; return $f; + }; + QRCode.prototype.Write = function(size, out) { return this.$val.Write(size, out); }; + QRCode.ptr.prototype.WriteFile = function(size, filename) { + var _r, _r$1, _tuple, err, filename, png$1, q, size, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; err = $f.err; filename = $f.filename; png$1 = $f.png$1; q = $f.q; size = $f.size; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + q = this; + png$1 = sliceType$8.nil; + _r = q.PNG(size); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + png$1 = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r$1 = ioutil.WriteFile(filename, png$1, 420); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return _r$1; + /* */ } return; } if ($f === undefined) { $f = { $blk: QRCode.ptr.prototype.WriteFile }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.err = err; $f.filename = filename; $f.png$1 = png$1; $f.q = q; $f.size = size; $f.$s = $s; $f.$r = $r; return $f; + }; + QRCode.prototype.WriteFile = function(size, filename) { return this.$val.WriteFile(size, filename); }; + QRCode.ptr.prototype.encode = function(numTerminatorBits) { + var _r, _r$1, _r$2, _tuple, encoded, err, mask, numEmptyModules, numTerminatorBits, p, penalty, q, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _tuple = $f._tuple; encoded = $f.encoded; err = $f.err; mask = $f.mask; numEmptyModules = $f.numEmptyModules; numTerminatorBits = $f.numTerminatorBits; p = $f.p; penalty = $f.penalty; q = $f.q; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + q = this; + q.addTerminatorBits(numTerminatorBits); + $r = q.addPadding(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r = q.encodeBlocks(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + encoded = _r; + penalty = 0; + mask = 0; + /* while (true) { */ case 3: + /* if (!(mask < 8)) { break; } */ if(!(mask < 8)) { $s = 4; continue; } + s = ptrType$4.nil; + err = $ifaceNil; + _r$1 = buildRegularSymbol($clone(q.version, qrCodeVersion), mask, encoded); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + s = _tuple[0]; + err = _tuple[1]; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 6: + _r$2 = err.Error(); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $r = log.Panic(new sliceType$10([new $String(_r$2)])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 7: + numEmptyModules = s.numEmptyModules(); + /* */ if (!((numEmptyModules === 0))) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (!((numEmptyModules === 0))) { */ case 10: + $r = log.Panicf("bug: numEmptyModules is %d (expected 0) (version=%d)", new sliceType$10([new $Int(numEmptyModules), new $Int(q.VersionNumber)])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 11: + p = s.penaltyScore(); + if (q.symbol === ptrType$4.nil || p < penalty) { + q.symbol = s; + q.mask = mask; + penalty = p; + } + mask = mask + (1) >> 0; + /* } */ $s = 3; continue; case 4: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: QRCode.ptr.prototype.encode }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tuple = _tuple; $f.encoded = encoded; $f.err = err; $f.mask = mask; $f.numEmptyModules = numEmptyModules; $f.numTerminatorBits = numTerminatorBits; $f.p = p; $f.penalty = penalty; $f.q = q; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + QRCode.prototype.encode = function(numTerminatorBits) { return this.$val.encode(numTerminatorBits); }; + QRCode.ptr.prototype.addTerminatorBits = function(numTerminatorBits) { + var numTerminatorBits, q; + q = this; + q.data.AppendNumBools(numTerminatorBits, false); + }; + QRCode.prototype.addTerminatorBits = function(numTerminatorBits) { return this.$val.addTerminatorBits(numTerminatorBits); }; + QRCode.ptr.prototype.encodeBlocks = function() { + var _i, _i$1, _i$2, _r, _r$1, _r$2, _r$3, _ref, _ref$1, _ref$2, b, b$1, b$2, block$1, blockID, end, i, i$1, j, j$1, j$2, numErrorCodewords, offset, q, result, start, working, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _i$1 = $f._i$1; _i$2 = $f._i$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _ref = $f._ref; _ref$1 = $f._ref$1; _ref$2 = $f._ref$2; b = $f.b; b$1 = $f.b$1; b$2 = $f.b$2; block$1 = $f.block$1; blockID = $f.blockID; end = $f.end; i = $f.i; i$1 = $f.i$1; j = $f.j; j$1 = $f.j$1; j$2 = $f.j$2; numErrorCodewords = $f.numErrorCodewords; offset = $f.offset; q = $f.q; result = $f.result; start = $f.start; working = $f.working; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + q = this; + block$1 = $makeSlice(sliceType$13, $clone(q.version, qrCodeVersion).numBlocks()); + start = 0; + end = 0; + blockID = 0; + _ref = q.version.block; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + b = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), block); + j = 0; + /* while (true) { */ case 3: + /* if (!(j < b.numBlocks)) { break; } */ if(!(j < b.numBlocks)) { $s = 4; continue; } + start = end; + end = start + ($imul(b.numDataCodewords, 8)) >> 0; + numErrorCodewords = b.numCodewords - b.numDataCodewords >> 0; + _r = q.data.Substr(start, end); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = reedsolomon.Encode(_r, numErrorCodewords); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + ((blockID < 0 || blockID >= block$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : block$1.$array[block$1.$offset + blockID]).data = _r$1; + ((blockID < 0 || blockID >= block$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : block$1.$array[block$1.$offset + blockID]).ecStartOffset = end - start >> 0; + blockID = blockID + (1) >> 0; + j = j + (1) >> 0; + /* } */ $s = 3; continue; case 4: + _i++; + /* } */ $s = 1; continue; case 2: + result = bitset.New(new sliceType$2([])); + working = true; + i = 0; + /* while (true) { */ case 7: + /* if (!(working)) { break; } */ if(!(working)) { $s = 8; continue; } + working = false; + _ref$1 = block$1; + _i$1 = 0; + /* while (true) { */ case 9: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 10; continue; } + j$1 = _i$1; + b$1 = $clone(((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]), dataBlock); + /* */ if (i >= ((j$1 < 0 || j$1 >= block$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : block$1.$array[block$1.$offset + j$1]).ecStartOffset) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (i >= ((j$1 < 0 || j$1 >= block$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : block$1.$array[block$1.$offset + j$1]).ecStartOffset) { */ case 11: + _i$1++; + /* continue; */ $s = 9; continue; + /* } */ case 12: + _r$2 = b$1.data.Substr(i, i + 8 >> 0); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $r = result.Append(_r$2); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + working = true; + _i$1++; + /* } */ $s = 9; continue; case 10: + i = i + (8) >> 0; + /* } */ $s = 7; continue; case 8: + working = true; + i$1 = 0; + /* while (true) { */ case 15: + /* if (!(working)) { break; } */ if(!(working)) { $s = 16; continue; } + working = false; + _ref$2 = block$1; + _i$2 = 0; + /* while (true) { */ case 17: + /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 18; continue; } + j$2 = _i$2; + b$2 = $clone(((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]), dataBlock); + offset = i$1 + ((j$2 < 0 || j$2 >= block$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : block$1.$array[block$1.$offset + j$2]).ecStartOffset >> 0; + /* */ if (offset >= ((j$2 < 0 || j$2 >= block$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : block$1.$array[block$1.$offset + j$2]).data.Len()) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (offset >= ((j$2 < 0 || j$2 >= block$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : block$1.$array[block$1.$offset + j$2]).data.Len()) { */ case 19: + _i$2++; + /* continue; */ $s = 17; continue; + /* } */ case 20: + _r$3 = b$2.data.Substr(offset, offset + 8 >> 0); /* */ $s = 21; case 21: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $r = result.Append(_r$3); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + working = true; + _i$2++; + /* } */ $s = 17; continue; case 18: + i$1 = i$1 + (8) >> 0; + /* } */ $s = 15; continue; case 16: + result.AppendNumBools(q.version.numRemainderBits, false); + $s = -1; return result; + /* */ } return; } if ($f === undefined) { $f = { $blk: QRCode.ptr.prototype.encodeBlocks }; } $f._i = _i; $f._i$1 = _i$1; $f._i$2 = _i$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._ref = _ref; $f._ref$1 = _ref$1; $f._ref$2 = _ref$2; $f.b = b; $f.b$1 = b$1; $f.b$2 = b$2; $f.block$1 = block$1; $f.blockID = blockID; $f.end = end; $f.i = i; $f.i$1 = i$1; $f.j = j; $f.j$1 = j$1; $f.j$2 = j$2; $f.numErrorCodewords = numErrorCodewords; $f.offset = offset; $f.q = q; $f.result = result; $f.start = start; $f.working = working; $f.$s = $s; $f.$r = $r; return $f; + }; + QRCode.prototype.encodeBlocks = function() { return this.$val.encodeBlocks(); }; + QRCode.ptr.prototype.addPadding = function() { + var i, numDataBits, padding, q, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; i = $f.i; numDataBits = $f.numDataBits; padding = $f.padding; q = $f.q; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + q = this; + numDataBits = $clone(q.version, qrCodeVersion).numDataBits(); + if (q.data.Len() === numDataBits) { + $s = -1; return; + } + q.data.AppendNumBools($clone(q.version, qrCodeVersion).numBitsToPadToCodeword(q.data.Len()), false); + padding = $toNativeArray($kindPtr, [bitset.New(new sliceType$2([true, true, true, false, true, true, false, false])), bitset.New(new sliceType$2([false, false, false, true, false, false, false, true]))]); + i = 0; + /* while (true) { */ case 1: + /* if (!((numDataBits - q.data.Len() >> 0) >= 8)) { break; } */ if(!((numDataBits - q.data.Len() >> 0) >= 8)) { $s = 2; continue; } + $r = q.data.Append(((i < 0 || i >= padding.length) ? ($throwRuntimeError("index out of range"), undefined) : padding[i])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = 1 - i >> 0; + /* } */ $s = 1; continue; case 2: + /* */ if (!((q.data.Len() === numDataBits))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!((q.data.Len() === numDataBits))) { */ case 4: + $r = log.Panicf("BUG: got len %d, expected %d", new sliceType$10([new $Int(q.data.Len()), new $Int(numDataBits)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 5: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: QRCode.ptr.prototype.addPadding }; } $f.i = i; $f.numDataBits = numDataBits; $f.padding = padding; $f.q = q; $f.$s = $s; $f.$r = $r; return $f; + }; + QRCode.prototype.addPadding = function() { return this.$val.addPadding(); }; + buildRegularSymbol = function(version, mask, data) { + var _r, _tuple, data, err, m, mask, ok, version, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; data = $f.data; err = $f.err; m = $f.m; mask = $f.mask; ok = $f.ok; version = $f.version; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + m = new regularSymbol.ptr($clone(version, qrCodeVersion), mask, data, newSymbol($clone(version, qrCodeVersion).symbolSize(), $clone(version, qrCodeVersion).quietZoneSize()), $clone(version, qrCodeVersion).symbolSize()); + m.addFinderPatterns(); + m.addAlignmentPatterns(); + m.addTimingPatterns(); + $r = m.addFormatInfo(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = m.addVersionInfo(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r = m.addData(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + ok = _tuple[0]; + err = _tuple[1]; + if (!ok) { + $s = -1; return [ptrType$4.nil, err]; + } + $s = -1; return [m.symbol, $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: buildRegularSymbol }; } $f._r = _r; $f._tuple = _tuple; $f.data = data; $f.err = err; $f.m = m; $f.mask = mask; $f.ok = ok; $f.version = version; $f.$s = $s; $f.$r = $r; return $f; + }; + regularSymbol.ptr.prototype.addFinderPatterns = function() { + var fp, fpHBorder, fpSize, fpVBorder, m; + m = this; + fpSize = finderPatternSize; + fp = finderPattern; + fpHBorder = finderPatternHorizontalBorder; + fpVBorder = finderPatternVerticalBorder; + m.symbol.set2dPattern(0, 0, fp); + m.symbol.set2dPattern(0, fpSize, fpHBorder); + m.symbol.set2dPattern(fpSize, 0, fpVBorder); + m.symbol.set2dPattern(m.size - fpSize >> 0, 0, fp); + m.symbol.set2dPattern((m.size - fpSize >> 0) - 1 >> 0, fpSize, fpHBorder); + m.symbol.set2dPattern((m.size - fpSize >> 0) - 1 >> 0, 0, fpVBorder); + m.symbol.set2dPattern(0, m.size - fpSize >> 0, fp); + m.symbol.set2dPattern(0, (m.size - fpSize >> 0) - 1 >> 0, fpHBorder); + m.symbol.set2dPattern(fpSize, (m.size - fpSize >> 0) - 1 >> 0, fpVBorder); + }; + regularSymbol.prototype.addFinderPatterns = function() { return this.$val.addFinderPatterns(); }; + regularSymbol.ptr.prototype.addAlignmentPatterns = function() { + var _i, _i$1, _ref, _ref$1, m, x, x$1, x$2, y; + m = this; + _ref = (x = m.version.version, ((x < 0 || x >= alignmentPatternCenter.$length) ? ($throwRuntimeError("index out of range"), undefined) : alignmentPatternCenter.$array[alignmentPatternCenter.$offset + x])); + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + x$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _ref$1 = (x$2 = m.version.version, ((x$2 < 0 || x$2 >= alignmentPatternCenter.$length) ? ($throwRuntimeError("index out of range"), undefined) : alignmentPatternCenter.$array[alignmentPatternCenter.$offset + x$2])); + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + y = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + if (!m.symbol.empty(x$1, y)) { + _i$1++; + continue; + } + m.symbol.set2dPattern(x$1 - 2 >> 0, y - 2 >> 0, alignmentPattern); + _i$1++; + } + _i++; + } + }; + regularSymbol.prototype.addAlignmentPatterns = function() { return this.$val.addAlignmentPatterns(); }; + regularSymbol.ptr.prototype.addTimingPatterns = function() { + var i, m, value; + m = this; + value = true; + i = finderPatternSize + 1 >> 0; + while (true) { + if (!(i < (m.size - finderPatternSize >> 0))) { break; } + m.symbol.set(i, finderPatternSize - 1 >> 0, value); + m.symbol.set(finderPatternSize - 1 >> 0, i, value); + value = !value; + i = i + (1) >> 0; + } + }; + regularSymbol.prototype.addTimingPatterns = function() { return this.$val.addTimingPatterns(); }; + regularSymbol.ptr.prototype.addFormatInfo = function() { + var _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$16, _arg$17, _arg$18, _arg$19, _arg$2, _arg$20, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, f, fpSize, i, i$1, i$2, i$3, l, m, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$10 = $f._arg$10; _arg$11 = $f._arg$11; _arg$12 = $f._arg$12; _arg$13 = $f._arg$13; _arg$14 = $f._arg$14; _arg$15 = $f._arg$15; _arg$16 = $f._arg$16; _arg$17 = $f._arg$17; _arg$18 = $f._arg$18; _arg$19 = $f._arg$19; _arg$2 = $f._arg$2; _arg$20 = $f._arg$20; _arg$3 = $f._arg$3; _arg$4 = $f._arg$4; _arg$5 = $f._arg$5; _arg$6 = $f._arg$6; _arg$7 = $f._arg$7; _arg$8 = $f._arg$8; _arg$9 = $f._arg$9; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; f = $f.f; fpSize = $f.fpSize; i = $f.i; i$1 = $f.i$1; i$2 = $f.i$2; i$3 = $f.i$3; l = $f.l; m = $f.m; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + m = this; + fpSize = finderPatternSize; + l = 14; + _r = $clone(m.version, qrCodeVersion).formatInfo(m.mask); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + f = _r; + i = 0; + /* while (true) { */ case 2: + /* if (!(i <= 7)) { break; } */ if(!(i <= 7)) { $s = 3; continue; } + _arg = (m.size - i >> 0) - 1 >> 0; + _arg$1 = fpSize + 1 >> 0; + _r$1 = f.At(l - i >> 0); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg$2 = _r$1; + $r = m.symbol.set(_arg, _arg$1, _arg$2); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = i + (1) >> 0; + /* } */ $s = 2; continue; case 3: + i$1 = 0; + /* while (true) { */ case 6: + /* if (!(i$1 <= 5)) { break; } */ if(!(i$1 <= 5)) { $s = 7; continue; } + _arg$3 = fpSize + 1 >> 0; + _arg$4 = i$1; + _r$2 = f.At(l - i$1 >> 0); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg$5 = _r$2; + $r = m.symbol.set(_arg$3, _arg$4, _arg$5); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i$1 = i$1 + (1) >> 0; + /* } */ $s = 6; continue; case 7: + _arg$6 = fpSize + 1 >> 0; + _arg$7 = fpSize; + _r$3 = f.At(l - 6 >> 0); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _arg$8 = _r$3; + $r = m.symbol.set(_arg$6, _arg$7, _arg$8); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _arg$9 = fpSize + 1 >> 0; + _arg$10 = fpSize + 1 >> 0; + _r$4 = f.At(l - 7 >> 0); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _arg$11 = _r$4; + $r = m.symbol.set(_arg$9, _arg$10, _arg$11); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _arg$12 = fpSize; + _arg$13 = fpSize + 1 >> 0; + _r$5 = f.At(l - 8 >> 0); /* */ $s = 14; case 14: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _arg$14 = _r$5; + $r = m.symbol.set(_arg$12, _arg$13, _arg$14); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i$2 = 9; + /* while (true) { */ case 16: + /* if (!(i$2 <= 14)) { break; } */ if(!(i$2 <= 14)) { $s = 17; continue; } + _arg$15 = 14 - i$2 >> 0; + _arg$16 = fpSize + 1 >> 0; + _r$6 = f.At(l - i$2 >> 0); /* */ $s = 18; case 18: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _arg$17 = _r$6; + $r = m.symbol.set(_arg$15, _arg$16, _arg$17); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i$2 = i$2 + (1) >> 0; + /* } */ $s = 16; continue; case 17: + i$3 = 8; + /* while (true) { */ case 20: + /* if (!(i$3 <= 14)) { break; } */ if(!(i$3 <= 14)) { $s = 21; continue; } + _arg$18 = fpSize + 1 >> 0; + _arg$19 = ((m.size - fpSize >> 0) + i$3 >> 0) - 8 >> 0; + _r$7 = f.At(l - i$3 >> 0); /* */ $s = 22; case 22: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _arg$20 = _r$7; + $r = m.symbol.set(_arg$18, _arg$19, _arg$20); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i$3 = i$3 + (1) >> 0; + /* } */ $s = 20; continue; case 21: + m.symbol.set(fpSize + 1 >> 0, (m.size - fpSize >> 0) - 1 >> 0, true); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: regularSymbol.ptr.prototype.addFormatInfo }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$10 = _arg$10; $f._arg$11 = _arg$11; $f._arg$12 = _arg$12; $f._arg$13 = _arg$13; $f._arg$14 = _arg$14; $f._arg$15 = _arg$15; $f._arg$16 = _arg$16; $f._arg$17 = _arg$17; $f._arg$18 = _arg$18; $f._arg$19 = _arg$19; $f._arg$2 = _arg$2; $f._arg$20 = _arg$20; $f._arg$3 = _arg$3; $f._arg$4 = _arg$4; $f._arg$5 = _arg$5; $f._arg$6 = _arg$6; $f._arg$7 = _arg$7; $f._arg$8 = _arg$8; $f._arg$9 = _arg$9; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f.f = f; $f.fpSize = fpSize; $f.i = i; $f.i$1 = i$1; $f.i$2 = i$2; $f.i$3 = i$3; $f.l = l; $f.m = m; $f.$s = $s; $f.$r = $r; return $f; + }; + regularSymbol.prototype.addFormatInfo = function() { return this.$val.addFormatInfo(); }; + regularSymbol.ptr.prototype.addVersionInfo = function() { + var _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _q, _q$1, _r, _r$1, _r$2, _r$3, _r$4, fpSize, i, l, m, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _arg$4 = $f._arg$4; _arg$5 = $f._arg$5; _q = $f._q; _q$1 = $f._q$1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; fpSize = $f.fpSize; i = $f.i; l = $f.l; m = $f.m; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + m = this; + fpSize = finderPatternSize; + _r = $clone(m.version, qrCodeVersion).versionInfo(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + v = _r; + l = 17; + if (v === ptrType.nil) { + $s = -1; return; + } + i = 0; + /* while (true) { */ case 2: + /* if (!(i < v.Len())) { break; } */ if(!(i < v.Len())) { $s = 3; continue; } + _arg = (_q = i / 3, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + _arg$1 = ((m.size - fpSize >> 0) - 4 >> 0) + (_r$1 = i % 3, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) >> 0; + _r$2 = v.At(l - i >> 0); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg$2 = _r$2; + $r = m.symbol.set(_arg, _arg$1, _arg$2); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _arg$3 = ((m.size - fpSize >> 0) - 4 >> 0) + (_r$3 = i % 3, _r$3 === _r$3 ? _r$3 : $throwRuntimeError("integer divide by zero")) >> 0; + _arg$4 = (_q$1 = i / 3, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")); + _r$4 = v.At(l - i >> 0); /* */ $s = 6; case 6: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _arg$5 = _r$4; + $r = m.symbol.set(_arg$3, _arg$4, _arg$5); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = i + (1) >> 0; + /* } */ $s = 2; continue; case 3: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: regularSymbol.ptr.prototype.addVersionInfo }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._arg$4 = _arg$4; $f._arg$5 = _arg$5; $f._q = _q; $f._q$1 = _q$1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f.fpSize = fpSize; $f.i = i; $f.l = l; $f.m = m; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + regularSymbol.prototype.addVersionInfo = function() { return this.$val.addVersionInfo(); }; + regularSymbol.ptr.prototype.addData = function() { + var _1, _arg, _arg$1, _arg$2, _q, _q$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, dir, i, m, mask, x, xOffset, y, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _q = $f._q; _q$1 = $f._q$1; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$13 = $f._r$13; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; dir = $f.dir; i = $f.i; m = $f.m; mask = $f.mask; x = $f.x; xOffset = $f.xOffset; y = $f.y; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + m = this; + xOffset = 1; + dir = 0; + x = m.size - 2 >> 0; + y = m.size - 1 >> 0; + i = 0; + /* while (true) { */ case 1: + /* if (!(i < m.data.Len())) { break; } */ if(!(i < m.data.Len())) { $s = 2; continue; } + mask = false; + _1 = m.mask; + if (_1 === (0)) { + mask = (_r = (((y + x >> 0) + xOffset >> 0)) % 2, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) === 0; + } else if (_1 === (1)) { + mask = (_r$1 = y % 2, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) === 0; + } else if (_1 === (2)) { + mask = (_r$2 = ((x + xOffset >> 0)) % 3, _r$2 === _r$2 ? _r$2 : $throwRuntimeError("integer divide by zero")) === 0; + } else if (_1 === (3)) { + mask = (_r$3 = (((y + x >> 0) + xOffset >> 0)) % 3, _r$3 === _r$3 ? _r$3 : $throwRuntimeError("integer divide by zero")) === 0; + } else if (_1 === (4)) { + mask = (_r$4 = (((_q = y / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) + (_q$1 = ((x + xOffset >> 0)) / 3, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")) >> 0)) % 2, _r$4 === _r$4 ? _r$4 : $throwRuntimeError("integer divide by zero")) === 0; + } else if (_1 === (5)) { + mask = ((_r$5 = (($imul(y, ((x + xOffset >> 0))))) % 2, _r$5 === _r$5 ? _r$5 : $throwRuntimeError("integer divide by zero")) + (_r$6 = (($imul(y, ((x + xOffset >> 0))))) % 3, _r$6 === _r$6 ? _r$6 : $throwRuntimeError("integer divide by zero")) >> 0) === 0; + } else if (_1 === (6)) { + mask = (_r$7 = (((_r$8 = (($imul(y, ((x + xOffset >> 0))))) % 2, _r$8 === _r$8 ? _r$8 : $throwRuntimeError("integer divide by zero")) + ((_r$9 = (($imul(y, ((x + xOffset >> 0))))) % 3, _r$9 === _r$9 ? _r$9 : $throwRuntimeError("integer divide by zero"))) >> 0)) % 2, _r$7 === _r$7 ? _r$7 : $throwRuntimeError("integer divide by zero")) === 0; + } else if (_1 === (7)) { + mask = (_r$10 = (((_r$11 = (((y + x >> 0) + xOffset >> 0)) % 2, _r$11 === _r$11 ? _r$11 : $throwRuntimeError("integer divide by zero")) + ((_r$12 = (($imul(y, ((x + xOffset >> 0))))) % 3, _r$12 === _r$12 ? _r$12 : $throwRuntimeError("integer divide by zero"))) >> 0)) % 2, _r$10 === _r$10 ? _r$10 : $throwRuntimeError("integer divide by zero")) === 0; + } + _arg = x + xOffset >> 0; + _arg$1 = y; + _r$13 = m.data.At(i); /* */ $s = 3; case 3: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _arg$2 = !(mask === _r$13); + $r = m.symbol.set(_arg, _arg$1, _arg$2); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (i === (m.data.Len() - 1 >> 0)) { + /* break; */ $s = 2; continue; + } + while (true) { + if (xOffset === 1) { + xOffset = 0; + } else { + xOffset = 1; + if (dir === 0) { + if (y > 0) { + y = y - (1) >> 0; + } else { + dir = 1; + x = x - (2) >> 0; + } + } else { + if (y < (m.size - 1 >> 0)) { + y = y + (1) >> 0; + } else { + dir = 0; + x = x - (2) >> 0; + } + } + } + if (x === 5) { + x = x - (1) >> 0; + } + if (m.symbol.empty(x + xOffset >> 0, y)) { + break; + } + } + i = i + (1) >> 0; + /* } */ $s = 1; continue; case 2: + $s = -1; return [true, $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: regularSymbol.ptr.prototype.addData }; } $f._1 = _1; $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._q = _q; $f._q$1 = _q$1; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$13 = _r$13; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f.dir = dir; $f.i = i; $f.m = m; $f.mask = mask; $f.x = x; $f.xOffset = xOffset; $f.y = y; $f.$s = $s; $f.$r = $r; return $f; + }; + regularSymbol.prototype.addData = function() { return this.$val.addData(); }; + newSymbol = function(size, quietZoneSize) { + var _i, _ref, i, m, quietZoneSize, size, x, x$1; + m = new symbol.ptr(sliceType$3.nil, sliceType$3.nil, 0, 0, 0); + m.module = $makeSlice(sliceType$3, (size + ($imul(2, quietZoneSize)) >> 0)); + m.isUsed = $makeSlice(sliceType$3, (size + ($imul(2, quietZoneSize)) >> 0)); + _ref = m.module; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + (x = m.module, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i] = $makeSlice(sliceType$2, (size + ($imul(2, quietZoneSize)) >> 0)))); + (x$1 = m.isUsed, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i] = $makeSlice(sliceType$2, (size + ($imul(2, quietZoneSize)) >> 0)))); + _i++; + } + m.size = size + ($imul(2, quietZoneSize)) >> 0; + m.symbolSize = size; + m.quietZoneSize = quietZoneSize; + return m; + }; + symbol.ptr.prototype.get = function(x, y) { + var m, v, x, x$1, x$2, x$3, x$4, y; + v = false; + m = this; + v = (x$1 = (x$2 = m.module, x$3 = y + m.quietZoneSize >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])), x$4 = x + m.quietZoneSize >> 0, ((x$4 < 0 || x$4 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$4])); + return v; + }; + symbol.prototype.get = function(x, y) { return this.$val.get(x, y); }; + symbol.ptr.prototype.empty = function(x, y) { + var m, x, x$1, x$2, x$3, x$4, y; + m = this; + return !(x$1 = (x$2 = m.isUsed, x$3 = y + m.quietZoneSize >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])), x$4 = x + m.quietZoneSize >> 0, ((x$4 < 0 || x$4 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$4])); + }; + symbol.prototype.empty = function(x, y) { return this.$val.empty(x, y); }; + symbol.ptr.prototype.numEmptyModules = function() { + var count, m, x, x$1, x$2, x$3, x$4, y; + m = this; + count = 0; + y = 0; + while (true) { + if (!(y < m.symbolSize)) { break; } + x = 0; + while (true) { + if (!(x < m.symbolSize)) { break; } + if (!(x$1 = (x$2 = m.isUsed, x$3 = y + m.quietZoneSize >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])), x$4 = x + m.quietZoneSize >> 0, ((x$4 < 0 || x$4 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$4]))) { + count = count + (1) >> 0; + } + x = x + (1) >> 0; + } + y = y + (1) >> 0; + } + return count; + }; + symbol.prototype.numEmptyModules = function() { return this.$val.numEmptyModules(); }; + symbol.ptr.prototype.set = function(x, y, v) { + var m, v, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, y; + m = this; + (x$1 = (x$2 = m.module, x$3 = y + m.quietZoneSize >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])), x$4 = x + m.quietZoneSize >> 0, ((x$4 < 0 || x$4 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$4] = v)); + (x$5 = (x$6 = m.isUsed, x$7 = y + m.quietZoneSize >> 0, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])), x$8 = x + m.quietZoneSize >> 0, ((x$8 < 0 || x$8 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + x$8] = true)); + }; + symbol.prototype.set = function(x, y, v) { return this.$val.set(x, y, v); }; + symbol.ptr.prototype.set2dPattern = function(x, y, v) { + var _i, _i$1, _ref, _ref$1, i, j, m, row, v, value, x, y; + m = this; + _ref = v; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + j = _i; + row = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _ref$1 = row; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i = _i$1; + value = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + m.set(x + i >> 0, y + j >> 0, value); + _i$1++; + } + _i++; + } + }; + symbol.prototype.set2dPattern = function(x, y, v) { return this.$val.set2dPattern(x, y, v); }; + symbol.ptr.prototype.bitmap = function() { + var _i, _ref, i, m, module, x; + m = this; + module = $makeSlice(sliceType$3, m.module.$length); + _ref = m.module; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + ((i < 0 || i >= module.$length) ? ($throwRuntimeError("index out of range"), undefined) : module.$array[module.$offset + i] = (x = m.module, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]))); + _i++; + } + return module; + }; + symbol.prototype.bitmap = function() { return this.$val.bitmap(); }; + symbol.ptr.prototype.penaltyScore = function() { + var m; + m = this; + return ((m.penalty1() + m.penalty2() >> 0) + m.penalty3() >> 0) + m.penalty4() >> 0; + }; + symbol.prototype.penaltyScore = function() { return this.$val.penaltyScore(); }; + symbol.ptr.prototype.penalty1 = function() { + var count, count$1, lastValue, lastValue$1, m, penalty, v, v$1, x, x$1, y, y$1; + m = this; + penalty = 0; + x = 0; + while (true) { + if (!(x < m.symbolSize)) { break; } + lastValue = m.get(x, 0); + count = 1; + y = 1; + while (true) { + if (!(y < m.symbolSize)) { break; } + v = m.get(x, y); + if (!(v === lastValue)) { + count = 1; + lastValue = v; + } else { + count = count + (1) >> 0; + if (count === 6) { + penalty = penalty + (4) >> 0; + } else if (count > 6) { + penalty = penalty + (1) >> 0; + } + } + y = y + (1) >> 0; + } + x = x + (1) >> 0; + } + y$1 = 0; + while (true) { + if (!(y$1 < m.symbolSize)) { break; } + lastValue$1 = m.get(0, y$1); + count$1 = 1; + x$1 = 1; + while (true) { + if (!(x$1 < m.symbolSize)) { break; } + v$1 = m.get(x$1, y$1); + if (!(v$1 === lastValue$1)) { + count$1 = 1; + lastValue$1 = v$1; + } else { + count$1 = count$1 + (1) >> 0; + if (count$1 === 6) { + penalty = penalty + (4) >> 0; + } else if (count$1 > 6) { + penalty = penalty + (1) >> 0; + } + } + x$1 = x$1 + (1) >> 0; + } + y$1 = y$1 + (1) >> 0; + } + return penalty; + }; + symbol.prototype.penalty1 = function() { return this.$val.penalty1(); }; + symbol.ptr.prototype.penalty2 = function() { + var above, current, left, m, penalty, topLeft, x, y; + m = this; + penalty = 0; + y = 1; + while (true) { + if (!(y < m.symbolSize)) { break; } + x = 1; + while (true) { + if (!(x < m.symbolSize)) { break; } + topLeft = m.get(x - 1 >> 0, y - 1 >> 0); + above = m.get(x, y - 1 >> 0); + left = m.get(x - 1 >> 0, y); + current = m.get(x, y); + if (current === left && current === above && current === topLeft) { + penalty = penalty + (1) >> 0; + } + x = x + (1) >> 0; + } + y = y + (1) >> 0; + } + return $imul(penalty, 3); + }; + symbol.prototype.penalty2 = function() { return this.$val.penalty2(); }; + symbol.ptr.prototype.penalty3 = function() { + var _1, _2, bitBuffer, bitBuffer$1, m, penalty, v, v$1, x, x$1, y, y$1, y$2, y$3; + m = this; + penalty = 0; + y = 0; + while (true) { + if (!(y < m.symbolSize)) { break; } + bitBuffer = 0; + x = 0; + while (true) { + if (!(x < m.symbolSize)) { break; } + bitBuffer = (y$1 = (1), y$1 < 32 ? (bitBuffer << y$1) : 0) << 16 >> 16; + v = m.get(x, y); + if (v) { + bitBuffer = bitBuffer | (1); + } + _1 = bitBuffer & 2047; + if ((_1 === (93)) || (_1 === (1488))) { + penalty = penalty + (40) >> 0; + bitBuffer = 255; + } else if ((x === (m.symbolSize - 1 >> 0)) && (((bitBuffer & 127)) === 93)) { + penalty = penalty + (40) >> 0; + bitBuffer = 255; + } + x = x + (1) >> 0; + } + y = y + (1) >> 0; + } + x$1 = 0; + while (true) { + if (!(x$1 < m.symbolSize)) { break; } + bitBuffer$1 = 0; + y$2 = 0; + while (true) { + if (!(y$2 < m.symbolSize)) { break; } + bitBuffer$1 = (y$3 = (1), y$3 < 32 ? (bitBuffer$1 << y$3) : 0) << 16 >> 16; + v$1 = m.get(x$1, y$2); + if (v$1) { + bitBuffer$1 = bitBuffer$1 | (1); + } + _2 = bitBuffer$1 & 2047; + if ((_2 === (93)) || (_2 === (1488))) { + penalty = penalty + (40) >> 0; + bitBuffer$1 = 255; + } else if ((y$2 === (m.symbolSize - 1 >> 0)) && (((bitBuffer$1 & 127)) === 93)) { + penalty = penalty + (40) >> 0; + bitBuffer$1 = 255; + } + y$2 = y$2 + (1) >> 0; + } + x$1 = x$1 + (1) >> 0; + } + return penalty; + }; + symbol.prototype.penalty3 = function() { return this.$val.penalty3(); }; + symbol.ptr.prototype.penalty4 = function() { + var _q, _q$1, _q$2, m, numDarkModuleDeviation, numDarkModules, numModules, v, x, y; + m = this; + numModules = $imul(m.symbolSize, m.symbolSize); + numDarkModules = 0; + x = 0; + while (true) { + if (!(x < m.symbolSize)) { break; } + y = 0; + while (true) { + if (!(y < m.symbolSize)) { break; } + v = m.get(x, y); + if (v) { + numDarkModules = numDarkModules + (1) >> 0; + } + y = y + (1) >> 0; + } + x = x + (1) >> 0; + } + numDarkModuleDeviation = (_q = numModules / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) - numDarkModules >> 0; + if (numDarkModuleDeviation < 0) { + numDarkModuleDeviation = $imul(numDarkModuleDeviation, (-1)); + } + return $imul(10, ((_q$1 = numDarkModuleDeviation / ((_q$2 = numModules / 20, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero"))), (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")))); + }; + symbol.prototype.penalty4 = function() { return this.$val.penalty4(); }; + qrCodeVersion.ptr.prototype.formatInfo = function(maskPattern) { + var _1, formatID, maskPattern, result, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; formatID = $f.formatID; maskPattern = $f.maskPattern; result = $f.result; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + formatID = 0; + _1 = v.level; + /* */ if (_1 === (0)) { $s = 2; continue; } + /* */ if (_1 === (1)) { $s = 3; continue; } + /* */ if (_1 === (2)) { $s = 4; continue; } + /* */ if (_1 === (3)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_1 === (0)) { */ case 2: + formatID = 8; + $s = 7; continue; + /* } else if (_1 === (1)) { */ case 3: + formatID = 0; + $s = 7; continue; + /* } else if (_1 === (2)) { */ case 4: + formatID = 24; + $s = 7; continue; + /* } else if (_1 === (3)) { */ case 5: + formatID = 16; + $s = 7; continue; + /* } else { */ case 6: + $r = log.Panicf("Invalid level %d", new sliceType$10([new RecoveryLevel(v.level)])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 7: + case 1: + /* */ if (maskPattern < 0 || maskPattern > 7) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (maskPattern < 0 || maskPattern > 7) { */ case 9: + $r = log.Panicf("Invalid maskPattern %d", new sliceType$10([new $Int(maskPattern)])); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 10: + formatID = formatID | ((maskPattern & 7)); + result = bitset.New(new sliceType$2([])); + $r = result.AppendUint32(((formatID < 0 || formatID >= formatBitSequence.$length) ? ($throwRuntimeError("index out of range"), undefined) : formatBitSequence.$array[formatBitSequence.$offset + formatID]).regular, 15); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return result; + /* */ } return; } if ($f === undefined) { $f = { $blk: qrCodeVersion.ptr.prototype.formatInfo }; } $f._1 = _1; $f.formatID = formatID; $f.maskPattern = maskPattern; $f.result = result; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + qrCodeVersion.prototype.formatInfo = function(maskPattern) { return this.$val.formatInfo(maskPattern); }; + qrCodeVersion.ptr.prototype.versionInfo = function() { + var result, v, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; result = $f.result; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + if (v.version < 7) { + $s = -1; return ptrType.nil; + } + result = bitset.New(new sliceType$2([])); + $r = result.AppendUint32((x = v.version, ((x < 0 || x >= versionBitSequence.$length) ? ($throwRuntimeError("index out of range"), undefined) : versionBitSequence.$array[versionBitSequence.$offset + x])), 18); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return result; + /* */ } return; } if ($f === undefined) { $f = { $blk: qrCodeVersion.ptr.prototype.versionInfo }; } $f.result = result; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + qrCodeVersion.prototype.versionInfo = function() { return this.$val.versionInfo(); }; + qrCodeVersion.ptr.prototype.numDataBits = function() { + var _i, _ref, b, numDataBits, v; + v = this; + numDataBits = 0; + _ref = v.block; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + b = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), block); + numDataBits = numDataBits + (($imul(($imul(8, b.numBlocks)), b.numDataCodewords))) >> 0; + _i++; + } + return numDataBits; + }; + qrCodeVersion.prototype.numDataBits = function() { return this.$val.numDataBits(); }; + chooseQRCodeVersion = function(level, encoder, numDataBits) { + var _i, _ref, chosenVersion, encoder, level, numDataBits, numFreeBits, v; + chosenVersion = ptrType$3.nil; + _ref = versions; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + v = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), qrCodeVersion); + if (!((v.level === level))) { + _i++; + continue; + } else if (v.version < encoder.minVersion) { + _i++; + continue; + } else if (v.version > encoder.maxVersion) { + break; + } + numFreeBits = $clone(v, qrCodeVersion).numDataBits() - numDataBits >> 0; + if (numFreeBits >= 0) { + chosenVersion = v; + break; + } + _i++; + } + return chosenVersion; + }; + qrCodeVersion.ptr.prototype.numTerminatorBitsRequired = function(numDataBits) { + var numDataBits, numFreeBits, numTerminatorBits, v; + v = this; + numFreeBits = $clone(v, qrCodeVersion).numDataBits() - numDataBits >> 0; + numTerminatorBits = 0; + if (numFreeBits >= 4) { + numTerminatorBits = 4; + } else { + numTerminatorBits = numFreeBits; + } + return numTerminatorBits; + }; + qrCodeVersion.prototype.numTerminatorBitsRequired = function(numDataBits) { return this.$val.numTerminatorBitsRequired(numDataBits); }; + qrCodeVersion.ptr.prototype.numBlocks = function() { + var _i, _ref, b, numBlocks, v; + v = this; + numBlocks = 0; + _ref = v.block; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + b = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), block); + numBlocks = numBlocks + (b.numBlocks) >> 0; + _i++; + } + return numBlocks; + }; + qrCodeVersion.prototype.numBlocks = function() { return this.$val.numBlocks(); }; + qrCodeVersion.ptr.prototype.numBitsToPadToCodeword = function(numDataBits) { + var _r, _r$1, numDataBits, v; + v = this; + if (numDataBits === $clone(v, qrCodeVersion).numDataBits()) { + return 0; + } + return (_r = ((8 - (_r$1 = numDataBits % 8, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) >> 0)) % 8, _r === _r ? _r : $throwRuntimeError("integer divide by zero")); + }; + qrCodeVersion.prototype.numBitsToPadToCodeword = function(numDataBits) { return this.$val.numBitsToPadToCodeword(numDataBits); }; + qrCodeVersion.ptr.prototype.symbolSize = function() { + var v; + v = this; + return 21 + ($imul(((v.version - 1 >> 0)), 4)) >> 0; + }; + qrCodeVersion.prototype.symbolSize = function() { return this.$val.symbolSize(); }; + qrCodeVersion.ptr.prototype.quietZoneSize = function() { + var v; + v = this; + return 4; + }; + qrCodeVersion.prototype.quietZoneSize = function() { return this.$val.quietZoneSize(); }; + ptrType$2.methods = [{prop: "encode", name: "encode", pkg: "github.com/skip2/go-qrcode", typ: $funcType([sliceType$8], [ptrType, $error], false)}, {prop: "classifyDataModes", name: "classifyDataModes", pkg: "github.com/skip2/go-qrcode", typ: $funcType([], [], false)}, {prop: "optimiseDataModes", name: "optimiseDataModes", pkg: "github.com/skip2/go-qrcode", typ: $funcType([], [$error], false)}, {prop: "encodeDataRaw", name: "encodeDataRaw", pkg: "github.com/skip2/go-qrcode", typ: $funcType([sliceType$8, dataMode, ptrType], [], false)}, {prop: "modeIndicator", name: "modeIndicator", pkg: "github.com/skip2/go-qrcode", typ: $funcType([dataMode], [ptrType], false)}, {prop: "charCountBits", name: "charCountBits", pkg: "github.com/skip2/go-qrcode", typ: $funcType([dataMode], [$Int], false)}, {prop: "encodedLength", name: "encodedLength", pkg: "github.com/skip2/go-qrcode", typ: $funcType([dataMode, $Int], [$Int, $error], false)}]; + ptrType$1.methods = [{prop: "Bitmap", name: "Bitmap", pkg: "", typ: $funcType([], [sliceType$3], false)}, {prop: "Image", name: "Image", pkg: "", typ: $funcType([$Int], [image.Image], false)}, {prop: "PNG", name: "PNG", pkg: "", typ: $funcType([$Int], [sliceType$8, $error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([$Int, io.Writer], [$error], false)}, {prop: "WriteFile", name: "WriteFile", pkg: "", typ: $funcType([$Int, $String], [$error], false)}, {prop: "encode", name: "encode", pkg: "github.com/skip2/go-qrcode", typ: $funcType([$Int], [], false)}, {prop: "addTerminatorBits", name: "addTerminatorBits", pkg: "github.com/skip2/go-qrcode", typ: $funcType([$Int], [], false)}, {prop: "encodeBlocks", name: "encodeBlocks", pkg: "github.com/skip2/go-qrcode", typ: $funcType([], [ptrType], false)}, {prop: "addPadding", name: "addPadding", pkg: "github.com/skip2/go-qrcode", typ: $funcType([], [], false)}]; + ptrType$5.methods = [{prop: "addFinderPatterns", name: "addFinderPatterns", pkg: "github.com/skip2/go-qrcode", typ: $funcType([], [], false)}, {prop: "addAlignmentPatterns", name: "addAlignmentPatterns", pkg: "github.com/skip2/go-qrcode", typ: $funcType([], [], false)}, {prop: "addTimingPatterns", name: "addTimingPatterns", pkg: "github.com/skip2/go-qrcode", typ: $funcType([], [], false)}, {prop: "addFormatInfo", name: "addFormatInfo", pkg: "github.com/skip2/go-qrcode", typ: $funcType([], [], false)}, {prop: "addVersionInfo", name: "addVersionInfo", pkg: "github.com/skip2/go-qrcode", typ: $funcType([], [], false)}, {prop: "addData", name: "addData", pkg: "github.com/skip2/go-qrcode", typ: $funcType([], [$Bool, $error], false)}]; + ptrType$4.methods = [{prop: "get", name: "get", pkg: "github.com/skip2/go-qrcode", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "empty", name: "empty", pkg: "github.com/skip2/go-qrcode", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "numEmptyModules", name: "numEmptyModules", pkg: "github.com/skip2/go-qrcode", typ: $funcType([], [$Int], false)}, {prop: "set", name: "set", pkg: "github.com/skip2/go-qrcode", typ: $funcType([$Int, $Int, $Bool], [], false)}, {prop: "set2dPattern", name: "set2dPattern", pkg: "github.com/skip2/go-qrcode", typ: $funcType([$Int, $Int, sliceType$3], [], false)}, {prop: "bitmap", name: "bitmap", pkg: "github.com/skip2/go-qrcode", typ: $funcType([], [sliceType$3], false)}, {prop: "string", name: "string", pkg: "github.com/skip2/go-qrcode", typ: $funcType([], [$String], false)}, {prop: "penaltyScore", name: "penaltyScore", pkg: "github.com/skip2/go-qrcode", typ: $funcType([], [$Int], false)}, {prop: "penalty1", name: "penalty1", pkg: "github.com/skip2/go-qrcode", typ: $funcType([], [$Int], false)}, {prop: "penalty2", name: "penalty2", pkg: "github.com/skip2/go-qrcode", typ: $funcType([], [$Int], false)}, {prop: "penalty3", name: "penalty3", pkg: "github.com/skip2/go-qrcode", typ: $funcType([], [$Int], false)}, {prop: "penalty4", name: "penalty4", pkg: "github.com/skip2/go-qrcode", typ: $funcType([], [$Int], false)}]; + qrCodeVersion.methods = [{prop: "formatInfo", name: "formatInfo", pkg: "github.com/skip2/go-qrcode", typ: $funcType([$Int], [ptrType], false)}, {prop: "versionInfo", name: "versionInfo", pkg: "github.com/skip2/go-qrcode", typ: $funcType([], [ptrType], false)}, {prop: "numDataBits", name: "numDataBits", pkg: "github.com/skip2/go-qrcode", typ: $funcType([], [$Int], false)}, {prop: "numTerminatorBitsRequired", name: "numTerminatorBitsRequired", pkg: "github.com/skip2/go-qrcode", typ: $funcType([$Int], [$Int], false)}, {prop: "numBlocks", name: "numBlocks", pkg: "github.com/skip2/go-qrcode", typ: $funcType([], [$Int], false)}, {prop: "numBitsToPadToCodeword", name: "numBitsToPadToCodeword", pkg: "github.com/skip2/go-qrcode", typ: $funcType([$Int], [$Int], false)}, {prop: "symbolSize", name: "symbolSize", pkg: "github.com/skip2/go-qrcode", typ: $funcType([], [$Int], false)}, {prop: "quietZoneSize", name: "quietZoneSize", pkg: "github.com/skip2/go-qrcode", typ: $funcType([], [$Int], false)}]; + segment.init("github.com/skip2/go-qrcode", [{prop: "dataMode", name: "dataMode", embedded: false, exported: false, typ: dataMode, tag: ""}, {prop: "data", name: "data", embedded: false, exported: false, typ: sliceType$8, tag: ""}]); + dataEncoder.init("github.com/skip2/go-qrcode", [{prop: "minVersion", name: "minVersion", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "maxVersion", name: "maxVersion", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "numericModeIndicator", name: "numericModeIndicator", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "alphanumericModeIndicator", name: "alphanumericModeIndicator", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "byteModeIndicator", name: "byteModeIndicator", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "numNumericCharCountBits", name: "numNumericCharCountBits", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "numAlphanumericCharCountBits", name: "numAlphanumericCharCountBits", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "numByteCharCountBits", name: "numByteCharCountBits", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "data", name: "data", embedded: false, exported: false, typ: sliceType$8, tag: ""}, {prop: "actual", name: "actual", embedded: false, exported: false, typ: sliceType$9, tag: ""}, {prop: "optimised", name: "optimised", embedded: false, exported: false, typ: sliceType$9, tag: ""}]); + QRCode.init("github.com/skip2/go-qrcode", [{prop: "Content", name: "Content", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Level", name: "Level", embedded: false, exported: true, typ: RecoveryLevel, tag: ""}, {prop: "VersionNumber", name: "VersionNumber", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "ForegroundColor", name: "ForegroundColor", embedded: false, exported: true, typ: color.Color, tag: ""}, {prop: "BackgroundColor", name: "BackgroundColor", embedded: false, exported: true, typ: color.Color, tag: ""}, {prop: "encoder", name: "encoder", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "version", name: "version", embedded: false, exported: false, typ: qrCodeVersion, tag: ""}, {prop: "data", name: "data", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "symbol", name: "symbol", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "mask", name: "mask", embedded: false, exported: false, typ: $Int, tag: ""}]); + regularSymbol.init("github.com/skip2/go-qrcode", [{prop: "version", name: "version", embedded: false, exported: false, typ: qrCodeVersion, tag: ""}, {prop: "mask", name: "mask", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "data", name: "data", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "symbol", name: "symbol", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "size", name: "size", embedded: false, exported: false, typ: $Int, tag: ""}]); + symbol.init("github.com/skip2/go-qrcode", [{prop: "module", name: "module", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "isUsed", name: "isUsed", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "size", name: "size", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "symbolSize", name: "symbolSize", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "quietZoneSize", name: "quietZoneSize", embedded: false, exported: false, typ: $Int, tag: ""}]); + qrCodeVersion.init("github.com/skip2/go-qrcode", [{prop: "version", name: "version", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "level", name: "level", embedded: false, exported: false, typ: RecoveryLevel, tag: ""}, {prop: "dataEncoderType", name: "dataEncoderType", embedded: false, exported: false, typ: dataEncoderType, tag: ""}, {prop: "block", name: "block", embedded: false, exported: false, typ: sliceType$5, tag: ""}, {prop: "numRemainderBits", name: "numRemainderBits", embedded: false, exported: false, typ: $Int, tag: ""}]); + block.init("github.com/skip2/go-qrcode", [{prop: "numBlocks", name: "numBlocks", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "numCodewords", name: "numCodewords", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "numDataCodewords", name: "numDataCodewords", embedded: false, exported: false, typ: $Int, tag: ""}]); + dataBlock.init("github.com/skip2/go-qrcode", [{prop: "data", name: "data", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "ecStartOffset", name: "ecStartOffset", embedded: false, exported: false, typ: $Int, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errors.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = bitset.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = reedsolomon.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = image.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = color.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = png.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = ioutil.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = log.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = os.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + alignmentPatternCenter = new sliceType$1([new sliceType([]), new sliceType([]), new sliceType([6, 18]), new sliceType([6, 22]), new sliceType([6, 26]), new sliceType([6, 30]), new sliceType([6, 34]), new sliceType([6, 22, 38]), new sliceType([6, 24, 42]), new sliceType([6, 26, 46]), new sliceType([6, 28, 50]), new sliceType([6, 30, 54]), new sliceType([6, 32, 58]), new sliceType([6, 34, 62]), new sliceType([6, 26, 46, 66]), new sliceType([6, 26, 48, 70]), new sliceType([6, 26, 50, 74]), new sliceType([6, 30, 54, 78]), new sliceType([6, 30, 56, 82]), new sliceType([6, 30, 58, 86]), new sliceType([6, 34, 62, 90]), new sliceType([6, 28, 50, 72, 94]), new sliceType([6, 26, 50, 74, 98]), new sliceType([6, 30, 54, 78, 102]), new sliceType([6, 28, 54, 80, 106]), new sliceType([6, 32, 58, 84, 110]), new sliceType([6, 30, 58, 86, 114]), new sliceType([6, 34, 62, 90, 118]), new sliceType([6, 26, 50, 74, 98, 122]), new sliceType([6, 30, 54, 78, 102, 126]), new sliceType([6, 26, 52, 78, 104, 130]), new sliceType([6, 30, 56, 82, 108, 134]), new sliceType([6, 34, 60, 86, 112, 138]), new sliceType([6, 30, 58, 86, 114, 142]), new sliceType([6, 34, 62, 90, 118, 146]), new sliceType([6, 30, 54, 78, 102, 126, 150]), new sliceType([6, 24, 50, 76, 102, 128, 154]), new sliceType([6, 28, 54, 80, 106, 132, 158]), new sliceType([6, 32, 58, 84, 110, 136, 162]), new sliceType([6, 26, 54, 82, 110, 138, 166]), new sliceType([6, 30, 58, 86, 114, 142, 170])]); + finderPattern = new sliceType$3([new sliceType$2([true, true, true, true, true, true, true]), new sliceType$2([true, false, false, false, false, false, true]), new sliceType$2([true, false, true, true, true, false, true]), new sliceType$2([true, false, true, true, true, false, true]), new sliceType$2([true, false, true, true, true, false, true]), new sliceType$2([true, false, false, false, false, false, true]), new sliceType$2([true, true, true, true, true, true, true])]); + finderPatternSize = 7; + finderPatternHorizontalBorder = new sliceType$3([new sliceType$2([false, false, false, false, false, false, false, false])]); + finderPatternVerticalBorder = new sliceType$3([new sliceType$2([false]), new sliceType$2([false]), new sliceType$2([false]), new sliceType$2([false]), new sliceType$2([false]), new sliceType$2([false]), new sliceType$2([false]), new sliceType$2([false])]); + alignmentPattern = new sliceType$3([new sliceType$2([true, true, true, true, true]), new sliceType$2([true, false, false, false, true]), new sliceType$2([true, false, true, false, true]), new sliceType$2([true, false, false, false, true]), new sliceType$2([true, true, true, true, true])]); + versions = new sliceType$4([new qrCodeVersion.ptr(1, 0, 0, new sliceType$5([new block.ptr(1, 26, 19)]), 0), new qrCodeVersion.ptr(1, 1, 0, new sliceType$5([new block.ptr(1, 26, 16)]), 0), new qrCodeVersion.ptr(1, 2, 0, new sliceType$5([new block.ptr(1, 26, 13)]), 0), new qrCodeVersion.ptr(1, 3, 0, new sliceType$5([new block.ptr(1, 26, 9)]), 0), new qrCodeVersion.ptr(2, 0, 0, new sliceType$5([new block.ptr(1, 44, 34)]), 7), new qrCodeVersion.ptr(2, 1, 0, new sliceType$5([new block.ptr(1, 44, 28)]), 7), new qrCodeVersion.ptr(2, 2, 0, new sliceType$5([new block.ptr(1, 44, 22)]), 7), new qrCodeVersion.ptr(2, 3, 0, new sliceType$5([new block.ptr(1, 44, 16)]), 7), new qrCodeVersion.ptr(3, 0, 0, new sliceType$5([new block.ptr(1, 70, 55)]), 7), new qrCodeVersion.ptr(3, 1, 0, new sliceType$5([new block.ptr(1, 70, 44)]), 7), new qrCodeVersion.ptr(3, 2, 0, new sliceType$5([new block.ptr(2, 35, 17)]), 7), new qrCodeVersion.ptr(3, 3, 0, new sliceType$5([new block.ptr(2, 35, 13)]), 7), new qrCodeVersion.ptr(4, 0, 0, new sliceType$5([new block.ptr(1, 100, 80)]), 7), new qrCodeVersion.ptr(4, 1, 0, new sliceType$5([new block.ptr(2, 50, 32)]), 7), new qrCodeVersion.ptr(4, 2, 0, new sliceType$5([new block.ptr(2, 50, 24)]), 7), new qrCodeVersion.ptr(4, 3, 0, new sliceType$5([new block.ptr(4, 25, 9)]), 7), new qrCodeVersion.ptr(5, 0, 0, new sliceType$5([new block.ptr(1, 134, 108)]), 7), new qrCodeVersion.ptr(5, 1, 0, new sliceType$5([new block.ptr(2, 67, 43)]), 7), new qrCodeVersion.ptr(5, 2, 0, new sliceType$5([new block.ptr(2, 33, 15), new block.ptr(2, 34, 16)]), 7), new qrCodeVersion.ptr(5, 3, 0, new sliceType$5([new block.ptr(2, 33, 11), new block.ptr(2, 34, 12)]), 7), new qrCodeVersion.ptr(6, 0, 0, new sliceType$5([new block.ptr(2, 86, 68)]), 7), new qrCodeVersion.ptr(6, 1, 0, new sliceType$5([new block.ptr(4, 43, 27)]), 7), new qrCodeVersion.ptr(6, 2, 0, new sliceType$5([new block.ptr(4, 43, 19)]), 7), new qrCodeVersion.ptr(6, 3, 0, new sliceType$5([new block.ptr(4, 43, 15)]), 7), new qrCodeVersion.ptr(7, 0, 0, new sliceType$5([new block.ptr(2, 98, 78)]), 0), new qrCodeVersion.ptr(7, 1, 0, new sliceType$5([new block.ptr(4, 49, 31)]), 0), new qrCodeVersion.ptr(7, 2, 0, new sliceType$5([new block.ptr(2, 32, 14), new block.ptr(4, 33, 15)]), 0), new qrCodeVersion.ptr(7, 3, 0, new sliceType$5([new block.ptr(4, 39, 13), new block.ptr(1, 40, 14)]), 0), new qrCodeVersion.ptr(8, 0, 0, new sliceType$5([new block.ptr(2, 121, 97)]), 0), new qrCodeVersion.ptr(8, 1, 0, new sliceType$5([new block.ptr(2, 60, 38), new block.ptr(2, 61, 39)]), 0), new qrCodeVersion.ptr(8, 2, 0, new sliceType$5([new block.ptr(4, 40, 18), new block.ptr(2, 41, 19)]), 0), new qrCodeVersion.ptr(8, 3, 0, new sliceType$5([new block.ptr(4, 40, 14), new block.ptr(2, 41, 15)]), 0), new qrCodeVersion.ptr(9, 0, 0, new sliceType$5([new block.ptr(2, 146, 116)]), 0), new qrCodeVersion.ptr(9, 1, 0, new sliceType$5([new block.ptr(3, 58, 36), new block.ptr(2, 59, 37)]), 0), new qrCodeVersion.ptr(9, 2, 0, new sliceType$5([new block.ptr(4, 36, 16), new block.ptr(4, 37, 17)]), 0), new qrCodeVersion.ptr(9, 3, 0, new sliceType$5([new block.ptr(4, 36, 12), new block.ptr(4, 37, 13)]), 0), new qrCodeVersion.ptr(10, 0, 1, new sliceType$5([new block.ptr(2, 86, 68), new block.ptr(2, 87, 69)]), 0), new qrCodeVersion.ptr(10, 1, 1, new sliceType$5([new block.ptr(4, 69, 43), new block.ptr(1, 70, 44)]), 0), new qrCodeVersion.ptr(10, 2, 1, new sliceType$5([new block.ptr(6, 43, 19), new block.ptr(2, 44, 20)]), 0), new qrCodeVersion.ptr(10, 3, 1, new sliceType$5([new block.ptr(6, 43, 15), new block.ptr(2, 44, 16)]), 0), new qrCodeVersion.ptr(11, 0, 1, new sliceType$5([new block.ptr(4, 101, 81)]), 0), new qrCodeVersion.ptr(11, 1, 1, new sliceType$5([new block.ptr(1, 80, 50), new block.ptr(4, 81, 51)]), 0), new qrCodeVersion.ptr(11, 2, 1, new sliceType$5([new block.ptr(4, 50, 22), new block.ptr(4, 51, 23)]), 0), new qrCodeVersion.ptr(11, 3, 1, new sliceType$5([new block.ptr(3, 36, 12), new block.ptr(8, 37, 13)]), 0), new qrCodeVersion.ptr(12, 0, 1, new sliceType$5([new block.ptr(2, 116, 92), new block.ptr(2, 117, 93)]), 0), new qrCodeVersion.ptr(12, 1, 1, new sliceType$5([new block.ptr(6, 58, 36), new block.ptr(2, 59, 37)]), 0), new qrCodeVersion.ptr(12, 2, 1, new sliceType$5([new block.ptr(4, 46, 20), new block.ptr(6, 47, 21)]), 0), new qrCodeVersion.ptr(12, 3, 1, new sliceType$5([new block.ptr(7, 42, 14), new block.ptr(4, 43, 15)]), 0), new qrCodeVersion.ptr(13, 0, 1, new sliceType$5([new block.ptr(4, 133, 107)]), 0), new qrCodeVersion.ptr(13, 1, 1, new sliceType$5([new block.ptr(8, 59, 37), new block.ptr(1, 60, 38)]), 0), new qrCodeVersion.ptr(13, 2, 1, new sliceType$5([new block.ptr(8, 44, 20), new block.ptr(4, 45, 21)]), 0), new qrCodeVersion.ptr(13, 3, 1, new sliceType$5([new block.ptr(12, 33, 11), new block.ptr(4, 34, 12)]), 0), new qrCodeVersion.ptr(14, 0, 1, new sliceType$5([new block.ptr(3, 145, 115), new block.ptr(1, 146, 116)]), 3), new qrCodeVersion.ptr(14, 1, 1, new sliceType$5([new block.ptr(4, 64, 40), new block.ptr(5, 65, 41)]), 3), new qrCodeVersion.ptr(14, 2, 1, new sliceType$5([new block.ptr(11, 36, 16), new block.ptr(5, 37, 17)]), 3), new qrCodeVersion.ptr(14, 3, 1, new sliceType$5([new block.ptr(11, 36, 12), new block.ptr(5, 37, 13)]), 3), new qrCodeVersion.ptr(15, 0, 1, new sliceType$5([new block.ptr(5, 109, 87), new block.ptr(1, 110, 88)]), 3), new qrCodeVersion.ptr(15, 1, 1, new sliceType$5([new block.ptr(5, 65, 41), new block.ptr(5, 66, 42)]), 3), new qrCodeVersion.ptr(15, 2, 1, new sliceType$5([new block.ptr(5, 54, 24), new block.ptr(7, 55, 25)]), 3), new qrCodeVersion.ptr(15, 3, 1, new sliceType$5([new block.ptr(11, 36, 12), new block.ptr(7, 37, 13)]), 3), new qrCodeVersion.ptr(16, 0, 1, new sliceType$5([new block.ptr(5, 122, 98), new block.ptr(1, 123, 99)]), 3), new qrCodeVersion.ptr(16, 1, 1, new sliceType$5([new block.ptr(7, 73, 45), new block.ptr(3, 74, 46)]), 3), new qrCodeVersion.ptr(16, 2, 1, new sliceType$5([new block.ptr(15, 43, 19), new block.ptr(2, 44, 20)]), 3), new qrCodeVersion.ptr(16, 3, 1, new sliceType$5([new block.ptr(3, 45, 15), new block.ptr(13, 46, 16)]), 3), new qrCodeVersion.ptr(17, 0, 1, new sliceType$5([new block.ptr(1, 135, 107), new block.ptr(5, 136, 108)]), 3), new qrCodeVersion.ptr(17, 1, 1, new sliceType$5([new block.ptr(10, 74, 46), new block.ptr(1, 75, 47)]), 3), new qrCodeVersion.ptr(17, 2, 1, new sliceType$5([new block.ptr(1, 50, 22), new block.ptr(15, 51, 23)]), 3), new qrCodeVersion.ptr(17, 3, 1, new sliceType$5([new block.ptr(2, 42, 14), new block.ptr(17, 43, 15)]), 3), new qrCodeVersion.ptr(18, 0, 1, new sliceType$5([new block.ptr(5, 150, 120), new block.ptr(1, 151, 121)]), 3), new qrCodeVersion.ptr(18, 1, 1, new sliceType$5([new block.ptr(9, 69, 43), new block.ptr(4, 70, 44)]), 3), new qrCodeVersion.ptr(18, 2, 1, new sliceType$5([new block.ptr(17, 50, 22), new block.ptr(1, 51, 23)]), 3), new qrCodeVersion.ptr(18, 3, 1, new sliceType$5([new block.ptr(2, 42, 14), new block.ptr(19, 43, 15)]), 3), new qrCodeVersion.ptr(19, 0, 1, new sliceType$5([new block.ptr(3, 141, 113), new block.ptr(4, 142, 114)]), 3), new qrCodeVersion.ptr(19, 1, 1, new sliceType$5([new block.ptr(3, 70, 44), new block.ptr(11, 71, 45)]), 3), new qrCodeVersion.ptr(19, 2, 1, new sliceType$5([new block.ptr(17, 47, 21), new block.ptr(4, 48, 22)]), 3), new qrCodeVersion.ptr(19, 3, 1, new sliceType$5([new block.ptr(9, 39, 13), new block.ptr(16, 40, 14)]), 3), new qrCodeVersion.ptr(20, 0, 1, new sliceType$5([new block.ptr(3, 135, 107), new block.ptr(5, 136, 108)]), 3), new qrCodeVersion.ptr(20, 1, 1, new sliceType$5([new block.ptr(3, 67, 41), new block.ptr(13, 68, 42)]), 3), new qrCodeVersion.ptr(20, 2, 1, new sliceType$5([new block.ptr(15, 54, 24), new block.ptr(5, 55, 25)]), 3), new qrCodeVersion.ptr(20, 3, 1, new sliceType$5([new block.ptr(15, 43, 15), new block.ptr(10, 44, 16)]), 3), new qrCodeVersion.ptr(21, 0, 1, new sliceType$5([new block.ptr(4, 144, 116), new block.ptr(4, 145, 117)]), 4), new qrCodeVersion.ptr(21, 1, 1, new sliceType$5([new block.ptr(17, 68, 42)]), 4), new qrCodeVersion.ptr(21, 2, 1, new sliceType$5([new block.ptr(17, 50, 22), new block.ptr(6, 51, 23)]), 4), new qrCodeVersion.ptr(21, 3, 1, new sliceType$5([new block.ptr(19, 46, 16), new block.ptr(6, 47, 17)]), 4), new qrCodeVersion.ptr(22, 0, 1, new sliceType$5([new block.ptr(2, 139, 111), new block.ptr(7, 140, 112)]), 4), new qrCodeVersion.ptr(22, 1, 1, new sliceType$5([new block.ptr(17, 74, 46)]), 4), new qrCodeVersion.ptr(22, 2, 1, new sliceType$5([new block.ptr(7, 54, 24), new block.ptr(16, 55, 25)]), 4), new qrCodeVersion.ptr(22, 3, 1, new sliceType$5([new block.ptr(34, 37, 13)]), 4), new qrCodeVersion.ptr(23, 0, 1, new sliceType$5([new block.ptr(4, 151, 121), new block.ptr(5, 152, 122)]), 4), new qrCodeVersion.ptr(23, 1, 1, new sliceType$5([new block.ptr(4, 75, 47), new block.ptr(14, 76, 48)]), 4), new qrCodeVersion.ptr(23, 2, 1, new sliceType$5([new block.ptr(11, 54, 24), new block.ptr(14, 55, 25)]), 4), new qrCodeVersion.ptr(23, 3, 1, new sliceType$5([new block.ptr(16, 45, 15), new block.ptr(14, 46, 16)]), 4), new qrCodeVersion.ptr(24, 0, 1, new sliceType$5([new block.ptr(6, 147, 117), new block.ptr(4, 148, 118)]), 4), new qrCodeVersion.ptr(24, 1, 1, new sliceType$5([new block.ptr(6, 73, 45), new block.ptr(14, 74, 46)]), 4), new qrCodeVersion.ptr(24, 2, 1, new sliceType$5([new block.ptr(11, 54, 24), new block.ptr(16, 55, 25)]), 4), new qrCodeVersion.ptr(24, 3, 1, new sliceType$5([new block.ptr(30, 46, 16), new block.ptr(2, 47, 17)]), 4), new qrCodeVersion.ptr(25, 0, 1, new sliceType$5([new block.ptr(8, 132, 106), new block.ptr(4, 133, 107)]), 4), new qrCodeVersion.ptr(25, 1, 1, new sliceType$5([new block.ptr(8, 75, 47), new block.ptr(13, 76, 48)]), 4), new qrCodeVersion.ptr(25, 2, 1, new sliceType$5([new block.ptr(7, 54, 24), new block.ptr(22, 55, 25)]), 4), new qrCodeVersion.ptr(25, 3, 1, new sliceType$5([new block.ptr(22, 45, 15), new block.ptr(13, 46, 16)]), 4), new qrCodeVersion.ptr(26, 0, 1, new sliceType$5([new block.ptr(10, 142, 114), new block.ptr(2, 143, 115)]), 4), new qrCodeVersion.ptr(26, 1, 1, new sliceType$5([new block.ptr(19, 74, 46), new block.ptr(4, 75, 47)]), 4), new qrCodeVersion.ptr(26, 2, 1, new sliceType$5([new block.ptr(28, 50, 22), new block.ptr(6, 51, 23)]), 4), new qrCodeVersion.ptr(26, 3, 1, new sliceType$5([new block.ptr(33, 46, 16), new block.ptr(4, 47, 17)]), 4), new qrCodeVersion.ptr(27, 0, 2, new sliceType$5([new block.ptr(8, 152, 122), new block.ptr(4, 153, 123)]), 4), new qrCodeVersion.ptr(27, 1, 2, new sliceType$5([new block.ptr(22, 73, 45), new block.ptr(3, 74, 46)]), 4), new qrCodeVersion.ptr(27, 2, 2, new sliceType$5([new block.ptr(8, 53, 23), new block.ptr(26, 54, 24)]), 4), new qrCodeVersion.ptr(27, 3, 2, new sliceType$5([new block.ptr(12, 45, 15), new block.ptr(28, 46, 16)]), 4), new qrCodeVersion.ptr(28, 0, 2, new sliceType$5([new block.ptr(3, 147, 117), new block.ptr(10, 148, 118)]), 3), new qrCodeVersion.ptr(28, 1, 2, new sliceType$5([new block.ptr(3, 73, 45), new block.ptr(23, 74, 46)]), 3), new qrCodeVersion.ptr(28, 2, 2, new sliceType$5([new block.ptr(4, 54, 24), new block.ptr(31, 55, 25)]), 3), new qrCodeVersion.ptr(28, 3, 2, new sliceType$5([new block.ptr(11, 45, 15), new block.ptr(31, 46, 16)]), 3), new qrCodeVersion.ptr(29, 0, 2, new sliceType$5([new block.ptr(7, 146, 116), new block.ptr(7, 147, 117)]), 3), new qrCodeVersion.ptr(29, 1, 2, new sliceType$5([new block.ptr(21, 73, 45), new block.ptr(7, 74, 46)]), 3), new qrCodeVersion.ptr(29, 2, 2, new sliceType$5([new block.ptr(1, 53, 23), new block.ptr(37, 54, 24)]), 3), new qrCodeVersion.ptr(29, 3, 2, new sliceType$5([new block.ptr(19, 45, 15), new block.ptr(26, 46, 16)]), 3), new qrCodeVersion.ptr(30, 0, 2, new sliceType$5([new block.ptr(5, 145, 115), new block.ptr(10, 146, 116)]), 3), new qrCodeVersion.ptr(30, 1, 2, new sliceType$5([new block.ptr(19, 75, 47), new block.ptr(10, 76, 48)]), 3), new qrCodeVersion.ptr(30, 2, 2, new sliceType$5([new block.ptr(15, 54, 24), new block.ptr(25, 55, 25)]), 3), new qrCodeVersion.ptr(30, 3, 2, new sliceType$5([new block.ptr(23, 45, 15), new block.ptr(25, 46, 16)]), 3), new qrCodeVersion.ptr(31, 0, 2, new sliceType$5([new block.ptr(13, 145, 115), new block.ptr(3, 146, 116)]), 3), new qrCodeVersion.ptr(31, 1, 2, new sliceType$5([new block.ptr(2, 74, 46), new block.ptr(29, 75, 47)]), 3), new qrCodeVersion.ptr(31, 2, 2, new sliceType$5([new block.ptr(42, 54, 24), new block.ptr(1, 55, 25)]), 3), new qrCodeVersion.ptr(31, 3, 2, new sliceType$5([new block.ptr(23, 45, 15), new block.ptr(28, 46, 16)]), 3), new qrCodeVersion.ptr(32, 0, 2, new sliceType$5([new block.ptr(17, 145, 115)]), 3), new qrCodeVersion.ptr(32, 1, 2, new sliceType$5([new block.ptr(10, 74, 46), new block.ptr(23, 75, 47)]), 3), new qrCodeVersion.ptr(32, 2, 2, new sliceType$5([new block.ptr(10, 54, 24), new block.ptr(35, 55, 25)]), 3), new qrCodeVersion.ptr(32, 3, 2, new sliceType$5([new block.ptr(19, 45, 15), new block.ptr(35, 46, 16)]), 3), new qrCodeVersion.ptr(33, 0, 2, new sliceType$5([new block.ptr(17, 145, 115), new block.ptr(1, 146, 116)]), 3), new qrCodeVersion.ptr(33, 1, 2, new sliceType$5([new block.ptr(14, 74, 46), new block.ptr(21, 75, 47)]), 3), new qrCodeVersion.ptr(33, 2, 2, new sliceType$5([new block.ptr(29, 54, 24), new block.ptr(19, 55, 25)]), 3), new qrCodeVersion.ptr(33, 3, 2, new sliceType$5([new block.ptr(11, 45, 15), new block.ptr(46, 46, 16)]), 3), new qrCodeVersion.ptr(34, 0, 2, new sliceType$5([new block.ptr(13, 145, 115), new block.ptr(6, 146, 116)]), 3), new qrCodeVersion.ptr(34, 1, 2, new sliceType$5([new block.ptr(14, 74, 46), new block.ptr(23, 75, 47)]), 3), new qrCodeVersion.ptr(34, 2, 2, new sliceType$5([new block.ptr(44, 54, 24), new block.ptr(7, 55, 25)]), 3), new qrCodeVersion.ptr(34, 3, 2, new sliceType$5([new block.ptr(59, 46, 16), new block.ptr(1, 47, 17)]), 3), new qrCodeVersion.ptr(35, 0, 2, new sliceType$5([new block.ptr(12, 151, 121), new block.ptr(7, 152, 122)]), 0), new qrCodeVersion.ptr(35, 1, 2, new sliceType$5([new block.ptr(12, 75, 47), new block.ptr(26, 76, 48)]), 0), new qrCodeVersion.ptr(35, 2, 2, new sliceType$5([new block.ptr(39, 54, 24), new block.ptr(14, 55, 25)]), 0), new qrCodeVersion.ptr(35, 3, 2, new sliceType$5([new block.ptr(22, 45, 15), new block.ptr(41, 46, 16)]), 0), new qrCodeVersion.ptr(36, 0, 2, new sliceType$5([new block.ptr(6, 151, 121), new block.ptr(14, 152, 122)]), 0), new qrCodeVersion.ptr(36, 1, 2, new sliceType$5([new block.ptr(6, 75, 47), new block.ptr(34, 76, 48)]), 0), new qrCodeVersion.ptr(36, 2, 2, new sliceType$5([new block.ptr(46, 54, 24), new block.ptr(10, 55, 25)]), 0), new qrCodeVersion.ptr(36, 3, 2, new sliceType$5([new block.ptr(2, 45, 15), new block.ptr(64, 46, 16)]), 0), new qrCodeVersion.ptr(37, 0, 2, new sliceType$5([new block.ptr(17, 152, 122), new block.ptr(4, 153, 123)]), 0), new qrCodeVersion.ptr(37, 1, 2, new sliceType$5([new block.ptr(29, 74, 46), new block.ptr(14, 75, 47)]), 0), new qrCodeVersion.ptr(37, 2, 2, new sliceType$5([new block.ptr(49, 54, 24), new block.ptr(10, 55, 25)]), 0), new qrCodeVersion.ptr(37, 3, 2, new sliceType$5([new block.ptr(24, 45, 15), new block.ptr(46, 46, 16)]), 0), new qrCodeVersion.ptr(38, 0, 2, new sliceType$5([new block.ptr(4, 152, 122), new block.ptr(18, 153, 123)]), 0), new qrCodeVersion.ptr(38, 1, 2, new sliceType$5([new block.ptr(13, 74, 46), new block.ptr(32, 75, 47)]), 0), new qrCodeVersion.ptr(38, 2, 2, new sliceType$5([new block.ptr(48, 54, 24), new block.ptr(14, 55, 25)]), 0), new qrCodeVersion.ptr(38, 3, 2, new sliceType$5([new block.ptr(42, 45, 15), new block.ptr(32, 46, 16)]), 0), new qrCodeVersion.ptr(39, 0, 2, new sliceType$5([new block.ptr(20, 147, 117), new block.ptr(4, 148, 118)]), 0), new qrCodeVersion.ptr(39, 1, 2, new sliceType$5([new block.ptr(40, 75, 47), new block.ptr(7, 76, 48)]), 0), new qrCodeVersion.ptr(39, 2, 2, new sliceType$5([new block.ptr(43, 54, 24), new block.ptr(22, 55, 25)]), 0), new qrCodeVersion.ptr(39, 3, 2, new sliceType$5([new block.ptr(10, 45, 15), new block.ptr(67, 46, 16)]), 0), new qrCodeVersion.ptr(40, 0, 2, new sliceType$5([new block.ptr(19, 148, 118), new block.ptr(6, 149, 119)]), 0), new qrCodeVersion.ptr(40, 1, 2, new sliceType$5([new block.ptr(18, 75, 47), new block.ptr(31, 76, 48)]), 0), new qrCodeVersion.ptr(40, 2, 2, new sliceType$5([new block.ptr(34, 54, 24), new block.ptr(34, 55, 25)]), 0), new qrCodeVersion.ptr(40, 3, 2, new sliceType$5([new block.ptr(20, 45, 15), new block.ptr(61, 46, 16)]), 0)]); + formatBitSequence = new sliceType$6([new structType.ptr(21522, 17477), new structType.ptr(20773, 16754), new structType.ptr(24188, 20011), new structType.ptr(23371, 19228), new structType.ptr(17913, 21934), new structType.ptr(16590, 20633), new structType.ptr(20375, 24512), new structType.ptr(19104, 23287), new structType.ptr(30660, 26515), new structType.ptr(29427, 25252), new structType.ptr(32170, 28157), new structType.ptr(30877, 26826), new structType.ptr(26159, 30328), new structType.ptr(25368, 29519), new structType.ptr(27713, 31766), new structType.ptr(26998, 31009), new structType.ptr(5769, 1758), new structType.ptr(5054, 1001), new structType.ptr(7399, 3248), new structType.ptr(6608, 2439), new structType.ptr(1890, 5941), new structType.ptr(597, 4610), new structType.ptr(3340, 7515), new structType.ptr(2107, 6252), new structType.ptr(13663, 9480), new structType.ptr(12392, 8255), new structType.ptr(16177, 12134), new structType.ptr(14854, 10833), new structType.ptr(9396, 13539), new structType.ptr(8579, 12756), new structType.ptr(11994, 16013), new structType.ptr(11245, 15290)]); + versionBitSequence = new sliceType$7([0, 0, 0, 0, 0, 0, 0, 31892, 34236, 39577, 42195, 48118, 51042, 55367, 58893, 63784, 68472, 70749, 76311, 79154, 84390, 87683, 92361, 96236, 102084, 102881, 110507, 110734, 117786, 119615, 126325, 127568, 133589, 136944, 141498, 145311, 150283, 152622, 158308, 161089, 167017]); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["github.com/divan/txqr/qr"] = (function() { + var $pkg = {}, $init, fmt, gozxing, qrcode, qrcode$1, image, sliceType, Encode; + fmt = $packages["fmt"]; + gozxing = $packages["github.com/makiuchi-d/gozxing"]; + qrcode = $packages["github.com/makiuchi-d/gozxing/qrcode"]; + qrcode$1 = $packages["github.com/skip2/go-qrcode"]; + image = $packages["image"]; + sliceType = $sliceType($emptyInterface); + Encode = function(data, size, lvl) { + var _r, _r$1, _r$2, _tuple, data, err, lvl, qr, size, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _tuple = $f._tuple; data = $f.data; err = $f.err; lvl = $f.lvl; qr = $f.qr; size = $f.size; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = qrcode$1.New(data, ((lvl >> 0))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + qr = _tuple[0]; + err = _tuple[1]; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2: + _r$1 = fmt.Errorf("encode QR: %v", new sliceType([err])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return [$ifaceNil, _r$1]; + /* } */ case 3: + _r$2 = qr.Image(size); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $s = -1; return [_r$2, $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Encode }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tuple = _tuple; $f.data = data; $f.err = err; $f.lvl = lvl; $f.qr = qr; $f.size = size; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Encode = Encode; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gozxing.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = qrcode.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = qrcode$1.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = image.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["github.com/gopherjs/vecty"] = (function() { + var $pkg = {}, $init, js, reflect, Core, Component, Copier, Mounter, Unmounter, Keyer, ComponentOrHTML, RenderSkipper, HTML, List, KeyedList, batchRenderer, jsObject, wrappedObject, EventListener, Event, MarkupOrChild, Applyer, markupFunc, MarkupList, sliceType, sliceType$1, ptrType, sliceType$2, ptrType$1, sliceType$3, sliceType$4, structType, ptrType$2, funcType, sliceType$5, funcType$1, funcType$2, sliceType$6, ptrType$3, mapType, mapType$1, mapType$2, mapType$3, ptrType$4, mapType$4, ptrType$5, funcType$3, batch, global, undefined$1, isTest, Tag, Text, extractHTML, sameType, copyComponent, copyProps, render, renderComponent, mountUnmount, mount, unmount, requestAnimationFrame, RenderBody, SetTitle, AddStylesheet, wrapObject, init, replaceNode, apply, Property, Class, mustValidateClassNames, containsSpace, Markup, If; + js = $packages["github.com/gopherjs/gopherjs/js"]; + reflect = $packages["reflect"]; + Core = $pkg.Core = $newType(0, $kindStruct, "vecty.Core", true, "github.com/gopherjs/vecty", true, function(prevRenderComponent_, prevRender_, mounted_, unmounted_) { + this.$val = this; + if (arguments.length === 0) { + this.prevRenderComponent = $ifaceNil; + this.prevRender = $ifaceNil; + this.mounted = false; + this.unmounted = false; + return; + } + this.prevRenderComponent = prevRenderComponent_; + this.prevRender = prevRender_; + this.mounted = mounted_; + this.unmounted = unmounted_; + }); + Component = $pkg.Component = $newType(8, $kindInterface, "vecty.Component", true, "github.com/gopherjs/vecty", true, null); + Copier = $pkg.Copier = $newType(8, $kindInterface, "vecty.Copier", true, "github.com/gopherjs/vecty", true, null); + Mounter = $pkg.Mounter = $newType(8, $kindInterface, "vecty.Mounter", true, "github.com/gopherjs/vecty", true, null); + Unmounter = $pkg.Unmounter = $newType(8, $kindInterface, "vecty.Unmounter", true, "github.com/gopherjs/vecty", true, null); + Keyer = $pkg.Keyer = $newType(8, $kindInterface, "vecty.Keyer", true, "github.com/gopherjs/vecty", true, null); + ComponentOrHTML = $pkg.ComponentOrHTML = $newType(8, $kindInterface, "vecty.ComponentOrHTML", true, "github.com/gopherjs/vecty", true, null); + RenderSkipper = $pkg.RenderSkipper = $newType(8, $kindInterface, "vecty.RenderSkipper", true, "github.com/gopherjs/vecty", true, null); + HTML = $pkg.HTML = $newType(0, $kindStruct, "vecty.HTML", true, "github.com/gopherjs/vecty", true, function(node_, namespace_, tag_, text_, innerHTML_, classes_, styles_, dataset_, properties_, attributes_, eventListeners_, children_, key_, keyedChildren_, insertBeforeNode_, lastRenderedChild_) { + this.$val = this; + if (arguments.length === 0) { + this.node = $ifaceNil; + this.namespace = ""; + this.tag = ""; + this.text = ""; + this.innerHTML = ""; + this.classes = false; + this.styles = false; + this.dataset = false; + this.properties = false; + this.attributes = false; + this.eventListeners = sliceType$3.nil; + this.children = sliceType$4.nil; + this.key = $ifaceNil; + this.keyedChildren = false; + this.insertBeforeNode = $ifaceNil; + this.lastRenderedChild = ptrType.nil; + return; + } + this.node = node_; + this.namespace = namespace_; + this.tag = tag_; + this.text = text_; + this.innerHTML = innerHTML_; + this.classes = classes_; + this.styles = styles_; + this.dataset = dataset_; + this.properties = properties_; + this.attributes = attributes_; + this.eventListeners = eventListeners_; + this.children = children_; + this.key = key_; + this.keyedChildren = keyedChildren_; + this.insertBeforeNode = insertBeforeNode_; + this.lastRenderedChild = lastRenderedChild_; + }); + List = $pkg.List = $newType(12, $kindSlice, "vecty.List", true, "github.com/gopherjs/vecty", true, null); + KeyedList = $pkg.KeyedList = $newType(0, $kindStruct, "vecty.KeyedList", true, "github.com/gopherjs/vecty", true, function(html_, key_) { + this.$val = this; + if (arguments.length === 0) { + this.html = ptrType.nil; + this.key = $ifaceNil; + return; + } + this.html = html_; + this.key = key_; + }); + batchRenderer = $pkg.batchRenderer = $newType(0, $kindStruct, "vecty.batchRenderer", true, "github.com/gopherjs/vecty", false, function(batch_, idx_, scheduled_) { + this.$val = this; + if (arguments.length === 0) { + this.batch = sliceType.nil; + this.idx = false; + this.scheduled = false; + return; + } + this.batch = batch_; + this.idx = idx_; + this.scheduled = scheduled_; + }); + jsObject = $pkg.jsObject = $newType(8, $kindInterface, "vecty.jsObject", true, "github.com/gopherjs/vecty", false, null); + wrappedObject = $pkg.wrappedObject = $newType(0, $kindStruct, "vecty.wrappedObject", true, "github.com/gopherjs/vecty", false, function(j_) { + this.$val = this; + if (arguments.length === 0) { + this.j = null; + return; + } + this.j = j_; + }); + EventListener = $pkg.EventListener = $newType(0, $kindStruct, "vecty.EventListener", true, "github.com/gopherjs/vecty", true, function(Name_, Listener_, callPreventDefault_, callStopPropagation_, wrapper_) { + this.$val = this; + if (arguments.length === 0) { + this.Name = ""; + this.Listener = $throwNilPointerError; + this.callPreventDefault = false; + this.callStopPropagation = false; + this.wrapper = $throwNilPointerError; + return; + } + this.Name = Name_; + this.Listener = Listener_; + this.callPreventDefault = callPreventDefault_; + this.callStopPropagation = callStopPropagation_; + this.wrapper = wrapper_; + }); + Event = $pkg.Event = $newType(0, $kindStruct, "vecty.Event", true, "github.com/gopherjs/vecty", true, function(Object_, Target_) { + this.$val = this; + if (arguments.length === 0) { + this.Object = null; + this.Target = null; + return; + } + this.Object = Object_; + this.Target = Target_; + }); + MarkupOrChild = $pkg.MarkupOrChild = $newType(8, $kindInterface, "vecty.MarkupOrChild", true, "github.com/gopherjs/vecty", true, null); + Applyer = $pkg.Applyer = $newType(8, $kindInterface, "vecty.Applyer", true, "github.com/gopherjs/vecty", true, null); + markupFunc = $pkg.markupFunc = $newType(4, $kindFunc, "vecty.markupFunc", true, "github.com/gopherjs/vecty", false, null); + MarkupList = $pkg.MarkupList = $newType(0, $kindStruct, "vecty.MarkupList", true, "github.com/gopherjs/vecty", true, function(list_) { + this.$val = this; + if (arguments.length === 0) { + this.list = sliceType$6.nil; + return; + } + this.list = list_; + }); + sliceType = $sliceType(Component); + sliceType$1 = $sliceType($emptyInterface); + ptrType = $ptrType(HTML); + sliceType$2 = $sliceType(Mounter); + ptrType$1 = $ptrType(EventListener); + sliceType$3 = $sliceType(ptrType$1); + sliceType$4 = $sliceType(ComponentOrHTML); + structType = $structType("", []); + ptrType$2 = $ptrType(js.Object); + funcType = $funcType([ptrType$2], [], false); + sliceType$5 = $sliceType(MarkupOrChild); + funcType$1 = $funcType([$Float64], [], false); + funcType$2 = $funcType([], [], false); + sliceType$6 = $sliceType(Applyer); + ptrType$3 = $ptrType(Core); + mapType = $mapType($String, structType); + mapType$1 = $mapType($String, $String); + mapType$2 = $mapType($String, $emptyInterface); + mapType$3 = $mapType($emptyInterface, ComponentOrHTML); + ptrType$4 = $ptrType(batchRenderer); + mapType$4 = $mapType(Component, $Int); + ptrType$5 = $ptrType(Event); + funcType$3 = $funcType([ptrType$5], [], false); + Core.ptr.prototype.Context = function() { + var c; + c = this; + return c; + }; + Core.prototype.Context = function() { return this.$val.Context(); }; + HTML.ptr.prototype.Node = function() { + var h; + h = this; + if ($interfaceIsEqual(h.node, $ifaceNil)) { + $panic(new $String("vecty: cannot call (*HTML).Node() before DOM node creation / component mount")); + } + return $assertType(h.node, wrappedObject).j; + }; + HTML.prototype.Node = function() { return this.$val.Node(); }; + HTML.ptr.prototype.Key = function() { + var h; + h = this; + return h.key; + }; + HTML.prototype.Key = function() { return this.$val.Key(); }; + HTML.ptr.prototype.createNode = function() { + var _r, _r$1, _r$2, _r$3, _r$4, _r$5, h, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; h = $f.h; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + h = this; + /* */ if (!(h.tag === "") && !(h.text === "")) { $s = 2; continue; } + /* */ if (h.tag === "" && !(h.innerHTML === "")) { $s = 3; continue; } + /* */ if (!(h.tag === "") && h.namespace === "") { $s = 4; continue; } + /* */ if (!(h.tag === "") && !(h.namespace === "")) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!(h.tag === "") && !(h.text === "")) { */ case 2: + $panic(new $String("vecty: internal error (only one of HTML.tag or HTML.text may be set)")); + $s = 7; continue; + /* } else if (h.tag === "" && !(h.innerHTML === "")) { */ case 3: + $panic(new $String("vecty: only HTML may have UnsafeHTML attribute")); + $s = 7; continue; + /* } else if (!(h.tag === "") && h.namespace === "") { */ case 4: + _r = global.Get("document"); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = _r.Call("createElement", new sliceType$1([new $String(h.tag)])); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + h.node = _r$1; + $s = 7; continue; + /* } else if (!(h.tag === "") && !(h.namespace === "")) { */ case 5: + _r$2 = global.Get("document"); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = _r$2.Call("createElementNS", new sliceType$1([new $String(h.namespace), new $String(h.tag)])); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + h.node = _r$3; + $s = 7; continue; + /* } else { */ case 6: + _r$4 = global.Get("document"); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$5 = _r$4.Call("createTextNode", new sliceType$1([new $String(h.text)])); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + h.node = _r$5; + /* } */ case 7: + case 1: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: HTML.ptr.prototype.createNode }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f.h = h; $f.$s = $s; $f.$r = $r; return $f; + }; + HTML.prototype.createNode = function() { return this.$val.createNode(); }; + HTML.ptr.prototype.reconcileText = function(prev) { + var h, prev, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; h = $f.h; prev = $f.prev; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + h = this; + h.node = prev.node; + /* */ if (!(h.text === prev.text)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(h.text === prev.text)) { */ case 1: + $r = h.node.Set("nodeValue", new $String(h.text)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: HTML.ptr.prototype.reconcileText }; } $f.h = h; $f.prev = prev; $f.$s = $s; $f.$r = $r; return $f; + }; + HTML.prototype.reconcileText = function(prev) { return this.$val.reconcileText(prev); }; + HTML.ptr.prototype.reconcile = function(prev) { + var _r, h, prev, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; h = $f.h; prev = $f.prev; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + h = this; + /* */ if (!(prev === ptrType.nil) && h.tag === "" && prev.tag === "") { $s = 2; continue; } + /* */ if (!(prev === ptrType.nil) && !(h.tag === "") && !(prev.tag === "") && h.tag === prev.tag && h.namespace === prev.namespace) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!(prev === ptrType.nil) && h.tag === "" && prev.tag === "") { */ case 2: + $r = h.reconcileText(prev); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return sliceType$2.nil; + /* } else if (!(prev === ptrType.nil) && !(h.tag === "") && !(prev.tag === "") && h.tag === prev.tag && h.namespace === prev.namespace) { */ case 3: + h.node = prev.node; + $s = 5; continue; + /* } else { */ case 4: + if (prev === ptrType.nil) { + prev = new HTML.ptr($ifaceNil, "", "", "", "", false, false, false, false, false, sliceType$3.nil, sliceType$4.nil, $ifaceNil, false, $ifaceNil, ptrType.nil); + } + $r = h.createNode(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 5: + case 1: + /* */ if (!($interfaceIsEqual(h.node, prev.node))) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!($interfaceIsEqual(h.node, prev.node))) { */ case 8: + $r = h.reconcileProperties(new HTML.ptr($ifaceNil, "", "", "", "", false, false, false, false, false, sliceType$3.nil, sliceType$4.nil, $ifaceNil, false, $ifaceNil, ptrType.nil)); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 10; continue; + /* } else { */ case 9: + $r = h.reconcileProperties(prev); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 10: + _r = h.reconcileChildren(prev); /* */ $s = 13; case 13: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: HTML.ptr.prototype.reconcile }; } $f._r = _r; $f.h = h; $f.prev = prev; $f.$s = $s; $f.$r = $r; return $f; + }; + HTML.prototype.reconcile = function(prev) { return this.$val.reconcile(prev); }; + HTML.ptr.prototype.reconcileProperties = function(prev) { + var _1, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _entry$6, _entry$7, _entry$8, _entry$9, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _keys, _keys$1, _keys$2, _keys$3, _keys$4, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _tuple, classList, dataset, h, l, l$1, l$2, name, name$1, name$2, name$3, name$4, ok, oldValue, oldValue$1, prev, style, value, value$1, value$2, value$3, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _entry = $f._entry; _entry$1 = $f._entry$1; _entry$2 = $f._entry$2; _entry$3 = $f._entry$3; _entry$4 = $f._entry$4; _entry$5 = $f._entry$5; _entry$6 = $f._entry$6; _entry$7 = $f._entry$7; _entry$8 = $f._entry$8; _entry$9 = $f._entry$9; _i = $f._i; _i$1 = $f._i$1; _i$2 = $f._i$2; _i$3 = $f._i$3; _i$4 = $f._i$4; _i$5 = $f._i$5; _i$6 = $f._i$6; _keys = $f._keys; _keys$1 = $f._keys$1; _keys$2 = $f._keys$2; _keys$3 = $f._keys$3; _keys$4 = $f._keys$4; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _ref = $f._ref; _ref$1 = $f._ref$1; _ref$2 = $f._ref$2; _ref$3 = $f._ref$3; _ref$4 = $f._ref$4; _ref$5 = $f._ref$5; _ref$6 = $f._ref$6; _tuple = $f._tuple; classList = $f.classList; dataset = $f.dataset; h = $f.h; l = $f.l; l$1 = $f.l$1; l$2 = $f.l$2; name = $f.name; name$1 = $f.name$1; name$2 = $f.name$2; name$3 = $f.name$3; name$4 = $f.name$4; ok = $f.ok; oldValue = $f.oldValue; oldValue$1 = $f.oldValue$1; prev = $f.prev; style = $f.style; value = $f.value; value$1 = $f.value$1; value$2 = $f.value$2; value$3 = $f.value$3; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + h = this; + /* */ if ($interfaceIsEqual(h.node, prev.node)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ($interfaceIsEqual(h.node, prev.node)) { */ case 1: + $r = h.removeProperties(prev); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + _ref = h.eventListeners; + _i = 0; + /* while (true) { */ case 4: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 5; continue; } + l = [l]; + l$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + l[0] = l$1; + l[0].wrapper = (function(l) { return function $b(jsEvent) { + var jsEvent, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; jsEvent = $f.jsEvent; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + if (l[0].callPreventDefault) { + jsEvent.preventDefault(); + } + if (l[0].callStopPropagation) { + jsEvent.stopPropagation(); + } + $r = l[0].Listener(new Event.ptr(jsEvent, jsEvent.target)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f.jsEvent = jsEvent; $f.$s = $s; $f.$r = $r; return $f; + }; })(l); + _i++; + /* } */ $s = 4; continue; case 5: + _ref$1 = h.properties; + _i$1 = 0; + _keys = $keys(_ref$1); + /* while (true) { */ case 6: + /* if (!(_i$1 < _keys.length)) { break; } */ if(!(_i$1 < _keys.length)) { $s = 7; continue; } + _entry = _ref$1[_keys[_i$1]]; + if (_entry === undefined) { + _i$1++; + /* continue; */ $s = 6; continue; + } + name = _entry.k; + value = _entry.v; + oldValue = $ifaceNil; + _1 = name; + /* */ if (_1 === ("value")) { $s = 9; continue; } + /* */ if (_1 === ("checked")) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (_1 === ("value")) { */ case 9: + _r = h.node.Get("value"); /* */ $s = 13; case 13: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = _r.String(); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + oldValue = new $String(_r$1); + $s = 12; continue; + /* } else if (_1 === ("checked")) { */ case 10: + _r$2 = h.node.Get("checked"); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = _r$2.Bool(); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + oldValue = new $Bool(_r$3); + $s = 12; continue; + /* } else { */ case 11: + oldValue = (_entry$1 = prev.properties[$String.keyFor(name)], _entry$1 !== undefined ? _entry$1.v : $ifaceNil); + /* } */ case 12: + case 8: + /* */ if (!($interfaceIsEqual(value, oldValue))) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (!($interfaceIsEqual(value, oldValue))) { */ case 17: + $r = h.node.Set(name, value); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 18: + _i$1++; + /* } */ $s = 6; continue; case 7: + _ref$2 = h.attributes; + _i$2 = 0; + _keys$1 = $keys(_ref$2); + /* while (true) { */ case 20: + /* if (!(_i$2 < _keys$1.length)) { break; } */ if(!(_i$2 < _keys$1.length)) { $s = 21; continue; } + _entry$2 = _ref$2[_keys$1[_i$2]]; + if (_entry$2 === undefined) { + _i$2++; + /* continue; */ $s = 20; continue; + } + name$1 = _entry$2.k; + value$1 = _entry$2.v; + /* */ if (!($interfaceIsEqual(value$1, (_entry$3 = prev.attributes[$String.keyFor(name$1)], _entry$3 !== undefined ? _entry$3.v : $ifaceNil)))) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (!($interfaceIsEqual(value$1, (_entry$3 = prev.attributes[$String.keyFor(name$1)], _entry$3 !== undefined ? _entry$3.v : $ifaceNil)))) { */ case 22: + _r$4 = h.node.Call("setAttribute", new sliceType$1([new $String(name$1), value$1])); /* */ $s = 24; case 24: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4; + /* } */ case 23: + _i$2++; + /* } */ $s = 20; continue; case 21: + _r$5 = h.node.Get("classList"); /* */ $s = 25; case 25: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + classList = _r$5; + _ref$3 = h.classes; + _i$3 = 0; + _keys$2 = $keys(_ref$3); + /* while (true) { */ case 26: + /* if (!(_i$3 < _keys$2.length)) { break; } */ if(!(_i$3 < _keys$2.length)) { $s = 27; continue; } + _entry$4 = _ref$3[_keys$2[_i$3]]; + if (_entry$4 === undefined) { + _i$3++; + /* continue; */ $s = 26; continue; + } + name$2 = _entry$4.k; + _tuple = (_entry$5 = prev.classes[$String.keyFor(name$2)], _entry$5 !== undefined ? [_entry$5.v, true] : [new structType.ptr(), false]); + ok = _tuple[1]; + /* */ if (!ok) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if (!ok) { */ case 28: + _r$6 = classList.Call("add", new sliceType$1([new $String(name$2)])); /* */ $s = 30; case 30: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$6; + /* } */ case 29: + _i$3++; + /* } */ $s = 26; continue; case 27: + _r$7 = h.node.Get("dataset"); /* */ $s = 31; case 31: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + dataset = _r$7; + _ref$4 = h.dataset; + _i$4 = 0; + _keys$3 = $keys(_ref$4); + /* while (true) { */ case 32: + /* if (!(_i$4 < _keys$3.length)) { break; } */ if(!(_i$4 < _keys$3.length)) { $s = 33; continue; } + _entry$6 = _ref$4[_keys$3[_i$4]]; + if (_entry$6 === undefined) { + _i$4++; + /* continue; */ $s = 32; continue; + } + name$3 = _entry$6.k; + value$2 = _entry$6.v; + /* */ if (!(value$2 === (_entry$7 = prev.dataset[$String.keyFor(name$3)], _entry$7 !== undefined ? _entry$7.v : ""))) { $s = 34; continue; } + /* */ $s = 35; continue; + /* if (!(value$2 === (_entry$7 = prev.dataset[$String.keyFor(name$3)], _entry$7 !== undefined ? _entry$7.v : ""))) { */ case 34: + $r = dataset.Set(name$3, new $String(value$2)); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 35: + _i$4++; + /* } */ $s = 32; continue; case 33: + _r$8 = h.node.Get("style"); /* */ $s = 37; case 37: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + style = _r$8; + _ref$5 = h.styles; + _i$5 = 0; + _keys$4 = $keys(_ref$5); + /* while (true) { */ case 38: + /* if (!(_i$5 < _keys$4.length)) { break; } */ if(!(_i$5 < _keys$4.length)) { $s = 39; continue; } + _entry$8 = _ref$5[_keys$4[_i$5]]; + if (_entry$8 === undefined) { + _i$5++; + /* continue; */ $s = 38; continue; + } + name$4 = _entry$8.k; + value$3 = _entry$8.v; + oldValue$1 = (_entry$9 = prev.styles[$String.keyFor(name$4)], _entry$9 !== undefined ? _entry$9.v : ""); + /* */ if (!(value$3 === oldValue$1)) { $s = 40; continue; } + /* */ $s = 41; continue; + /* if (!(value$3 === oldValue$1)) { */ case 40: + _r$9 = style.Call("setProperty", new sliceType$1([new $String(name$4), new $String(value$3)])); /* */ $s = 42; case 42: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$9; + /* } */ case 41: + _i$5++; + /* } */ $s = 38; continue; case 39: + _ref$6 = h.eventListeners; + _i$6 = 0; + /* while (true) { */ case 43: + /* if (!(_i$6 < _ref$6.$length)) { break; } */ if(!(_i$6 < _ref$6.$length)) { $s = 44; continue; } + l$2 = ((_i$6 < 0 || _i$6 >= _ref$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$6.$array[_ref$6.$offset + _i$6]); + _r$10 = h.node.Call("addEventListener", new sliceType$1([new $String(l$2.Name), new funcType(l$2.wrapper)])); /* */ $s = 45; case 45: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$10; + _i$6++; + /* } */ $s = 43; continue; case 44: + /* */ if (!(h.innerHTML === prev.innerHTML)) { $s = 46; continue; } + /* */ $s = 47; continue; + /* if (!(h.innerHTML === prev.innerHTML)) { */ case 46: + $r = h.node.Set("innerHTML", new $String(h.innerHTML)); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 47: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: HTML.ptr.prototype.reconcileProperties }; } $f._1 = _1; $f._entry = _entry; $f._entry$1 = _entry$1; $f._entry$2 = _entry$2; $f._entry$3 = _entry$3; $f._entry$4 = _entry$4; $f._entry$5 = _entry$5; $f._entry$6 = _entry$6; $f._entry$7 = _entry$7; $f._entry$8 = _entry$8; $f._entry$9 = _entry$9; $f._i = _i; $f._i$1 = _i$1; $f._i$2 = _i$2; $f._i$3 = _i$3; $f._i$4 = _i$4; $f._i$5 = _i$5; $f._i$6 = _i$6; $f._keys = _keys; $f._keys$1 = _keys$1; $f._keys$2 = _keys$2; $f._keys$3 = _keys$3; $f._keys$4 = _keys$4; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._ref = _ref; $f._ref$1 = _ref$1; $f._ref$2 = _ref$2; $f._ref$3 = _ref$3; $f._ref$4 = _ref$4; $f._ref$5 = _ref$5; $f._ref$6 = _ref$6; $f._tuple = _tuple; $f.classList = classList; $f.dataset = dataset; $f.h = h; $f.l = l; $f.l$1 = l$1; $f.l$2 = l$2; $f.name = name; $f.name$1 = name$1; $f.name$2 = name$2; $f.name$3 = name$3; $f.name$4 = name$4; $f.ok = ok; $f.oldValue = oldValue; $f.oldValue$1 = oldValue$1; $f.prev = prev; $f.style = style; $f.value = value; $f.value$1 = value$1; $f.value$2 = value$2; $f.value$3 = value$3; $f.$s = $s; $f.$r = $r; return $f; + }; + HTML.prototype.reconcileProperties = function(prev) { return this.$val.reconcileProperties(prev); }; + HTML.ptr.prototype.removeProperties = function(prev) { + var _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _entry$6, _entry$7, _entry$8, _entry$9, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _keys, _keys$1, _keys$2, _keys$3, _keys$4, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, classList, dataset, h, l, name, name$1, name$2, name$3, name$4, ok, ok$1, ok$2, ok$3, ok$4, prev, style, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _entry$1 = $f._entry$1; _entry$2 = $f._entry$2; _entry$3 = $f._entry$3; _entry$4 = $f._entry$4; _entry$5 = $f._entry$5; _entry$6 = $f._entry$6; _entry$7 = $f._entry$7; _entry$8 = $f._entry$8; _entry$9 = $f._entry$9; _i = $f._i; _i$1 = $f._i$1; _i$2 = $f._i$2; _i$3 = $f._i$3; _i$4 = $f._i$4; _i$5 = $f._i$5; _keys = $f._keys; _keys$1 = $f._keys$1; _keys$2 = $f._keys$2; _keys$3 = $f._keys$3; _keys$4 = $f._keys$4; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _ref = $f._ref; _ref$1 = $f._ref$1; _ref$2 = $f._ref$2; _ref$3 = $f._ref$3; _ref$4 = $f._ref$4; _ref$5 = $f._ref$5; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; classList = $f.classList; dataset = $f.dataset; h = $f.h; l = $f.l; name = $f.name; name$1 = $f.name$1; name$2 = $f.name$2; name$3 = $f.name$3; name$4 = $f.name$4; ok = $f.ok; ok$1 = $f.ok$1; ok$2 = $f.ok$2; ok$3 = $f.ok$3; ok$4 = $f.ok$4; prev = $f.prev; style = $f.style; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + h = this; + _ref = prev.properties; + _i = 0; + _keys = $keys(_ref); + /* while (true) { */ case 1: + /* if (!(_i < _keys.length)) { break; } */ if(!(_i < _keys.length)) { $s = 2; continue; } + _entry = _ref[_keys[_i]]; + if (_entry === undefined) { + _i++; + /* continue; */ $s = 1; continue; + } + name = _entry.k; + _tuple = (_entry$1 = h.properties[$String.keyFor(name)], _entry$1 !== undefined ? [_entry$1.v, true] : [$ifaceNil, false]); + ok = _tuple[1]; + /* */ if (!ok) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!ok) { */ case 3: + $r = h.node.Delete(name); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 4: + _i++; + /* } */ $s = 1; continue; case 2: + _ref$1 = prev.attributes; + _i$1 = 0; + _keys$1 = $keys(_ref$1); + /* while (true) { */ case 6: + /* if (!(_i$1 < _keys$1.length)) { break; } */ if(!(_i$1 < _keys$1.length)) { $s = 7; continue; } + _entry$2 = _ref$1[_keys$1[_i$1]]; + if (_entry$2 === undefined) { + _i$1++; + /* continue; */ $s = 6; continue; + } + name$1 = _entry$2.k; + _tuple$1 = (_entry$3 = h.attributes[$String.keyFor(name$1)], _entry$3 !== undefined ? [_entry$3.v, true] : [$ifaceNil, false]); + ok$1 = _tuple$1[1]; + /* */ if (!ok$1) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!ok$1) { */ case 8: + _r = h.node.Call("removeAttribute", new sliceType$1([new $String(name$1)])); /* */ $s = 10; case 10: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + /* } */ case 9: + _i$1++; + /* } */ $s = 6; continue; case 7: + _r$1 = h.node.Get("classList"); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + classList = _r$1; + _ref$2 = prev.classes; + _i$2 = 0; + _keys$2 = $keys(_ref$2); + /* while (true) { */ case 12: + /* if (!(_i$2 < _keys$2.length)) { break; } */ if(!(_i$2 < _keys$2.length)) { $s = 13; continue; } + _entry$4 = _ref$2[_keys$2[_i$2]]; + if (_entry$4 === undefined) { + _i$2++; + /* continue; */ $s = 12; continue; + } + name$2 = _entry$4.k; + _tuple$2 = (_entry$5 = h.classes[$String.keyFor(name$2)], _entry$5 !== undefined ? [_entry$5.v, true] : [new structType.ptr(), false]); + ok$2 = _tuple$2[1]; + /* */ if (!ok$2) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (!ok$2) { */ case 14: + _r$2 = classList.Call("remove", new sliceType$1([new $String(name$2)])); /* */ $s = 16; case 16: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + /* } */ case 15: + _i$2++; + /* } */ $s = 12; continue; case 13: + _r$3 = h.node.Get("dataset"); /* */ $s = 17; case 17: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + dataset = _r$3; + _ref$3 = prev.dataset; + _i$3 = 0; + _keys$3 = $keys(_ref$3); + /* while (true) { */ case 18: + /* if (!(_i$3 < _keys$3.length)) { break; } */ if(!(_i$3 < _keys$3.length)) { $s = 19; continue; } + _entry$6 = _ref$3[_keys$3[_i$3]]; + if (_entry$6 === undefined) { + _i$3++; + /* continue; */ $s = 18; continue; + } + name$3 = _entry$6.k; + _tuple$3 = (_entry$7 = h.dataset[$String.keyFor(name$3)], _entry$7 !== undefined ? [_entry$7.v, true] : ["", false]); + ok$3 = _tuple$3[1]; + /* */ if (!ok$3) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (!ok$3) { */ case 20: + $r = dataset.Delete(name$3); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 21: + _i$3++; + /* } */ $s = 18; continue; case 19: + _r$4 = h.node.Get("style"); /* */ $s = 23; case 23: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + style = _r$4; + _ref$4 = prev.styles; + _i$4 = 0; + _keys$4 = $keys(_ref$4); + /* while (true) { */ case 24: + /* if (!(_i$4 < _keys$4.length)) { break; } */ if(!(_i$4 < _keys$4.length)) { $s = 25; continue; } + _entry$8 = _ref$4[_keys$4[_i$4]]; + if (_entry$8 === undefined) { + _i$4++; + /* continue; */ $s = 24; continue; + } + name$4 = _entry$8.k; + _tuple$4 = (_entry$9 = h.styles[$String.keyFor(name$4)], _entry$9 !== undefined ? [_entry$9.v, true] : ["", false]); + ok$4 = _tuple$4[1]; + /* */ if (!ok$4) { $s = 26; continue; } + /* */ $s = 27; continue; + /* if (!ok$4) { */ case 26: + _r$5 = style.Call("removeProperty", new sliceType$1([new $String(name$4)])); /* */ $s = 28; case 28: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$5; + /* } */ case 27: + _i$4++; + /* } */ $s = 24; continue; case 25: + _ref$5 = prev.eventListeners; + _i$5 = 0; + /* while (true) { */ case 29: + /* if (!(_i$5 < _ref$5.$length)) { break; } */ if(!(_i$5 < _ref$5.$length)) { $s = 30; continue; } + l = ((_i$5 < 0 || _i$5 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$5]); + _r$6 = h.node.Call("removeEventListener", new sliceType$1([new $String(l.Name), new funcType(l.wrapper)])); /* */ $s = 31; case 31: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$6; + _i$5++; + /* } */ $s = 29; continue; case 30: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: HTML.ptr.prototype.removeProperties }; } $f._entry = _entry; $f._entry$1 = _entry$1; $f._entry$2 = _entry$2; $f._entry$3 = _entry$3; $f._entry$4 = _entry$4; $f._entry$5 = _entry$5; $f._entry$6 = _entry$6; $f._entry$7 = _entry$7; $f._entry$8 = _entry$8; $f._entry$9 = _entry$9; $f._i = _i; $f._i$1 = _i$1; $f._i$2 = _i$2; $f._i$3 = _i$3; $f._i$4 = _i$4; $f._i$5 = _i$5; $f._keys = _keys; $f._keys$1 = _keys$1; $f._keys$2 = _keys$2; $f._keys$3 = _keys$3; $f._keys$4 = _keys$4; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._ref = _ref; $f._ref$1 = _ref$1; $f._ref$2 = _ref$2; $f._ref$3 = _ref$3; $f._ref$4 = _ref$4; $f._ref$5 = _ref$5; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f.classList = classList; $f.dataset = dataset; $f.h = h; $f.l = l; $f.name = name; $f.name$1 = name$1; $f.name$2 = name$2; $f.name$3 = name$3; $f.name$4 = name$4; $f.ok = ok; $f.ok$1 = ok$1; $f.ok$2 = ok$2; $f.ok$3 = ok$3; $f.ok$4 = ok$4; $f.prev = prev; $f.style = style; $f.$s = $s; $f.$r = $r; return $f; + }; + HTML.prototype.removeProperties = function(prev) { return this.$val.removeProperties(prev); }; + HTML.ptr.prototype.reconcileChildren = function(prev) { + var _arg, _arg$1, _arg$2, _arg$3, _entry, _entry$1, _entry$2, _i, _i$1, _key, _key$1, _keys, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, c, exists, h, hasKeyedChildren, i, i$1, insertBeforeKeyedNode, isKeyer, isList, keyer, m, m$1, m$2, mounters, mounters$1, new$1, nextChild, nextChildComponent, nextChildList, nextChildList$1, nextChildRender, nextChildRender$1, nextKey, ok, ok$1, ok$2, ok$3, ok$4, ok$5, ok$6, ok$7, pendingMounts, prev, prevChild, prevChildComponent, prevChildList, prevChildRender, prevChildren, prevHadKeyedChildren, prevKeyedChild, skip, skip$1, stableKey, v, v$1, x, x$1, x$2, x$3, x$4, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _entry = $f._entry; _entry$1 = $f._entry$1; _entry$2 = $f._entry$2; _i = $f._i; _i$1 = $f._i$1; _key = $f._key; _key$1 = $f._key$1; _keys = $f._keys; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _ref = $f._ref; _ref$1 = $f._ref$1; _ref$2 = $f._ref$2; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$10 = $f._tuple$10; _tuple$11 = $f._tuple$11; _tuple$12 = $f._tuple$12; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; _tuple$5 = $f._tuple$5; _tuple$6 = $f._tuple$6; _tuple$7 = $f._tuple$7; _tuple$8 = $f._tuple$8; _tuple$9 = $f._tuple$9; c = $f.c; exists = $f.exists; h = $f.h; hasKeyedChildren = $f.hasKeyedChildren; i = $f.i; i$1 = $f.i$1; insertBeforeKeyedNode = $f.insertBeforeKeyedNode; isKeyer = $f.isKeyer; isList = $f.isList; keyer = $f.keyer; m = $f.m; m$1 = $f.m$1; m$2 = $f.m$2; mounters = $f.mounters; mounters$1 = $f.mounters$1; new$1 = $f.new$1; nextChild = $f.nextChild; nextChildComponent = $f.nextChildComponent; nextChildList = $f.nextChildList; nextChildList$1 = $f.nextChildList$1; nextChildRender = $f.nextChildRender; nextChildRender$1 = $f.nextChildRender$1; nextKey = $f.nextKey; ok = $f.ok; ok$1 = $f.ok$1; ok$2 = $f.ok$2; ok$3 = $f.ok$3; ok$4 = $f.ok$4; ok$5 = $f.ok$5; ok$6 = $f.ok$6; ok$7 = $f.ok$7; pendingMounts = $f.pendingMounts; prev = $f.prev; prevChild = $f.prevChild; prevChildComponent = $f.prevChildComponent; prevChildList = $f.prevChildList; prevChildRender = $f.prevChildRender; prevChildren = $f.prevChildren; prevHadKeyedChildren = $f.prevHadKeyedChildren; prevKeyedChild = $f.prevKeyedChild; skip = $f.skip; skip$1 = $f.skip$1; stableKey = $f.stableKey; v = $f.v; v$1 = $f.v$1; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + pendingMounts = sliceType$2.nil; + h = this; + hasKeyedChildren = $keys(h.keyedChildren).length > 0; + prevHadKeyedChildren = $keys(prev.keyedChildren).length > 0; + _ref = h.children; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + nextChild = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _ref$1 = nextChild; + if ($assertType(_ref$1, ptrType, true)[1]) { + v = _ref$1.$val; + if (v === ptrType.nil) { + nextChild = $ifaceNil; + (x = h.children, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i] = nextChild)); + } + } else if ($assertType(_ref$1, List, true)[1]) { + v$1 = _ref$1.$val; + nextChild = (x$1 = new KeyedList.ptr(new HTML.ptr($ifaceNil, "", "", "", "", false, false, false, false, false, sliceType$3.nil, $subslice(new sliceType$4(v$1.$array), v$1.$offset, v$1.$offset + v$1.$length), $ifaceNil, false, $ifaceNil, ptrType.nil), $ifaceNil), new x$1.constructor.elem(x$1)); + (x$2 = h.children, ((i < 0 || i >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i] = nextChild)); + } + new$1 = !($interfaceIsEqual(h.node, prev.node)); + nextKey = $ifaceNil; + _tuple = $assertType(nextChild, Keyer, true); + keyer = _tuple[0]; + isKeyer = _tuple[1]; + if (hasKeyedChildren && !isKeyer) { + $panic(new $String("vecty: all siblings must have keys when using keyed elements")); + } + /* */ if (isKeyer) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (isKeyer) { */ case 3: + _r = keyer.Key(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + nextKey = _r; + if (hasKeyedChildren && $interfaceIsEqual(nextKey, $ifaceNil)) { + $panic(new $String("vecty: all siblings must have keys when using keyed elements")); + } + if (!($interfaceIsEqual(nextKey, $ifaceNil))) { + if (h.keyedChildren === false) { + h.keyedChildren = {}; + } + _tuple$1 = (_entry = h.keyedChildren[$emptyInterface.keyFor(nextKey)], _entry !== undefined ? [_entry.v, true] : [$ifaceNil, false]); + exists = _tuple$1[1]; + if (exists) { + $panic(new $String("vecty: duplicate sibling key")); + } + _key = nextKey; (h.keyedChildren || $throwRuntimeError("assignment to entry in nil map"))[$emptyInterface.keyFor(_key)] = { k: _key, v: nextChild }; + hasKeyedChildren = true; + } + /* } */ case 4: + /* */ if ((i >= prev.children.$length && !hasKeyedChildren) || new$1) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if ((i >= prev.children.$length && !hasKeyedChildren) || new$1) { */ case 6: + _tuple$2 = $assertType(nextChild, KeyedList, true); + nextChildList = $clone(_tuple$2[0], KeyedList); + ok = _tuple$2[1]; + /* */ if (ok) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (ok) { */ case 8: + _arg = pendingMounts; + _r$1 = $clone(nextChildList, KeyedList).reconcile(h, $ifaceNil); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg$1 = _r$1; + pendingMounts = $appendSlice(_arg, _arg$1); + _i++; + /* continue; */ $s = 1; continue; + /* } */ case 9: + _r$2 = render(nextChild, $ifaceNil); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$3 = _r$2; + nextChildRender = _tuple$3[0]; + skip = _tuple$3[1]; + mounters = _tuple$3[2]; + /* */ if (skip || nextChildRender === ptrType.nil) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (skip || nextChildRender === ptrType.nil) { */ case 12: + _i++; + /* continue; */ $s = 1; continue; + /* } */ case 13: + pendingMounts = $appendSlice(pendingMounts, mounters); + _tuple$4 = $assertType(nextChild, Mounter, true); + m = _tuple$4[0]; + ok$1 = _tuple$4[1]; + if (ok$1) { + pendingMounts = $append(pendingMounts, m); + } + h.lastRenderedChild = nextChildRender; + $r = h.insertBefore(h.insertBeforeNode, nextChildRender); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + /* continue; */ $s = 1; continue; + /* } */ case 7: + prevChild = $ifaceNil; + if (prev.children.$length > i) { + prevChild = (x$3 = prev.children, ((i < 0 || i >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + i])); + } + if (hasKeyedChildren) { + _tuple$5 = (_entry$1 = prev.keyedChildren[$emptyInterface.keyFor(nextKey)], _entry$1 !== undefined ? [_entry$1.v, true] : [$ifaceNil, false]); + prevKeyedChild = _tuple$5[0]; + ok$2 = _tuple$5[1]; + if (ok$2) { + prevChild = prevKeyedChild; + delete prev.keyedChildren[$emptyInterface.keyFor(nextKey)]; + } else { + prevChild = $ifaceNil; + } + } + prevChildRender = ptrType.nil; + _tuple$6 = $assertType(prevChild, KeyedList, true); + isList = _tuple$6[1]; + /* */ if (!isList) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (!isList) { */ case 15: + _r$3 = extractHTML(prevChild); /* */ $s = 17; case 17: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + prevChildRender = _r$3; + /* } */ case 16: + /* */ if (prevChildRender === ptrType.nil && $interfaceIsEqual(h.insertBeforeNode, $ifaceNil)) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (prevChildRender === ptrType.nil && $interfaceIsEqual(h.insertBeforeNode, $ifaceNil)) { */ case 18: + /* */ if (h.lastRenderedChild === ptrType.nil) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (h.lastRenderedChild === ptrType.nil) { */ case 20: + _r$4 = h.firstChild(); /* */ $s = 23; case 23: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + h.insertBeforeNode = _r$4; + $s = 22; continue; + /* } else { */ case 21: + _r$5 = h.lastRenderedChild.nextSibling(); /* */ $s = 24; case 24: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + h.insertBeforeNode = _r$5; + /* } */ case 22: + /* } */ case 19: + /* */ if (!(prevChildRender === ptrType.nil) && $interfaceIsEqual(prevChildRender.node, h.insertBeforeNode)) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (!(prevChildRender === ptrType.nil) && $interfaceIsEqual(prevChildRender.node, h.insertBeforeNode)) { */ case 25: + _r$6 = h.insertBeforeNode.Get("nextSibling"); /* */ $s = 27; case 27: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + h.insertBeforeNode = _r$6; + /* } */ case 26: + _tuple$7 = $assertType(nextChild, KeyedList, true); + nextChildList$1 = $clone(_tuple$7[0], KeyedList); + ok$3 = _tuple$7[1]; + /* */ if (ok$3) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if (ok$3) { */ case 28: + _arg$2 = pendingMounts; + _r$7 = $clone(nextChildList$1, KeyedList).reconcile(h, prevChild); /* */ $s = 30; case 30: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _arg$3 = _r$7; + pendingMounts = $appendSlice(_arg$2, _arg$3); + _i++; + /* continue; */ $s = 1; continue; + /* } */ case 29: + _tuple$8 = $assertType(prevChild, KeyedList, true); + prevChildList = $clone(_tuple$8[0], KeyedList); + ok$4 = _tuple$8[1]; + /* */ if (ok$4) { $s = 31; continue; } + /* */ $s = 32; continue; + /* if (ok$4) { */ case 31: + $r = $clone(prevChildList, KeyedList).remove(h); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + prevChild = $ifaceNil; + /* } */ case 32: + insertBeforeKeyedNode = $ifaceNil; + stableKey = false; + /* */ if (hasKeyedChildren) { $s = 34; continue; } + /* */ $s = 35; continue; + /* if (hasKeyedChildren) { */ case 34: + _r$8 = h.lastRenderedChild.nextSibling(); /* */ $s = 36; case 36: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + insertBeforeKeyedNode = _r$8; + if (!(prevChildRender === ptrType.nil) && $interfaceIsEqual(prevChildRender.node, insertBeforeKeyedNode)) { + stableKey = true; + insertBeforeKeyedNode = $ifaceNil; + } + /* } */ case 35: + _r$9 = render(nextChild, prevChild); /* */ $s = 37; case 37: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _tuple$9 = _r$9; + nextChildRender$1 = _tuple$9[0]; + skip$1 = _tuple$9[1]; + mounters$1 = _tuple$9[2]; + if (!(nextChildRender$1 === ptrType.nil) && !(prevChildRender === ptrType.nil) && nextChildRender$1 === prevChildRender) { + $panic(new $String("vecty: next child render must not equal previous child render (did the child Render illegally return a stored render variable?)")); + } + if (!(nextChildRender$1 === ptrType.nil)) { + h.lastRenderedChild = nextChildRender$1; + } + _tuple$10 = $assertType(prevChild, Component, true); + prevChildComponent = _tuple$10[0]; + ok$5 = _tuple$10[1]; + if (ok$5) { + _tuple$11 = $assertType(nextChild, Component, true); + nextChildComponent = _tuple$11[0]; + ok$6 = _tuple$11[1]; + if (ok$6 && sameType(prevChildComponent, nextChildComponent)) { + (x$4 = h.children, ((i < 0 || i >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + i] = prevChild)); + nextChild = prevChild; + if (hasKeyedChildren) { + _key$1 = nextKey; (h.keyedChildren || $throwRuntimeError("assignment to entry in nil map"))[$emptyInterface.keyFor(_key$1)] = { k: _key$1, v: prevChild }; + } + } + } + /* */ if (skip$1) { $s = 38; continue; } + /* */ $s = 39; continue; + /* if (skip$1) { */ case 38: + _i++; + /* continue; */ $s = 1; continue; + /* } */ case 39: + pendingMounts = $appendSlice(pendingMounts, mounters$1); + /* */ if (nextChildRender$1 === ptrType.nil && prevChildRender === ptrType.nil) { $s = 41; continue; } + /* */ if (!(nextChildRender$1 === ptrType.nil) && !(prevChildRender === ptrType.nil)) { $s = 42; continue; } + /* */ if (nextChildRender$1 === ptrType.nil && !(prevChildRender === ptrType.nil)) { $s = 43; continue; } + /* */ if (!(nextChildRender$1 === ptrType.nil) && prevChildRender === ptrType.nil) { $s = 44; continue; } + /* */ $s = 45; continue; + /* if (nextChildRender$1 === ptrType.nil && prevChildRender === ptrType.nil) { */ case 41: + _i++; + /* continue; */ $s = 1; continue; + $s = 46; continue; + /* } else if (!(nextChildRender$1 === ptrType.nil) && !(prevChildRender === ptrType.nil)) { */ case 42: + _r$10 = mountUnmount(nextChild, prevChild); /* */ $s = 47; case 47: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + m$1 = _r$10; + if (!($interfaceIsEqual(m$1, $ifaceNil))) { + pendingMounts = $append(pendingMounts, m$1); + } + /* */ if (!hasKeyedChildren || stableKey) { $s = 48; continue; } + /* */ $s = 49; continue; + /* if (!hasKeyedChildren || stableKey) { */ case 48: + $r = replaceNode(nextChildRender$1.node, prevChildRender.node); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + /* continue; */ $s = 1; continue; + /* } */ case 49: + /* */ if (!($interfaceIsEqual(insertBeforeKeyedNode, $ifaceNil))) { $s = 51; continue; } + /* */ $s = 52; continue; + /* if (!($interfaceIsEqual(insertBeforeKeyedNode, $ifaceNil))) { */ case 51: + $r = h.insertBefore(insertBeforeKeyedNode, nextChildRender$1); /* */ $s = 53; case 53: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + /* continue; */ $s = 1; continue; + /* } */ case 52: + $r = h.insertBefore(h.insertBeforeNode, nextChildRender$1); /* */ $s = 54; case 54: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 46; continue; + /* } else if (nextChildRender$1 === ptrType.nil && !(prevChildRender === ptrType.nil)) { */ case 43: + $r = h.removeChild(prevChildRender); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 46; continue; + /* } else if (!(nextChildRender$1 === ptrType.nil) && prevChildRender === ptrType.nil) { */ case 44: + _tuple$12 = $assertType(nextChild, Mounter, true); + m$2 = _tuple$12[0]; + ok$7 = _tuple$12[1]; + if (ok$7) { + pendingMounts = $append(pendingMounts, m$2); + } + /* */ if (!($interfaceIsEqual(insertBeforeKeyedNode, $ifaceNil))) { $s = 56; continue; } + /* */ $s = 57; continue; + /* if (!($interfaceIsEqual(insertBeforeKeyedNode, $ifaceNil))) { */ case 56: + $r = h.insertBefore(insertBeforeKeyedNode, nextChildRender$1); /* */ $s = 58; case 58: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + /* continue; */ $s = 1; continue; + /* } */ case 57: + $r = h.insertBefore(h.insertBeforeNode, nextChildRender$1); /* */ $s = 59; case 59: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 46; continue; + /* } else { */ case 45: + $panic(new $String("vecty: internal error (unexpected switch state)")); + /* } */ case 46: + case 40: + _i++; + /* } */ $s = 1; continue; case 2: + /* */ if (prevHadKeyedChildren && hasKeyedChildren) { $s = 60; continue; } + /* */ $s = 61; continue; + /* if (prevHadKeyedChildren && hasKeyedChildren) { */ case 60: + prevChildren = $makeSlice(sliceType$4, $keys(prev.keyedChildren).length); + i$1 = 0; + _ref$2 = prev.keyedChildren; + _i$1 = 0; + _keys = $keys(_ref$2); + while (true) { + if (!(_i$1 < _keys.length)) { break; } + _entry$2 = _ref$2[_keys[_i$1]]; + if (_entry$2 === undefined) { + _i$1++; + continue; + } + c = _entry$2.v; + ((i$1 < 0 || i$1 >= prevChildren.$length) ? ($throwRuntimeError("index out of range"), undefined) : prevChildren.$array[prevChildren.$offset + i$1] = c); + i$1 = i$1 + (1) >> 0; + _i$1++; + } + $r = h.removeChildren(prevChildren); /* */ $s = 62; case 62: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + pendingMounts = pendingMounts; + $s = -1; return pendingMounts; + /* } */ case 61: + /* */ if (prev.children.$length > h.children.$length) { $s = 63; continue; } + /* */ $s = 64; continue; + /* if (prev.children.$length > h.children.$length) { */ case 63: + $r = h.removeChildren($subslice(prev.children, h.children.$length)); /* */ $s = 65; case 65: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 64: + pendingMounts = pendingMounts; + $s = -1; return pendingMounts; + /* */ } return; } if ($f === undefined) { $f = { $blk: HTML.ptr.prototype.reconcileChildren }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._entry = _entry; $f._entry$1 = _entry$1; $f._entry$2 = _entry$2; $f._i = _i; $f._i$1 = _i$1; $f._key = _key; $f._key$1 = _key$1; $f._keys = _keys; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._ref = _ref; $f._ref$1 = _ref$1; $f._ref$2 = _ref$2; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$10 = _tuple$10; $f._tuple$11 = _tuple$11; $f._tuple$12 = _tuple$12; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f._tuple$5 = _tuple$5; $f._tuple$6 = _tuple$6; $f._tuple$7 = _tuple$7; $f._tuple$8 = _tuple$8; $f._tuple$9 = _tuple$9; $f.c = c; $f.exists = exists; $f.h = h; $f.hasKeyedChildren = hasKeyedChildren; $f.i = i; $f.i$1 = i$1; $f.insertBeforeKeyedNode = insertBeforeKeyedNode; $f.isKeyer = isKeyer; $f.isList = isList; $f.keyer = keyer; $f.m = m; $f.m$1 = m$1; $f.m$2 = m$2; $f.mounters = mounters; $f.mounters$1 = mounters$1; $f.new$1 = new$1; $f.nextChild = nextChild; $f.nextChildComponent = nextChildComponent; $f.nextChildList = nextChildList; $f.nextChildList$1 = nextChildList$1; $f.nextChildRender = nextChildRender; $f.nextChildRender$1 = nextChildRender$1; $f.nextKey = nextKey; $f.ok = ok; $f.ok$1 = ok$1; $f.ok$2 = ok$2; $f.ok$3 = ok$3; $f.ok$4 = ok$4; $f.ok$5 = ok$5; $f.ok$6 = ok$6; $f.ok$7 = ok$7; $f.pendingMounts = pendingMounts; $f.prev = prev; $f.prevChild = prevChild; $f.prevChildComponent = prevChildComponent; $f.prevChildList = prevChildList; $f.prevChildRender = prevChildRender; $f.prevChildren = prevChildren; $f.prevHadKeyedChildren = prevHadKeyedChildren; $f.prevKeyedChild = prevKeyedChild; $f.skip = skip; $f.skip$1 = skip$1; $f.stableKey = stableKey; $f.v = v; $f.v$1 = v$1; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.$s = $s; $f.$r = $r; return $f; + }; + HTML.prototype.reconcileChildren = function(prev) { return this.$val.reconcileChildren(prev); }; + HTML.ptr.prototype.removeChildren = function(prevChildren) { + var _i, _r, _ref, _tuple, h, ok, prevChild, prevChildList, prevChildRender, prevChildren, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; _tuple = $f._tuple; h = $f.h; ok = $f.ok; prevChild = $f.prevChild; prevChildList = $f.prevChildList; prevChildRender = $f.prevChildRender; prevChildren = $f.prevChildren; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + h = this; + _ref = prevChildren; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + prevChild = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _tuple = $assertType(prevChild, KeyedList, true); + prevChildList = $clone(_tuple[0], KeyedList); + ok = _tuple[1]; + /* */ if (ok) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (ok) { */ case 3: + $r = $clone(prevChildList, KeyedList).remove(h); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + /* continue; */ $s = 1; continue; + /* } */ case 4: + _r = extractHTML(prevChild); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + prevChildRender = _r; + /* */ if (prevChildRender === ptrType.nil) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (prevChildRender === ptrType.nil) { */ case 7: + _i++; + /* continue; */ $s = 1; continue; + /* } */ case 8: + $r = h.removeChild(prevChildRender); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + /* } */ $s = 1; continue; case 2: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: HTML.ptr.prototype.removeChildren }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f._tuple = _tuple; $f.h = h; $f.ok = ok; $f.prevChild = prevChild; $f.prevChildList = prevChildList; $f.prevChildRender = prevChildRender; $f.prevChildren = prevChildren; $f.$s = $s; $f.$r = $r; return $f; + }; + HTML.prototype.removeChildren = function(prevChildren) { return this.$val.removeChildren(prevChildren); }; + HTML.ptr.prototype.firstChild = function() { + var _r, h, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; h = $f.h; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + h = this; + if (h === ptrType.nil || $interfaceIsEqual(h.node, $ifaceNil)) { + $s = -1; return $ifaceNil; + } + _r = h.node.Get("firstChild"); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: HTML.ptr.prototype.firstChild }; } $f._r = _r; $f.h = h; $f.$s = $s; $f.$r = $r; return $f; + }; + HTML.prototype.firstChild = function() { return this.$val.firstChild(); }; + HTML.ptr.prototype.nextSibling = function() { + var _r, h, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; h = $f.h; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + h = this; + if (h === ptrType.nil || $interfaceIsEqual(h.node, $ifaceNil)) { + $s = -1; return $ifaceNil; + } + _r = h.node.Get("nextSibling"); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: HTML.ptr.prototype.nextSibling }; } $f._r = _r; $f.h = h; $f.$s = $s; $f.$r = $r; return $f; + }; + HTML.prototype.nextSibling = function() { return this.$val.nextSibling(); }; + HTML.ptr.prototype.removeChild = function(child) { + var _r, _r$1, _r$2, child, h, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; child = $f.child; h = $f.h; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + h = this; + /* */ if (!($interfaceIsEqual(h.insertBeforeNode, $ifaceNil)) && $interfaceIsEqual(h.insertBeforeNode, child.node)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!($interfaceIsEqual(h.insertBeforeNode, $ifaceNil)) && $interfaceIsEqual(h.insertBeforeNode, child.node)) { */ case 1: + _r = h.insertBeforeNode.Get("nextSibling"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + h.insertBeforeNode = _r; + /* } */ case 2: + $r = unmount(child); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if ($interfaceIsEqual(child.node, $ifaceNil)) { + $s = -1; return; + } + _r$1 = child.node.Get("parentNode"); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = _r$1.Call("removeChild", new sliceType$1([child.node])); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: HTML.ptr.prototype.removeChild }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.child = child; $f.h = h; $f.$s = $s; $f.$r = $r; return $f; + }; + HTML.prototype.removeChild = function(child) { return this.$val.removeChild(child); }; + HTML.ptr.prototype.appendChild = function(child) { + var _r, child, h, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; child = $f.child; h = $f.h; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + h = this; + _r = h.node.Call("appendChild", new sliceType$1([child.node])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: HTML.ptr.prototype.appendChild }; } $f._r = _r; $f.child = child; $f.h = h; $f.$s = $s; $f.$r = $r; return $f; + }; + HTML.prototype.appendChild = function(child) { return this.$val.appendChild(child); }; + HTML.ptr.prototype.insertBefore = function(node, child) { + var _r, child, h, node, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; child = $f.child; h = $f.h; node = $f.node; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + h = this; + /* */ if ($interfaceIsEqual(node, $ifaceNil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ($interfaceIsEqual(node, $ifaceNil)) { */ case 1: + $r = h.appendChild(child); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 2: + _r = h.node.Call("insertBefore", new sliceType$1([child.node, node])); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: HTML.ptr.prototype.insertBefore }; } $f._r = _r; $f.child = child; $f.h = h; $f.node = node; $f.$s = $s; $f.$r = $r; return $f; + }; + HTML.prototype.insertBefore = function(node, child) { return this.$val.insertBefore(node, child); }; + List.prototype.WithKey = function(key) { + var key, l; + l = this; + return new KeyedList.ptr(new HTML.ptr($ifaceNil, "", "", "", "", false, false, false, false, false, sliceType$3.nil, $subslice(new sliceType$4(l.$array), l.$offset, l.$offset + l.$length), $ifaceNil, false, $ifaceNil, ptrType.nil), key); + }; + $ptrType(List).prototype.WithKey = function(key) { return this.$get().WithKey(key); }; + KeyedList.ptr.prototype.Key = function() { + var l; + l = this; + return l.key; + }; + KeyedList.prototype.Key = function() { return this.$val.Key(); }; + KeyedList.ptr.prototype.reconcile = function(parent, prevChild) { + var _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _tuple, _v, keyer, l, ok, parent, pendingMounts, prev, prevChild, v, v$1, v$2, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _ref = $f._ref; _tuple = $f._tuple; _v = $f._v; keyer = $f.keyer; l = $f.l; ok = $f.ok; parent = $f.parent; pendingMounts = $f.pendingMounts; prev = $f.prev; prevChild = $f.prevChild; v = $f.v; v$1 = $f.v$1; v$2 = $f.v$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + pendingMounts = sliceType$2.nil; + l = this; + l.html.node = parent.node; + l.html.insertBeforeNode = parent.insertBeforeNode; + l.html.lastRenderedChild = parent.lastRenderedChild; + _ref = prevChild; + /* */ if ($assertType(_ref, KeyedList, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType, true)[1] || $assertType(_ref, Component, true)[1] || _ref === $ifaceNil) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if ($assertType(_ref, KeyedList, true)[1]) { */ case 1: + v = $clone(_ref.$val, KeyedList); + _r = l.html.reconcileChildren(v.html); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + pendingMounts = _r; + $s = 4; continue; + /* } else if ($assertType(_ref, ptrType, true)[1] || $assertType(_ref, Component, true)[1] || _ref === $ifaceNil) { */ case 2: + v$1 = _ref; + /* */ if ($interfaceIsEqual(v$1, $ifaceNil)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if ($interfaceIsEqual(v$1, $ifaceNil)) { */ case 6: + _r$1 = l.html.reconcileChildren(new HTML.ptr(parent.node, "", "", "", "", false, false, false, false, false, sliceType$3.nil, sliceType$4.nil, $ifaceNil, false, $ifaceNil, ptrType.nil)); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + pendingMounts = _r$1; + $s = 8; continue; + /* } else { */ case 7: + prev = new HTML.ptr(parent.node, "", "", "", "", false, false, false, false, false, sliceType$3.nil, new sliceType$4([prevChild]), $ifaceNil, false, $ifaceNil, ptrType.nil); + _tuple = $assertType(prevChild, Keyer, true); + keyer = _tuple[0]; + ok = _tuple[1]; + if (!(ok)) { _v = false; $s = 12; continue s; } + _r$2 = keyer.Key(); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v = !($interfaceIsEqual(_r$2, $ifaceNil)); case 12: + /* */ if (_v) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (_v) { */ case 10: + _r$3 = keyer.Key(); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + prev.keyedChildren = $makeMap($emptyInterface.keyFor, [{ k: _r$3, v: prevChild }]); + /* } */ case 11: + _r$4 = l.html.reconcileChildren(prev); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + pendingMounts = _r$4; + /* } */ case 8: + $s = 4; continue; + /* } else { */ case 3: + v$2 = _ref; + _r$5 = reflect.TypeOf(v$2).String(); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $panic(new $String("vecty: internal error (unexpected ComponentOrHTML type " + _r$5 + ")")); + /* } */ case 4: + if (!($interfaceIsEqual(parent.insertBeforeNode, $ifaceNil))) { + parent.insertBeforeNode = l.html.insertBeforeNode; + } + if (!(l.html.lastRenderedChild === ptrType.nil)) { + parent.lastRenderedChild = l.html.lastRenderedChild; + } + pendingMounts = pendingMounts; + $s = -1; return pendingMounts; + /* */ } return; } if ($f === undefined) { $f = { $blk: KeyedList.ptr.prototype.reconcile }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._ref = _ref; $f._tuple = _tuple; $f._v = _v; $f.keyer = keyer; $f.l = l; $f.ok = ok; $f.parent = parent; $f.pendingMounts = pendingMounts; $f.prev = prev; $f.prevChild = prevChild; $f.v = v; $f.v$1 = v$1; $f.v$2 = v$2; $f.$s = $s; $f.$r = $r; return $f; + }; + KeyedList.prototype.reconcile = function(parent, prevChild) { return this.$val.reconcile(parent, prevChild); }; + KeyedList.ptr.prototype.remove = function(parent) { + var l, parent, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; l = $f.l; parent = $f.parent; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + l = this; + l.html.node = parent.node; + l.html.insertBeforeNode = parent.insertBeforeNode; + $r = l.html.removeChildren(l.html.children); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (!($interfaceIsEqual(parent.insertBeforeNode, $ifaceNil))) { + parent.insertBeforeNode = l.html.insertBeforeNode; + } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: KeyedList.ptr.prototype.remove }; } $f.l = l; $f.parent = parent; $f.$s = $s; $f.$r = $r; return $f; + }; + KeyedList.prototype.remove = function(parent) { return this.$val.remove(parent); }; + Tag = function(tag, m) { + var _i, _ref, h, m, m$1, tag, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _ref = $f._ref; h = $f.h; m = $f.m; m$1 = $f.m$1; tag = $f.tag; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + h = new HTML.ptr($ifaceNil, "", tag, "", "", false, false, false, false, false, sliceType$3.nil, sliceType$4.nil, $ifaceNil, false, $ifaceNil, ptrType.nil); + _ref = m; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + m$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = apply(m$1, h); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + /* } */ $s = 1; continue; case 2: + $s = -1; return h; + /* */ } return; } if ($f === undefined) { $f = { $blk: Tag }; } $f._i = _i; $f._ref = _ref; $f.h = h; $f.m = m; $f.m$1 = m$1; $f.tag = tag; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Tag = Tag; + Text = function(text, m) { + var _i, _ref, h, m, m$1, text, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _ref = $f._ref; h = $f.h; m = $f.m; m$1 = $f.m$1; text = $f.text; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + h = new HTML.ptr($ifaceNil, "", "", text, "", false, false, false, false, false, sliceType$3.nil, sliceType$4.nil, $ifaceNil, false, $ifaceNil, ptrType.nil); + _ref = m; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + m$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = apply(m$1, h); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + /* } */ $s = 1; continue; case 2: + $s = -1; return h; + /* */ } return; } if ($f === undefined) { $f = { $blk: Text }; } $f._i = _i; $f._ref = _ref; $f.h = h; $f.m = m; $f.m$1 = m$1; $f.text = text; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Text = Text; + batchRenderer.ptr.prototype.render = function(startTime) { + var _i, _i$1, _key, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _ref$1, _tuple, avgRenderTime, b, budgetRemaining, c, c$1, elapsed, i, i$1, nextHTML, pending, pendingMounts, prevHTML, skip, startTime, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _i$1 = $f._i$1; _key = $f._key; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _ref = $f._ref; _ref$1 = $f._ref$1; _tuple = $f._tuple; avgRenderTime = $f.avgRenderTime; b = $f.b; budgetRemaining = $f.budgetRemaining; c = $f.c; c$1 = $f.c$1; elapsed = $f.elapsed; i = $f.i; i$1 = $f.i$1; nextHTML = $f.nextHTML; pending = $f.pending; pendingMounts = $f.pendingMounts; prevHTML = $f.prevHTML; skip = $f.skip; startTime = $f.startTime; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + b = this; + if (b.batch.$length === 0) { + b.scheduled = false; + $s = -1; return; + } + pending = b.batch; + b.batch = sliceType.nil; + b.idx = {}; + _ref = pending; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r = c.Context(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r.unmounted) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_r.unmounted) { */ case 3: + _i++; + /* continue; */ $s = 1; continue; + /* } */ case 4: + /* */ if (i > 0) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (i > 0) { */ case 6: + _r$1 = global.Get("performance"); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = _r$1.Call("now", new sliceType$1([])); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = _r$2.Float(); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + elapsed = _r$3 - startTime; + budgetRemaining = 16 - elapsed; + avgRenderTime = elapsed / (i); + if (budgetRemaining < avgRenderTime * 2) { + b.batch = $subslice(pending, i); + _ref$1 = b.batch; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i$1 = _i$1; + c$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + _key = c$1; (b.idx || $throwRuntimeError("assignment to entry in nil map"))[Component.keyFor(_key)] = { k: _key, v: i$1 }; + _i$1++; + } + /* break; */ $s = 2; continue; + } + /* } */ case 7: + _r$4 = c.Context(); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$5 = extractHTML(_r$4.prevRender); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + prevHTML = _r$5; + _r$6 = renderComponent(c, c); /* */ $s = 13; case 13: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _tuple = _r$6; + nextHTML = _tuple[0]; + skip = _tuple[1]; + pendingMounts = _tuple[2]; + /* */ if (skip) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (skip) { */ case 14: + _i++; + /* continue; */ $s = 1; continue; + /* } */ case 15: + $r = replaceNode(nextHTML.node, prevHTML.node); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = mount(pendingMounts); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + /* } */ $s = 1; continue; case 2: + _r$7 = requestAnimationFrame($methodVal(b, "render")); /* */ $s = 18; case 18: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$7; + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: batchRenderer.ptr.prototype.render }; } $f._i = _i; $f._i$1 = _i$1; $f._key = _key; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._ref = _ref; $f._ref$1 = _ref$1; $f._tuple = _tuple; $f.avgRenderTime = avgRenderTime; $f.b = b; $f.budgetRemaining = budgetRemaining; $f.c = c; $f.c$1 = c$1; $f.elapsed = elapsed; $f.i = i; $f.i$1 = i$1; $f.nextHTML = nextHTML; $f.pending = pending; $f.pendingMounts = pendingMounts; $f.prevHTML = prevHTML; $f.skip = skip; $f.startTime = startTime; $f.$s = $s; $f.$r = $r; return $f; + }; + batchRenderer.prototype.render = function(startTime) { return this.$val.render(startTime); }; + extractHTML = function(e) { + var _r, _r$1, _r$2, _ref, e, v, v$1, v$2, v$3, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _ref = $f._ref; e = $f.e; v = $f.v; v$1 = $f.v$1; v$2 = $f.v$2; v$3 = $f.v$3; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _ref = e; + /* */ if (_ref === $ifaceNil) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, Component, true)[1]) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_ref === $ifaceNil) { */ case 1: + v = _ref; + $s = -1; return ptrType.nil; + /* } else if ($assertType(_ref, ptrType, true)[1]) { */ case 2: + v$1 = _ref.$val; + $s = -1; return v$1; + /* } else if ($assertType(_ref, Component, true)[1]) { */ case 3: + v$2 = _ref; + _r = v$2.Context(); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = extractHTML(_r.prevRender); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return _r$1; + /* } else { */ case 4: + v$3 = _ref; + _r$2 = reflect.TypeOf(e).String(); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $panic(new $String("vecty: internal error (unexpected ComponentOrHTML type " + _r$2 + ")")); + /* } */ case 5: + $s = -1; return ptrType.nil; + /* */ } return; } if ($f === undefined) { $f = { $blk: extractHTML }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._ref = _ref; $f.e = e; $f.v = v; $f.v$1 = v$1; $f.v$2 = v$2; $f.v$3 = v$3; $f.$s = $s; $f.$r = $r; return $f; + }; + sameType = function(first, second) { + var first, second; + return $interfaceIsEqual(reflect.TypeOf(first), reflect.TypeOf(second)); + }; + copyComponent = function(c) { + var _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _v, c, copier, cpy, cpy$1, ok, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _tuple = $f._tuple; _v = $f._v; c = $f.c; copier = $f.copier; cpy = $f.cpy; cpy$1 = $f.cpy$1; ok = $f.ok; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + if ($interfaceIsEqual(c, $ifaceNil)) { + $panic(new $String("vecty: internal error (cannot copy nil Component)")); + } + _tuple = $assertType(c, Copier, true); + copier = _tuple[0]; + ok = _tuple[1]; + /* */ if (ok) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (ok) { */ case 1: + _r = copier.Copy(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + cpy = _r; + if ($interfaceIsEqual(cpy, c)) { + $panic(new $String("vecty: Component.Copy illegally returned an identical *MyComponent pointer")); + } + $s = -1; return cpy; + /* } */ case 2: + _r$1 = reflect.ValueOf(c); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + v = _r$1; + if (!(($clone(v, reflect.Value).Kind() === 22))) { _v = true; $s = 7; continue s; } + _r$2 = $clone(v, reflect.Value).Elem(); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = $clone(_r$2, reflect.Value).Kind(); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _v = !((_r$3 === 25)); case 7: + /* */ if (_v) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_v) { */ case 5: + _r$4 = reflect.TypeOf(c).String(); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $panic(new $String("vecty: Component must be pointer to struct, found " + _r$4)); + /* } */ case 6: + _r$5 = $clone(v, reflect.Value).Elem(); /* */ $s = 11; case 11: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$6 = $clone(_r$5, reflect.Value).Type(); /* */ $s = 12; case 12: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$7 = reflect.New(_r$6); /* */ $s = 13; case 13: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + cpy$1 = _r$7; + _r$8 = $clone(cpy$1, reflect.Value).Elem(); /* */ $s = 14; case 14: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$9 = $clone(v, reflect.Value).Elem(); /* */ $s = 15; case 15: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + $r = $clone(_r$8, reflect.Value).Set($clone(_r$9, reflect.Value)); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$10 = $clone(cpy$1, reflect.Value).Interface(); /* */ $s = 17; case 17: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + $s = -1; return $assertType(_r$10, Component); + /* */ } return; } if ($f === undefined) { $f = { $blk: copyComponent }; } $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._tuple = _tuple; $f._v = _v; $f.c = c; $f.copier = copier; $f.cpy = cpy; $f.cpy$1 = cpy$1; $f.ok = ok; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + copyProps = function(src, dst) { + var _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, d, df, dst, i, s, sf, src, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; d = $f.d; df = $f.df; dst = $f.dst; i = $f.i; s = $f.s; sf = $f.sf; src = $f.src; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + if ($interfaceIsEqual(src, dst)) { + $s = -1; return; + } + _r = reflect.ValueOf(src); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + s = _r; + _r$1 = reflect.ValueOf(dst); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + d = _r$1; + if (!($interfaceIsEqual($clone(s, reflect.Value).Type(), $clone(d, reflect.Value).Type()))) { + $panic(new $String("vecty: internal error (attempted to copy properties of incompatible structs)")); + } + if (!(($clone(s, reflect.Value).Kind() === 22)) || !(($clone(d, reflect.Value).Kind() === 22))) { + $panic(new $String("vecty: internal error (attempted to copy properties of non-pointer)")); + } + i = 0; + /* while (true) { */ case 3: + _r$2 = $clone(s, reflect.Value).Elem(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = $clone(_r$2, reflect.Value).NumField(); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* if (!(i < _r$3)) { break; } */ if(!(i < _r$3)) { $s = 4; continue; } + _r$4 = $clone(s, reflect.Value).Elem(); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$5 = $clone(_r$4, reflect.Value).Field(i); /* */ $s = 8; case 8: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + sf = _r$5; + _r$6 = $clone(s, reflect.Value).Elem(); /* */ $s = 11; case 11: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$7 = $clone(_r$6, reflect.Value).Type(); /* */ $s = 12; case 12: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$8 = _r$7.Field(i); /* */ $s = 13; case 13: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$9 = new reflect.StructTag(_r$8.Tag).Get("vecty"); /* */ $s = 14; case 14: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + /* */ if (_r$9 === "prop") { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (_r$9 === "prop") { */ case 9: + _r$10 = $clone(d, reflect.Value).Elem(); /* */ $s = 15; case 15: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$11 = $clone(_r$10, reflect.Value).Field(i); /* */ $s = 16; case 16: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + df = _r$11; + if (!($interfaceIsEqual($clone(sf, reflect.Value).Type(), $clone(df, reflect.Value).Type()))) { + $panic(new $String("vecty: internal error (should never be possible, struct types are identical)")); + } + $r = $clone(df, reflect.Value).Set($clone(sf, reflect.Value)); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 10: + i = i + (1) >> 0; + /* } */ $s = 3; continue; case 4: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: copyProps }; } $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f.d = d; $f.df = df; $f.dst = dst; $f.i = i; $f.s = s; $f.sf = sf; $f.src = src; $f.$s = $s; $f.$r = $r; return $f; + }; + render = function(next, prev) { + var _r, _r$1, _r$2, _r$3, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, next, nextHTML, pendingMounts, prev, skip, v, v$1, v$2, v$3, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _ref = $f._ref; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tuple = $f._tuple; next = $f.next; nextHTML = $f.nextHTML; pendingMounts = $f.pendingMounts; prev = $f.prev; skip = $f.skip; v = $f.v; v$1 = $f.v$1; v$2 = $f.v$2; v$3 = $f.v$3; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + nextHTML = ptrType.nil; + skip = false; + pendingMounts = sliceType$2.nil; + _ref = next; + /* */ if ($assertType(_ref, ptrType, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, Component, true)[1]) { $s = 2; continue; } + /* */ if (_ref === $ifaceNil) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if ($assertType(_ref, ptrType, true)[1]) { */ case 1: + v = _ref.$val; + _r = extractHTML(prev); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = v.reconcile(_r); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + pendingMounts = _r$1; + _tmp = v; + _tmp$1 = false; + _tmp$2 = pendingMounts; + nextHTML = _tmp; + skip = _tmp$1; + pendingMounts = _tmp$2; + $s = -1; return [nextHTML, skip, pendingMounts]; + /* } else if ($assertType(_ref, Component, true)[1]) { */ case 2: + v$1 = _ref; + _r$2 = renderComponent(v$1, prev); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple = _r$2; + nextHTML = _tuple[0]; + skip = _tuple[1]; + pendingMounts = _tuple[2]; + $s = -1; return [nextHTML, skip, pendingMounts]; + /* } else if (_ref === $ifaceNil) { */ case 3: + v$2 = _ref; + _tmp$3 = ptrType.nil; + _tmp$4 = false; + _tmp$5 = sliceType$2.nil; + nextHTML = _tmp$3; + skip = _tmp$4; + pendingMounts = _tmp$5; + $s = -1; return [nextHTML, skip, pendingMounts]; + /* } else { */ case 4: + v$3 = _ref; + _r$3 = reflect.TypeOf(next).String(); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $panic(new $String("vecty: internal error (unexpected ComponentOrHTML type " + _r$3 + ")")); + /* } */ case 5: + $s = -1; return [nextHTML, skip, pendingMounts]; + /* */ } return; } if ($f === undefined) { $f = { $blk: render }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._ref = _ref; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tuple = _tuple; $f.next = next; $f.nextHTML = nextHTML; $f.pendingMounts = pendingMounts; $f.prev = prev; $f.skip = skip; $f.v = v; $f.v$1 = v$1; $f.v$2 = v$2; $f.v$3 = v$3; $f.$s = $s; $f.$r = $r; return $f; + }; + renderComponent = function(next, prev) { + var _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tuple, _tuple$1, _tuple$2, _tuple$3, m, next, nextHTML, nextRender, ok, ok$1, ok$2, pendingMounts, prev, prevComponent, prevComponent$1, prevRender, prevRenderComponent, rs, skip, v, v$1, v$2, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$13 = $f._r$13; _r$14 = $f._r$14; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _ref = $f._ref; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tmp$6 = $f._tmp$6; _tmp$7 = $f._tmp$7; _tmp$8 = $f._tmp$8; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; m = $f.m; next = $f.next; nextHTML = $f.nextHTML; nextRender = $f.nextRender; ok = $f.ok; ok$1 = $f.ok$1; ok$2 = $f.ok$2; pendingMounts = $f.pendingMounts; prev = $f.prev; prevComponent = $f.prevComponent; prevComponent$1 = $f.prevComponent$1; prevRender = $f.prevRender; prevRenderComponent = $f.prevRenderComponent; rs = $f.rs; skip = $f.skip; v = $f.v; v$1 = $f.v$1; v$2 = $f.v$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + nextHTML = ptrType.nil; + skip = false; + pendingMounts = sliceType$2.nil; + _tuple = $assertType(prev, Component, true); + prevComponent = _tuple[0]; + ok = _tuple[1]; + /* */ if (ok && sameType(next, prevComponent)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (ok && sameType(next, prevComponent)) { */ case 1: + $r = copyProps(next, prevComponent); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + next = prevComponent; + /* } */ case 2: + _tuple$1 = $assertType(next, RenderSkipper, true); + rs = _tuple$1[0]; + ok$1 = _tuple$1[1]; + /* */ if (ok$1) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (ok$1) { */ case 4: + _r = next.Context(); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + prevRenderComponent = _r.prevRenderComponent; + /* */ if (!($interfaceIsEqual(prevRenderComponent, $ifaceNil))) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!($interfaceIsEqual(prevRenderComponent, $ifaceNil))) { */ case 7: + if ($interfaceIsEqual(next, prevRenderComponent)) { + $panic(new $String("vecty: internal error (SkipRender called with identical prev component)")); + } + _r$1 = rs.SkipRender(prevRenderComponent); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (_r$1) { */ case 9: + _tmp = ptrType.nil; + _tmp$1 = true; + _tmp$2 = sliceType$2.nil; + nextHTML = _tmp; + skip = _tmp$1; + pendingMounts = _tmp$2; + $s = -1; return [nextHTML, skip, pendingMounts]; + /* } */ case 10: + /* } */ case 8: + /* } */ case 5: + _r$2 = next.Render(); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + nextRender = _r$2; + _r$3 = next.Context(); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + prevRender = _r$3.prevRender; + /* */ if ($interfaceIsEqual(nextRender, $ifaceNil)) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if ($interfaceIsEqual(nextRender, $ifaceNil)) { */ case 14: + _r$4 = Tag("noscript", new sliceType$5([])); /* */ $s = 16; case 16: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + nextRender = _r$4; + /* } */ case 15: + _ref = nextRender; + /* */ if ($assertType(_ref, Component, true)[1]) { $s = 17; continue; } + /* */ if ($assertType(_ref, ptrType, true)[1]) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if ($assertType(_ref, Component, true)[1]) { */ case 17: + v = _ref; + _r$5 = renderComponent(v, prevRender); /* */ $s = 21; case 21: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple$2 = _r$5; + nextHTML = _tuple$2[0]; + skip = _tuple$2[1]; + pendingMounts = _tuple$2[2]; + if (skip) { + _tmp$3 = nextHTML; + _tmp$4 = skip; + _tmp$5 = pendingMounts; + nextHTML = _tmp$3; + skip = _tmp$4; + pendingMounts = _tmp$5; + $s = -1; return [nextHTML, skip, pendingMounts]; + } + _tuple$3 = $assertType(prevRender, Component, true); + prevComponent$1 = _tuple$3[0]; + ok$2 = _tuple$3[1]; + if (ok$2 && sameType(v, prevComponent$1)) { + nextRender = prevRender; + } + $s = 20; continue; + /* } else if ($assertType(_ref, ptrType, true)[1]) { */ case 18: + v$1 = _ref.$val; + /* */ if (v$1 === ptrType.nil) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (v$1 === ptrType.nil) { */ case 22: + _r$6 = Tag("noscript", new sliceType$5([])); /* */ $s = 24; case 24: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + v$1 = _r$6; + /* } */ case 23: + nextHTML = v$1; + _r$7 = extractHTML(prev); /* */ $s = 25; case 25: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$8 = nextHTML.reconcile(_r$7); /* */ $s = 26; case 26: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + pendingMounts = _r$8; + $s = 20; continue; + /* } else { */ case 19: + v$2 = _ref; + _r$9 = reflect.TypeOf(v$2).String(); /* */ $s = 27; case 27: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + $panic(new $String("vecty: internal error (unexpected ComponentOrHTML type " + _r$9 + ")")); + /* } */ case 20: + _r$10 = mountUnmount(nextRender, prevRender); /* */ $s = 28; case 28: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + m = _r$10; + if (!($interfaceIsEqual(m, $ifaceNil))) { + pendingMounts = $append(pendingMounts, m); + } + _r$11 = next.Context(); /* */ $s = 29; case 29: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _r$11.prevRender = nextRender; + _r$12 = copyComponent(next); /* */ $s = 30; case 30: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _r$13 = next.Context(); /* */ $s = 31; case 31: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _r$13.prevRenderComponent = _r$12; + _r$14 = next.Context(); /* */ $s = 32; case 32: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + _r$14.unmounted = false; + _tmp$6 = nextHTML; + _tmp$7 = false; + _tmp$8 = pendingMounts; + nextHTML = _tmp$6; + skip = _tmp$7; + pendingMounts = _tmp$8; + $s = -1; return [nextHTML, skip, pendingMounts]; + /* */ } return; } if ($f === undefined) { $f = { $blk: renderComponent }; } $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$13 = _r$13; $f._r$14 = _r$14; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._ref = _ref; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tmp$6 = _tmp$6; $f._tmp$7 = _tmp$7; $f._tmp$8 = _tmp$8; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f.m = m; $f.next = next; $f.nextHTML = nextHTML; $f.nextRender = nextRender; $f.ok = ok; $f.ok$1 = ok$1; $f.ok$2 = ok$2; $f.pendingMounts = pendingMounts; $f.prev = prev; $f.prevComponent = prevComponent; $f.prevComponent$1 = prevComponent$1; $f.prevRender = prevRender; $f.prevRenderComponent = prevRenderComponent; $f.rs = rs; $f.skip = skip; $f.v = v; $f.v$1 = v$1; $f.v$2 = v$2; $f.$s = $s; $f.$r = $r; return $f; + }; + mountUnmount = function(next, prev) { + var _i, _r, _r$1, _ref, _tuple, _tuple$1, _tuple$2, child, m, m$1, next, nextHTML, ok, ok$1, ok$2, prev, prevHTML, u, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _ref = $f._ref; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; child = $f.child; m = $f.m; m$1 = $f.m$1; next = $f.next; nextHTML = $f.nextHTML; ok = $f.ok; ok$1 = $f.ok$1; ok$2 = $f.ok$2; prev = $f.prev; prevHTML = $f.prevHTML; u = $f.u; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + if ($interfaceIsEqual(next, prev)) { + $s = -1; return $ifaceNil; + } + /* */ if (!sameType(next, prev)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!sameType(next, prev)) { */ case 1: + /* */ if (!($interfaceIsEqual(prev, $ifaceNil))) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!($interfaceIsEqual(prev, $ifaceNil))) { */ case 3: + $r = unmount(prev); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 4: + _tuple = $assertType(next, Mounter, true); + m = _tuple[0]; + ok = _tuple[1]; + if (ok) { + $s = -1; return m; + } + $s = -1; return $ifaceNil; + /* } */ case 2: + _r = extractHTML(prev); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + prevHTML = _r; + /* */ if (!(prevHTML === ptrType.nil)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!(prevHTML === ptrType.nil)) { */ case 7: + _r$1 = extractHTML(next); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + nextHTML = _r$1; + /* */ if (nextHTML === ptrType.nil || !($interfaceIsEqual(prevHTML.node, nextHTML.node))) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (nextHTML === ptrType.nil || !($interfaceIsEqual(prevHTML.node, nextHTML.node))) { */ case 10: + _ref = prevHTML.children; + _i = 0; + /* while (true) { */ case 12: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 13; continue; } + child = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = unmount(child); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + /* } */ $s = 12; continue; case 13: + /* } */ case 11: + /* } */ case 8: + _tuple$1 = $assertType(prev, Unmounter, true); + u = _tuple$1[0]; + ok$1 = _tuple$1[1]; + /* */ if (ok$1) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (ok$1) { */ case 15: + $r = u.Unmount(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 16: + _tuple$2 = $assertType(next, Mounter, true); + m$1 = _tuple$2[0]; + ok$2 = _tuple$2[1]; + if (ok$2) { + $s = -1; return m$1; + } + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: mountUnmount }; } $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._ref = _ref; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.child = child; $f.m = m; $f.m$1 = m$1; $f.next = next; $f.nextHTML = nextHTML; $f.ok = ok; $f.ok$1 = ok$1; $f.ok$2 = ok$2; $f.prev = prev; $f.prevHTML = prevHTML; $f.u = u; $f.$s = $s; $f.$r = $r; return $f; + }; + mount = function(pendingMounts) { + var _i, _r, _r$1, _r$2, _ref, _tuple, c, mounter, ok, pendingMounts, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _ref = $f._ref; _tuple = $f._tuple; c = $f.c; mounter = $f.mounter; ok = $f.ok; pendingMounts = $f.pendingMounts; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _ref = pendingMounts; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + mounter = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + /* */ if ($interfaceIsEqual(mounter, $ifaceNil)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if ($interfaceIsEqual(mounter, $ifaceNil)) { */ case 3: + _i++; + /* continue; */ $s = 1; continue; + /* } */ case 4: + _tuple = $assertType(mounter, Component, true); + c = _tuple[0]; + ok = _tuple[1]; + /* */ if (ok) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (ok) { */ case 5: + _r = c.Context(); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r.mounted) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (_r.mounted) { */ case 7: + _i++; + /* continue; */ $s = 1; continue; + /* } */ case 8: + _r$1 = c.Context(); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1.mounted = true; + _r$2 = c.Context(); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2.unmounted = false; + /* } */ case 6: + $r = mounter.Mount(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + /* } */ $s = 1; continue; case 2: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: mount }; } $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._ref = _ref; $f._tuple = _tuple; $f.c = c; $f.mounter = mounter; $f.ok = ok; $f.pendingMounts = pendingMounts; $f.$s = $s; $f.$r = $r; return $f; + }; + unmount = function(e) { + var _i, _i$1, _r, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _tuple$3, c, child, child$1, e, h, l, ok, ok$1, ok$2, ok$3, prevRenderComponent, u, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _i$1 = $f._i$1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _ref = $f._ref; _ref$1 = $f._ref$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; c = $f.c; child = $f.child; child$1 = $f.child$1; e = $f.e; h = $f.h; l = $f.l; ok = $f.ok; ok$1 = $f.ok$1; ok$2 = $f.ok$2; ok$3 = $f.ok$3; prevRenderComponent = $f.prevRenderComponent; u = $f.u; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _tuple = $assertType(e, Component, true); + c = _tuple[0]; + ok = _tuple[1]; + /* */ if (ok) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (ok) { */ case 1: + _r = c.Context(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r.unmounted) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_r.unmounted) { */ case 3: + $s = -1; return; + /* } */ case 4: + _r$1 = c.Context(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1.unmounted = true; + _r$2 = c.Context(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2.mounted = false; + _r$3 = c.Context(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$1 = $assertType(_r$3.prevRender, Component, true); + prevRenderComponent = _tuple$1[0]; + ok$1 = _tuple$1[1]; + /* */ if (ok$1) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (ok$1) { */ case 9: + $r = unmount(prevRenderComponent); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 10: + /* } */ case 2: + _tuple$2 = $assertType(e, KeyedList, true); + l = $clone(_tuple$2[0], KeyedList); + ok$2 = _tuple$2[1]; + /* */ if (ok$2) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (ok$2) { */ case 12: + _ref = l.html.children; + _i = 0; + /* while (true) { */ case 14: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 15; continue; } + child = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = unmount(child); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + /* } */ $s = 14; continue; case 15: + $s = -1; return; + /* } */ case 13: + _r$4 = extractHTML(e); /* */ $s = 17; case 17: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + h = _r$4; + /* */ if (!(h === ptrType.nil)) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (!(h === ptrType.nil)) { */ case 18: + _ref$1 = h.children; + _i$1 = 0; + /* while (true) { */ case 20: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 21; continue; } + child$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + $r = unmount(child$1); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$1++; + /* } */ $s = 20; continue; case 21: + /* } */ case 19: + _tuple$3 = $assertType(e, Unmounter, true); + u = _tuple$3[0]; + ok$3 = _tuple$3[1]; + /* */ if (ok$3) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (ok$3) { */ case 23: + $r = u.Unmount(); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 24: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: unmount }; } $f._i = _i; $f._i$1 = _i$1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._ref = _ref; $f._ref$1 = _ref$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f.c = c; $f.child = child; $f.child$1 = child$1; $f.e = e; $f.h = h; $f.l = l; $f.ok = ok; $f.ok$1 = ok$1; $f.ok$2 = ok$2; $f.ok$3 = ok$3; $f.prevRenderComponent = prevRenderComponent; $f.u = u; $f.$s = $s; $f.$r = $r; return $f; + }; + requestAnimationFrame = function(callback) { + var _r, _r$1, callback, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; callback = $f.callback; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = global.Call("requestAnimationFrame", new sliceType$1([new funcType$1(callback)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = _r.Int(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return _r$1; + /* */ } return; } if ($f === undefined) { $f = { $blk: requestAnimationFrame }; } $f._r = _r; $f._r$1 = _r$1; $f.callback = callback; $f.$s = $s; $f.$r = $r; return $f; + }; + RenderBody = function(body) { + var _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, body, doc, m, nextRender, ok, pendingMounts, skip, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; body = $f.body; doc = $f.doc; m = $f.m; nextRender = $f.nextRender; ok = $f.ok; pendingMounts = $f.pendingMounts; skip = $f.skip; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + body = [body]; + doc = [doc]; + nextRender = [nextRender]; + pendingMounts = [pendingMounts]; + batch.scheduled = true; + $deferred.push([(function(body, doc, nextRender, pendingMounts) { return function $b() { + var _r, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = requestAnimationFrame($methodVal(batch, "render")); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._r = _r; $f.$s = $s; $f.$r = $r; return $f; + }; })(body, doc, nextRender, pendingMounts), []]); + _r = renderComponent(body[0], $ifaceNil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + nextRender[0] = _tuple[0]; + skip = _tuple[1]; + pendingMounts[0] = _tuple[2]; + if (skip) { + $panic(new $String("vecty: RenderBody Component.SkipRender illegally returned true")); + } + if (!(nextRender[0].tag === "body")) { + $panic(new $String("vecty: RenderBody expected Component.Render to return a body tag, found \"" + nextRender[0].tag + "\"")); + } + _r$1 = global.Get("document"); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + doc[0] = _r$1; + _r$2 = doc[0].Get("readyState"); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = _r$2.String(); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3 === "loading") { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_r$3 === "loading") { */ case 3: + _r$4 = doc[0].Call("addEventListener", new sliceType$1([new $String("DOMContentLoaded"), new funcType$2((function(body, doc, nextRender, pendingMounts) { return function $b() { + var _tuple$1, m, ok, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _tuple$1 = $f._tuple$1; m = $f.m; ok = $f.ok; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = doc[0].Set("body", nextRender[0].node); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = mount(pendingMounts[0]); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tuple$1 = $assertType(body[0], Mounter, true); + m = _tuple$1[0]; + ok = _tuple$1[1]; + /* */ if (ok) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (ok) { */ case 3: + $r = mount(new sliceType$2([m])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 4: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._tuple$1 = _tuple$1; $f.m = m; $f.ok = ok; $f.$s = $s; $f.$r = $r; return $f; + }; })(body, doc, nextRender, pendingMounts))])); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4; + $s = -1; return; + /* } */ case 4: + $r = doc[0].Set("body", nextRender[0].node); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = mount(pendingMounts[0]); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tuple$1 = $assertType(body[0], Mounter, true); + m = _tuple$1[0]; + ok = _tuple$1[1]; + /* */ if (ok) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (ok) { */ case 10: + $r = mount(new sliceType$2([m])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 11: + $s = -1; return; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: RenderBody }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.body = body; $f.doc = doc; $f.m = m; $f.nextRender = nextRender; $f.ok = ok; $f.pendingMounts = pendingMounts; $f.skip = skip; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + $pkg.RenderBody = RenderBody; + SetTitle = function(title) { + var _r, title, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; title = $f.title; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = global.Get("document"); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = _r.Set("title", new $String(title)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: SetTitle }; } $f._r = _r; $f.title = title; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.SetTitle = SetTitle; + AddStylesheet = function(url) { + var _r, _r$1, _r$2, _r$3, _r$4, link, url, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; link = $f.link; url = $f.url; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = global.Get("document"); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = _r.Call("createElement", new sliceType$1([new $String("link")])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + link = _r$1; + $r = link.Set("rel", new $String("stylesheet")); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = link.Set("href", new $String(url)); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = global.Get("document"); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = _r$2.Get("head"); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$4 = _r$3.Call("appendChild", new sliceType$1([link])); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4; + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: AddStylesheet }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f.link = link; $f.url = url; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.AddStylesheet = AddStylesheet; + wrapObject = function(j) { + var j, x; + if (j === null) { + return $ifaceNil; + } + if (j === undefined) { + return new undefined$1.constructor.elem(undefined$1); + } + return (x = new wrappedObject.ptr(j), new x.constructor.elem(x)); + }; + wrappedObject.ptr.prototype.Set = function(key, value) { + var _tuple, key, ok, v, value, w; + w = this; + _tuple = $assertType(value, wrappedObject, true); + v = $clone(_tuple[0], wrappedObject); + ok = _tuple[1]; + if (ok) { + value = new $jsObjectPtr(v.j); + } + w.j[$externalize(key, $String)] = $externalize(value, $emptyInterface); + }; + wrappedObject.prototype.Set = function(key, value) { return this.$val.Set(key, value); }; + wrappedObject.ptr.prototype.Get = function(key) { + var key, w; + w = this; + return wrapObject(w.j[$externalize(key, $String)]); + }; + wrappedObject.prototype.Get = function(key) { return this.$val.Get(key); }; + wrappedObject.ptr.prototype.Delete = function(key) { + var key, w; + w = this; + delete w.j[$externalize(key, $String)]; + }; + wrappedObject.prototype.Delete = function(key) { return this.$val.Delete(key); }; + wrappedObject.ptr.prototype.Call = function(name, args) { + var _i, _ref, _tuple, arg, args, i, name, obj, ok, v, w; + w = this; + _ref = args; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _tuple = $assertType(arg, wrappedObject, true); + v = $clone(_tuple[0], wrappedObject); + ok = _tuple[1]; + if (ok) { + ((i < 0 || i >= args.$length) ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + i] = new $jsObjectPtr(v.j)); + } + _i++; + } + return wrapObject((obj = w.j, obj[$externalize(name, $String)].apply(obj, $externalize(args, sliceType$1)))); + }; + wrappedObject.prototype.Call = function(name, args) { return this.$val.Call(name, args); }; + wrappedObject.ptr.prototype.String = function() { + var w; + w = this; + return $internalize(w.j, $String); + }; + wrappedObject.prototype.String = function() { return this.$val.String(); }; + wrappedObject.ptr.prototype.Bool = function() { + var w; + w = this; + return !!(w.j); + }; + wrappedObject.prototype.Bool = function() { return this.$val.Bool(); }; + wrappedObject.ptr.prototype.Int = function() { + var w; + w = this; + return $parseInt(w.j) >> 0; + }; + wrappedObject.prototype.Int = function() { return this.$val.Int(); }; + wrappedObject.ptr.prototype.Float = function() { + var w; + w = this; + return $parseFloat(w.j); + }; + wrappedObject.prototype.Float = function() { return this.$val.Float(); }; + init = function() { + var _r, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + if (isTest) { + $s = -1; return; + } + if ($interfaceIsEqual(global, $ifaceNil)) { + $panic(new $String("vecty: only GopherJS compiler is supported")); + } + _r = global.Get("document"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if ($interfaceIsEqual(_r, new undefined$1.constructor.elem(undefined$1))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ($interfaceIsEqual(_r, new undefined$1.constructor.elem(undefined$1))) { */ case 1: + $panic(new $String("vecty: only running inside a browser is supported")); + /* } */ case 2: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: init }; } $f._r = _r; $f.$s = $s; $f.$r = $r; return $f; + }; + replaceNode = function(newNode, oldNode) { + var _r, _r$1, newNode, oldNode, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; newNode = $f.newNode; oldNode = $f.oldNode; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + if ($interfaceIsEqual(newNode, oldNode)) { + $s = -1; return; + } + _r = oldNode.Get("parentNode"); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = _r.Call("replaceChild", new sliceType$1([newNode, oldNode])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: replaceNode }; } $f._r = _r; $f._r$1 = _r$1; $f.newNode = newNode; $f.oldNode = oldNode; $f.$s = $s; $f.$r = $r; return $f; + }; + EventListener.ptr.prototype.PreventDefault = function() { + var l; + l = this; + l.callPreventDefault = true; + return l; + }; + EventListener.prototype.PreventDefault = function() { return this.$val.PreventDefault(); }; + EventListener.ptr.prototype.StopPropagation = function() { + var l; + l = this; + l.callStopPropagation = true; + return l; + }; + EventListener.prototype.StopPropagation = function() { return this.$val.StopPropagation(); }; + EventListener.ptr.prototype.Apply = function(h) { + var h, l; + l = this; + h.eventListeners = $append(h.eventListeners, l); + }; + EventListener.prototype.Apply = function(h) { return this.$val.Apply(h); }; + apply = function(m, h) { + var _r, _ref, h, m, m$1, m$2, m$3, m$4, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _ref = $f._ref; h = $f.h; m = $f.m; m$1 = $f.m$1; m$2 = $f.m$2; m$3 = $f.m$3; m$4 = $f.m$4; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _ref = m; + /* */ if ($assertType(_ref, MarkupList, true)[1]) { $s = 1; continue; } + /* */ if (_ref === $ifaceNil) { $s = 2; continue; } + /* */ if ($assertType(_ref, Component, true)[1] || $assertType(_ref, ptrType, true)[1] || $assertType(_ref, List, true)[1] || $assertType(_ref, KeyedList, true)[1]) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if ($assertType(_ref, MarkupList, true)[1]) { */ case 1: + m$1 = $clone(_ref.$val, MarkupList); + $r = $clone(m$1, MarkupList).Apply(h); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 5; continue; + /* } else if (_ref === $ifaceNil) { */ case 2: + m$2 = _ref; + h.children = $append(h.children, $ifaceNil); + $s = 5; continue; + /* } else if ($assertType(_ref, Component, true)[1] || $assertType(_ref, ptrType, true)[1] || $assertType(_ref, List, true)[1] || $assertType(_ref, KeyedList, true)[1]) { */ case 3: + m$3 = _ref; + h.children = $append(h.children, $assertType(m$3, ComponentOrHTML)); + $s = 5; continue; + /* } else { */ case 4: + m$4 = _ref; + _r = reflect.TypeOf(m$4).String(); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $panic(new $String("vecty: internal error (unexpected MarkupOrChild type " + _r + ")")); + /* } */ case 5: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: apply }; } $f._r = _r; $f._ref = _ref; $f.h = h; $f.m = m; $f.m$1 = m$1; $f.m$2 = m$2; $f.m$3 = m$3; $f.m$4 = m$4; $f.$s = $s; $f.$r = $r; return $f; + }; + markupFunc.prototype.Apply = function(h) { + var h, m, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; h = $f.h; m = $f.m; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + m = this.$val; + $r = m(h); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: markupFunc.prototype.Apply }; } $f.h = h; $f.m = m; $f.$s = $s; $f.$r = $r; return $f; + }; + $ptrType(markupFunc).prototype.Apply = function(h) { return new markupFunc(this.$get()).Apply(h); }; + Property = function(key, value) { + var key, value; + if (key === "style") { + $panic(new $String("vecty: Property called with key \"style\"; style package or Style should be used instead")); + } + return new markupFunc(((function(h) { + var _key, h; + if (h.properties === false) { + h.properties = {}; + } + _key = key; (h.properties || $throwRuntimeError("assignment to entry in nil map"))[$String.keyFor(_key)] = { k: _key, v: value }; + }))); + }; + $pkg.Property = Property; + Class = function(class$1) { + var class$1; + mustValidateClassNames(class$1); + return new markupFunc(((function(h) { + var _i, _key, _ref, h, name; + if (h.classes === false) { + h.classes = {}; + } + _ref = class$1; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + name = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _key = name; (h.classes || $throwRuntimeError("assignment to entry in nil map"))[$String.keyFor(_key)] = { k: _key, v: new structType.ptr() }; + _i++; + } + }))); + }; + $pkg.Class = Class; + mustValidateClassNames = function(class$1) { + var _i, _ref, class$1, name; + _ref = class$1; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + name = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (containsSpace(name)) { + $panic(new $String("vecty: invalid argument to vecty.Class \"" + name + "\" (string may not contain spaces)")); + } + _i++; + } + }; + containsSpace = function(s) { + var _i, _ref, _rune, c, s; + _ref = s; + _i = 0; + while (true) { + if (!(_i < _ref.length)) { break; } + _rune = $decodeRune(_ref, _i); + c = _rune[0]; + if (c === 32) { + return true; + } + _i += _rune[1]; + } + return false; + }; + MarkupList.ptr.prototype.Apply = function(h) { + var _i, _ref, a, h, m, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _ref = $f._ref; a = $f.a; h = $f.h; m = $f.m; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + m = this; + _ref = m.list; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + a = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + /* */ if ($interfaceIsEqual(a, $ifaceNil)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if ($interfaceIsEqual(a, $ifaceNil)) { */ case 3: + _i++; + /* continue; */ $s = 1; continue; + /* } */ case 4: + $r = a.Apply(h); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + /* } */ $s = 1; continue; case 2: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: MarkupList.ptr.prototype.Apply }; } $f._i = _i; $f._ref = _ref; $f.a = a; $f.h = h; $f.m = m; $f.$s = $s; $f.$r = $r; return $f; + }; + MarkupList.prototype.Apply = function(h) { return this.$val.Apply(h); }; + Markup = function(m) { + var m; + return new MarkupList.ptr(m); + }; + $pkg.Markup = Markup; + If = function(cond, children) { + var children, cond; + if (cond) { + return ($subslice(new List(children.$array), children.$offset, children.$offset + children.$length)); + } + return $ifaceNil; + }; + $pkg.If = If; + ptrType$3.methods = [{prop: "Context", name: "Context", pkg: "", typ: $funcType([], [ptrType$3], false)}, {prop: "isMarkupOrChild", name: "isMarkupOrChild", pkg: "github.com/gopherjs/vecty", typ: $funcType([], [], false)}, {prop: "isComponentOrHTML", name: "isComponentOrHTML", pkg: "github.com/gopherjs/vecty", typ: $funcType([], [], false)}]; + ptrType.methods = [{prop: "Node", name: "Node", pkg: "", typ: $funcType([], [ptrType$2], false)}, {prop: "Key", name: "Key", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "isMarkupOrChild", name: "isMarkupOrChild", pkg: "github.com/gopherjs/vecty", typ: $funcType([], [], false)}, {prop: "isComponentOrHTML", name: "isComponentOrHTML", pkg: "github.com/gopherjs/vecty", typ: $funcType([], [], false)}, {prop: "createNode", name: "createNode", pkg: "github.com/gopherjs/vecty", typ: $funcType([], [], false)}, {prop: "reconcileText", name: "reconcileText", pkg: "github.com/gopherjs/vecty", typ: $funcType([ptrType], [], false)}, {prop: "reconcile", name: "reconcile", pkg: "github.com/gopherjs/vecty", typ: $funcType([ptrType], [sliceType$2], false)}, {prop: "reconcileProperties", name: "reconcileProperties", pkg: "github.com/gopherjs/vecty", typ: $funcType([ptrType], [], false)}, {prop: "removeProperties", name: "removeProperties", pkg: "github.com/gopherjs/vecty", typ: $funcType([ptrType], [], false)}, {prop: "reconcileChildren", name: "reconcileChildren", pkg: "github.com/gopherjs/vecty", typ: $funcType([ptrType], [sliceType$2], false)}, {prop: "removeChildren", name: "removeChildren", pkg: "github.com/gopherjs/vecty", typ: $funcType([sliceType$4], [], false)}, {prop: "firstChild", name: "firstChild", pkg: "github.com/gopherjs/vecty", typ: $funcType([], [jsObject], false)}, {prop: "nextSibling", name: "nextSibling", pkg: "github.com/gopherjs/vecty", typ: $funcType([], [jsObject], false)}, {prop: "removeChild", name: "removeChild", pkg: "github.com/gopherjs/vecty", typ: $funcType([ptrType], [], false)}, {prop: "appendChild", name: "appendChild", pkg: "github.com/gopherjs/vecty", typ: $funcType([ptrType], [], false)}, {prop: "insertBefore", name: "insertBefore", pkg: "github.com/gopherjs/vecty", typ: $funcType([jsObject, ptrType], [], false)}]; + List.methods = [{prop: "isMarkupOrChild", name: "isMarkupOrChild", pkg: "github.com/gopherjs/vecty", typ: $funcType([], [], false)}, {prop: "isComponentOrHTML", name: "isComponentOrHTML", pkg: "github.com/gopherjs/vecty", typ: $funcType([], [], false)}, {prop: "WithKey", name: "WithKey", pkg: "", typ: $funcType([$emptyInterface], [KeyedList], false)}]; + KeyedList.methods = [{prop: "isMarkupOrChild", name: "isMarkupOrChild", pkg: "github.com/gopherjs/vecty", typ: $funcType([], [], false)}, {prop: "isComponentOrHTML", name: "isComponentOrHTML", pkg: "github.com/gopherjs/vecty", typ: $funcType([], [], false)}, {prop: "Key", name: "Key", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "reconcile", name: "reconcile", pkg: "github.com/gopherjs/vecty", typ: $funcType([ptrType, ComponentOrHTML], [sliceType$2], false)}, {prop: "remove", name: "remove", pkg: "github.com/gopherjs/vecty", typ: $funcType([ptrType], [], false)}]; + ptrType$4.methods = [{prop: "add", name: "add", pkg: "github.com/gopherjs/vecty", typ: $funcType([Component], [], false)}, {prop: "render", name: "render", pkg: "github.com/gopherjs/vecty", typ: $funcType([$Float64], [], false)}]; + wrappedObject.methods = [{prop: "Set", name: "Set", pkg: "", typ: $funcType([$String, $emptyInterface], [], false)}, {prop: "Get", name: "Get", pkg: "", typ: $funcType([$String], [jsObject], false)}, {prop: "Delete", name: "Delete", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Call", name: "Call", pkg: "", typ: $funcType([$String, sliceType$1], [jsObject], true)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Bool", name: "Bool", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Int", name: "Int", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Float", name: "Float", pkg: "", typ: $funcType([], [$Float64], false)}]; + ptrType$1.methods = [{prop: "PreventDefault", name: "PreventDefault", pkg: "", typ: $funcType([], [ptrType$1], false)}, {prop: "StopPropagation", name: "StopPropagation", pkg: "", typ: $funcType([], [ptrType$1], false)}, {prop: "Apply", name: "Apply", pkg: "", typ: $funcType([ptrType], [], false)}]; + markupFunc.methods = [{prop: "Apply", name: "Apply", pkg: "", typ: $funcType([ptrType], [], false)}]; + MarkupList.methods = [{prop: "Apply", name: "Apply", pkg: "", typ: $funcType([ptrType], [], false)}, {prop: "isMarkupOrChild", name: "isMarkupOrChild", pkg: "github.com/gopherjs/vecty", typ: $funcType([], [], false)}]; + Core.init("github.com/gopherjs/vecty", [{prop: "prevRenderComponent", name: "prevRenderComponent", embedded: false, exported: false, typ: Component, tag: ""}, {prop: "prevRender", name: "prevRender", embedded: false, exported: false, typ: ComponentOrHTML, tag: ""}, {prop: "mounted", name: "mounted", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "unmounted", name: "unmounted", embedded: false, exported: false, typ: $Bool, tag: ""}]); + Component.init([{prop: "Context", name: "Context", pkg: "", typ: $funcType([], [ptrType$3], false)}, {prop: "Render", name: "Render", pkg: "", typ: $funcType([], [ComponentOrHTML], false)}, {prop: "isComponentOrHTML", name: "isComponentOrHTML", pkg: "github.com/gopherjs/vecty", typ: $funcType([], [], false)}, {prop: "isMarkupOrChild", name: "isMarkupOrChild", pkg: "github.com/gopherjs/vecty", typ: $funcType([], [], false)}]); + Copier.init([{prop: "Copy", name: "Copy", pkg: "", typ: $funcType([], [Component], false)}]); + Mounter.init([{prop: "Mount", name: "Mount", pkg: "", typ: $funcType([], [], false)}]); + Unmounter.init([{prop: "Unmount", name: "Unmount", pkg: "", typ: $funcType([], [], false)}]); + Keyer.init([{prop: "Key", name: "Key", pkg: "", typ: $funcType([], [$emptyInterface], false)}]); + ComponentOrHTML.init([{prop: "isComponentOrHTML", name: "isComponentOrHTML", pkg: "github.com/gopherjs/vecty", typ: $funcType([], [], false)}, {prop: "isMarkupOrChild", name: "isMarkupOrChild", pkg: "github.com/gopherjs/vecty", typ: $funcType([], [], false)}]); + RenderSkipper.init([{prop: "SkipRender", name: "SkipRender", pkg: "", typ: $funcType([Component], [$Bool], false)}]); + HTML.init("github.com/gopherjs/vecty", [{prop: "node", name: "node", embedded: false, exported: false, typ: jsObject, tag: ""}, {prop: "namespace", name: "namespace", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "tag", name: "tag", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "text", name: "text", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "innerHTML", name: "innerHTML", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "classes", name: "classes", embedded: false, exported: false, typ: mapType, tag: ""}, {prop: "styles", name: "styles", embedded: false, exported: false, typ: mapType$1, tag: ""}, {prop: "dataset", name: "dataset", embedded: false, exported: false, typ: mapType$1, tag: ""}, {prop: "properties", name: "properties", embedded: false, exported: false, typ: mapType$2, tag: ""}, {prop: "attributes", name: "attributes", embedded: false, exported: false, typ: mapType$2, tag: ""}, {prop: "eventListeners", name: "eventListeners", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "children", name: "children", embedded: false, exported: false, typ: sliceType$4, tag: ""}, {prop: "key", name: "key", embedded: false, exported: false, typ: $emptyInterface, tag: ""}, {prop: "keyedChildren", name: "keyedChildren", embedded: false, exported: false, typ: mapType$3, tag: ""}, {prop: "insertBeforeNode", name: "insertBeforeNode", embedded: false, exported: false, typ: jsObject, tag: ""}, {prop: "lastRenderedChild", name: "lastRenderedChild", embedded: false, exported: false, typ: ptrType, tag: ""}]); + List.init(ComponentOrHTML); + KeyedList.init("github.com/gopherjs/vecty", [{prop: "html", name: "html", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "key", name: "key", embedded: false, exported: false, typ: $emptyInterface, tag: ""}]); + batchRenderer.init("github.com/gopherjs/vecty", [{prop: "batch", name: "batch", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "idx", name: "idx", embedded: false, exported: false, typ: mapType$4, tag: ""}, {prop: "scheduled", name: "scheduled", embedded: false, exported: false, typ: $Bool, tag: ""}]); + jsObject.init([{prop: "Bool", name: "Bool", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Call", name: "Call", pkg: "", typ: $funcType([$String, sliceType$1], [jsObject], true)}, {prop: "Delete", name: "Delete", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Float", name: "Float", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "Get", name: "Get", pkg: "", typ: $funcType([$String], [jsObject], false)}, {prop: "Int", name: "Int", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([$String, $emptyInterface], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]); + wrappedObject.init("github.com/gopherjs/vecty", [{prop: "j", name: "j", embedded: false, exported: false, typ: ptrType$2, tag: ""}]); + EventListener.init("github.com/gopherjs/vecty", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Listener", name: "Listener", embedded: false, exported: true, typ: funcType$3, tag: ""}, {prop: "callPreventDefault", name: "callPreventDefault", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "callStopPropagation", name: "callStopPropagation", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "wrapper", name: "wrapper", embedded: false, exported: false, typ: funcType, tag: ""}]); + Event.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "Target", name: "Target", embedded: false, exported: true, typ: ptrType$2, tag: ""}]); + MarkupOrChild.init([{prop: "isMarkupOrChild", name: "isMarkupOrChild", pkg: "github.com/gopherjs/vecty", typ: $funcType([], [], false)}]); + Applyer.init([{prop: "Apply", name: "Apply", pkg: "", typ: $funcType([ptrType], [], false)}]); + markupFunc.init([ptrType], [], false); + MarkupList.init("github.com/gopherjs/vecty", [{prop: "list", name: "list", embedded: false, exported: false, typ: sliceType$6, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = reflect.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + isTest = false; + batch = new batchRenderer.ptr(sliceType.nil, {}, false); + undefined$1 = new wrappedObject.ptr(undefined); + global = wrapObject($global); + $r = init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["github.com/gopherjs/vecty/elem"] = (function() { + var $pkg = {}, $init, vecty, Body, Div, Heading1, Heading6, Image, Section; + vecty = $packages["github.com/gopherjs/vecty"]; + Body = function(markup) { + var _r, markup, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; markup = $f.markup; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = vecty.Tag("body", markup); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: Body }; } $f._r = _r; $f.markup = markup; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Body = Body; + Div = function(markup) { + var _r, markup, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; markup = $f.markup; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = vecty.Tag("div", markup); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: Div }; } $f._r = _r; $f.markup = markup; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Div = Div; + Heading1 = function(markup) { + var _r, markup, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; markup = $f.markup; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = vecty.Tag("h1", markup); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: Heading1 }; } $f._r = _r; $f.markup = markup; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Heading1 = Heading1; + Heading6 = function(markup) { + var _r, markup, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; markup = $f.markup; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = vecty.Tag("h6", markup); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: Heading6 }; } $f._r = _r; $f.markup = markup; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Heading6 = Heading6; + Image = function(markup) { + var _r, markup, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; markup = $f.markup; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = vecty.Tag("img", markup); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: Image }; } $f._r = _r; $f.markup = markup; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Image = Image; + Section = function(markup) { + var _r, markup, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; markup = $f.markup; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = vecty.Tag("section", markup); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: Section }; } $f._r = _r; $f.markup = markup; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Section = Section; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = vecty.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["github.com/gopherjs/vecty/event"] = (function() { + var $pkg = {}, $init, vecty, KeyDown; + vecty = $packages["github.com/gopherjs/vecty"]; + KeyDown = function(listener) { + var listener; + return new vecty.EventListener.ptr("keydown", listener, false, false, $throwNilPointerError); + }; + $pkg.KeyDown = KeyDown; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = vecty.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["github.com/gopherjs/vecty/prop"] = (function() { + var $pkg = {}, $init, vecty, Src; + vecty = $packages["github.com/gopherjs/vecty"]; + Src = function(url) { + var url; + return vecty.Property("src", new $String(url)); + }; + $pkg.Src = Src; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = vecty.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["github.com/divan/txqr/cmd/txqr-tester"] = (function() { + var $pkg = {}, $init, bytes, base64, fmt, qr, vecty, elem, event, prop, image, png, App, SessionState, Session, ptrType, sliceType, sliceType$1, sliceType$2, sliceType$3, sliceType$4, arrayType, sliceType$5, ptrType$1, ptrType$2, ptrType$3, NewApp, renderImage, main, NewSession; + bytes = $packages["bytes"]; + base64 = $packages["encoding/base64"]; + fmt = $packages["fmt"]; + qr = $packages["github.com/divan/txqr/qr"]; + vecty = $packages["github.com/gopherjs/vecty"]; + elem = $packages["github.com/gopherjs/vecty/elem"]; + event = $packages["github.com/gopherjs/vecty/event"]; + prop = $packages["github.com/gopherjs/vecty/prop"]; + image = $packages["image"]; + png = $packages["image/png"]; + App = $pkg.App = $newType(0, $kindStruct, "main.App", true, "github.com/divan/txqr/cmd/txqr-tester", true, function(Core_, session_) { + this.$val = this; + if (arguments.length === 0) { + this.Core = new vecty.Core.ptr($ifaceNil, $ifaceNil, false, false); + this.session = ptrType.nil; + return; + } + this.Core = Core_; + this.session = session_; + }); + SessionState = $pkg.SessionState = $newType(4, $kindInt, "main.SessionState", true, "github.com/divan/txqr/cmd/txqr-tester", true, null); + Session = $pkg.Session = $newType(0, $kindStruct, "main.Session", true, "github.com/divan/txqr/cmd/txqr-tester", true, function(state_) { + this.$val = this; + if (arguments.length === 0) { + this.state = 0; + return; + } + this.state = state_; + }); + ptrType = $ptrType(Session); + sliceType = $sliceType($String); + sliceType$1 = $sliceType(vecty.Applyer); + sliceType$2 = $sliceType(vecty.ComponentOrHTML); + sliceType$3 = $sliceType(vecty.MarkupOrChild); + sliceType$4 = $sliceType($Uint8); + arrayType = $arrayType($Uint8, 64); + sliceType$5 = $sliceType($emptyInterface); + ptrType$1 = $ptrType(vecty.HTML); + ptrType$2 = $ptrType(vecty.Event); + ptrType$3 = $ptrType(App); + NewApp = function() { + var app; + app = new App.ptr(new vecty.Core.ptr($ifaceNil, $ifaceNil, false, false), NewSession()); + return app; + }; + $pkg.NewApp = NewApp; + App.ptr.prototype.Render = function() { + var _arg, _arg$1, _arg$10, _arg$11, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, a, x, x$1, x$2, x$3, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$10 = $f._arg$10; _arg$11 = $f._arg$11; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _arg$4 = $f._arg$4; _arg$5 = $f._arg$5; _arg$6 = $f._arg$6; _arg$7 = $f._arg$7; _arg$8 = $f._arg$8; _arg$9 = $f._arg$9; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; a = $f.a; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + a = this; + _r = a.header(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg = _r; + _arg$1 = (x = vecty.Markup(new sliceType$1([vecty.Class(new sliceType(["columns"]))])), new x.constructor.elem(x)); + _arg$2 = (x$1 = vecty.Markup(new sliceType$1([vecty.Class(new sliceType(["column", "is-half"]))])), new x$1.constructor.elem(x$1)); + _arg$3 = a.session.state === 0; + _r$1 = a.StartQR(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg$4 = _r$1; + _r$2 = vecty.If(_arg$3, new sliceType$2([_arg$4])); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = elem.Div(new sliceType$3([_r$2])); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _arg$5 = _r$3; + _r$4 = elem.Div(new sliceType$3([_arg$2, _arg$5])); /* */ $s = 5; case 5: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _arg$6 = _r$4; + _arg$7 = (x$2 = vecty.Markup(new sliceType$1([vecty.Class(new sliceType(["column", "is-half"]))])), new x$2.constructor.elem(x$2)); + _r$5 = vecty.Text("Right", new sliceType$3([])); /* */ $s = 6; case 6: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$6 = elem.Heading1(new sliceType$3([_r$5])); /* */ $s = 7; case 7: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$7 = elem.Div(new sliceType$3([_r$6])); /* */ $s = 8; case 8: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _arg$8 = _r$7; + _r$8 = elem.Div(new sliceType$3([_arg$7, _arg$8])); /* */ $s = 9; case 9: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _arg$9 = _r$8; + _r$9 = elem.Div(new sliceType$3([_arg$1, _arg$6, _arg$9])); /* */ $s = 10; case 10: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _arg$10 = _r$9; + _arg$11 = (x$3 = vecty.Markup(new sliceType$1([event.KeyDown($methodVal(a, "KeyListener"))])), new x$3.constructor.elem(x$3)); + _r$10 = elem.Body(new sliceType$3([_arg, _arg$10, _arg$11])); /* */ $s = 11; case 11: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + $s = -1; return _r$10; + /* */ } return; } if ($f === undefined) { $f = { $blk: App.ptr.prototype.Render }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$10 = _arg$10; $f._arg$11 = _arg$11; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._arg$4 = _arg$4; $f._arg$5 = _arg$5; $f._arg$6 = _arg$6; $f._arg$7 = _arg$7; $f._arg$8 = _arg$8; $f._arg$9 = _arg$9; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f.a = a; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.$s = $s; $f.$r = $r; return $f; + }; + App.prototype.Render = function() { return this.$val.Render(); }; + App.ptr.prototype.header = function() { + var _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _r, _r$1, _r$2, _r$3, _r$4, a, x, x$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _arg$4 = $f._arg$4; _arg$5 = $f._arg$5; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; a = $f.a; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + a = this; + _arg = (x = vecty.Markup(new sliceType$1([vecty.Class(new sliceType(["title", "has-text-weight-light"]))])), new x.constructor.elem(x)); + _r = vecty.Text("TXQR Automated Tester", new sliceType$3([])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = _r; + _r$1 = elem.Heading1(new sliceType$3([_arg, _arg$1])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg$2 = _r$1; + _arg$3 = (x$1 = vecty.Markup(new sliceType$1([vecty.Class(new sliceType(["subtitle", "has-text-weight-light"]))])), new x$1.constructor.elem(x$1)); + _r$2 = vecty.Text("Run TQXR Reader app on your smartphone and point to the QR code to start testing.", new sliceType$3([])); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg$4 = _r$2; + _r$3 = elem.Heading6(new sliceType$3([_arg$3, _arg$4])); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _arg$5 = _r$3; + _r$4 = elem.Section(new sliceType$3([_arg$2, _arg$5])); /* */ $s = 5; case 5: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $s = -1; return _r$4; + /* */ } return; } if ($f === undefined) { $f = { $blk: App.ptr.prototype.header }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._arg$4 = _arg$4; $f._arg$5 = _arg$5; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f.a = a; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f; + }; + App.prototype.header = function() { return this.$val.header(); }; + renderImage = function(img) { + var _r, _r$1, _r$2, _r$3, _r$4, buf, err, img, src, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; buf = $f.buf; err = $f.err; img = $f.img; src = $f.src; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + buf = [buf]; + buf[0] = new bytes.Buffer.ptr(sliceType$4.nil, 0, arrayType.zero(), 0); + _r = png.Encode(buf[0], img); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2: + _r$1 = fmt.Sprintf("png error: %v", new sliceType$5([err])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = vecty.Text(_r$1, new sliceType$3([])); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = elem.Div(new sliceType$3([_r$2])); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $s = -1; return _r$3; + /* } */ case 3: + src = base64.StdEncoding.EncodeToString(buf[0].Bytes()); + src = "data:image/png;base64," + src; + _r$4 = elem.Image(new sliceType$3([(x = vecty.Markup(new sliceType$1([prop.Src(src)])), new x.constructor.elem(x))])); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $s = -1; return _r$4; + /* */ } return; } if ($f === undefined) { $f = { $blk: renderImage }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f.buf = buf; $f.err = err; $f.img = img; $f.src = src; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + App.ptr.prototype.KeyListener = function(e) { + var _1, _r, a, e, key, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; a = $f.a; e = $f.e; key = $f.key; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + a = this; + key = $internalize(e.Object.key, $String); + _1 = key; + /* */ if (_1 === (" ")) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (_1 === (" ")) { */ case 2: + _r = fmt.Println(new sliceType$5([new $String("Space")])); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + /* } */ case 3: + case 1: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: App.ptr.prototype.KeyListener }; } $f._1 = _1; $f._r = _r; $f.a = a; $f.e = e; $f.key = key; $f.$s = $s; $f.$r = $r; return $f; + }; + App.prototype.KeyListener = function(e) { return this.$val.KeyListener(e); }; + main = function() { + var app, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; app = $f.app; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + app = NewApp(); + $r = vecty.SetTitle("TXQR Automated Tester"); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = vecty.AddStylesheet("css/bulma.css"); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = vecty.AddStylesheet("css/bulma-extensions.min.css"); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = vecty.AddStylesheet("css/custom.css"); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = vecty.RenderBody(app); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: main }; } $f.app = app; $f.$s = $s; $f.$r = $r; return $f; + }; + NewSession = function() { + return new Session.ptr(0); + }; + $pkg.NewSession = NewSession; + App.ptr.prototype.StartQR = function() { + var _arg, _arg$1, _arg$10, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, a, err, img, x, x$1, x$2, x$3, x$4, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$10 = $f._arg$10; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _arg$4 = $f._arg$4; _arg$5 = $f._arg$5; _arg$6 = $f._arg$6; _arg$7 = $f._arg$7; _arg$8 = $f._arg$8; _arg$9 = $f._arg$9; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _tuple = $f._tuple; a = $f.a; err = $f.err; img = $f.img; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + a = this; + _r = qr.Encode("test", 500, 1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + img = _tuple[0]; + err = _tuple[1]; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2: + _r$1 = fmt.Sprintf("qr error: %v", new sliceType$5([err])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = vecty.Text(_r$1, new sliceType$3([])); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = elem.Div(new sliceType$3([_r$2])); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $s = -1; return _r$3; + /* } */ case 3: + _arg = (x = vecty.Markup(new sliceType$1([vecty.Class(new sliceType(["card"]))])), new x.constructor.elem(x)); + _arg$1 = (x$1 = vecty.Markup(new sliceType$1([vecty.Class(new sliceType(["card-header"]))])), new x$1.constructor.elem(x$1)); + _arg$2 = (x$2 = vecty.Markup(new sliceType$1([vecty.Class(new sliceType(["card-header-title", "is-centered"]))])), new x$2.constructor.elem(x$2)); + _arg$3 = (x$3 = vecty.Markup(new sliceType$1([vecty.Class(new sliceType(["has-text-weight-bold"]))])), new x$3.constructor.elem(x$3)); + _r$4 = vecty.Text("Scan QR code to start testing", new sliceType$3([])); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _arg$4 = _r$4; + _r$5 = elem.Heading1(new sliceType$3([_arg$3, _arg$4])); /* */ $s = 8; case 8: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _arg$5 = _r$5; + _r$6 = elem.Div(new sliceType$3([_arg$2, _arg$5])); /* */ $s = 9; case 9: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _arg$6 = _r$6; + _r$7 = elem.Div(new sliceType$3([_arg$1, _arg$6])); /* */ $s = 10; case 10: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _arg$7 = _r$7; + _arg$8 = (x$4 = vecty.Markup(new sliceType$1([vecty.Class(new sliceType(["card-image", "has-text-centered"]))])), new x$4.constructor.elem(x$4)); + _r$8 = renderImage(img); /* */ $s = 11; case 11: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _arg$9 = _r$8; + _r$9 = elem.Div(new sliceType$3([_arg$8, _arg$9])); /* */ $s = 12; case 12: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _arg$10 = _r$9; + _r$10 = elem.Div(new sliceType$3([_arg, _arg$7, _arg$10])); /* */ $s = 13; case 13: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + $s = -1; return _r$10; + /* */ } return; } if ($f === undefined) { $f = { $blk: App.ptr.prototype.StartQR }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$10 = _arg$10; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._arg$4 = _arg$4; $f._arg$5 = _arg$5; $f._arg$6 = _arg$6; $f._arg$7 = _arg$7; $f._arg$8 = _arg$8; $f._arg$9 = _arg$9; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._tuple = _tuple; $f.a = a; $f.err = err; $f.img = img; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.$s = $s; $f.$r = $r; return $f; + }; + App.prototype.StartQR = function() { return this.$val.StartQR(); }; + ptrType$3.methods = [{prop: "Render", name: "Render", pkg: "", typ: $funcType([], [vecty.ComponentOrHTML], false)}, {prop: "header", name: "header", pkg: "github.com/divan/txqr/cmd/txqr-tester", typ: $funcType([], [ptrType$1], false)}, {prop: "KeyListener", name: "KeyListener", pkg: "", typ: $funcType([ptrType$2], [], false)}, {prop: "StartQR", name: "StartQR", pkg: "", typ: $funcType([], [vecty.ComponentOrHTML], false)}]; + App.init("github.com/divan/txqr/cmd/txqr-tester", [{prop: "Core", name: "Core", embedded: true, exported: true, typ: vecty.Core, tag: ""}, {prop: "session", name: "session", embedded: false, exported: false, typ: ptrType, tag: ""}]); + Session.init("github.com/divan/txqr/cmd/txqr-tester", [{prop: "state", name: "state", embedded: false, exported: false, typ: SessionState, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = base64.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fmt.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = qr.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = vecty.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = elem.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = event.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = prop.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = image.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = png.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if ($pkg === $mainPkg) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if ($pkg === $mainPkg) { */ case 11: + $r = main(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $mainFinished = true; + /* } */ case 12: + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$synthesizeMethods(); +var $mainPkg = $packages["github.com/divan/txqr/cmd/txqr-tester"]; +$packages["runtime"].$init(); +$go($mainPkg.$init, []); +$flushConsole(); + +}).call(this); +//# sourceMappingURL=txqr-tester.js.map diff --git a/cmd/txqr-tester/txqr-tester.js.map b/cmd/txqr-tester/txqr-tester.js.map new file mode 100644 index 0000000..abec2e1 --- /dev/null +++ b/cmd/txqr-tester/txqr-tester.js.map @@ -0,0 +1 @@ +{"version":3,"file":"txqr-tester.js","sources":["/github.com/gopherjs/gopherjs/js/js.go","runtime.go","/runtime/error.go","/errors/errors.go","atomic.go","pool.go","sync.go","/sync/mutex.go","/sync/once.go","/sync/pool.go","/sync/runtime.go","/sync/rwmutex.go","/io/io.go","/unicode/utf8/utf8.go","bytes.go","/bytes/buffer.go","math.go","/math/bits/bits.go","/strconv/decimal.go","/strconv/extfloat.go","/strconv/ftoa.go","/strconv/itoa.go","/strconv/quote.go","reflect.go","/reflect/type.go","/reflect/value.go","/encoding/binary/binary.go","/encoding/base64/base64.go","syscall.go","syscall_unix.go","/syscall/dirent.go","/syscall/exec_unix.go","/syscall/route_bsd.go","/syscall/str.go","/syscall/syscall.go","/syscall/syscall_bsd.go","/syscall/syscall_darwin.go","/syscall/syscall_darwin_amd64.go","/syscall/syscall_unix.go","/syscall/zsyscall_darwin_amd64.go","/github.com/gopherjs/gopherjs/nosync/mutex.go","/github.com/gopherjs/gopherjs/nosync/once.go","time.go","/time/format.go","/time/time.go","/time/zoneinfo.go","fd_poll_js.go","/internal/poll/fd.go","/internal/poll/fd_mutex.go","/internal/poll/fd_posix.go","/internal/poll/fd_unix.go","/internal/poll/sockopt.go","/internal/poll/sockopt_unix.go","/internal/poll/sockoptip.go","/internal/poll/sys_cloexec.go","/internal/poll/writev.go","/internal/testlog/log.go","os.go","/os/dir.go","/os/dir_unix.go","/os/error.go","/os/error_posix.go","/os/error_unix.go","/os/file.go","/os/file_posix.go","/os/file_unix.go","/os/getwd_darwin.go","/os/path_unix.go","/os/proc.go","/os/stat.go","/os/stat_darwin.go","/os/stat_unix.go","/os/types.go","/os/types_unix.go","/os/getwd.go","/fmt/format.go","/fmt/print.go","/fmt/scan.go","/bufio/bufio.go","/image/color/color.go","/image/color/ycbcr.go","/image/format.go","/image/geom.go","/image/image.go","/image/names.go","/github.com/makiuchi-d/gozxing/bit_array.go","/github.com/makiuchi-d/gozxing/bit_matrix.go","/github.com/makiuchi-d/gozxing/not_found_exception.go","/github.com/makiuchi-d/gozxing/common/character_set_eci.go","/github.com/makiuchi-d/gozxing/common/default_grid_sampler.go","/github.com/makiuchi-d/gozxing/common/grid_sampler.go","/github.com/makiuchi-d/gozxing/common/perspective_transform.go","/github.com/makiuchi-d/gozxing/common/reedsolomon/generic_gf.go","/github.com/makiuchi-d/gozxing/common/reedsolomon/generic_gf_poly.go","/golang.org/x/text/transform/transform.go","/golang.org/x/text/encoding/encoding.go","/golang.org/x/text/encoding/internal/internal.go","/golang.org/x/text/encoding/charmap/charmap.go","/golang.org/x/text/encoding/japanese/eucjp.go","/golang.org/x/text/encoding/japanese/iso2022jp.go","/golang.org/x/text/encoding/japanese/shiftjis.go","/golang.org/x/text/encoding/korean/euckr.go","/golang.org/x/text/encoding/simplifiedchinese/gbk.go","/golang.org/x/text/encoding/simplifiedchinese/hzgb2312.go","/golang.org/x/text/encoding/traditionalchinese/big5.go","/golang.org/x/text/runes/runes.go","/unicode/utf16/utf16.go","/golang.org/x/text/encoding/unicode/unicode.go","/sort/sort.go","/github.com/makiuchi-d/gozxing/qrcode/decoder/error_correction_level.go","/github.com/makiuchi-d/gozxing/qrcode/decoder/mode.go","/github.com/makiuchi-d/gozxing/qrcode/decoder/version.go","/log/log.go","/github.com/skip2/go-qrcode/bitset/bitset.go","/github.com/skip2/go-qrcode/reedsolomon/gf2_8.go","/github.com/skip2/go-qrcode/reedsolomon/gf_poly.go","/github.com/skip2/go-qrcode/reedsolomon/reed_solomon.go","/compress/flate/deflate.go","/compress/flate/deflatefast.go","/compress/flate/dict_decoder.go","/compress/flate/huffman_bit_writer.go","/compress/flate/huffman_code.go","/compress/flate/inflate.go","/compress/flate/token.go","/hash/adler32/adler32.go","/compress/zlib/reader.go","/compress/zlib/writer.go","/hash/crc32/crc32.go","/hash/crc32/crc32_generic.go","/hash/crc32/crc32_otherarch.go","/image/png/paeth.go","/image/png/reader.go","/image/png/writer.go","/io/ioutil/ioutil.go","/github.com/skip2/go-qrcode/encoder.go","/github.com/skip2/go-qrcode/qrcode.go","/github.com/skip2/go-qrcode/regular_symbol.go","/github.com/skip2/go-qrcode/symbol.go","/github.com/skip2/go-qrcode/version.go","/github.com/divan/txqr/qr/qr.go","/github.com/gopherjs/vecty/dom.go","/github.com/gopherjs/vecty/domutil.go","/github.com/gopherjs/vecty/markup.go","/github.com/gopherjs/vecty/elem/elem.gen.go","/github.com/gopherjs/vecty/event/event.gen.go","/github.com/gopherjs/vecty/prop/prop.go","/github.com/divan/txqr/cmd/txqr-tester/app.go","/github.com/divan/txqr/cmd/txqr-tester/image.go","/github.com/divan/txqr/cmd/txqr-tester/keys.go","/github.com/divan/txqr/cmd/txqr-tester/main.go","/github.com/divan/txqr/cmd/txqr-tester/session.go","/github.com/divan/txqr/cmd/txqr-tester/start_qr.go"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+B4C;A;;;;;AAGW;A;;;;;AAGhB;A;;;;;AAGN;A;;;;;AAGQ;A;;;;;AAGc;A;;;;;AAGY;A;;;;;AAGX;A;;;;;AAGH;A;;;;;AAGrB;A;;;;;AAGI;A;;;;;AAGN;A;;;;;AAGI;A;;;;;AAGE;A;;;;;AAGA;A;;;;;AAGQ;A;;;;;AAGP;A;;;;;AASnC;A;;;;;AAKA;A;;;;AAsBA;A;;;;AAkDA;AACA;A;;;;;;;;A;;;;;;;;;;;;;;;;;;;;;;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/IA;A;;;;;AAGA;A;;;;AAIA;AACA;AACA;AACA;AAEI;AACJ;AACA;A;;;AAIA;A;AAEC;A;AAED;A;AAEC;A;AAID;A;;;;;;;;AAQA;A;A;;;;;;;;;A;AAIA;A;;;;;;;;;A;;;AA6BA;AACA;A;;;;A;;;;A;;;;AAmIA;A;;A;;;;;AClMA;A;AAEC;A;AAED;A;AAEC;A;AAED;A;AAEC;A;A;AAIE;A;AAEA;A;A;AAGF;A;AAED;A;;;;;A;;;;;AAUA;A;;;;;;;;;;A;A;A;A;;;;;;;;;;;;;;;;;;;ACpDA;A;;;;;AASA;A;;;;;;;;;;;;;;;;A;;;;A;;;;A;;;A;;;A;;;;A;;;;A;;;;;;;;;;;;;;;;;;;;;;;;A;AC8BC;AACA;A;AAED;A;;;;A;AAqBC;AACA;A;AAED;A;;;;AAoBA;AACA;AACA;A;;;;AA4BA;A;;;;AAQA;A;;;;AAIA;A;;;;AAYA;A;;;;AAQA;A;;;;;;A;;A;;;;;A;AAqBC;A;A;AAGA;A;AAED;A;;;;;;;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxKA;;A;AACC;;A;AACC;;A;AAED;A;AAED;AACA;AACA;A;;;;;;A;AAKC;A;AAED;A;;;;A;;;;ACHA;;A;AACC;A;AAEC;A;AAEA;A;AAED;;AACA;A;AAEC;A;A;A;A;;;;;;A;AAUF;A;AAEC;A;AAGD;AACA;AACA;A;AAEC;A;AAGD;A;A;;;;;A;;;AAQA;A;;AAMA;A;;;AAKA;A;;;;;A;A;ACHE;A;AAED;A;AAGG;AACJ;AACA;AACA;AACA;AACA;AAGC;;A;A;AAME;A;AAED;AACA;AACA;AACA;A;AAED;A;AAGC;A;A;AAGA;A;A;AAOA;A;A;A;AAMC;A;AAED;A;AAED;;A;A;AAEE;A;AAGD;A;AAEC;A;AAED;AACA;AACA;A;A;AAOE;A;AAED;A;AAOC;A;AAED;AACA;A;AAED;AACA;A;;AAEA;A;A;A;AAKD;A;A;;;;;;;;A;AAYA;AACA;A;AAID;A;AAEC;A;AAED;;A;AACC;AACA;A;AAQE;A;AAGD;AACA;;A;AACC;AACA;A;AAED;A;A;;AAOD;A;A;;;;;;;;A;AC9KA;A;AAGD;AACA;AACA;;A;AACC;AACA;A;A;;;;;;ACqLD;;;;;;AACC;AACI;;;AACH;AACA;AACA;;;;;AACC;A;;AAED;AANiC;A;AAQlC;AACA;A;;AAED;A;;AASA;A;;;AAIA;AACA;A;;;ACxMI;AACJ;A;;;;;;;;A;ACRC;AACA;A;AAED;;A;AAEC;A;A;AAGA;AACA;A;A;;;;;;;;A;AAUA;AACA;AACA;A;AAEE;AAAH;;A;A;AAEE;AACA;A;AAGD;;A;AAEC;A;A;A;AAID;A;A;;;;;;;;A;AASA;AACA;A;AAGD;AAEA;AAEA;;A;AACC;A;A;AAGA;AACA;AACA;A;A;;;;;;;;A;AAYA;AACA;AACA;A;AAID;A;AAEC;AACA;A;AAGG;;;AACH;AADuB;A;AAIxB;A;AAEC;A;A;;;;;;;AAOD;A;;;;;;AAK4B;A;;;;;;;;AACA;A;;;;;;;;;;;;;;;;;;;;;A;A;A;A;;A;A;A;A;A;;;;;;;;;;;;;;;;;;;;;;;;ACgJzB;;;AAAH;;A;A;;;;;A;A;;;;;A;;;;;;;;A;A;;;;;A;AAkBA;;AACK;AACJ;;;;AACA;A;A;AAGA;A;AAEA;A;AAED;A;;;;;;;;A;;;;;A;;;;;;;;;;;;;A;A;A;A;A;A;A;A;A;A;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvNA;A;AAEC;A;AAED;A;AAEC;A;AAGD;A;AAEC;A;AAEA;A;AAED;A;;;;;;AAgCA;A;A;;;;;A;AAIA;AACA;A;AAKC;A;;;;;A;AAGD;AACA;A;A;;;;;A;AAIA;A;A;;;;;A;A;A;;;;;A;AAOA;A;A;;;;;A;A;A;;;;;A;AAOA;A;A;;;;;A;A;;;;;A;;;;;;AAgBA;A;A;;;;;A;AAIA;AACA;A;AAKC;A;;;;;A;AAGD;AACA;A;A;;;;;A;AAIA;A;A;;;;;A;A;A;;;;;A;AAOA;A;A;;;;;A;A;A;;;;;A;AAOA;A;A;;;;;A;A;;;;;A;;;;A;AA4FC;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAED;A;;;;AAOO;A;AAEN;AACA;A;AAEA;AACA;AACA;AACA;A;AAEA;AAGA;AACA;AACA;AACA;AACA;A;AAJA;AACA;AACA;AACA;AACA;A;AAEA;AACA;AACA;AACA;AACA;AACA;A;A;;;;AAOD;AACI;AACA;;;AACH;AACA;A;AAGC;AACA;A;AAED;A;AAEC;AACA;A;AAED;A;AAEC;AACA;A;AAED;AACG;A;AACF;A;A;AAES;A;AACT;A;A;AAES;A;AACT;A;A;A;AAED;A;AAED;A;;;;;AAKA;AACI;;;AACH;A;AAGC;AAJkB;A;A;AAOnB;A;AAEC;AATkB;A;A;AAYnB;A;AAEC;AAdkB;A;A;AAiBnB;AACG;A;AACF;A;A;AAES;A;AACT;A;A;AAES;A;AACT;A;A;A;AAED;AA3BmB;A;A;;A;;;;AAuEpB;AACI;;;AACH;A;AAEC;AACA;A;AAED;A;AAEC;A;AAED;A;AAEC;A;AAED;AACG;A;AACF;A;A;AAES;A;AACT;A;A;AAES;A;AACT;A;A;A;AAED;A;AAED;A;;;;A;AAQC;A;AAEA;A;AAED;A;;;;;;A;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClgBA;;;;;;A;AAEE;A;A;;AAGF;A;;;;A;AAKC;A;AAED;;;;;;A;AAEE;A;A;;AAGF;A;;;;;ACgCiC;A;;;;;A;AAShC;A;AAED;A;;;;;AAI+B;A;;;;;AAIH;A;;;;;AAIA;A;;;;;A;AAO3B;AACA;A;AAED;A;AAEC;A;AAED;A;;;;;AAOA;AACA;AACA;A;;;;;AAOG;A;AACF;AACA;A;AAED;A;;;;;AAOA;A;AAGC;A;AAGE;;;A;AACF;A;A;AAIA;AACA;A;AAED;A;AAMC;A;AAEA;A;AAGA;AACA;AACA;A;AAGD;AACA;AACA;A;;;;;A;AAUC;A;AAED;AACA;A;;;;;;;AAOA;AACA;;;A;AAEC;A;A;;;;;A;;;;;;;AASD;AACA;;;A;AAEC;A;A;;;;;A;;;;;;;;AAgBD;AACA;AACC;AACA;AACA;;;;A;AAEC;A;AAGD;AACA;A;A;;;;;A;A;A;;;;;A;A;A;;;;;;;AAcD;A;AAEE;A;A;AAGF;A;;;;;;;;AAQA;AACG;AAAH;;A;AACC;;;;A;AAEC;A;AAED;AACA;A;A;;;;;A;A;A;;;;;A;A;AAWD;A;;;;;A;;;;;;AASA;AACA;;;A;AAEC;A;AAED;AACA;A;;;;;;;A;AASC;A;;;;;A;AAGD;AACA;;;A;AAEC;A;AAED;AACA;A;;;;;A;;;;;;;AASA;A;AAGC;A;A;;;;;A;A;;;;;A;AAMD;AACA;A;AAEC;A;A;;;;;A;;;;;AAUD;AACA;A;AAEC;A;AAED;AACA;A;AAEC;A;AAED;A;;;;;A;AAQC;AACA;A;AAED;AACA;AACA;AACA;A;;;;;;;;A;AAWC;A;;;;;;;A;AAGD;A;AAEC;AACA;A;;;;;;;A;AAGD;;;AACA;AACA;A;;;;;;;A;;;;;A;AAWC;A;A;AAGA;A;AAED;AACA;A;;;;;A;AASC;A;AAED;A;AAEC;A;AAED;A;;;;;;;AAUA;;;AAGA;A;;;;;A;;;;;;;AAMA;AACA;A;AAEC;AACA;A;AAED;AACA;AACA;A;;;;;A;;;;;;;AAWA;;;A;;;;;A;;;;;;;A;A;A;A;A;A;A;;;;;;;;;;;;;;;AC/MA;AACA;AACA;AACA;A;;;AAIA;AACA;A;;;;AASA;AACA;A;;;;;A;;A;A;;;;;;;;;;ACzNmC;A;;;;A;AAwBlC;A;AAED;A;;;;A;AAoBC;A;AAGD;A;;;;A;AAMC;A;AAaD;A;;;;AAwHA;A;;;;AAKA;A;;;;AAMA;AACA;AACA;AACA;AACA;A;;;;;A;AAoFC;AACA;A;A;AAGA;AACA;A;A;AAGA;AACA;A;A;;A;;;;;A;A;A;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChTD;A;AAEC;A;A;AAGA;A;AAGD;AACA;A;AAGC;A;AAIA;AACA;AACA;AACA;AACA;AACA;A;AAIA;AACA;AACA;AACA;A;AAIA;AACA;A;AAED;A;;;;AAIA;;;;;AACC;A;;AAED;A;;;AAOA;;AACC;A;A;AAGA;A;A;;;;AAMG;AAGJ;AACA;;AACC;AACA;AACA;AACA;AACA;A;AAID;AACI;A;;AACH;AACA;AAFgB;A;AAIjB;AACA;A;;;;AAUA;AACA;AAGI;AACJ;;A;A;AAIG;AACA;A;AAED;;AACC;AACA;A;AAED;A;AAED;AACA;AAdgB;A;AAgBjB;AAEI;AAGJ;;AACC;AACA;AACA;AACA;AACA;AACA;AANe;A;AAUhB;;AACC;AACA;A;AAEC;AACA;A;AAEA;A;AAED;A;AAGD;AACA;A;;;AAiGI;;;A;AAEF;A;A;AAGA;A;AALsB;A;AAQxB;A;;;AAKA;A;AAEC;A;AAGD;AACA;AAGI;AACA;A;;AACH;AACA;AACA;AACA;A;AAEC;A;AAEA;A;AAED;AAVgB;A;AAcjB;;AACC;AACA;AACA;A;AAEC;A;AAEA;A;AAED;A;AAGD;A;AAEC;A;AAED;AACA;A;;;;A;A;AASC;;AACC;AACA;A;AAED;A;AAEA;;AACC;AACA;A;AAED;A;A;;;;A;AAOA;A;A;A;AAKC;A;AAED;A;AAGD;A;;;;A;AASC;A;A;AAGA;A;AAEA;A;A;;;;;A;AAOA;A;AAED;AACA;A;;;;;A;AAMC;A;AAIG;;;AACH;A;AAEC;AACA;AACA;A;AALuB;A;AAWzB;AACA;AACA;A;;;;;A;AAOC;A;AAEG;AACJ;AACI;;;AACH;AADgC;A;AAGjC;;AACC;AADe;A;A;AAIf;A;AAED;A;;;;;;;ACzOA;AACA;AACA;A;AAGC;AACA;A;;;;;A;AAGD;AAEA;A;AAEC;A;AAEA;A;AAED;A;;;;;A;AAQC;A;AAED;AACA;AACA;AACA;A;;;;;AAMA;;;;AACA;;;;AAGA;AACA;AAGA;AACA;AAEA;AAEA;AACA;A;;;;;;AAeA;A;AAGC;A;AAGD;AACA;AACA;AAGA;A;A;;A;AAIA;A;AAKC;AACA;A;AAEA;AACA;AACA;A;AAID;A;AAEC;A;AAED;AAGA;AACA;AAQA;AACI;A;AAGH;A;AAEA;A;AAGD;AACA;A;A;;A;A;;A;;;;;;;AA0BA;AACA;AAEA;;AACC;A;AAGC;A;AAEA;A;AAEA;A;A;AAKF;A;;;;;A;;;;;AAOA;;;AACA;AACA;AACA;A;;;;A;AAQC;AACA;AACA;AACA;A;A;AAGA;A;AAID;AACA;;AAEA;AACA;AACA;AACA;AAGA;AACA;AACA;AACI;;;;;;A;AAEF;AACA;A;AAED;AALmC;A;AAOpC;A;AAGC;AACA;AACA;A;AAEA;A;AAIG;AACJ;AACI;;;AACH;AACA;AACA;AACA;AACA;A;AAEG;;;AACH;AAD2B;A;AAG5B;AACA;AACA;AACA;A;A;AAIE;A;AAID;;AACC;AACA;A;AAGC;A;AAED;AACA;AACA;AACA;AACA;A;AAED;A;AAkBD;A;AAEC;A;AAGG;;;A;AAEF;AACA;A;AAHyB;A;AAM3B;A;;;;A;AAaC;A;A;AAGA;A;A;AAGA;A;A;AAIA;AACA;;A;AAEE;A;AAEA;A;AAJY;A;A;AAQb;AACA;AACA;A;AAEA;A;AAED;A;AAED;A;;;;A;AASC;AACA;AACA;AACA;A;A;AAII;AACJ;AACI;;;AACH;AACA;AACA;AACA;AACA;A;AAED;AACI;;;AACH;AADmB;A;AAGpB;;;;AACA;;AACC;A;A;AAGA;A;AAED;AACA;A;AAED;A;AAGC;AACA;A;A;AAGA;AACA;A;AAGD;AAEA;AACA;AAIA;AACA;AACA;AAGA;AAEA;AAGI;AACA;;;;;;A;AAEF;AACA;A;AAED;AALmC;A;AAOhC;;;AACH;AACA;AACA;AACA;AAEG;A;AACF;AACA;AACA;AAGA;A;AAZ6B;A;AAe/B;AACA;AACA;AAII;AACJ;AACA;AACC;AACA;AACA;AACA;AACA;AACA;A;AAKC;A;A;A;;;;A;AAcD;A;AAED;;A;AACC;AACA;A;A;AAIA;A;A;AAIA;A;A;AAIA;AACA;A;AAED;A;;;ACplBA;A;;;;AAII;AACA;A;A;AAGH;AACA;A;AAEA;AACA;A;AAEA;A;AAGD;AACA;AACA;A;A;AAKK;A;AAGH;A;AAEA;A;AAEA;A;AAED;A;AAIA;A;AAIA;A;AAED;A;AAIC;A;A;AAIA;A;AAGG;AACJ;AAEA;A;AAGC;AACA;;;AACI;AACJ;AACA;A;AAEC;A;A;A;AAKA;A;AAEA;A;AAEA;A;A;AAID;A;A;AAGC;A;A;AAGC;A;AAED;A;A;AAII;AACJ;AACA;AACA;A;A;A;AAID;A;AAED;A;;;AAKA;AACA;AACA;AACI;AACJ;A;AAEC;AACA;A;A;AAIC;A;AAEA;A;AAEA;A;A;A;A;AAMA;A;AAEA;A;A;AAGC;A;AAED;A;AAED;A;AAED;A;;;A;A;AAMC;A;AAEA;A;AAGA;A;AAEC;A;A;AAMA;A;AAED;A;A;AAGE;A;AAED;A;A;AAGA;A;AAED;A;AAID;A;;;A;AAQC;AACA;A;AAiBD;A;AAGC;A;AAMD;AACA;AACA;AAQI;AACA;A;AAEH;AACA;A;AAEA;AACA;A;AAED;AACA;AACA;AAKA;AAII;;;AACH;A;AAEC;A;AAED;AACA;A;AAEC;A;AAMD;AAIA;A;AAMC;AACA;A;AAEA;AACA;A;AAEA;AACA;A;AA/BoB;A;A;;;A;AA8CrB;A;AAID;A;AAEC;A;AAED;A;AAIC;AACA;AACA;A;AAEC;AACA;A;AAED;;AACC;AADgB;A;A;AAMlB;AACA;A;AAEC;A;A;AAGA;AACA;A;AAEA;A;AAED;A;AAKC;A;AAEA;A;AAEA;A;AAGD;A;;;A;AAOC;A;A;AAKA;AACA;AACA;;AACC;AADe;A;A;AAIhB;A;A;AAKA;AACI;;;AACH;AACG;A;AACF;A;AAED;AALqB;A;A;AASvB;A;;;A;AAOC;A;AAID;;AAGA;AAGA;A;AAEC;A;AAED;;AAEA;A;;;A;AAKC;A;AAED;A;;;A;AAKC;A;AAED;A;;;A;AC1aC;A;AAED;;AACA;A;;;;AAKA;A;;;;A;AA0BC;A;AAED;A;;;;;A;AA4BC;A;AAIG;AACJ;A;AAGC;A;A;A;AAYC;;AAIC;AACA;AACI;;;AACH;AACA;AACA;AACA;AACA;AALkB;A;AAUnB;AACA;AAEA;A;A;AAMF;AACA;;AACC;AACA;AACA;AACA;AACA;A;AAID;AACA;AACA;A;AAEC;AACA;A;A;AAOD;AACA;AACA;AACA;;AACC;AACA;AACA;A;AAGD;AACA;A;AAGA;AACA;;AACC;AAIA;AACA;AACA;A;AAGD;AACA;A;A;AAKA;AACA;A;A;AAIA;AACA;A;AAED;AACA;A;;;AAIA;A;;;ACnLA;AACI;;;AACH;AACA;A;AAEC;;;A;A;AAGA;AACA;AACA;AAT0B;;A;AAY3B;AAZ2B;;AAc5B;AACA;A;;;AAIA;A;AAEC;A;AAED;AACA;AACA;A;;;AAII;A;AAEH;AACA;AACA;A;A;A;AAIC;AACA;A;A;AAGD;AACA;AACA;A;A;A;AAIA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;A;AAIC;AACA;AACA;A;AAEA;AAGA;AACI;;;AACH;AADoB;A;A;AADrB;AACI;;;AACH;AADoB;A;A;AAIrB;AACI;;;AACH;AADoB;A;A;A;AAKvB;A;;;AAcA;A;;;;AAaA;A;;;;AA0BA;A;;;;AAcA;A;;;;AAqBA;;AACC;;;AACA;A;A;AAGE;A;AAED;A;A;AAGA;A;A;AAGA;A;A;AAGF;A;;;;;;AAIA;A;A;;;;;A;A;;;;;A;A;;;;;A;AASA;A;;;;;;;A;AAoBC;AACA;A;AAEM;A;AAEN;AACA;A;AAEA;;;A;;;;;;;;;A;A;;;;;;;;;A;A;AAQA;AACA;A;AAED;AACA;AAEA;A;A;AAEC;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;A;AAGC;A;AAEA;A;AAEA;A;AAEG;A;AAEH;AACA;A;AAEG;;;AACH;;;A;AAEC;AACA;A;AAED;AANkB;A;AAQnB;A;AAGC;AACA;A;A;AAGA;AACA;A;AAED;AACA;A;AAEA;A;AAEC;AACA;A;AAEG;;;AACH;A;AAEC;AACA;A;AAED;AANkB;A;AAQnB;A;AAEC;AACA;A;AAED;A;AAEA;A;A;AAGC;AACA;A;AAED;A;AAEA;AACA;A;A;AAED;AACA;A;;;;AASA;A;AAEC;A;AAED;A;AAEC;A;AAED;A;A;AAIE;A;A;AAIA;AACI;;;A;AAEF;A;AAFsB;A;AAKxB;A;AAED;A;A;AAGA;A;A;AAGA;A;A;A;A;A;AAQE;A;A;AAGD;;;A;AAEC;A;A;A;AAKC;AACJ;AACA;;AACC;;;;;A;AAEC;A;AAED;A;AAEC;A;AAEA;AACA;A;A;AAIA;A;A;AAGF;A;;;;AAKI;;;A;AAEF;A;AAFsB;A;AAKxB;A;;;AAMA;;;;AACA;;AACC;A;AAEC;A;AAEA;A;A;AAGF;A;;;AAMA;;;;AACA;;AACC;A;AAEC;A;AAEA;A;A;AAGF;A;;;A;A;AAiBE;A;A;AAIA;A;AAED;A;A;AAUA;;;;;;AACA;A;AAEC;A;AAED;AACA;A;AAGD;;;;;;AACA;A;AAEC;A;A;AAGA;A;AAED;AACA;AACA;A;;;;A;AAmBC;A;AAED;AACA;AACA;A;;;;;;;;;;;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxgBA;;A;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;A;;;;;AAIA;A;;;A;AAKC;AAKA;AACA;AAEA;A;AAEC;A;AAEC;A;AAEG;AACA;;;AACH;AACA;A;AAFmC;A;A;AAMnC;AANmC;A;AAWpC;AACI;;;AACH;AACA;A;AAFmC;A;A;AAMnC;AANmC;A;AAWpC;AAMA;AACA;A;A;A;AAKA;A;AAKA;A;AAEC;A;A;AAGA;A;AAED;A;AAKA;AACA;AACA;;;;;AACC;A;;AAED;AACA;AACA;;;;;AACC;A;;AAED;A;AAEC;A;AAED;A;AAQA;AACA;AACA;;;;;AACC;AACA;A;;AAKD;A;AAMA;A;AAKA;A;AAIA;A;AAIA;AACA;AACA;;;;;AACC;AACA;A;AAEC;A;AAED;A;;AAMD;A;A;AAQF;A;;;AAIA;AACA;A;;;;AAaA;A;;;;;AAIA;A;;;;;AAMA;A;;;;;AAaA;A;;;;;AAIA;A;;;;;;A;;A;;;;;;A;;A;;;;;AAiBiC;A;;;;;AACA;A;;;;AAGjC;AACA;AAKA;A;;;;AAQA;A;;;;AAIA;AACA;AACA;A;;;;AAMA;A;;;;AAIA;AACA;AACA;A;;;AAII;AACJ;AACA;A;;;AAIA;A;;;AAIA;AACI;;;AACH;AACA;AAFgC;A;A;;;;AAOjC;;AACA;;;;;;;;;A;AACC;;A;AAED;;A;;;;;;AAIA;;;A;AACC;A;A;AAGA;A;A;AAGA;A;A;AAGA;A;AAGD;;;AAAgH;;;A;;;A;;;;;A;AAK/G;A;A;AAGA;A;AAED;A;;;;;A;AAKC;A;AAED;;A;;;;;;AAYA;;;;;;;A;AACC;A;AAGD;AACA;;;;;;AACC;A;;AAED;AACA;;;;;;AACC;A;;AAED;A;;;;;;AAaA;A;;;;AAIA;A;;;;;AA2CA;;A;;;;;A;A;AAMC;A;AAEA;A;AAEA;A;A;;;;AAKD;;AACA;A;A;AAGC;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAED;A;;;;AAoCA;A;;;AAiBA;A;AAEC;A;AAED;AACA;A;;;AAIA;;AACA;A;AAEC;A;AAED;A;;;;AAIA;;;AACA;AACA;AACA;;;A;AACC;AACA;AACA;A;AAED;AACA;AACA;AACA;A;;;;;AAIA;;AACA;A;;;AAWA;A;;;;AAIA;AACA;AACA;;;;A;;;;AAIA;AACA;A;;;AAIA;A;;;;AAII;AACJ;;A;AACC;;A;AAGG;AACG;;A;AACP;;;;;A;AACC;AACA;AACA;AACA;AACA;A;A;AAEA;;;;A;AACC;;;A;AACC;AACA;A;AAED;AACA;;;;;AACA;A;AAED;A;A;AAEA;AACA;A;A;AAEA;A;;AAEA;A;A;AAED;;;A;;;;;;;AA4CI;A;AAEH;A;AAEC;A;AAED;A;AAEC;A;AAED;AACA;A;AAEA;A;AAEC;A;AAED;A;AAEC;A;AAED;AACA;A;AAED;A;AAEC;A;AAED;AACA;A;;;;A;AAKC;A;A;AAGA;A;AAED;;A;AACC;;A;A;AAIA;A;AAED;A;;;;AAIA;A;;AAIA;A;;;;;;A;AAKC;A;AAGD;;AACA;A;AAEC;A;AAED;;AACC;A;AAED;;A;;;;;A;A;AAMC;A;AAEA;A;A;;;;;;A;AAMD;;;;A;AACC;A;AAEA;;A;AAEI;;;AACH;;;A;AACC;A;AAF4B;A;A;A;AAM/B;A;;;;;;;;;A;AAKC;A;;A;AAGD;A;AAEC;A;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AACC;A;;AAED;AACA;;;;;AACC;A;;AAED;;AACA;AACA;AACA;;AACC;AACA;A;AAED;AAEA;A;;A;;;;;;A;AAMC;A;A;AAGA;A;AAEC;A;A;AAEC;A;AAEA;A;A;AAGC;AACA;A;AAED;AACA;AACA;AACA;AACA;A;A;A;AAGF;A;AAED;A;;;;;;AAIA;;A;AACC;;A;AAID;;;;A;AAGC;AACA;AACA;A;A;AAIC;A;AAKD;;A;AAEC;A;AAEA;A;AAED;A;A;AAID;A;;;;;;;;AAOC;AACA;AACA;A;AAGA;;;AACA;A;AAEC;A;A;AAGD;AACA;AACA;A;A;AAIA;A;AAGD;AACA;A;A;AAGE;A;A;AAGA;A;A;AAGA;A;A;A;AAIA;A;A;AAGA;A;A;AAGA;A;A;AAGF;;;;;A;AAEE;A;A;;AAGE;;;AACA;;;;AAAH;;;A;AACC;;;A;AAFiB;A;AAKnB;;A;AAEC;AACA;;AACA;;AACI;;;AACH;AACG;AAAH;;;A;AACC;;;A;AAED;;AALkB;A;AAOnB;AACA;AACA;AACA;A;AAGD;A;AAEC;A;AAED;AAEA;AACA;;;;;;AACC;;;;;;;;;A;;AAED;;A;AAGA;;;A;AACC;A;AAEA;;A;AAEA;AACA;;;;;AACC;;A;;AAED;A;A;A;;;;;;;AAKD;A;A;AAGC;A;AAEA;A;AAED;A;;;;A;AAOC;A;AAED;A;;;A;AAKC;A;AAED;A;;;;;AAIO;A;AACP;;;A;AACC;A;AAEC;A;AAED;AACA;;A;A;AAIC;A;AAED;AACA;AACA;AACA;AACA;A;AAGA;A;A;A;;;;;;;;;;;;A;AAMA;A;AAED;A;AAEC;A;AAGD;AACA;AACA;AAEA;A;A;AAGE;A;AAEA;A;A;AAIC;AAAH;;A;AACI;AAAH;;A;AACC;;AACC;;AACA;;A;AACC;AACA;AACuC;A;;AACC;A;A;AAGzC;;A;AACC;;A;A;A;A;AAMJ;AACA;;A;AACC;AACuC;A;;AACC;A;A;AAGzC;;A;;;;;AAIA;;AAEC;AACA;;AACC;A;AAED;A;AAEC;A;AAKD;AACA;;AACC;A;A;AAGA;A;AAED;AACA;AAGA;AACA;;A;AAEE;A;AAED;A;A;AAGA;A;AAED;AACA;A;AAGC;;AACA;A;A;AAGF;A;;;;;;;;;;;AAIO;A;AACP;;;;A;AACC;A;AAEC;A;AAED;AACA;AAEA;AACA;;A;AACC;AACuC;A;;AACC;A;A;AAGzC;;A;AAGA;A;AAEC;A;AAED;AACA;AACA;AAEA;AACA;AACA;;A;AACC;AACuC;A;;AACC;A;A;AAGzC;;A;AAGA;A;AAEC;A;AAED;AACA;AACA;A;AAGA;A;A;A;;;;;;;AAKD;A;;;;;AAIO;A;A;AAEN;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;A;;;;;AAKM;A;A;AAEN;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;A;;;;;AAKM;A;A;A;AAGL;A;AAED;A;A;AAGC;A;AAED;A;A;AAGC;A;AAED;A;AAEA;A;A;;;;;;AAKD;AACA;AACA;;AACA;;A;A;AAEC;;;;A;AACC;A;A;AAEA;;A;A;AAEA;A;;AAEA;A;A;AAED;A;AAED;A;;;;;;;;AAIA;AACA;AACA;;;A;AACC;A;AAED;AACA;;;;;A;AACC;AACA;AACA;AACA;AACA;A;AAED;A;;;;;;;AAIA;AACA;AACA;A;AAEC;A;AAED;AACA;AACA;AACA;AACA;A;;;;;AAIA;AACA;AACA;A;AAEC;A;AAED;AACA;AACA;AACA;AACA;A;;;;;;AAKC;AACA;AACA;AAEM;A;AACP;;;;A;A;AAEE;A;AAED;AACA;AACA;AACA;A;A;AAGA;AACA;AACA;A;A;AAGA;A;AAEC;A;AAED;;A;AAGA;A;A;A;AAIA;A;AAGD;;A;;;;;;;AAKC;AACA;AACA;AAEM;A;A;A;AAGL;A;AAED;AACA;AACA;AACA;A;AAGA;AACA;AACA;A;AAGA;A;A;AAIA;A;AAGD;;A;;;;;;AAIA;AACA;AACA;A;;;;;;;AAMA;A;AAEC;A;AAED;;A;A;;;;;A;AAIA;AACA;A;;;;;A;;;;;AAKA;A;AAEC;A;AAED;;A;AAEC;A;AAED;A;;;;;ACj7BA;A;;;;;AAIA;A;;;;;A;AAqKC;A;AAED;A;;;;;AAiKA;A;AAEC;A;AAED;A;;;;;AAGgC;A;;;;;A;AAI/B;A;AAED;A;AAEC;A;AAED;A;;;;;AAG6B;A;;;;;AAEK;A;;;;;AAEL;A;;;;;AAII;A;;;;;AAGjC;A;AAEC;A;AAED;A;;;;;A;AAKC;AACA;A;AAED;A;;;;;;;;A;AAuCC;A;;;;A;AAGD;A;A;;;;;A;AAKA;;;;;;AACC;;A;A;;;;;;A;A;;A;;;;;A;;;;;;A;AASA;A;AAED;A;AAEC;A;AAED;A;;;;;A;AASC;A;AAED;AACA;AACA;;A;AAEE;A;AAED;A;AAED;A;;;;;A;AAKC;A;AAED;AACA;A;;;;;A;AAKC;A;AAED;AACA;A;;;;;A;A;AAMC;AACA;A;AAEA;AACA;A;AAEA;AACA;A;AAEA;AACA;A;AAEA;AACA;A;AAED;A;;;;;A;AAKC;A;AAED;AACA;A;;;;;;A;AAKC;A;AAED;AACA;;A;;;;;;;A;AAKC;A;AAED;AACA;;A;;;;;;;A;AAKC;A;AAED;AACA;;A;;;;;;A;AAKC;A;AAED;AACA;A;;;;;A;AAKC;A;AAED;AACA;A;;;;;A;AAKC;A;AAED;AACA;A;;;;;A;AAKC;A;AAED;AACA;A;;;;;A;AAKC;A;AAED;AACA;A;;;;;A;AAKC;A;AAED;AACA;A;;;;;A;AAKC;A;AAED;AACA;A;;;;;A;A;AAwCC;A;AAEA;A;AAEA;A;AAED;A;;;;;;A;AAMC;A;AAED;AACA;AACA;A;AAEC;A;AAEC;A;A;AAGF;AACA;AACA;A;;;;;AAIyC;A;;;;;;;A;AAKxC;A;AAEG;AACJ;;;;;AACC;A;A;;;;;A;A;;AAKD;A;;;;;AAmCA;;AACA;A;;;;;;;AAaA;;AAEC;AACA;;AACC;A;AAED;A;AAEC;A;AAOD;AACA;;AACC;A;A;AAGA;A;AAED;AACA;AAGA;AACA;;A;AAEE;A;AAED;A;A;AAGA;A;AAED;AACA;A;AAGC;;;A;AAEC;A;A;;;;;A;A;A;;;;;A;;;;;;A;AAWF;A;AAED;AACA;AACA;AACA;A;AAEC;A;AAEE;A;AACF;A;AAED;AASA;AACA;A;;;;;;;AAQA;AACA;;;;;;AACC;;A;AACC;AACA;;;;;;;A;AACC;;A;AAED;A;AAED;;A;;AAED;A;;;;;;;;;AAoBA;AACA;AAQI;AAOJ;AAEA;;AACC;;;;AACA;AACA;AAMA;;;;;AACC;AACA;;A;AAIC;;A;AAED;AACA;;;;;AACC;AAEA;AACI;AACJ;;A;AAEC;AACA;;A;AACC;;A;A;AAKF;;;A;A;A;;;;;A;AAMC;AACA;AACA;AACA;AACA;AACA;;A;A;AAOA;;A;AAED;A;AAEC;AACA;;A;A;AAGA;A;AAED;A;AAEC;A;AAEG;AACJ;AACA;AACA;A;;A;;A;AAID;A;A;AAGF;A;;;;;;;;;;AAOA;A;AAEC;;;;;AACC;A;A;;;;;A;A;AAKC;A;A;;A;A;AAKF;A;A;;AAE8C;A;;;;;A;;;;;AAgB/C;A;;;;;;A;AAwDC;A;AAED;;;A;AACC;A;AAED;A;;;;;;;A;AAKC;A;AAED;AACA;;A;;;;;;;A;AAKC;A;AAED;AACA;;A;;;;;A;AAUC;A;AAED;A;AAEC;A;A;AAgBA;AACA;AACI;;;AACH;AACA;AACA;AACA;A;A;AAGE;A;AAEC;A;AAED;A;AAEC;A;A;AAb4B;A;A;A;AAmB3B;A;AACF;A;A;AApB6B;A;AAwBhC;A;AAGD;A;AAEC;A;AAED;AACA;AACI;;;AACH;AACA;AACA;AACA;A;A;AAGE;A;AAEC;A;AAED;A;AAEC;A;A;AAb2B;A;A;A;AAmB1B;A;AACF;A;A;AApB4B;A;AAwB/B;A;;;;A;AAWC;A;A;AAMA;A;AAID;;A;;;;;A;AAKC;A;AAGD;;;;;;;;A;AACC;A;AAGD;;;;;;A;;;;;A;AAKC;A;AAGD;A;AAEC;A;A;AAMA;A;A;AAKD;;;;;;;;A;AACC;;;;A;AAMA;;;;;A;AACC;A;AAID;;;;A;AAGA;AACA;A;AAEC;A;AAEG;;;AACH;;;A;AACC;A;AAFyB;A;AAKvB;;;AACH;;;A;AACC;A;AAF0B;A;AAK5B;A;AAGA;AACA;A;AAEC;A;AAID;A;AAGA;;;;;A;AAGA;;A;AAGA;AACA;A;AAEC;A;A;AAGA;A;AAED;;;;;AACC;AACA;A;AAEC;A;AAED;;;A;AACC;A;A;AAGA;A;A;AAGA;A;A;;AAGF;A;A;AAGD;A;;;;A;AAwzCC;A;AAED;A;;;AA+GA;A;;;;AC5+FA;A;;;;;A;AAKC;A;AAED;A;;;;;A;AAOC;A;A;AAGA;A;AAED;A;;;;;A;AAiEC;A;AAED;A;;;;;A;AAyCC;A;A;;;;;A;AAQA;A;A;AAGA;A;A;;;;;A;AASA;A;A;AAIA;A;A;AAGA;A;A;;;;;A;AAWA;A;AAED;A;;;;;AAMA;AACA;A;;;;;;AAMA;AACA;;;A;AACC;A;AAGD;A;;;;;;;AAMA;AACA;;;A;AACC;A;AAGD;A;;;;;;AASA;A;;;;;AASA;A;;;;;;AAYA;AACA;AACA;;A;;;;;;;AAWA;AACA;AACA;;A;;;;;;AAwZA;A;A;AAGC;A;AAEA;A;AAED;A;;;;;;AA6EA;;A;AACC;;A;AAED;AACA;;;;;;AACC;;A;AACC;;;;;A;A;AAEE;A;AAED;;A;A;AAGF;;A;;AAED;A;;;;;;;AAOA;AACG;;;;AAAH;;A;AACC;;A;AAED;A;;;;;;;AAQG;;;;AAAH;;A;AACC;;A;AAED;A;;;;;;AAMA;A;A;AAGC;A;AAEA;A;AAED;A;;;;;AAsDA;AACA;A;A;AAGC;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAED;A;;;;;A;AAMC;A;AAED;A;;;;;;;A;;;A;;;;;;AAwFA;A;;;;;AAMA;A;;;;;;AA8BA;AACA;AASA;;AAEI;A;AAEH;A;AAEA;A;AAED;A;AAEC;A;AAED;AACA;AACA;A;AAEC;A;AAID;AACA;AACA;A;;;;;;;AAQA;AACA;AACA;AAEA;AAEA;AACA;A;AAEC;A;AAED;AACA;AACI;AACA;;;AACH;;A;AAKC;A;A;AAKA;AACA;AACA;A;AAEA;A;AAED;AAjBsB;A;AAmBvB;A;;;;;;A;AASC;A;A;AAGA;A;A;AAGA;A;AAED;AACA;AACA;AACA;A;;;;;A;AAMC;A;A;AAGA;A;AAED;A;;;;;;A;AAUC;A;A;AAGA;A;AAED;;;;A;AAEC;A;AAED;A;;;;;;AAMA;AACA;AACA;A;;;;;AAMA;A;A;AAGC;A;AAEA;A;AAED;A;;;;;AAMA;A;A;AAGC;A;AAEA;A;AAED;A;;;;A;AAKC;A;AAED;A;;;;AAMA;A;A;AAGC;AACA;AACA;A;AAED;A;;;;;AAMA;A;A;AAGC;AACA;AACA;A;AAED;A;;;;;;;;AAsDA;AACA;A;;;;;A;;;;;;;;;AAOA;A;AAEC;A;AAED;AACA;AACI;A;AAEH;AACA;AACA;A;AAEA;A;AAED;;;;A;AAEC;A;AAED;A;;;;;;;AAOA;AACA;AACA;;A;;;;;;;;;AAMA;A;AAEC;A;AAED;AACA;;AACI;A;AAEH;A;AAEA;A;A;;;A;;;;;;AA0BD;AACA;AACA;A;;;;;;AAiBA;AACA;AACA;;;A;AACC;A;AAED;A;;;;;;;AAMA;AACO;A;A;AAIN;A;AAEA;A;AAJA;A;A;;;;;AAWD;AACO;A;A;AAIN;A;AAEA;A;AAJA;A;A;;;;;AAWD;AACO;A;A;AAIN;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAVA;A;A;;;;;;AA+CD;AACA;AACA;AACA;AACA;;AACI;A;AAEH;A;AAEA;A;A;AAGA;AACA;A;AAED;AACA;;AACI;A;AAEH;A;AAEA;A;AAED;A;;;;;;;AAMA;AACO;A;A;AAIN;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAZA;A;A;;;;;AAmBD;AACA;AACA;A;;;;;AAMA;AACA;AACA;A;;;;;;AA4HO;A;A;AAEN;A;AAEA;A;AAID;;A;;;;;;;;;AASA;AACA;A;;;;;A;;;;;;;AASA;AACA;AACA;;A;;;;;;AAKA;A;AAEC;A;A;AAIA;A;AAKD;A;AAGC;A;AAEC;A;AAED;AACA;A;AAGD;A;AAEC;A;AAED;AACA;A;;;;;AAMA;AACA;A;A;AAGC;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAED;A;;;;;A;AASC;A;A;AAGA;A;AAED;A;;;;A;AA6ZC;A;AAED;AACA;AACA;AACA;A;;;;;;AAsDA;;A;AACC;;A;AAED;;;AACA;;A;AACC;;A;AAED;;A;;;;;;A;AAOA;;;;;;;A;A;A;AAGE;A;AAEA;A;AAEA;A;A;A;A;A;AAMA;A;AAEA;A;AAEA;A;A;A;A;A;AAMA;A;AAEA;A;AAEA;A;A;A;A;A;AAMA;A;A;A;AAID;;;;;A;A;;A;AAGE;A;AAEA;A;A;A;A;A;AAKF;;;;;A;A;;A;AAGE;A;AAEA;A;A;A;A;A;AAMH;;;A;AACC;A;AAID;;;;;;;;;A;AAGC;A;A;A;AAKC;A;AAED;A;AAGD;A;;;;;AAwBA;;AACA;A;A;AAGC;A;AAEA;A;AAED;A;;;;;AAMA;;AACA;A;A;AAGC;A;AAEA;A;AAED;A;;;;;AAIA;;AACA;AACA;AACA;A;;;;;AAIA;;AACA;AACA;AACA;A;;;;;AAIA;;AACA;AACA;AACA;A;;;;;AAUA;;A;;;;;AAKA;;A;;;;;AAKA;;A;;;;;AAKA;;A;;;;;AAKA;;A;;;;;AAKA;;A;;;;;AAKA;;A;;;;;AAKA;;A;;;;;AAKA;;A;;;;;AAKA;;A;;;;;AAKA;;;;;;A;;;;;AAKA;;;;;;A;;;;;AAKA;;;;;;A;;;;;AAKA;;;;;;A;;;;;AAoBA;;;AACA;;AACA;;;A;AACC;A;;AAEA;A;AAED;;A;;;;;AAKA;;A;AACC;;AACA;AACA;A;AAED;;;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A;A;A;A;A;A;A;A;;;A;A;A;A;A;A;A;A;A;;;;;;;;;;;;;;;;;;;;;AC/2EA;AACA;A;;;;AAIA;AACA;AACA;A;;;;AAIA;AACA;A;;;;AAIA;AACA;AACA;AACA;AACA;A;;;;AAIA;AACA;A;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;AAGkC;A;;;AAEE;A;;;;;;;A;A;A;A;;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A;AClGnC;A;AAEG;;;A;AAEF;A;AAF4B;A;AAM9B;AACA;AACA;AAEI;;;AACH;AADiC;A;AAG9B;;;AACH;AAD6B;A;AAG9B;A;;;;;A;AAUC;A;AAGG;;;A;AAEF;A;AAF+B;A;AAMjC;AACA;A;;;;;AAOA;AACA;A;;;;;A;AAiCC;A;AAGD;;;;AACA;AACA;;AAEC;AAEA;AACA;AACA;AACA;AAEA;AACA;A;AAGD;A;AAEC;A;AAGD;A;AAEC;A;AAGD;AACA;A;A;AAIC;A;AAEC;A;A;A;AAIA;AACA;A;A;A;;;;;AAOF;AACA;AACA;A;;;;;A;AAqFC;A;AAED;A;;;;;AAUA;A;;;;;;;;AAUI;AACJ;;;;AAEI;;;A;A;A;;;;;;;A;A;;;;;;;A;AAQF;;;;AACA;A;AAED;AACA;AAEA;A;AAEC;AAhByB;A;A;A;AAqBzB;AArByB;A;A;A;A;;;;;;;A;A;A;A;;;;;;;A;AAqCzB;;AACC;A;A;A;;;;;;;A;A;A;;;;;;;A;AAWD;A;AAID;;AACC;A;A;AAIA;A;AAED;;;;AACA;A;AAID;AACA;;;;;;A;A;AAGC;AACA;AAGA;A;A;;;;;;;A;AAIA;AAGA;A;A;;;;;;;A;A;AAPA;A;A;;;;;;;A;AAIA;AAGA;A;A;;;;;;;A;A;AAAA;A;A;;;;;;;A;A;AAKD;A;;;;;;;A;;;;;AAOA;AACA;;;AACA;A;;;;;;;A;A;;;;;A;AA0FA;AACA;AACA;AACA;;AACI;A;AACF;AACA;A;AAEI;AACJ;;;;AACA;A;A;;;;;A;A;A;AAOF;;AACI;A;AACF;AACA;A;AAEI;AACJ;;;;AACA;A;A;;;;;A;A;A;AAOF;;AACK;AACJ;;;;AACA;A;A;;;;;A;A;A;;;;;A;;;;;AAYG;;;;AACD;A;AACF;A;AAED;AACG;A;AACF;A;AAED;AACG;A;AACF;A;AAED;AACG;A;AACF;A;AAED;AAEA;AACA;A;;;;;AAOI;;;;AACD;A;AACF;A;AAED;AACG;A;AACF;A;AAED;AACG;A;AACF;A;AAED;AACG;A;AACF;A;AAED;AACG;A;AACF;A;AAED;AACG;A;AACF;A;AAED;AACG;A;AACF;A;AAED;AACG;A;AACF;A;AAED;AAEA;AACA;A;;;;;A;AAsCC;A;AAGD;A;;;;;;;;;A;A;A;A;A;A;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxlBA;A;AAEE;AACA;A;A;A;;A;AAOD;A;AAED;A;;;AAIA;A;AAEC;AACA;A;AAGD;AACA;AACC;A;AAEC;A;AAED;AACA;A;A;;;AASD;A;;;;AAKA;;;;;;A;AAEE;A;A;;AAGF;A;;;AClDA;A;AAEC;A;AAED;AACA;AACA;AACI;;;AACH;AACA;AAFiC;A;AAIlC;A;;;;AAwBA;AACC;A;A;A;AAKC;A;AAED;AACA;A;AAEC;A;AAED;A;AAED;A;;;;;;;AAIG;A;AACF;A;;;;;;;A;A;AAIA;AACA;AACA;AACA;A;;;;;;;A;A;AAIA;A;AAED;A;;;;;;;A;;;;;;;AAKG;A;AACF;A;;;;;;;A;A;AAIA;A;A;;;;;;;A;;;;AAiCD;AACA;;;;;;A;AAEE;A;AAED;A;;AAED;AACA;A;;;;;;A;A;;;;;A;A;A;;;;;A;A;;;;;A;;;A;A;AC3GC;A;AAEA;AACA;A;AAEA;AACA;A;AAEA;AACA;A;AAGA;A;A;;;A;A;AAOA;A;AAEA;AACA;A;AAEA;AACA;A;AAEA;AACA;A;AAGA;A;A;;;;;;AASD;AACA;AACA;;AACC;;;A;A;;;;;;;A;AAIA;AACA;AACA;;;A;AAEC;A;A;AAGA;A;AAGD;;;A;AAEC;A;AAED;AACA;;;;;;A;AAEE;AACA;A;A;;A;AAKD;A;AAED;AACA;AACA;A;A;;;;;;;A;;;;ACHyB;A;;;;;AAG1B;;;A;A;;A;A;AAKC;A;AAEA;A;AAED;;A;;A;;;;A;;;A;;;ACvFA;A;AAIC;A;AAIA;A;A;AAOC;A;A;A;AAID;A;AAED;A;;;A;ACjCC;A;AAED;A;;;AAII;AACJ;AACA;;AACC;AACA;AACA;A;AAED;AACA;A;;;;;;A;;;;;A;;;;;ACuEA;A;;;;;;ACxBI;A;;;;A;;;;;A;AA8EH;A;AAED;AACA;AACA;AACA;AACA;AACI;;;AACH;AAD6B;A;AAG9B;;A;;;;;A;AAKC;A;AAED;AACA;AACA;AACA;AACA;AACA;AACI;;;AACH;AAD6B;A;AAG9B;;A;;;;;AAIA;AACA;A;AAEC;A;AAED;AACA;AACI;;;AACH;AADkB;A;AAGnB;;A;;;;;A;AAKC;A;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACI;;;AACH;AADiC;A;AAGlC;;A;;;;A;A;AAMC;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACI;;;AACH;AAD6B;A;AAG9B;A;AAGA;;;A;AAEC;A;AAED;AAMA;AACI;;;A;AAIF;AACA;A;AALiB;A;AAQnB;AACA;AACA;A;AAGA;;;AACA;AACA;AACA;AACI;;;AACH;AAD6B;A;AAG9B;A;AAGA;;;AACA;AACA;AACA;AACA;AACI;;;AACH;AAD6B;A;AAG9B;A;AAED;A;;;;;;AAII;AACA;AACJ;;;A;AAEC;A;A;AAOA;A;;;;;;;A;AAGD;;;A;AAEC;AACA;A;AAED;A;;;;;;;;;AAkEI;AACA;AACJ;;;AACA;AACI;A;AAEH;AACA;A;AAEG;A;A;AAIF;AACA;A;AAED;AACA;A;AAED;AACA;AACG;;;A;AACF;A;AAED;AACA;A;AAGC;;;A;AAED;A;;;;;;;;;;AAWI;AACA;AACJ;;A;AACC;;;;;A;A;;;;;A;A;AAKG;AACJ;AACA;AACI;A;AAEH;AACA;A;AAEG;A;A;AAIF;AACA;A;AAED;AACA;A;AAED;AACA;AACG;;;A;A;;;;;A;A;AAIF;A;A;;;;;A;;;;;ACjWD;A;;;AAIA;A;;;AAIA;A;;;;AC7CA;A;;;;;AAIA;A;;;;;;;;;A;A;;;;;A;ACaA;;;;A;A;;;;;A;AAMI;AAOJ;AAGA;AACA;AACA;AACA;A;;;;;A;;;;;;;;A;A;;A;AAUA;AACA;AACA;AACA;A;A;;A;AAMG;;A;A;;A;AAGH;A;;A;;;;;;A;AAeC;A;AAEC;A;A;AAGF;A;;;;;AAIA;A;;;;;AAIA;A;;;;A;A;AAgBC;A;AAEA;A;AAEA;A;AAEA;A;AAED;A;;;;;AAoBA;;;A;A;AAGE;A;A;AAGA;A;A;A;AAID;A;AAED;A;;;;;;A;AAKC;A;AAED;;;A;AAEC;A;A;AAGA;A;AAED;A;;;;;;;AA8DI;AACA;AACD;;;A;AACF;A;A;AAGA;;;A;AAED;A;;;;;;AAIA;;;;;A;A;;A;A;;A;;;;;;A;;A;;;;;AAYI;A;;A;;;;;A;;A;;;;;A;;;;A;;;;;A;;;;A;;;;;A;;;;A;;;;;;AC/OJ;;;;;AACA;A;AAEC;A;AAED;A;;;;AA+CA;;A;AAEC;A;AAED;A;;;;AA0BA;;A;AAEC;A;AAED;A;;;;;;AAgBI;A;AAEH;A;AAEA;A;AAED;;;;;AACA;A;AAEC;A;AAED;A;;;;AAMI;A;AAEH;A;AAEA;A;AAED;;A;AAEC;A;AAED;A;;;;;AAMA;;;;;AACA;A;AAEC;A;AAED;A;;;;;AAMA;;;;;AACA;A;AAEC;A;AAED;A;;;;;AA0DA;;;AACA;A;AAEC;A;AAED;A;;;;AA6FI;AACJ;;;A;AAEC;A;AAED;;A;AAEC;A;AAED;A;;;;;AAoCA;;A;AAEC;A;AAED;A;;;;;;AAMA;;;AACA;A;AAEC;A;AAED;A;;;;;AAoCA;;A;AAEC;A;AAED;A;;;;;AAgBA;;A;AAEC;A;AAED;A;;;;;AAMA;;A;AAEC;A;AAED;A;;;;;AA2BA;;;;A;AAEC;A;AAED;A;;;;;AAgBA;;A;AAEC;A;AAED;A;;;;;AAMA;;A;AAEC;A;AAED;A;;;;;;AAMI;A;AAEH;A;AAEA;A;AAED;;;AACA;A;AAEC;A;AAED;A;;;;;AA2LI;AACJ;;;A;AAEC;A;AAED;;;;A;AAEC;A;AAED;A;;;;;;AAuHI;AACJ;;;A;AAEC;A;AAED;;;AACA;A;AAEC;A;AAED;A;;;;;;AAsBI;A;AAEH;A;AAEA;A;AAED;;;AACA;A;AAEC;A;AAED;A;;;;;;AAMI;A;AAEH;A;AAEA;A;AAED;;;AACA;A;AAEC;A;AAED;A;;;;;;AAMI;A;AAEH;A;AAEA;A;AAED;;;AACA;A;AAEC;A;AAED;A;;;;;AA8EA;;;AACA;A;AAEC;A;AAED;A;;;;;AAwJI;AACJ;;;A;AAEC;A;AAED;;;;A;AAEC;A;AAED;A;;;;;;AAuHI;A;AAEH;A;AAEA;A;AAED;;;AACA;A;AAEC;A;AAED;A;;;;;AAMA;;;AACA;A;AAEC;A;AAED;A;;;;AAMA;;A;AAEC;A;AAED;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A;A;A;A;A;;;;;;A;A;A;A;A;A;A;A;A;A;A;A;A;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A;ACxzCC;A;AAED;A;;;;;A;AAMC;A;AAED;A;;;;;;;A;ACOC;A;A;AAGA;A;AAED;AACA;AACC;AACA;A;AAED;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvBI;A;;;AAcJ;AACA;AACA;AACA;A;AAEC;AACA;A;AAED;AACA;A;;AAIA;A;;;;;;AAIA;A;;;;;;;A;;;AA6CA;A;;;A;AC8CC;A;AAED;AACA;A;;;;;;AAMI;;;AACI;A;A;A;A;A;;;;;;;A;A;A;;;;;;;A;A;A;A;A;A;A;;;;;;;A;A;A;;;;;;;A;A;A;A;;;;;;;A;A;A;A;A;;;;;;;A;A;A;A;;;;;;;A;A;;;;;;;A;A;A;;;;;;;A;A;;;;;;;A;A;A;A;;;;;;;A;A;;;;;;;A;A;A;;;;;;;A;A;;;;;;;A;A;;;;;;;A;A;A;;;;;;;A;A;A;A;;;;;;;A;A;A;A;;;;;;;A;A;A;;;;;;;A;A;A;;;;;;;A;A;A;;;;;;;A;A;A;;;;;;;A;A;A;A;;;;;;;A;A;A;;;;;;;A;A;A;;;;;;;A;A;A;;;;;;;A;A;A;;;;;;;A;A;A;AA2GL;AACA;AACA;;AACC;A;A;AAIA;A;AAEC;A;AAED;A;;;;;;;A;A;A;AAvHyB;A;A;;;;;;;A;;;AAqLzB;;;AACH;AACA;A;AAGC;AACA;A;AAEC;A;A;AARsB;A;AAYzB;A;;;AAIA;;;;;;A;AAEE;A;A;;AAGF;A;;;AAOA;A;AAEC;AACA;A;AAIG;AACJ;AACA;;AACC;AACA;AACA;AACA;A;AAED;AACA;AAGI;;;AACH;AADiC;A;AAIlC;A;;;;;AAQA;A;AAEC;AACA;A;AAED;;;;AACA;A;A;;;;;A;A;AAKC;A;A;;;;;A;;;AAQD;AACI;AACA;;;AACH;AACA;AACA;A;A;AAIA;A;A;AAGA;;AACC;A;A;AAGA;A;A;AAGF;AACA;A;;;;;AAcA;;A;AAIC;AACA;A;AAEC;AACA;A;AAED;;;;AACA;;;;AACI;AACJ;AACA;AACA;A;AAEC;AACA;A;AAED;AACA;AACA;AACA;A;AAED;A;;;;;;;AAqBI;AACJ;A;AAEK;AACJ;A;AAEA;A;AAED;;AACA;A;;;;;;;AAOC;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AAGD;;AACC;;;;A;AAEC;A;A;AAGA;A;AAED;A;AAIC;;;;A;A;AAKA;;;;A;AAGD;A;A;AAEC;A;AAEC;A;AAED;A;AAEA;A;AAEA;A;AAEA;AACA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;AACA;A;AAEA;A;A;AAGC;A;AAED;A;AAEA;A;AAEA;A;AAGA;A;AAEC;A;AAED;A;AAGA;A;AAEC;A;AAED;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;A;AAGC;A;AAEA;A;A;A;AAIA;A;AAEA;A;A;A;AAMA;AACA;A;AAED;AACA;A;AAEC;AACA;AACA;A;AAEA;A;AAED;A;AAEC;A;A;AAGA;A;A;A;AAMC;A;AAED;A;A;A;AAKA;AACA;A;AAID;A;AAEC;AACA;A;AAEA;A;AAED;AACA;A;AAEA;A;A;A;AAGF;A;;;;;AAeA;A;;;;A;AAMC;A;AAMD;A;;;;A;AAOC;A;AAED;AACA;A;;;A;AAQC;A;A;A;AAIC;A;AAED;A;AAED;A;;;AAIA;;AACC;A;AAED;A;;;AAMA;;A;A;AAGG;A;AAED;AACA;AACA;A;A;AAGA;A;AAED;AACA;A;AAED;A;;;;AA0CA;;A;;;;;;AAaA;;;;AACA;AACA;AACA;AAIC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAID;AACK;AACJ;;;;AACA;AACA;;;A;AAEC;A;A;A;AAIC;A;AAED;A;AAED;AACI;AACJ;A;A;A;AAGE;AACA;A;AAED;;;;AACA;;;A;AAEC;A;AAEA;A;A;A;AAIA;AACA;A;AAED;;;;AACA;;;A;AAEA;;;;AACA;A;AAEA;;;;AACA;A;AAEA;;;;A;AAEC;A;A;AAID;;;A;AAEA;;;A;A;AAGC;A;AAED;;;;A;AAGC;A;A;AAGD;;;;A;AAEC;A;A;AAGD;;;;A;AAEC;A;A;AAGD;;;;A;AAEC;A;A;AAGD;;;;A;AAEC;AACA;A;A;AAKA;;AACA;A;AAGC;A;AAGD;AACA;;AAA2C;A;AAE3C;;;;AACA;A;A;A;AAIA;AACA;A;AAED;;;;A;A;AAGC;A;AAEA;A;AAEA;A;A;A;AAIA;AACA;A;AAED;;;;A;A;AAGC;A;AAEA;A;AAEA;A;A;A;AAIA;AACA;AACA;A;AAEG;;;;;;;;A;A;AAGF;AACA;A;A;AAGA;AACA;A;AAED;;;;;;;;;;A;A;AAGC;AACA;A;AAED;;;;;;;;;;A;A;AAGC;AACA;A;A;AAGA;AACA;A;AAED;;;;;;;;;;A;A;AAGC;AACA;A;AAED;;;;;;;;;;A;A;AAGC;AACA;A;AAED;;;;;;;;;;A;AAEG;;;;;;AACJ;;;A;AAEC;;;A;A;AAGA;;;A;AAED;A;A;A;AAIC;A;AAEA;A;A;A;AAKA;AACA;AACA;A;AAED;;;A;AAEC;AACA;A;AAED;;;;A;AAKA;A;AAEC;AACA;A;AAED;;;;AACA;A;A;AAKC;A;AAID;AACA;;AACC;A;AAED;;;;AACA;A;A;A;AAGA;A;A;AAGA;A;A;A;AAID;A;AAEA;A;A;AAKA;A;AAGD;;A;AACC;;A;AAGD;;A;AACC;;AACA;AAIA;;;;A;AAEC;AACA;A;AAID;AACA;A;AAGD;;A;AACC;;AAGA;;;;A;AAEC;AACA;AACA;A;A;AAKA;;AACA;A;AAED;AACA;A;AAID;;A;;;;;;A;A;;;;;A;A;A;;;;;A;A;AAuBC;A;;;;;A;A;AAKA;A;;;;;A;AAIG;AACA;;;A;AAEF;A;AAEE;A;AACF;A;AAL0B;A;A;A;A;;;;;A;A;A;;;;;A;A;A;A;;;;;A;A;A;;;;;A;A;;;;;A;;;AA8B5B;A;AAEC;A;AAGD;A;;;AAOA;A;AAEC;A;AAED;;;;A;AAEC;A;A;AAGA;A;A;AAGA;A;AAED;A;;;;;;A;AAKC;AACA;A;AAEE;;;A;AACF;A;A;AAGA;AACA;A;AAKD;AACI;;;AACH;AAD4B;A;AAG7B;A;;;;;;AAOA;AACA;;AACC;A;AAEC;A;A;A;;;;;;;A;AAMD;A;A;;;;;;;A;AATiB;A;A;;;;;;;A;;;;AChiClB;A;;;;;A;AAMC;A;AAED;A;;;;;AAIgC;A;;;;;A;AAK/B;AACA;A;AAEC;AACA;A;AAID;A;AAID;A;;;;;A;AAMC;A;AAED;AACA;A;;;;;A;AAMC;AACA;A;A;;;;;A;AAkCA;A;AAED;AACA;AACA;A;;;;;A;AAMC;A;AAED;A;;;;;A;AAUC;A;AAED;A;;;;;A;AAuCC;A;AAED;AACA;AACA;A;;;;;A;AA6BC;A;AAED;AACA;AACA;A;;;;;AA2GA;A;;;;;;AAMA;AAEA;;A;AACC;;A;AAED;AACA;;A;AACC;;A;AACC;A;;AAEA;;;AACA;A;A;AAGF;A;;;;;;;;;;AAMA;AACA;;A;AACC;;A;AAGD;AACA;;A;AACC;;A;AACC;AACA;A;;AAEA;;;;A;AAED;A;;AAEA;A;AAED;AACA;A;;;;;;;;;;AAKA;;;;;AACA;A;;;;;;;AAKA;;;AACA;A;;;;;;;AAKA;;;AACA;A;;;;;;;AAKA;;;AACA;A;;;;;;;AAKA;;;A;;;;;AAMA;AACA;A;;;;;;;AAQA;;;;;;AACA;;AAgBA;AAMA;A;AAEC;A;A;AAMA;AACA;A;AAKC;A;A;A;AAQE;A;AACF;AACA;A;A;AAIF;A;;;;;;;;;;A;;;;;;;A;;;;;;;;AAUA;AACA;AACA;AACA;AACA;AACA;A;;;;;AAKA;;A;;;;;;;AAKA;;A;;;;;;;AAKA;;A;;;;;;AAMA;A;;;;;;AAMA;;;AACA;A;;;;;;AAuCI;AACJ;AAEA;AACA;A;AAEC;A;A;AAMI;AACJ;AACA;AACA;A;AAGC;A;AAGA;AACA;A;AAGA;AAEA;AACA;A;AAGA;AACA;A;AAED;;;AACA;A;AAEA;AACA;AAEA;;;AAGA;AACA;A;AAIC;AACA;AACA;AACA;A;AAKC;AACA;AACA;A;A;A;A;AAMF;AACA;A;AAGD;A;;;;;;AASA;AACA;AACI;;;AACH;AACA;A;AAEC;AACA;A;AAED;AAPqB;A;A;AAUrB;AACA;A;A;;;;;A;;;AAQD;A;AAEC;AACA;A;AAEA;;AACC;AACA;AACA;A;A;AAGF;A;;;;AAIuC;A;;;;;AAavC;AACA;AACA;A;;;;;AAKA;AACA;AACA;A;;;;;AAKA;AACA;AACA;A;;;;;A;AAOC;A;AAED;A;;;;AAMA;A;;;;A;AAWC;A;AAED;A;AAEC;A;AAEC;A;AAEE;A;AACF;A;AAED;A;A;AAGA;A;AAEE;A;AACF;A;AAED;A;;;;;AAKA;AACA;A;AAEC;AACA;A;AAEA;AACA;A;AAED;AACA;A;AAEC;A;AAGC;A;AAEA;A;A;AAGF;A;;;;;A;AASC;AACA;AACA;A;AAEC;A;A;AAGA;A;AAED;A;AAED;A;AAIC;A;AAEA;A;AAEA;A;A;;;;;;AAyBD;;;;;AACA;;;;;AACA;;A;;;;;;;;;;;A;;;;;;;;A;;;;;;;;;AAsBA;AAGA;AACA;AACA;AAMA;AACA;AACA;AACA;AAKA;AACA;AACA;AAMA;AACA;AACA;AACA;AAEA;AACA;A;AAGC;A;AAGD;A;A;AAME;A;AAGA;AACA;AACA;A;A;AAMF;AACA;AACI;A;AAEH;AACA;A;AAEA;A;AAGD;AACA;AACA;A;;;A;AAwBC;A;AAED;A;;;AAQA;;;;AACA;A;AAEC;A;AAED;A;;;;AAIA;A;;;;AAKA;AACA;A;;;;;AAKA;AACA;A;;;;;A;AAUC;A;AAED;AACA;A;;;;;AAKA;A;AAEC;A;AAED;A;;;;;;;;AAMA;;;;AACA;A;;;;;;AAOA;A;;;;;AAUA;A;;;;;;AAOI;AAEJ;;A;AACC;A;;AAEA;;;A;AAEC;A;AAED;A;AAEC;A;AAED;A;AAGD;AACA;AACA;AAkBA;A;;;;;;;AAKA;A;AAEC;A;A;AAIA;A;A;AAIA;A;AAGD;AACA;AAGA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;;A;AACC;A;;AACS;;;A;AACT;A;AAEA;A;A;AAGD;A;;;;;;;AASA;;A;;;;;;;AAKA;;A;;;;;;;AAMG;;A;AAGF;A;AAGD;AACA;AACA;;AACA;AACA;A;;;;;;;A;AAQC;A;AAGG;AACJ;;;;AACA;A;;;;;;;AAMG;;A;AACF;A;AAGD;AACA;;A;;;;;;;AAOI;AACJ;;;;AACA;A;;;;;A;AAUC;AACA;AACA;A;AAEC;AACA;A;A;AAGF;A;;;;AAIA;A;;;;;A;AAQC;AACA;AACA;A;A;AAGA;AACA;AACA;A;A;;;;;A;;;;A;AAuBA;A;AAID;AACA;;;AACA;AAGA;;;AACA;;;AACA;;;AACA;;;AAEA;AAKA;AACA;AACA;AAGA;AACA;AACA;AAGA;AACA;AACA;AAGA;AACA;AAGA;A;AAEC;A;AAID;AAGA;AACA;AAEA;AAMA;;;;;AACA;;A;AACQ;AACP;;;A;AACC;;;A;A;AAEA;;;A;A;AAED;A;AAGD;AACA;AACA;A;;;;;;AAWA;A;AAEC;A;AAED;;AACA;A;;;;;AAYA;A;AAEC;A;AAED;;A;AAEC;A;AAED;A;;;;;;AAOA;AACA;AACA;A;AAGC;AACA;AACA;A;AAEC;AACA;A;A;A;AAOD;AACA;A;AAIA;AACA;AACA;A;AAQA;AACA;AACA;AACA;AACA;AACA;;;;A;AAEC;A;AAED;;;;A;AAEC;A;AAKD;AACA;;AACC;A;AAED;AACA;AACC;A;AAGC;AACA;;;;A;AAEC;A;AAED;A;A;AAGA;A;AAED;AACA;AACA;A;AAED;A;A;AAUA;AACA;A;AAED;A;;;;;A;ACx6CC;A;AAED;;A;AACC;A;AAED;A;;;;;;;AAMA;;A;;;;;AAMA;AAOA;AACA;A;;;;;;;;;;AAWA;;A;AAGC;AACA;AACA;AACA;AACA;A;AAGE;A;AACF;AACA;AACA;AACA;AACA;A;A;AAIA;AACA;AACA;AACA;A;AAEC;A;AAEA;A;AAED;A;AAKD;AACA;AACA;AACA;AACA;;AACC;AACA;A;AAEC;AACA;A;AAEA;A;A;AAGF;AACA;AACA;AACA;AAEA;A;;;;;;A;AAqBC;A;A;AAKI;;;A;AAEF;A;AAFyC;A;A;AAQ5C;;;;;A;AAEE;A;A;;AAKF;A;;;;;AAMA;;;;;A;AAEE;A;A;;AAGF;A;;;;;;;;AAOA;;AAQA;;;;;AACC;AACA;;A;AACC;;;;A;A;;;;;A;A;A;;AAQF;;;;;AACC;A;A;;;;;A;A;;AAOD;A;;;;;;;;;;;;;;;;;;A;A;A;A;A;;;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3OwC;A;;;;;A;;;;;AAIX;A;;;;;A;AAI5B;A;AAED;A;;;;;AAGoD;A;;;;;AAEC;A;;;;;A;AAIpD;A;AAED;A;;;;;AAGiD;A;;;;;AAEC;A;;;AAIhB;A;;;;AAES;A;;;;AAEI;A;;;;AAEC;A;;;;;AAUhD;;A;AACC;AACA;AACA;;A;A;A;;;;;;A;AASD;A;AAEC;A;AAGD;AACA;AACA;A;AAEC;A;A;A;;;;;A;ACnDA;A;AAED;A;;;;AAUyC;A;;;;;AACA;A;;;;;AACA;A;;;;AAIzC;;AACC;A;AAEC;AACA;A;AAED;AACA;A;A;;;;ACFD;AACC;A;AAEC;A;AAED;A;AAEC;A;A;AAGA;A;A;A;;;;;;AAQF;AACC;A;AAEC;A;AAGD;A;AAEC;A;AAGD;AACA;;A;AAGC;;AACC;AACA;A;AAED;;AACC;AACA;A;AAED;A;A;A;;;;;;;AAQF;AACC;A;AAEC;A;AAED;A;AAEC;A;A;A;;;;;;AAQE;;;;;;AACA;A;AAEH;AACA;AACA;AACA;A;AAEA;AACA;AACA;AACA;A;AAED;AACC;A;AAEC;A;AAEG;A;AAGH;A;AAEC;A;A;AAID;A;AAEC;A;A;AAGF;;A;A;AAEE;A;AAED;A;A;A;;;;;;;;AASE;;;;;;AACA;A;AAEH;AACA;AACA;AACA;A;AAEA;AACA;AACA;AACA;A;AAED;AACC;A;AAEC;A;AAGD;A;AAEC;A;AAED;;A;AACC;;A;AACC;A;AAED;A;A;A;;;;;;;A;AAaD;A;AAED;A;;;;;;AAOA;;A;AACC;;A;AAED;A;;;;;;;AAMA;;;A;AACC;A;AAED;A;;;;;;;AAOA;;;A;AACC;;A;A;;;;;;;;AAOD;;;A;AACC;A;AAED;A;;;;;;;AAOA;;;A;AACC;;A;A;;;;;;;A;ACxOA;A;AAED;A;;;;;;AAKG;A;AACF;A;AAED;AACA;A;;;;;;;AAKG;A;AACF;A;AAED;AACA;A;;;;;;;AAKG;A;AACF;A;AAED;AACA;A;;;;;;;AAKG;A;AACF;A;AAED;AACA;A;;;;;;A;ACCC;A;A;AAGA;AACA;A;AAED;A;AAIC;A;AAED;A;;;;;;AAQA;AACA;;AACA;AACA;AACA;A;;;;;;;AAMA;;;A;AACC;A;AAQD;AAIA;;AAQA;;A;AACC;A;AAGD;A;;;;;;;AAKG;A;AACF;A;AAED;AACA;A;;;;;;;AAKG;A;AACF;A;AAED;AAIA;AACA;A;;;;;;;AAYG;;A;AACF;A;AAED;A;AAOC;A;AAEE;A;AACF;A;A;AAGA;A;AAED;AACC;;;A;AAEC;A;AAEI;A;AACF;A;A;A;AAOD;A;A;AAGF;AACA;A;A;;;;;;;;AASE;A;AACF;A;A;AAGA;A;AAED;;;A;AAEC;A;AAED;;AACA;AACA;A;;;;;;;AAKG;;A;AACF;A;AAED;AACG;A;AACF;A;AAED;AACC;;;;A;AAEC;A;AAEI;A;AACF;A;A;A;AAIH;AACA;A;A;;;;;;;;AAME;;A;AACF;A;AAED;AACG;A;AACF;A;AAED;AACC;;;;;;A;A;AAIK;A;AACF;A;A;A;AAIH;AACA;A;A;;;;;;;;AAME;;A;AACF;A;AAED;AACG;A;AACF;A;AAEG;AACJ;AACC;A;AAEC;A;AAED;;;A;AAEC;A;A;AAGA;A;A;AAGG;A;AACF;A;A;A;AAID;A;A;AAGA;A;A;A;;;;;;;;AAUC;A;AACF;A;AAED;AACI;AACJ;AACC;A;AAEC;A;AAED;;;A;AAEC;A;A;AAGA;A;A;AAGA;A;A;AAGA;A;A;A;;;;;;;;AAOC;;A;AACF;A;AAED;AACG;A;AACF;A;AAED;AACC;;A;AAEI;A;AACF;A;A;A;AAID;A;AAED;A;A;;;;;;;;AAME;;A;AACF;A;AAED;AACG;A;AACF;A;AAED;AACC;;;;A;AAEI;A;AACF;A;A;A;AAID;A;AAED;A;A;;;;;;;;AAME;;A;AACF;A;AAED;AAEG;A;AACF;A;AAED;AACC;;;;;;A;AAEC;A;A;A;A;AAKI;A;AACF;A;A;A;AAOF;A;AAED;A;A;;;;;;;;AAME;A;AACF;A;AAED;AACA;A;;;;;;;AAOG;A;AACF;A;AAED;AACA;AACC;;;A;AAEC;A;AAEI;A;AACF;A;A;A;AAKH;A;A;;;;;;;;AAME;A;AACF;A;AAED;AACA;A;;;;;;;AAKG;A;AACF;A;AAED;AACA;A;;;;;;A;AAUC;;;A;A;AAGC;A;AAKA;A;AAEA;A;A;AAGF;;A;;;;;;AAMA;AACA;AACA;;;A;AAEC;A;AAED;AACA;A;;;;;;AAKG;A;AACF;A;AAED;AACA;;A;;;;;;AAOA;A;;;;;;AAKG;;A;AACF;A;AAED;AACA;A;;;;;;;AAMG;A;AACF;A;AAED;AACA;AACA;A;;;;;;;AAKG;;A;AACF;A;AAED;AACG;A;AACF;A;AAED;AACC;;;A;AACC;A;AAEE;A;AACF;A;A;A;;;;;;;;AAOC;;A;AACF;A;AAED;AACG;A;AACF;A;AAED;AACC;;;A;AACC;A;AAEE;A;AACF;A;A;A;;;;;;;;AC5hBC;A;AACF;A;AAED;AACA;A;;;;;;;AAKG;A;AACF;A;AAED;AACA;A;;;;;;;AAKG;A;AACF;A;AAED;AACA;A;;;;;;;ACtBG;A;AACF;A;AAED;AACA;A;;;;;;;ACJG;A;AACF;A;AAED;AACA;A;;;;;;;AAKG;A;AACF;A;AAED;AACA;A;;;;;;ACFA;;;;;A;AAEC;A;A;AAGA;A;AAEE;AAAH;;A;AACC;;AACA;A;AAED;A;;;;;;;AClBG;;A;AACF;A;AAED;AACG;A;AACF;A;AAGG;A;AAEH;A;AAKD;AAEI;AACA;AACJ;;AACC;AACA;;;;;A;AAEE;;A;AAED;A;AAEC;AACA;A;AAED;A;AAEC;A;A;;A;AAID;A;AAED;AAEA;;;A;AAKC;A;AAED;AACA;AACA;A;AAEI;A;AACF;A;A;AAGD;A;A;AAGA;A;A;AAGA;AACA;A;A;AAGF;A;;;;;;;;;;;;;;A;A;A;A;A;A;A;A;A;A;A;A;;A;A;A;A;;;;;;;;;;;;;A;;;;;A;;;;;A;;;;;;;;;;;;;ACvCA;A;AAEC;A;AAED;A;;;;;AAYG;AAAH;;A;AACC;A;A;;;;;;;AAME;AAAH;;A;AACC;A;A;;;;;;;;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvDD;A;;;AAIG;A;AACF;AACA;AACI;;;AACH;AADgC;A;A;A;AAKjC;A;A;;A;;;;;A;ACAA;A;AAED;;A;;;;;;;;;A;A;;;;;A;A;;;;;A;;;;;;;;;ACLA;A;AAEC;A;AAED;;;;AACA;AACA;;;;;AACC;;;;A;AAIC;;A;A;A;;;;;A;AAKD;A;;A;AAKA;A;A;;;;;A;;;;;;;;;A;AAQA;AAEA;A;AAED;AAEA;A;AAEC;AACA;A;AAGD;AACA;;AAEC;;A;AACC;AACI;AACJ;;;;AACA;A;A;;;;;A;A;AAKC;A;A;AAKE;;;;AACJ;;;;AACA;AACA;A;A;A;;;;;A;A;;;;;A;;;;;;;ACjDmC;;A;;;;;;;AAIpC;;;AACA;;;;A;;;;;;;AASuC;;A;;;;;;;AAIvC;;;AACA;;;;A;;;;;A;AAQC;A;AAED;A;;;;AAcA;A;;;;AAmBA;A;A;AAEC;A;A;AAEA;A;A;AAEA;A;AAED;A;;;ACzFG;;A;AACF;A;AAED;A;;;ACAA;AACA;A;;;;ACgC8B;A;;;;;;AAgD9B;;A;;;;;;;;;AAOG;A;A;;;;;A;AAGH;;;;A;;;;;A;;;;;;;;;AASG;A;A;;;;;A;A;A;;;;;A;AAQH;;AACC;;;;A;AAEC;AACA;A;AAED;AACA;AACA;A;AAED;A;;;;;;;;;AAOG;A;A;;;;;A;AAGH;;;;A;AAEC;A;A;AAGA;A;AAGD;A;AAGC;A;A;;;;;A;;;;;;;;;AAUE;A;A;;;;;A;A;A;;;;;A;AAQH;;AACC;;;;A;AAEC;AACA;A;AAED;AACA;AACA;A;AAED;A;;;;;;;;;AASG;A;A;;;;;A;AAGH;;;;A;AAEC;A;A;A;;;;;A;A;;;;;A;;;;;;;;;A;;;;;A;;;;;;AAuCD;;;;A;AAEC;A;AAED;;;;;A;;;;;AA0CA;AACA;;A;;;;;;A;AA4BC;A;A;AAGA;A;AAED;A;;;;AAqF8C;A;;;;;;AAIH;;A;;;;;;AAyB3C;A;;;;;AAQA;A;;;;;AAUA;A;;;;;;;;AChaA;A;AAEC;A;A;AAGA;A;A;AAGA;A;AAGD;A;;;AAKG;A;AACF;A;AAED;A;;;;;AAKG;A;AACF;A;AAEE;;A;AACF;A;AAED;A;;;;;;;AAoCG;A;AACF;A;AAEE;;A;AACF;A;AAED;A;;;;;;;AAOG;A;AACF;A;AAEE;;A;AACF;A;AAED;A;;;;;;;AAOG;A;AACF;A;AAEE;;A;AACF;A;AAED;A;;;;;;;AAuBG;A;AACF;A;AAEE;;A;AACF;A;AAED;A;;;;;;AAKG;A;AACF;A;AAED;A;;;;;AAKG;A;AACF;A;AAED;A;;;;;AAKG;A;AACF;A;AAED;A;;;;;A;AAOC;A;AAED;A;;;;AC/KA;A;;;;;A;AA2CC;A;AAQD;;A;AACC;;A;AAGD;A;;;;;AASA;AACG;;;A;AACF;A;AAED;A;;;;AAiBA;A;AAEC;A;AAED;AAUA;A;AASC;A;A;AAOI;AACD;A;AACF;A;A;AAIC;A;A;AAUC;A;AACF;A;A;AAIF;AACA;A;;;A;AAeC;A;A;;;;AAUD;AACA;;A;AACI;;;A;AACF;A;A;AAIE;AACJ;AACK;AACJ;;;A;AAEC;A;A;AAOA;A;AAGD;A;AAID;;A;AACC;;A;A;AAMA;A;AAGD;A;;;;;;A;AAQC;A;AAED;;A;;;;;;;A;AAKC;A;AAEG;AACD;;A;A;AAED;A;AAED;A;AAID;AACA;A;;;;;;;;;AAMA;;;;AACA;A;;;;;A;;;;;;;;;AAQA;;;;AACA;A;;;;;A;;;;;;;;;AAOA;;;;AACA;A;;;;;A;;;;;;;;;AAOA;;;;AACA;A;;;;;A;;;;;;;;;AASA;;;;AACA;A;;;;;A;;;;ACnRA;A;;;AAIA;A;;;ACOA;AAEA;;AACC;AAD8B;A;AAI3B;A;;A;AAEF;AACA;A;AAHe;A;AAOjB;A;;A;ACdC;A;AAED;A;;;A;AAyCC;A;AAED;A;;;;;ACrDA;AACA;A;;;;;;AAQA;AACA;A;;;;;ACTA;AACA;AACA;AACA;A;A;AAGC;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;A;AAIA;A;A;AAGA;A;A;AAGA;A;A;AAGA;A;A;;;AAKD;A;;;;;;A;AC5BC;A;AAEG;AACJ;;A;AAEC;A;AAED;AACA;A;;;;;AAKI;AACJ;A;AAEC;A;AAED;AACA;A;;;AAKI;AACJ;A;AAEC;A;AAED;AACA;A;;;;ACoBI;AACJ;AACA;;;;;;;A;AAEE;AACA;A;A;;A;AAID;AACA;A;AAGD;;;;;;;A;AAEE;A;AAEA;A;AAED;A;;AAED;A;;;;;AAMA;A;;;;;AAMA;A;;;;;AAKA;A;;;;;AAGmC;A;;;;;AACA;A;;;;;ACrFM;A;;;;;AACA;A;;;;;AACA;A;;;;;AACA;A;;;;;;;;;;;;;;;;;;;;;A;A;A;A;A;A;A;A;A;A;A;;A;A;A;A;A;A;A;A;A;A;;ACPJ;A;A;A;A;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACmCrC;A;;;;;AAIA;AACA;A;;;;;A;AAMC;A;AAED;AACA;AACA;A;AAGC;AACA;A;AAGD;A;AAEC;A;AAGD;AACA;;;;;AACC;A;;AAED;A;;;;;A;AAMC;AACA;A;AAED;A;AAGC;AACA;A;AAGA;AACA;A;A;;;;;A;AAOA;AACA;A;AAED;A;AAGC;AACA;A;AAGA;AACA;A;A;;;;;A;AAOA;A;AAEA;A;A;;;;;AAMD;AAKA;A;AAEC;AAEA;A;AAEC;A;A;AAKF;A;AAIC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AAGD;;AACC;AACA;AACA;AACA;A;AAED;AACA;AACA;AAEA;;AACC;AACA;AACA;A;AAGD;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;A;;;;;AAKA;A;AAEC;A;AAGD;A;AAKC;A;AAGC;A;A;AAOF;A;AAEC;A;AAGC;AACA;AACA;AACA;AACA;A;A;AAGD;A;AAEC;A;A;AAOF;A;A;AAKC;;AACC;AACA;AACA;AACA;A;A;AAGD;;AACC;AACA;AACA;A;A;AAGD;;AACC;AACA;AACA;A;A;AAGD;;AACC;AACA;AACA;A;A;AAGD;A;AAED;AACA;AACA;;AACC;AACA;A;A;A;A;A;AAQE;AACA;A;A;AAID;AACA;AACA;AACA;A;A;A;AAKD;AACA;A;AAEA;AACA;A;AAEA;AACA;A;AAKD;AACA;AACA;AACA;A;;;;;A;AAMC;AACA;;;;;;AACC;A;AAEC;A;A;;A;AAIH;A;;;;;AAKA;AACA;A;;;;;AAKA;A;AAGC;A;A;AAIA;A;AAGD;A;A;A;AAKG;A;AAGD;A;AAGA;A;A;A;AAIA;A;AAED;A;A;AAIA;A;AAGD;A;AAGC;A;AAEG;AACA;;;A;AAGF;A;AAGC;A;A;A;AAID;A;AAEA;A;AAGD;AAfuB;A;AAiBxB;A;AAGC;A;A;;;;;AAMD;A;;;;;AAKA;A;;;;;AAOA;A;AAEC;AACA;A;AAED;A;AAEC;A;AAEA;A;A;;;;;AAOD;A;AAEC;A;AAED;AACA;AACA;A;;;;;AAMA;A;AAEC;A;AAED;A;AAEC;A;AAEA;A;A;;;;;A;AASA;A;AAGD;A;AAEC;A;AAEA;A;A;AAKA;A;A;AAKA;AACA;A;AAGC;A;AAED;AACA;AACA;A;A;AAKA;A;A;AAGC;A;AAGC;A;A;AAME;AACJ;AAEA;AAEI;;;A;A;AAGF;A;AAEA;AACA;A;AAEA;A;AARwB;A;A;AAYzB;A;AAED;;AACC;AACA;A;AAED;A;A;A;AAOC;AACA;AACA;AACA;A;AAED;AACA;A;AAGD;A;;;;;AC3cA;A;;;;AAIA;A;;;;AAIA;A;;;;A;AAKC;AACA;A;AAGD;AACA;AACA;;AACC;A;AAED;AACA;A;;;;AAgCA;;AACA;AACA;AACA;AACA;A;;;;;AAKA;AACA;AACA;AACA;A;;;;;;;A;;;;;A;;;;;;;A;;;;;A;;;;;A;A;AAUC;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAED;A;;;;;;;AAMA;A;;;;;A;;;;;;;AAOA;A;;;;;A;;;;;AAwBA;;AACA;AACA;AACA;AACA;A;;;;;;AAMA;;;A;;;;;;AA0BA;;AACA;AACA;AACA;AACA;A;;;;;;;;AAWA;;AACA;AACA;;;;AACA;AACA;A;;;;;;;;A;;;;;A;;;;;;AAaA;;AACA;AACA;AACA;AACA;A;;;;;;AAOA;;AACA;;A;AACC;;A;AAED;A;;;;AAOA;A;;;;;;A;A;;;;;;;A;AAQI;;;A;A;;;;;;;A;AAIH;AACA;AALiE;A;AAOlE;A;;;;;A;AAKC;AACA;A;AAED;AACA;;AACA;A;;;;;;;;AAIA;AACA;AACA;AACA;AAEA;;;A;AACC;;AACA;AACA;A;A;AAEA;;AACA;AACA;A;;AAEA;A;A;AAED;AACA;A;;;;;;;;A;AAKA;;A;AACC;A;;AAEA;A;A;A;;;;;;;AAOD;AACA;AACA;AACA;A;;;;;;A;AAMA;;;;;;;;;;A;A;AAEE;A;AAEA;A;A;A;AAGD;A;A;AAEA;A;A;AAEA;A;A;AAEA;A;A;AAEA;A;A;AAEA;A;A;AAEA;;A;AACC;A;;AAEA;A;A;A;AAGD;A;;AAEA;A;A;A;;;;;;;;A;AAQD;;;;;A;AACC;A;A;AAEA;A;A;AAEA;A;A;AAEA;A;;AAEA;A;A;A;;;;;;;;A;AAWD;;A;AACC;AACA;AACA;AAEA;AACA;AACA;AACA;A;;AAEA;A;A;A;;;;;;;;A;AAMD;;;;;;A;A;AAEE;A;AAEA;A;A;A;AAGD;A;A;AAEA;A;A;AAEA;A;A;AAEA;A;;AAEA;A;A;A;;;;;;;;A;AAMD;;;;;;A;A;AAEE;A;AAEC;AACA;A;AAED;AACA;;;;;;A;AAEE;A;AAED;A;;AAED;A;AAEA;AACA;;;;;;A;AAEE;A;AAED;A;;AAED;A;A;A;AAGD;A;A;AAEA;A;A;AAEA;A;A;AAEA;A;;AAEA;;A;A;A;;;;;;;;AAKG;A;AAEJ;;A;AACC;A;;AAEA;AACA;A;A;A;AAID;;;;A;AACC;;A;AACC;AACA;;AACA;A;AAEC;A;AAEA;A;AAED;A;;A;AAGC;A;AAEA;A;A;A;A;AAIF;A;A;AAEA;A;;AAEA;A;A;A;;;;;;;;AAKE;AAAH;;A;AAII;;A;AACF;AACA;A;A;AAMA;A;AAGD;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;A;A;;;;;;;;;A;AAMA;A;AAGE;;;AAAH;;A;AACC;AACA;AACA;AACA;A;AAID;;A;AACI;;;AAAH;;A;AACC;AACA;AAEA;;AACA;A;A;;A;AAOD;;A;AAKC;;;;A;A;AAEC;AACA;AACA;;AACA;A;A;AAGA;AACA;AACA;;AACA;A;A;A;A;A;;A;;;;;;;AAQH;AACA;AAEA;;A;A;AAEC;;A;AACC;A;;AAEA;A;A;AAED;A;A;AAMD;;;A;AACC;;AACA;A;AAEA;;AACA;A;A;AAID;;;;;;;;;;;;;;;;;;;;;A;A;AAEC;A;A;A;AAEA;A;A;A;AAEA;A;A;A;AAEA;A;A;A;AAEA;A;A;A;AAEA;A;A;A;AAEA;A;A;A;AAEA;A;A;A;AAEA;A;A;A;AAEA;A;A;A;AAEA;A;A;A;AAEA;A;A;A;AAEA;A;A;A;AAEA;A;A;A;AAEA;A;A;A;AAEA;A;A;A;AAEA;A;A;A;AAEA;A;A;A;AAIA;;A;AACC;;AACA;;;A;AACC;A;A;AAGF;A;;A;AAGA;;;A;AAGC;;A;A;A;;;;;;;;AASF;;A;AACC;;AACA;;;A;AACC;A;A;AAGF;AACA;AAEO;A;AACP;;;;;;;;;;;;;;;;A;AACC;;A;AACC;A;;A;AAGA;;A;AACC;A;;AAEA;A;A;A;A;A;AAIF;A;A;AAEA;A;A;AAEA;A;A;AAEA;A;A;AAEA;A;A;AAEA;A;A;AAEA;A;A;AAEA;;A;A;AAEA;;A;AACC;;A;AAEC;AACA;A;AAED;A;;AAEA;A;AAED;;AACA;;;;;;A;A;AAGG;A;AAEA;A;A;AAGF;AACA;AACA;;A;;A;AAGA;A;AAEA;A;A;A;AAGD;;A;AACC;;A;AAED;AACI;;;A;A;AAGD;A;AAEA;A;A;AAGF;;A;AACI;;A;AACF;AACA;A;A;AAGF;;AAd6B;A;AAgB9B;A;A;AAEA;;AACA;;A;AACC;;A;AACC;;AACA;A;;AAEA;A;A;;AAGD;A;A;A;A;AAID;;A;AAEC;AACA;;;;A;AACK;AACJ;;;A;AACC;;A;A;AAEA;;;A;;AAKA;AACA;;;;;AACC;;;A;;A;AAGF;;;;;AACA;A;A;A;AAGF;;A;AACC;;A;AAEC;AACA;A;AAED;AACI;;;A;AAEF;A;AAED;;AAJwB;A;AAMzB;A;;AAEA;AACI;;;A;AAEF;A;AAED;;AAJwB;A;AAMzB;A;A;A;AAKD;;A;AACQ;;A;AACP;;A;AACC;AACA;AACA;A;A;A;AAKF;A;A;AAAA;A;;AAEA;A;A;A;;;;;;;;;;AAMD;AACA;;A;AACC;;;AACA;;A;AAEQ;;A;A;AAEN;A;AAEC;AACA;A;A;AAGD;A;AAEC;AACA;A;A;A;A;AAMH;A;AAEC;AACA;A;A;AAGF;A;;;;;;;A;A;;;;;;;A;AAgBI;;;A;AAEF;;;;A;A;;;;;;;A;A;;;;;;;A;AAF2B;A;A;;;;;;;A;;;;;;;A;A;;;;;;;A;AAmB7B;AACA;;;;A;A;;;;;;;A;AAIA;A;;;;;;;A;;;;;AAKA;AACA;AACA;A;;;;;AAIA;AACA;AACA;A;;;;;;AAIA;AACA;AACA;AACA;AAEI;;;AACH;AACA;AACA;;AACC;A;A;AAGA;A;A;AAIA;A;AAID;AAGA;AAEA;;AACC;A;AAEA;;;;;;A;AACC;A;A;AAEA;A;A;AAEA;A;A;AAEA;AACA;A;A;AAEA;A;;AAIA;;A;A;AAGE;AACA;AAEA;AACA;A;AAED;AACA;AACA;AACA;A;AAGD;A;A;AAhCa;A;AAqCf;;;;AAGA;;A;AACC;AACA;;;;;A;AAGC;A;A;AAMA;AACA;AACA;A;AAED;A;;AAEA;;;;A;AAEC;A;A;AAKF;;A;AACC;A;AAEC;A;AAED;;;;AACA;;A;AACC;AACA;;;;;A;AAGC;AACA;A;A;AAGA;A;AAED;A;;AAEA;;;;A;AAEC;AACA;A;A;A;A;AAMF;;;;A;A;AAIA;AACA;A;AAGD;;;;A;AAEC;;;A;AAED;AAGA;;;;;A;AACC;A;A;AAEA;A;A;AAEA;A;A;AAGA;AACA;AAEA;AACA;AAGA;AACA;A;;AADA;AACA;A;A;A;AAOF;;A;AACC;AACA;AACA;;;;;;A;AAEE;A;AAED;;A;AACC;A;;AAEA;;AACA;AACA;A;A;;AAGF;A;A;;;;;;;;AAKD;AACA;;;;;;AACC;;;;A;AAGC;A;AAED;AACA;A;;A;;;;;;;;AAOD;;;;;;A;AAEE;A;AAED;A;;AAED;A;;;;;;;;;A;;;;;A;;;;;;;;;A;ACn8BC;AACA;A;AAGD;;;;;A;AAEC;A;AAEC;A;A;AAGD;A;AAED;A;;;;;;;;A;A;;;;;A;A;;;;;A;;;;;;;AAaA;;;;A;A;A;;A;AAKC;A;AAED;A;;;;;;;AAeA;;AACA;AACA;AACA;A;;;;;;AAIA;A;;;;;AAIA;A;;;;;;;;;AAIA;;AACI;A;AACC;;;A;AACF;A;AAEA;A;A;A;A;AAKF;A;AAED;AACA;;AACA;A;;;;;A;AAoBC;A;AAED;AACA;;;;;A;AAEE;A;A;AAGA;A;A;;AAGF;A;;;AAKA;A;;;;A;AA2GC;AACA;A;A;AAIA;A;AAED;AACA;AACA;A;;;;;;AAOA;AACC;;A;AAEC;A;AAED;;;;;A;AACC;A;AAED;;A;A;AAEE;A;AAED;AACA;A;AAED;;A;AACC;;AACA;A;A;A;;;;;;;;AASF;;A;AACC;A;AAGD;AACC;;A;AAEC;A;AAED;;;A;AACC;;AACA;A;AAED;A;AAED;A;;;;;AAOA;;;;;;;A;AAEE;A;A;;AAGF;A;;;;;AAwBA;;AACA;;A;AACC;;A;AAED;A;;;;;;;;;;;;;;;;;;;;;A;A;A;A;A;A;A;A;A;ADtX0B;A;A;A;AC2PA;A;A;A;;;;;;;;;;;;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3U1B;;;A;AAEC;A;A;AAGA;A;AAED;AACA;AACA;A;;;;AAKA;A;;;;;AAI6B;A;;;;;AAK7B;A;;;;;AAIA;A;;;;;;A;AAcC;AACA;AACA;A;A;AAIA;A;AAIG;;;AACH;;;;A;AAEC;A;AAED;A;AAEC;AACA;A;A;AAGA;A;AAXwC;A;AAc1C;A;;;;;;;AAIA;AACA;AACA;A;;;;;;A;AASC;A;AAGD;;AACC;A;A;AAIA;A;AAIG;AACD;A;AAEF;AACA;A;AAEC;A;A;AAGF;A;;;;;;;;;A;A;;;;;A;A;AAaC;A;AAED;AACA;AACC;AACA;;A;AACC;AACA;A;A;AAGA;A;AAED;AACA;A;A;;;;;A;A;A;;;;;A;A;A;;;;;;;;;;AAgBD;A;A;;;;;A;AAIA;;A;A;A;;;;;A;AAIC;;A;AAGC;;;;A;AAEC;A;A;AAGA;AACA;A;A;;;;;A;AAMF;AACA;AACA;;;;A;AAEC;A;A;A;;;;;A;AAKD;A;AAID;AACA;AACA;AACA;A;;;;;A;;;;;;;AAOA;AACA;;A;AAEE;A;AAED;A;AAED;AACA;AACA;AACA;A;;;;;;A;AAMC;A;A;AAIA;A;AAGA;A;AAED;AACA;AACA;AACA;A;;;;;;;;;AAOA;;AACC;A;AAED;A;A;;;;;;;A;AAIA;;;;A;AAEC;;;A;AAED;AACA;AACA;A;;;;;;;A;;;;;;A;AAUC;A;AAED;AACA;AACA;AACA;A;;;;;AAIiC;A;;;;;;;;AAajC;AAEI;A;AACF;AACA;AACA;A;A;AAKA;AACA;AACA;AACA;A;A;AAKA;AACA;AACA;AACA;A;AAGD;A;AAIE;A;AACF;AACA;A;AAGD;A;;;;;;;;;;AAoBA;;;;A;A;A;AAQG;A;AAED;AACA;A;A;;;;;;;A;A;A;AAOA;A;AAED;A;AAED;A;AAGC;A;AAEC;A;AAED;A;AAED;A;;;;;;;AAaI;AACA;AACA;AACJ;AACK;AACJ;;;;A;AAEC;A;A;AAGA;AACA;A;AAID;AACA;AACA;A;AAID;AACA;;;;;AACC;A;;AAED;AAGA;AACA;AACA;;;;;AACC;A;;AAED;AACA;A;;;;;;;AAWA;;;;AACA;A;;;;;;;;;AAQA;;;;A;AAEC;A;AAGE;;;AAAH;;A;AACC;;;;AACA;A;;;;;A;AAIE;;;AAAH;;A;AACC;;;;AACA;A;;;;;A;AAID;;A;AACC;A;AAGD;;AAEC;;;;AACA;A;A;;;;;A;AAIA;A;A;AAIA;A;A;;;;;A;;;;;;;AAUD;;;;A;AAEC;A;AAED;AACA;A;;;;;AAuBA;;;A;AAEC;A;A;AAGA;A;AAED;A;;;;;AAY6B;A;;;;;AAK7B;AACA;AACA;A;;;;;;A;AAMC;A;A;AAGA;A;AAED;;;;A;AAEC;A;A;A;AAIC;A;AAED;AACA;AACA;A;AAED;AACA;A;;;;;;AAIkC;A;;;;;AAGD;A;;;;;;;;AAOjC;;AACK;AACJ;;A;AAGC;;;;A;;AAEA;AACA;AACA;;A;AAED;AACA;A;A;A;;;;;A;AAKD;AACA;AACA;A;;;;;A;;;;;;;A;AAOC;A;AAED;;;;;A;AACC;A;AAED;AACA;AACA;A;;;;;;;;;AAMA;;A;AACC;;A;A;;;;;A;A;;;;;A;A;A;;;;;A;AASD;AACA;;A;AACI;;A;A;;;;;A;AAGH;AACA;;A;A;;;;;A;A;AAKD;AACA;A;;;;;A;;;;;;;AASA;AACA;;AACC;AACA;AACA;AACA;AACA;;A;A;AAGA;A;AAED;AACA;AACA;AACA;A;;;;;;;;;AAOA;;A;AACI;;;AAAH;;A;A;;;;;A;A;AAIG;AACJ;AACC;;A;AACI;;A;A;;;;;A;A;AAIJ;AACA;;AACC;;;;A;AAEC;A;AAED;A;A;A;;;;;A;AAKD;AACA;A;AAEC;A;A;AAGF;;A;AAEC;;A;AACC;;A;;AAEA;A;A;A;;;;;A;;;;;;;;;;A;A;A;A;A;A;A;A;A;A;A;A;A;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxrBF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;;;;A;;;;;;;;;A;;;;;;;;;AAsBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;;;;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;;;;AASA;AACA;A;;;;;;;;;A;;;;;;;;;AAUA;A;;;;;;;;;A;;;;;;;;;AAUA;AACA;A;;;;;;;;;A;;;;;;;;;AAUA;A;;;;;;;;;A;;;;AAiBA;A;;;;;;AAQA;;A;;;;;;AAgBG;;A;AACF;A;AAED;;;;;;AACA;A;;;;;AAIG;;A;AACF;A;AAED;;;;;;AACA;A;;;;;AAIG;;A;AACF;A;AAED;;;;;;A;AAEC;A;A;AAGA;A;AAGD;AACA;AACA;AACA;A;;;;;AAIG;;A;AACF;A;AAED;;;;;;A;AAEC;A;A;AAGA;A;AAGD;AACA;AACA;AACA;A;;;;;AAIG;;A;AACF;A;AAED;;;AACA;A;;;;;AAIG;;A;AACF;A;AAED;;;AACA;A;;;;;AAIG;;A;AACF;A;AAED;;;;;AAUA;AAEA;A;;;;;AAIG;;A;AACF;A;AAED;;;;;AAOA;AAEA;A;;;;;;A;AASC;A;AAED;;A;;;;;;;AAQA;;;;;;AACA;;;;AACA;;;;;;AACC;;;;;;AACA;A;A;AAGE;A;AAED;;;;A;A;;AAGF;A;;;;;AA8BA;AACA;A;;;ACnUA;AACA;AACA;AAKA;AAiBA;A;AAEC;A;AAEA;A;AAID;A;AAEC;A;AAEA;A;AAGD;A;;;;;AAuIA;AACA;AACA;AAaA;A;AAEC;A;AAEA;A;AAGD;A;AAEC;A;AAEA;A;AAGD;A;AAEC;A;AAEA;A;AAGD;A;;;;;AAOG;;A;AACF;A;AAED;;;;;AACA;;;;AACA;A;;;;;AAYA;AACA;AACA;AAaA;A;AAEC;A;AAEA;A;AAGD;A;AAEC;A;AAEA;A;AAGD;A;AAEC;A;AAEA;A;AAID;AACA;A;;;;;AAQA;A;A;AAEC;A;A;AAEA;A;AAED;;;;;;A;AAIC;AACA;AACA;A;AAGD;;;;AACA;A;;;;AAKA;AACA;AACA;AACA;A;AAEC;A;A;AAGA;A;A;AAGA;A;AAED;AACA;AACA;AACA;A;;;;;AAwBA;AACA;AACA;AACA;AACA;A;;;;;AAOG;;A;AACF;A;AAED;;;;;AACA;;;;;AACA;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnVA;A;;;;;ACdA;A;;;;;AAKA;A;;;;;AAKA;A;;;;;AAKA;A;;;;;AAKA;A;;;;;AAKA;A;;;;;AAOA;;;;AACA;AACA;A;AAEC;A;AAED;A;AAEC;A;AAED;A;;;;;AAKA;A;;;;;AAyBA;A;;;;;AAKA;A;;;;;AAKA;A;;;;;AAKA;A;;;;;AAQA;A;;;;;AAQA;A;;;;;A;AAWC;AACA;A;AAEA;AACA;A;A;AAGA;AACA;A;AAEA;AACA;A;AAED;A;;;;;A;AAOC;A;A;AAGA;A;A;AAGA;A;A;AAGA;A;A;AAOA;A;AAED;A;;;;;A;AAMC;A;A;AAGA;A;A;AAGA;A;A;AAGA;A;A;AAGA;A;A;AAGA;A;AAED;A;;;;;AAKA;A;;;;;AAMA;A;;;;;AAKA;A;;;;;A;AAQC;A;AAID;A;;;;;A;AAQC;;;;A;A;AAGA;;;;A;AAED;A;;;;;A;AAMC;A;AAED;A;;;;;AAKA;A;;;;;AAKA;A;;;;A;AAWC;;;;A;A;AAGA;;;;A;AAED;A;;;;;ACvMyC;A;;;;;AAEN;A;;;;;AAGnC;A;;;;;A;AAKC;A;AAED;AACA;A;;;;;AAMA;A;;;;;;A;AAKC;A;AAED;AACA;;AACA;AACA;AACA;AACA;A;;;;;;;A;AAKC;A;AAED;AACA;AACA;AACA;AACA;A;;;;;AAMA;A;AAKC;A;AAED;AACA;A;;;;;A;AAUC;A;AAED;;;;AACI;;;AACC;;;A;AAEF;A;AAFmB;A;AAKrB;AACA;AAPwC;A;AASzC;A;;;;AAKA;;;;AACA;AACA;A;;;;;AAc2C;A;;;;;AAEN;A;;;;;AAGrC;A;;;;;A;AAKC;A;AAED;AACA;A;;;;;AAWA;A;;;;;;A;AAKC;A;AAED;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;;A;AAKC;A;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;AAMA;A;AAKC;A;AAED;AACA;A;;;;;A;AAUC;A;AAED;;;;AACI;;;AACC;;;A;AAEF;A;AAFmB;A;AAKrB;AACA;AAPwC;A;AASzC;A;;;;AAKA;;;;AACA;AACA;A;;;;;AAc0C;A;;;;;AAEN;A;;;;;AAGpC;A;;;;;A;AAKC;A;AAED;AACA;A;;;;;AAMA;A;;;;;;A;AAKC;A;AAED;AACA;;AACA;AACA;AACA;AACA;A;;;;;;;A;AAKC;A;AAED;AACA;AACA;AACA;AACA;A;;;;;AAMA;A;AAKC;A;AAED;AACA;A;;;;;A;AAUC;A;AAED;;;;AACI;;;AACC;;;A;AAEF;A;AAFmB;A;AAKrB;AACA;AAPwC;A;AASzC;A;;;;AAKA;;;;AACA;AACA;A;;;;;AAc4C;A;;;;;AAEN;A;;;;;AAGtC;A;;;;;A;AAKC;A;AAED;AACA;A;;;;;AAWA;A;;;;;;A;AAKC;A;AAED;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;;A;AAKC;A;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;AAMA;A;AAKC;A;AAED;AACA;A;;;;;A;AAUC;A;AAED;;;;AACI;;;AACC;;;A;AAEF;A;AAFmB;A;AAKrB;AACA;AAPwC;A;AASzC;A;;;;AAKA;;;;AACA;AACA;A;;;;;AAc0C;A;;;;;AAEN;A;;;;;AAGpC;A;;;;;A;AAKC;A;AAED;AACA;A;;;;;AAMA;A;;;;;;A;AAKC;A;AAED;AACA;;A;;;;;;;A;AAKC;A;AAED;AACA;A;;;;;AAMA;A;AAKC;A;AAED;AACA;A;;;;;A;AAUC;A;AAED;;;;AACI;;;AACC;;;A;AAEF;A;AAFmB;A;AAKrB;AACA;AAPwC;A;AASzC;A;;;;;AAqB4C;A;;;;;AAEN;A;;;;;AAGtC;A;;;;;A;AAKC;A;AAED;AACA;A;;;;;AAMA;A;;;;;;A;AAKC;A;AAED;AACA;;AACA;AACA;A;;;;;;;A;AAKC;A;AAED;AACA;AACA;A;;;;;AAMA;A;AAKC;A;AAED;AACA;A;;;;;A;AAUC;A;AAED;;;;AACI;;;AACC;;;A;AAEF;A;AAFmB;A;AAKrB;AACA;AAPwC;A;AASzC;A;;;;;AAqByC;A;;;;;AAEN;A;;;;;AAGnC;A;;;;;A;AAKC;A;AAED;AACA;A;;;;;AAMA;A;;;;;;A;AAKC;A;AAED;AACA;;A;;;;;;;A;AAKC;A;AAED;AACA;A;;;;;AAMA;A;AAKC;A;AAED;AACA;A;;;;;AASA;A;;;;AAKA;;;;AACA;AACA;A;;;;;AAc2C;A;;;;;AAEN;A;;;;;AAGrC;A;;;;;A;AAKC;A;AAED;AACA;A;;;;;AAMA;A;;;;;;A;AAKC;A;AAED;AACA;;AACA;AACA;A;;;;;;;A;AAKC;A;AAED;AACA;AACA;A;;;;;AAMA;A;AAKC;A;AAED;AACA;A;;;;;AASA;A;;;;AAKA;;;;AACA;AACA;A;;;;;AAsG6C;A;;;;;AAEN;A;;;;;A;AAItC;A;A;AAGA;A;AAED;AACA;A;;;;;AAMA;A;;;;;;A;AAKC;A;AAED;AACA;;A;;;;;;;A;AAKC;A;AAED;AACA;A;;;;;A;AAKC;A;AAED;AACA;A;;;;;AAMA;A;AAKC;A;AAID;AACA;A;;;;;;AAUI;AACJ;;;;AACI;;;AACH;;;;;AACC;A;;AAED;AACA;AALwC;A;AAOzC;;;;;;AACC;;A;AACC;;A;AAED;;;A;AAEC;A;A;;AAGF;A;;;;;AAMA;;;;AACA;AACA;A;;;;;;;;;;A;;;;;;;A;;;;;;AC79BA;A;;;;;AAIA;A;;;;;AAGsC;A;;;;;AAEM;A;;;;;;AAI5C;;;AACA;A;;;;;AAIA;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A;A;A;A;A;;;A;A;A;A;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjCA;A;;;;;AAIA;A;;;;;AAIA;A;;;;;A;AAKC;AACA;AACA;A;A;;;;;AAKD;A;;;;;A;AAIA;A;;;;;A;AAIA;A;;;;;A;AAKC;A;AAED;AACA;AACA;AACA;;AACC;A;AAEC;A;AAED;A;AAED;A;AAEC;A;AAED;A;;;;;A;AAKC;A;AAED;AACA;AACA;AACA;;AACC;A;AAEC;A;AAED;A;AAED;A;AAEC;A;AAED;A;;;;;AAIA;A;;;;;A;AAKC;A;A;AAGA;A;AAED;AACA;AACA;AACI;;;AACH;AACA;A;AAEC;A;A;AAGA;A;AAED;AACA;AAVgC;A;AAYjC;A;;;;;AAIA;;;;;AACC;A;;A;;;;;A;AAMA;A;A;AAGA;A;AAED;AACA;AACA;AACI;;;AACH;AACA;A;AAEC;A;A;AAGA;A;AAED;AACA;A;AAEC;A;A;AAGA;A;AAf+B;A;AAkBjC;A;;;;;AAIA;A;A;AAEC;A;AAED;A;;;;;A;AAKC;A;AAED;AACI;;;AACH;AAD4C;A;AAG7C;A;;;;;AAIA;AACA;AACI;;;AACH;AAD0B;A;A;;;;;A;AAO1B;A;AAEG;;;AACH;AAD4B;A;AAG7B;A;;;;;AAII;;;AACH;AACI;;;A;AAEF;A;AAED;AAJkB;A;AAMnB;AARyB;A;A;;;;;AAa1B;A;;;;;AAIA;AACA;AACA;AACI;;;AACH;AAD2B;A;A;AAI3B;AACA;AACI;;;AACH;AACA;AACA;AACA;AAJ2B;A;AAM5B;A;AAED;A;;;;AAIA;A;;;;AAOA;AACI;;;A;AAEF;A;A;AAGA;A;AAEA;A;AAPsB;A;AAUxB;A;;;;A;ACtOC;A;AAED;AACA;AACA;A;;;;;A;AAmFC;A;AAED;AACA;A;;;;;AAIA;AACA;A;;;;;AAIA;AACA;A;;;;;AAIA;AACA;A;;;;;A;AAMC;A;AAEG;;;AACH;AACA;AACI;;;A;AACH;AAD0B;A;AAHF;A;AAQ1B;A;;;;;AAIA;AACI;;;AACH;AADoB;A;A;;;;;A;AAOpB;A;A;AAGA;A;AAED;AACA;A;AAEC;A;AAEG;;;AACH;AACI;;;A;AACH;AADyB;A;AAFD;A;AAM1B;A;;;;;A;AAKC;A;AAEA;A;AAED;AACI;;;AACH;AAD0B;A;AAG3B;A;;;;;AAIA;AACA;A;;;;;AAIA;AACA;AACI;;;AACH;AACA;AACI;;;AACH;AACA;AACA;;;;AAHwB;A;AAHA;A;A;AAUzB;AACI;;;AACH;AACA;AACA;;;;AAH0B;A;A;AAOzB;A;AACE;;;AACH;AACA;AACI;;;AACH;A;AACA;AACA;AAHwB;A;AAHF;A;A;A;;;;;AAazB;AACA;AACA;AACA;AAEI;;;AACC;;;AACH;A;A;AAGE;A;A;AAGA;A;A;AAGA;AACA;;AACC;A;A;AAGA;A;A;A;AAID;AACA;;AACC;A;A;AAGA;A;A;A;AAxB2B;A;AADN;A;A;AAiCzB;A;AAGD;A;;;;;AAIA;AACA;;AACC;A;A;AAGA;A;AAED;AACA;AAEA;AACA;AACA;;AACC;A;AAED;AACA;A;;;;;AAIA;AACA;;AACC;A;A;AAGA;A;AAGD;AACA;AAEA;AACA;AACA;;AACC;A;AAED;AAEA;A;;;;;AAIA;A;;;;;AAIA;A;;;;;AAIA;A;;;;;AAOA;A;;;;;AAIA;A;;;;;AAIA;AACA;AACA;AAEA;A;AAEC;A;AAEA;A;AAED;AAEI;;;AACC;;;AACC;A;AAEH;A;AAEA;A;AAED;AAPwB;A;AASzB;AAVyB;A;AAY1B;A;;;A;;;A;;;A;;;A;;;A;;;A;;;AClVA;A;;;;;;;;;;;;;;;A;A;A;A;A;A;A;A;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACyBA;AAKA;;;;;AACC;A;;AAED;;;;;AACC;A;;AAED;A;;;;AAIA;A;;;;;AAIA;A;;;;ACxDA;A;;;;;AAOA;AAIA;A;;;;;A;AAOC;A;AAED;;AACA;AACI;;;AACH;AACA;AACI;;;AACH;AACA;AAFoB;A;AAIrB;AAGA;A;AAEC;A;AAEG;;;AACH;AACA;A;AAYC;A;A;AAKA;A;AAnBmB;A;AAdM;A;AAqC5B;A;;;;AC1CA;AACA;AAEA;AACA;AACI;;;AACH;AACA;A;AAEC;A;AAED;A;AAEC;AACA;A;AAEA;AACA;A;A;AAGA;AACA;A;AAEA;AACA;A;AAnB6C;A;AAuB/C;AACI;;;AACH;AACA;A;AAEC;A;AAED;A;AAEC;AACA;A;AAEA;AACA;A;A;AAGA;AACA;A;AAEA;AACA;A;AAnBoD;A;AAsBtD;A;;;;AClEA;AACA;AACA;A;;;;;AAIA;AACI;;;AACH;AACA;AACA;AACA;AACA;AALqB;A;A;;;;;AAUtB;AACI;;;AACH;AACA;AACA;AACA;AACA;AALkB;A;A;;;;AAUnB;AACA;A;AAGC;A;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;A;;;;AASD;A;;;;;AAKA;A;;;;;AAcA;A;;;;;;;;;;;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtDA;AAMA;AACA;AACA;AACI;;;AACH;AACA;A;AAEC;AACA;A;AALoB;A;AAQlB;;;AACH;AADuB;A;AAGxB;AACA;AAEA;;AACA;;AAEA;A;;;;;AAIA;A;;;;;AAIA;A;;;;;A;AAKC;A;A;AAGA;A;AAGD;AACA;AACA;A;;;;AAIA;A;;;;;AAIA;A;;;;;A;AAKC;A;AAED;A;;;;;A;AAKC;A;AAED;A;;;;;A;AAKC;A;AAED;A;;;;;AAIA;A;;;;;AAIA;A;;;;;;AAIA;;A;;;;;A;ACvGC;A;AAED;AAEA;A;AAGC;AACA;;AACC;A;A;AAGA;A;AAEA;A;A;AAGD;A;AAGD;A;;;;;AAIA;A;;;;;AAIA;A;;;;;AAIA;A;;;;;AAIA;A;;;;;A;AAMC;A;A;AAIA;AACA;;;;;AACC;A;;AAED;A;AAED;AACA;AACI;;;AACH;AADqB;A;AAGtB;A;;;;;A;AAKC;A;A;AAGA;A;A;AAGA;A;AAGD;AACA;A;AAEC;;;;A;AAED;AACA;AAEA;AACI;;;AACH;AADiD;A;AAIlD;A;;;;;A;AAKC;A;A;AAGA;A;AAED;AACA;AACA;AACA;AACA;AACI;;;AACH;AACI;;;AACH;AADwB;A;AAFD;A;AAOzB;A;;;;;A;AAKC;A;A;AAGA;A;AAED;AACA;AACI;;;AACH;AADqB;A;AAGtB;;AACA;A;;;;;A;AAKC;A;A;AAGA;A;AAED;AACA;AACI;;;AACH;AADqB;A;AAGtB;A;;;;;;;;A;A;;;;;;;A;A;A;;;;;;;A;AAWA;AACA;AAEA;AACA;;;A;A;;;;;;;A;AAKA;;AACC;AACA;AAEA;;;A;A;;;;;;;A;AAIA;;;A;A;;;;;;;A;AAIA;;;A;A;;;;;;;A;AAIA;;;A;A;;;;;;;A;A;A;;;;;;;A;;;;;;A;AAWA;A;AAED;AACI;;;AACH;AACA;;A;A;A;AAGG;A;AAEA;A;AAED;A;A;AAGC;A;A;AAGF;;A;AACC;;AACA;;;A;AACC;A;A;AAEA;A;;AAEA;;;;A;A;AAGF;;A;AACC;;A;AACC;A;;AAEA;;;;A;A;A;AA7ByC;A;AAkC7C;A;;;;;;;;;;A;A;A;A;A;A;A;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A;;;;;ACrGA;AACA;A;;;;;;;AAUA;;;;AACA;A;AAGE;AACA;A;AAEC;A;AAED;A;AAEA;A;AAOD;;A;AACC;AACA;;;;;AACA;A;A;AAKE;A;AAID;AACA;A;AAGA;A;A;AAIA;A;AAIC;A;AAED;A;A;A;A;AAOD;;;;A;AAED;;;;AACA;A;A;;;;;;;AAsBD;AACA;A;;;;;;;;;AAYA;A;AAIC;AACA;AACA;A;AAED;AACC;;;;;AACG;;;A;A;;;;;A;AAGH;A;AAEC;A;AAIA;AACA;AACA;A;AAEC;A;A;A;A;A;AAOA;A;A;A;AAIA;A;AAIC;A;AAED;AACA;A;AAQA;A;A;A;AAIA;A;A;A;;;;;A;A;;;;;;;;AASH;AACA;AACC;;;;;AACG;;;A;AACF;A;A;AAGA;A;AAED;A;A;;;;;;AAqPD;A;AAEC;A;AAEA;A;AAEA;A;AAED;AACA;AACA;A;;;;;;;AAQA;AACA;;A;AAGI;;;A;A;;;;;;;A;A;AAOJ;AACA;AACA;AAKA;;;;AACA;;;;AAQA;AACA;AAGC;AACA;;;;;AACA;AACA;A;AAKC;A;AAED;A;AAGC;A;A;AAIC;A;A;A;;;;;;;A;A;A;AAeF;A;AAEC;A;AAED;AACA;AACA;A;A;A;;;;;;;A;AAWD;AACC;AACA;;;;;AACA;AACA;A;A;AAME;A;A;A;AAIA;A;A;A;;;;;;;A;A;A;;;;;;;;;;A;;;;;;A;;;;;;;;;AA0BH;AACA;AACA;AACC;;;;;AACA;AACA;A;A;;;;;;;A;A;AAQC;A;A;A;;;;;;;;;;;;;;A;A;A;A;A;A;A;A;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACroBF;;;;A;AAEC;A;AAED;A;;;;;;;AAMA;;;;A;AAEC;A;AAED;A;;;;;;;AAQA;;A;;;;;;;AAsBA;;;;A;AAEC;A;AAED;A;;;;;;;AAMA;;;;A;AAEC;A;AAED;A;;;;;;;AAQA;;A;;;;;;;;;;;A;A;A;A;A;A;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjGA;A;;;;;;;A;;;;;A;;;;;AAcA;A;;;;;AAIA;A;;;;;;AAWA;;A;;;;;;;AAIA;;A;;;;;;AAUA;A;;;;;AAI6C;A;;;;;;;;;;;;A;A;A;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACuB7C;A;;;;;AAKA;A;;;;;AAKA;A;;;;;;;A;;;;;A;;;;;;;;AAeA;;;;;;A;A;AAGG;AACA;A;AAED;AACA;AACA;AACA;;A;AAGD;AACA;A;AAEC;AACA;A;AAGG;;;AACH;AACA;AAFkB;A;AAInB;A;;A;;;;;;;A;;;;;AAOM;A;A;AAEN;A;AAEA;A;AAEA;A;A;;;;;;;;AAWD;;;;AAEA;;;A;AAEE;AACA;A;AAED;A;A;AAKE;AACA;AACA;AACA;A;AAED;A;AAIA;;;A;A;AAME;A;AAEA;A;AAED;A;A;AAKE;;;;;A;AAEF;AACA;A;AAED;AACA;AACA;A;AAEC;A;AAEA;A;AAEA;AACA;AACA;A;A;AAGF;A;A;;;;;;;A;;;;;;;A;A;;;;;A;AAYG;;;;;A;A;;;;;A;AAIH;AACA;AACA;A;AAEC;A;AAEA;A;A;;;;;A;A;A;;;;;;;;;;;;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvNF;;;;AAEA;;;AACC;AAAO;A;AAEN;;;;A;A;A;AAKE;AACA;A;AAED;;;;AACA;A;AAED;A;AAGC;;;;A;AAEA;;;;A;AAEC;A;A;AAGD;;;;A;A;A;A;AAKC;AACA;A;AAED;;;;AACG;A;AACF;A;AAED;A;AAED;A;AAEC;;;;AACA;A;AAED;A;AAEC;;;;AACA;A;AAED;;;;AACG;A;AACF;A;AAEC;A;A;A;A;A;AAOA;AACA;A;AAED;;;;AACA;A;AAED;A;AAEC;;;;AACA;A;AAED;;;;AACG;A;AACF;A;AAEC;A;A;A;AAKF;;;;A;A;A;AAIA;AACA;A;AAED;AAtFsB;A;A;;;;;;;A;;;;;;;;AA8FvB;;;;AACA;;AACC;AAGA;;A;AACC;A;;AAIA;;;A;A;AAME;AACA;A;A;AAMF;;;;;;;A;AACI;AAAH;;A;AACC;A;A;A;AAGE;AAAH;;A;AACC;A;A;A;AAGE;AAAH;;A;AACC;A;A;A;AAGE;AAAH;;A;AACC;A;A;A;AAGE;AAAH;;A;AACC;A;A;A;AAGD;;A;AACC;A;AAEE;AAAH;;A;AACC;A;A;A;AAGF;AACA;A;A;AAIA;AACA;A;AAED;AACA;AA3DsB;A;AA8DvB;A;A;AAGG;AACA;A;A;A;AAIA;AACA;A;AAED;AACA;A;AAED;AACA;AACA;AA9EsB;A;AAiFvB;A;AAEE;AACA;A;AAED;AACA;AACA;AAxFsB;A;A;A;;;;;;;A;;;;A;AAiGtB;A;A;;ACrMD;A;;AAIA;A;;;;AAeA;A;;;;;;;;AAIA;;;;AACA;;AACC;AACA;;A;AACC;;;;AACA;A;AAGD;;A;AACC;;A;A;A;;;;;;;A;AAKC;;;;AACA;A;AAED;AACA;AACA;AAEA;;;;;A;AACC;AArBoB;A;A;A;AAwBpB;;A;A;A;;;;;;;A;AAIC;;;;AACA;A;AAED;A;AAEC;AAjCmB;A;A;A;A;AAqCpB;AArCoB;A;A;A;AAwCpB;AAxCoB;A;A;A;AA2CrB;;;;AACA;A;A;AAID;;;A;AACC;;;;A;A;AAGA;;A;AACC;;;;AACA;A;AAED;;;;A;;AAGA;;A;AACC;AACA;;;;AACA;A;AAED;;A;A;A;;;;;;;A;AAIC;;;;AACA;A;AAED;AACA;AACA;AACA;;;A;AACC;A;A;AAEA;A;;AAEA;AACA;A;A;AAGA;A;A;A;AAIH;A;A;;;;;;;A;AAIC;AA3FsB;A;A;;;;;;;A;;;;;AAmGvB;A;;;;;;;;AAIA;;;;AACA;;AACC;AAGA;;A;AACC;A;;AAIA;;;A;A;AAME;AACA;A;A;AAcF;;;;;;;A;AACI;AAAH;;A;AACC;A;A;A;AAGE;AAAH;;A;AACC;A;A;A;AAGE;AAAH;;A;AACC;A;A;A;AAGE;AAAH;;A;AACC;A;A;A;AAGE;AAAH;;A;AACC;A;A;A;AAGD;;A;AACC;A;AAEE;AAAH;;A;AACC;A;A;A;A;A;AAQA;AACA;A;AAED;AACA;AACA;AACA;AACA;A;AAED;AACA;A;A;A;AAKC;AACA;A;AAED;AACA;AACA;AACA;AACA;A;AAEA;AACA;A;AAED;AACA;AA3FsB;A;AA8FvB;A;A;AAGG;AACA;A;AAED;AACA;AACA;AACA;AACA;A;AAEA;AACA;A;AAED;AACA;AACA;AA/GsB;A;AAkHvB;A;A;AAGG;AACA;A;AAED;AACA;AACA;AACA;AACA;A;AAEA;AACA;A;AAED;AACA;AAlIsB;A;A;A;A;AAuIrB;A;AAEA;AACA;AACA;AACA;AACA;A;A;A;;;;;;;A;;;;;;;;AC1QF;;;;AAEA;;AACQ;AACP;;;;;A;AACC;;;;A;A;AAGA;;;;A;A;A;AAIC;A;AAEA;A;AAED;AAEA;;A;A;AAEE;AACA;A;AAED;;;;AACA;A;AAED;AAEA;;;;;;A;AACC;;;;AACA;A;A;AAEA;AACA;A;A;AAEA;;;;AACA;A;A;AAEA;AACA;A;A;AAEA;A;;AAEA;;;;AACA;A;A;AAED;;;;AACG;A;AACF;A;AAEC;A;A;A;A;AAKF;;;;A;;AAGA;;;;A;A;AAEF;A;AAEE;AACA;A;AAED;AA/DsB;A;A;;;;;;;A;;;;;;;;;AAuEvB;;;;AAEA;;AACC;AAGA;;A;AACC;A;;AAIA;;;A;A;AAME;AACA;A;A;AAMF;;;;;;;A;AACI;AAAH;;A;AACC;A;A;A;AAGE;AAAH;;A;AACC;A;A;A;AAGE;AAAH;;A;AACC;A;A;A;AAGE;AAAH;;A;AACC;A;A;A;AAGE;AAAH;;A;AACC;A;A;A;AAGD;;A;AACC;AACA;A;AAEE;AAAH;;A;AACC;A;A;A;AAGF;AACA;A;AAGF;A;AAEE;AACA;A;AAED;AACA;AA7DsB;A;AAgEvB;AACC;AACA;A;AAEC;AACA;A;A;AAGA;A;AAEA;A;A;AAGA;A;AAEA;A;AAED;AAjFsB;A;A;A;;;;;;;A;;;;;;;;;;;;;;;;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzEvB;;;;AAEA;;AACQ;AACP;;;A;AACC;;;;A;A;A;A;AAKE;AACA;A;AAED;;;;AACA;A;AAED;AACA;AACA;;;A;AACC;AAEA;;;;A;AACC;A;A;AAEA;A;A;AAEA;A;;AAEA;A;A;A;A;AAGD;A;;AAEA;A;A;AAGA;A;AAEC;A;A;AAGH;AACC;A;AAEC;A;A;;AAID;;;;AACA;A;A;A;AAIA;AACA;A;AAED;AAtDsB;A;A;;;;;;;A;;;;;;;;;AA8DvB;;;;AACA;;AACC;AAGA;;A;AACC;A;AAGC;AACA;A;AAED;AACA;AAZqB;A;A;;AAiBrB;;;A;A;AAME;AACA;A;A;AAMF;;;;;;;;A;AACI;AAAH;;A;AACC;A;A;A;AAGE;AAAH;;A;AACC;A;A;A;AAGE;AAAH;;A;AACC;A;A;A;AAGE;AAAH;;A;AACC;A;A;A;AAGE;AAAH;;A;AACC;A;A;A;AAGE;AAAH;;A;AACC;A;A;A;AAGE;AAAH;;A;AACC;A;A;A;AAGF;AACA;A;AAGF;A;AAEE;AACA;A;AAED;AACA;AACA;AAtEsB;A;A;A;;;;;;;A;;;;A;AA+EtB;A;A;;;;;;;;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/HD;;;;AAEA;;AACQ;AACP;;;;A;AACC;;;;A;A;AAMA;;;;A;A;AAGA;;A;A;AAEE;AACA;A;AAED;;;;AACA;A;AAED;AAEA;;;;A;AACC;A;A;AAEA;A;A;AAEA;;A;A;AAEE;AACA;A;AAID;;;;AACA;A;AAED;AACA;;A;AACC;;;;AACA;A;AAED;AACA;;A;AACC;;;;AACA;A;AAED;AACA;AACA;;A;AACC;;;;AACA;;AACC;A;AAEC;A;AAEA;A;A;AAGF;AACA;AACA;A;AAED;A;AAEC;A;AAEA;;;;A;AAED;A;;AAEA;;;;AACA;A;A;AAED;;;;AACG;A;AACF;A;AAEC;A;A;A;;AAKF;;;;A;A;AAGF;A;AAEE;AACA;A;AAED;AA3FsB;A;A;;;;;;;A;;;;;;;;;;AAsGvB;;;;;;AACA;;AACC;AAGA;;A;AACC;A;;AAIA;;;A;A;AAME;AACA;A;A;AAMF;;;;;;A;AACI;AAAH;;A;AACC;A;A;A;AAMD;;A;AACC;AACA;A;AAEE;AAAH;;A;AACC;A;A;A;AAGE;AAAH;;A;AACC;A;A;A;AAGE;AAAH;;A;AACC;A;A;A;AAGE;AAAH;;A;AACC;A;A;A;AAIF;;A;AACC;;;A;AACC;;;;AACA;;AACC;A;AAEC;A;AAEA;A;A;AAGF;AACA;AACA;A;A;AAEA;AACA;A;A;AAGF;AACA;A;AAGF;A;AAEE;AACA;A;AAED;AACA;AAhFsB;A;AAmFvB;A;AAEE;AACA;A;AAED;AACA;AACA;AA1FsB;A;AA6FvB;A;AAEE;AACA;A;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAzGsB;A;A;A;;;;;;;A;;;;A;AAkHtB;A;A;;ACjPD;A;;AAIA;A;;;;AAWA;A;;;;;;;;AAIA;;;;AAEA;;AACC;AACA;;A;AACC;;;;AACA;A;AAGD;;A;AACC;;A;A;AAEE;AACA;A;AAED;AACA;A;AAED;A;AAEA;;;;;A;AACC;AAnBoB;A;A;A;AAsBpB;AAtBoB;A;A;A;A;AA0BnB;AACA;A;AAED;AACA;AA9BoB;A;A;A;AAAA;A;A;;AAmCpB;AACA;A;A;A;AAIF;;A;AACC;;;;A;;AAEA;;A;A;AAEE;AACA;A;AAED;;;;AACA;A;AAED;AACA;AACA;;A;A;;AAEU;AAAH;;A;AACN;AACA;;A;AACC;A;A;A;A;AAKD;A;AAED;A;AAGF;A;AAEE;AACA;A;AAED;AAzEsB;A;A;;;;;;;A;;;;;AAiFvB;A;;;;;;;;AAIA;;;;AACA;;AACC;AAGA;;A;AACC;A;A;AAGE;AACA;A;AAED;AACA;AACA;AAboB;A;A;A;AAiBnB;AACA;A;AAED;AACA;AACA;AACA;A;AAEA;AACA;A;AAED;AACA;AA7BqB;A;A;AAmCtB;;;A;A;AAME;AACA;A;A;AAMF;;;;;;A;AACI;AAAH;;A;AACC;A;A;A;AAGE;AAAH;;A;AACC;A;A;A;AAGE;AAAH;;A;AACC;A;A;A;AAGE;AAAH;;A;AACC;A;A;A;AAGE;AAAH;;A;AACC;A;A;A;AAIH;A;A;AAKG;AACA;A;AAED;AACA;AACA;A;AAED;AACA;AAED;AACC;AACA;AACA;;A;AACC;A;A;A;AAIC;AACA;A;AAED;AACA;AACA;AACA;A;AAEA;AACA;A;AAED;AACA;AACA;AA1GsB;A;A;A;;;;;;;A;;;;;;;;;;;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtGvB;;;;;;AAEA;;AACQ;AACP;;;A;AACC;;;;A;A;AAGA;;A;A;AAEE;AACA;A;AAED;;;;AACA;A;AAED;AAEA;;;;A;AACC;A;A;AAEA;A;A;AAEA;;;;AACA;A;;AAEA;;;;AACA;A;A;AAED;;;;AACG;AAAH;;A;AACC;;A;A;AAIC;;;;;A;AACC;AACA;A;A;AAEA;AACA;A;A;AAEA;AACA;A;A;AAEA;AACA;A;A;A;AAGF;A;AAEC;A;A;A;;AAKF;;;;A;A;AAGF;A;AAEE;AACA;A;AAED;AA9DsB;A;AAiEvB;A;AAEE;AACA;A;AAED;AAtEsB;A;A;A;;;;;;;A;;;;;;;;;AA+EvB;;;;AACA;;AACC;AAGA;;A;AACC;A;AAEC;AACA;A;AAED;AACA;AAXqB;A;A;;AAgBrB;;;A;A;AAME;AACA;A;A;A;AAKH;;A;AAGC;;;;;;;;;A;AACI;AAAH;;A;AACC;A;A;A;AAGE;AAAH;;A;AACC;A;A;A;AAGE;AAAH;;A;AACC;A;A;A;AAGE;AAAH;;A;AACC;A;A;A;AAGE;AAAH;;A;AACC;A;A;A;AAGE;AAAH;;A;AACC;A;A;A;AAGE;AAAH;;A;AACC;A;A;A;AAGE;AAAH;;A;AACC;A;A;A;AAGF;AACA;A;AAGF;A;AAEE;AACA;A;AAED;AACA;AACA;AA3EsB;A;A;A;;;;;;;A;;;;A;AAoFtB;A;A;;;;;;;;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;;;;;;;;;;;;;;;;;;;;;;A;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A;;;;;;A;;;;;;;;;A;;;;;A;;;;;;;ACzI6B;A;;;;;;;;AAM9B;;;;A;AAEC;A;AAED;A;;;;;;;AAOA;;;;A;AAEC;A;AAED;A;;;;AAqMA;A;;;;;;;AAMA;;A;AAGE;AACA;A;AAGD;;;A;AAIC;AACA;A;A;AAKA;AACA;A;AAID;AACA;A;A;;;;;A;;;;;;;;AAMD;;AAEI;A;A;AAED;AACA;A;AAED;AACA;AACA;AACA;A;AAIE;;A;A;AAED;AACA;A;AAED;AACA;AACA;A;A;AAKA;AACA;A;A;AAKA;AACA;A;AAED;AACA;AACA;AACA;AACA;A;A;;;;;;;A;;;;;;;;;A;A;A;;;;;;;;;;ACjUD;A;;;;A;AAQC;A;AAED;A;;;;;;A;A;;;;;A;AAUA;A;;;;;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACXI;AACA;AAGJ;A;AAEC;AACA;AACA;A;AAED;;AACC;AACA;;A;AACC;AACA;A;AAED;AACA;AACA;;A;AACC;A;AAED;AACA;;A;A;A;AAMG;A;AAED;A;A;AAKA;A;AAEA;A;AAEA;A;AAED;A;AAEE;AAAH;;;A;AACC;AACA;A;A;A;;AAES;AAAH;;;A;AACN;AACA;A;A;A;;AAES;AAAH;;A;AACN;AACA;A;A;A;AAED;AACA;AAED;AAEC;A;A;;;;;;;A;AAOA;AAKA;AACA;AAGG;A;AACF;AACA;AACA;A;A;A;;;;;;;A;;;;;AAkCF;A;;;;;AA6FA;A;;;;;AAOA;A;;;;;;;A;;;;;A;;;;;AAYA;;;;A;AAEC;A;A;A;AAIA;A;AAEA;A;AAEA;A;AAED;A;;;;;AASA;A;;;;;;;;A;A;A;;;;;;;A;A;;;;;;;A;A;A;A;;;;;;;A;A;AAgBE;AACA;A;AAEA;AACA;A;A;;;;;;;A;AAMD;A;AAGG;AACA;;;;AACJ;;A;AAEE;A;AAEC;A;AAED;;;;A;A;AAGE;A;AAEC;A;A;AAIA;;;;A;A;AAGD;AACA;A;A;AAGC;A;AACF;;;;A;A;AAID;;;;;;A;AAEA;AACA;A;A;AAGA;AACA;A;AAED;AACA;A;A;;;;;;;A;;;;AAMD;A;;;;AAUA;A;;;;;;;;A;A;A;;;;;;;A;AAQC;;;;AACA;AACA;A;AAGD;;;;AACA;;AACC;A;AAIC;A;AAIA;;;A;A;AAME;AACA;A;A;A;A;A;AAOD;AACA;A;AAED;AACA;AACA;A;A;AAGC;AACA;A;AAED;;;AACA;AACA;AACA;AACA;AACA;A;AAED;A;A;AAII;;;AACH;;;;AADqB;A;A;A;;;;;;;A;;;;;;;;;;;;;;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;;;;;;;;;;;;ACnZnB;;;AACC;;;;;;AACH;AADuC;A;AADlB;A;A;;;;;;AAUvB;AACA;AACC;A;AAEC;A;AAED;;;;;A;AACC;A;AAED;;;A;AACC;A;AAED;AACA;A;A;;;;;;AAKD;AACA;AACA;AAGI;;;AACH;AAD8B;A;AAK3B;;;AACH;AACA;AAFwB;A;A;;;;;;AAYzB;;;A;AACC;A;AAGD;;;A;AACC;AAEA;;;A;AACC;A;A;A;;;;;;;;AAaF;AACA;;A;AAEC;AACA;AACA;AACA;A;AAED;AASA;AACA;;;;AAEA;;;;;AAAoC;A;AAEpC;AACA;AACC;;;;;AAAqC;A;AAErC;;;;;AAAsC;A;A;AAGrC;A;AAGD;AACA;AACA;A;AAID;AACA;;A;AAEC;AACA;;;A;AACC;AACA;AACA;A;AAED;;;A;AACC;AACA;A;AAKD;;;A;AACC;AACA;AACA;A;AAGD;A;AAED;;A;AAKC;AACC;;;;;AAAuC;A;AAEvC;;;;;AAAoC;A;A;AAGnC;A;AAGD;AACA;AACA;A;A;AAIF;A;;;;;A;;;;;AAKA;;AACC;;A;AACC;AACA;A;AAED;AACA;;;;AAGA;;A;AACC;AACA;A;;AAEA;AACA;A;A;AAGF;;A;AAGK;;;AACH;;;A;AACC;A;AAFqB;A;AAKvB;A;A;;;;;;AAQD;;AACA;A;;;;;;AAMI;AACA;;;AACH;AADkB;A;AAGnB;A;;;;A;;;;;;;;;;;;;;;;;A;A;A;A;A;A;;;;;;;;;;;;;;;;;;;;;;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpMA;A;;;;;A;A;AAMC;A;AAEA;A;AAEA;A;AAEA;A;AAED;A;;;;ACnBA;A;;;;;AAgCA;AACI;A;AAEH;A;AAEA;A;AAEA;A;AAED;A;;;;;AAIA;A;;;;;A;A;AAMC;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;A;;;;ACrED;AACA;AACA;AACA;;;;;AACC;A;;AAED;A;;;;;AAQA;A;;;;;AAIA;A;;;;;AAIA;A;;;;;AAIA;A;;;;;A;A;AAMC;A;AAEA;A;AAEA;A;AAEA;A;AAED;A;;;;;AAiFA;A;;;;;AAIA;AACA;;;;;AACC;A;;AAED;A;;;;;AAIA;A;;;;;AAIA;A;;;;;AASA;A;;;;;AAIA;A;;;;;A;AAKC;A;AAED;A;;;;;;;;;;;;;;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;;;;;;;;;;;;;;;;;A;A;A;A;A;A;;;;;;;;;;;;;;;;;;;;;;;A;A;A;A;A;A;A;A;A;A;A;A;;;;;;;;;;;;;;;;;;;;A;A;A;A;A;A;A;A;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3HA;A;;;;;;AAKA;AACA;AACA;A;;;;;AAQI;AACJ;AACA;;AACC;AACA;AACA;AACA;AACA;A;AAGD;AACA;A;;;;;AAQA;AACA;;A;A;AAEE;A;AAED;;A;AACC;;;;;AACA;AACA;AACA;AACA;AACA;AACA;A;AAED;;A;AACC;;;;;AACA;AACA;AACA;AACA;AACA;A;AAEC;AACA;A;AAED;A;A;A;A;AAKA;AACI;;;A;AAEF;AACA;A;AAH6B;A;AAM/B;A;AAED;AACA;AACA;AACA;A;A;;;;;;;;AAWD;AACI;AACA;AACJ;AACA;A;AAGC;AACI;AACJ;;;;A;AAEC;AACA;A;AAED;A;AAED;AACA;AACA;A;AAEC;A;AAED;;;AACA;A;;;;;;;AAMA;;;;A;;;;;;;;AAK0C;;;;A;;;;;;;;AAIE;;;;A;;;;;;;;AAI5C;;;;AACA;A;;;;;;;;AAKA;;;;AACA;A;;;;;;;;AAKA;;;;AACA;A;;;;;;;;AAKA;;AACA;;AACA;A;;;;;;;;AAKA;;AACA;;AACA;A;;;;;;;;AAKA;;AACA;;AACA;A;;;;;;;;AAKA;AACA;AACA;A;;;;;;;AAKA;AACA;AACA;A;;;;;;;AAKA;AACA;AACA;A;;;;;;;AAKA;AACA;AACA;A;;;;;;AAsEA;;AACA;;AACA;A;;;;;;;AAKA;;AACA;;AACA;A;;;;;;;AAKA;;AACA;;AACA;A;;;;;;;;;A;A;A;A;A;A;A;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxSA;AACA;AAEA;A;;;;AAKA;A;;;;;;AAKA;;A;AACC;A;AAGD;AACA;AAEI;;;AACH;;;A;A;AACC;A;AAED;AAJwB;A;AAOzB;A;;;;;;;AA6BA;;;;;AACC;A;;A;;;;;;;;AAMD;AAEA;;A;AACC;A;AAGG;;;A;A;AAEF;A;AAGD;AAL6B;A;A;;;;;;;;AAW9B;AAEA;;A;AACC;A;AAGG;;;A;A;AAEF;A;AAGD;AAL6B;A;A;;;;;;;AAc9B;AAEA;A;AAEC;A;A;AAIA;A;AAGD;A;;;;;;AAOA;AAEI;;;AACH;;;A;A;AACC;A;AAED;AAJ8B;A;A;;;;;;;AAU/B;AAEA;;;;;A;A;AAEE;A;AAED;A;;A;;;;;AAMG;;;AACH;AADoB;A;A;;;;;;AAOjB;AACA;;;A;AAEF;A;A;AAIA;A;AAEA;A;AARyB;A;AAY3B;;A;;;;;;AAKA;A;;;;;AAKA;AAEI;AACA;;;AACH;AADyB;A;AAI1B;A;;;;;;AAKA;;A;AACC;A;AAGD;A;;;;;;A;AAMC;A;A;AAIA;A;AAGG;;;AACH;AACA;A;AAGC;A;AAL2C;A;AAS7C;A;;;;;;AAKA;;A;AACC;A;AAGG;AAEA;;;AACH;AACA;;;A;AACC;A;AAH4C;A;AAO9C;A;;;;;;;;A;A;A;;;;;;;;;;;;;;;;;;;;;;;;;;AC1LA;A;;;A;AAaC;A;AAGD;A;;;;AAOA;;;A;AACC;A;AAEA;A;AAGD;;;;;A;;;;;AAOA;;A;AACC;A;AAGD;A;;;;;ACnGA;A;AAEC;A;AAGD;AAEA;AACI;;;AACH;;AACA;AAF2B;A;AAK5B;A;;;;A;AAMC;A;AAGD;AACA;AAEA;A;;;;AAIA;AAEA;AACI;;;AACH;AACA;AAFiC;A;AAKlC;A;;;;;AAKA;A;;;;AAKA;AACA;AAEA;AAEI;;;AACC;;;A;AAEF;AACA;AAEA;A;AALyB;A;AADD;A;AAW3B;A;;;;AAKA;;A;AACC;A;AAGD;AAEA;;AACC;AACA;;AAGA;AAGA;A;AAGD;A;;;;AAKA;AACA;AAEA;A;AAEC;A;AAGD;AAEI;;;A;AAGF;A;AAEA;A;AAEA;A;AAPwB;A;AAW1B;A;;;;AAIA;AACA;AAEI;;;A;AAEF;A;AAGD;AAL8B;A;A;AAS9B;A;AAEA;A;AAGD;A;;;;;AA8BI;AACA;A;AAGH;AACA;A;AAEA;AACA;A;AAGD;AACA;AAEI;;;A;AAEF;A;AAF2B;A;AAMzB;;;A;AAEF;A;AAFqC;A;AAMvC;A;;;;;ACvLA;;AACA;AAGA;;AAGA;;AAWA;AACA;AAEA;A;;;;;;AAQA;;A;AACC;A;AAGD;AAEI;;;AACH;AACA;AAFuB;A;AAKxB;A;;;;;;;A;A;A;A;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A;ACsDC;AACA;AACA;A;AAEC;A;AAEA;A;AAED;A;AAEC;AACA;AACA;AAIA;;;;;;A;AAEE;A;AAEA;A;A;;AAGF;;;;;;A;AAEE;A;AAEA;A;A;;A;A;AAKJ;AACA;AACA;A;;;;;;AAIA;;A;AACK;A;AAEH;A;AAED;AACA;AACA;A;AAED;A;;;;;;;A;AAUC;A;A;AAGA;A;A;AAKA;A;AAGD;AAGA;AACI;;;AACH;AACA;A;AAEC;A;AAED;AACA;AAEA;;A;AATsB;A;A;AAatB;AACA;AACI;AACJ;;;;;;AACC;AACA;AACA;AAGA;AAEA;A;;AAED;AA1BsB;A;AA6BvB;AACA;A;;;;;;;;;;AAMA;A;AAEC;A;AAGD;AAGA;A;AAEC;A;AAID;AACA;A;AAEC;A;AAGD;AACA;AACA;AAEI;;;A;AAEF;A;AAGC;AACA;AACA;A;AAGC;A;AAED;A;A;A;AAKD;A;AAED;A;AAEC;A;AArB4B;A;AAwB9B;A;;;;;;AAIG;A;AACF;A;AAED;AACA;A;;;;;AASA;A;;;A;AAOC;A;AAED;AACA;AACA;AACI;;;AACH;AACA;AAFoB;A;A;;;AAUrB;AACA;AACA;;;;;;A;AAEE;A;A;;AAGF;A;;;;;AAQA;;A;A;AAEE;A;AAID;;A;AAEC;;;A;AACC;A;AAEA;;A;;AAEA;AACA;A;A;AAED;AACA;AACA;A;A;AAKF;AAGA;;A;AACC;A;;AAEA;A;AAED;AACA;A;;;;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;A;AAKC;A;AAGD;A;AAEC;A;AAID;A;AAEE;A;AAED;AACA;;A;A;AAEE;A;A;AAGA;A;AAED;;A;A;AAIE;AACA;A;AAED;;A;AACI;;A;AACF;A;AAED;A;AAED;A;A;A;AAKD;AACA;AACA;AACA;AACA;A;AAED;AACA;AACA;AACA;AACA;A;AAEC;A;A;AAMG;;;;A;AACF;AACA;A;A;AAGF;;A;A;AAKE;A;AAEA;A;A;AAOI;A;AAEH;A;AAEA;A;AAEG;A;;A;AAEF;AAGA;AACA;AAEA;A;AARiC;A;A;AAYlC;AACA;A;A;AAKD;A;AAEC;A;A;AAGF;;A;AAEI;;A;AACF;A;AAED;A;A;;AAGD;;A;AACC;A;AAEC;A;AAED;AACA;;A;AACI;;A;AACF;A;AAED;A;A;AAGF;A;AAEC;A;A;A;A;;;;;;;AAOH;AACA;AACA;A;;;;;;AAIA;;A;AACC;;AACA;A;A;;;;;;;;A;AASA;A;AAED;AACA;AACA;A;;;;;;;;;;A;A;;;;;A;AAOA;AACA;;AACC;AACA;;A;A;;;;;A;A;A;;;;;A;;;;;;;A;AAUA;A;AAED;AACA;AACA;;A;AACC;AACA;AACA;A;AAED;AACA;A;;;;;;;;AAIA;AAGA;;;;;;A;AACC;AACA;AACA;A;A;AAEA;AACA;AACA;A;A;AAEA;AACA;AACA;AACA;AACA;AACA;A;A;AAEA;AAGA;AACA;AACA;AACA;A;A;AAHA;AACA;AACA;AACA;A;;A;;;A;A;A;;A;;;;;;AAQD;AACA;AACA;A;A;AAGC;A;AAEA;AACA;AACA;A;AAEA;AACA;;;;;AACC;A;;AAED;;;;;AACC;A;;AAED;AACA;;;;AACA;;;;AACA;AACA;AACA;AACA;AACA;A;A;;;;;;A;AAMA;A;AAED;AACA;A;AAEC;A;AAEE;A;AACF;A;AAED;AACA;A;;;;;;;AAgBI;AACD;;A;AACF;A;AAED;A;;;;;;AAUA;AACA;;;;A;AAEC;A;AAED;AACA;AACA;A;;;;;;;;;A;;;;;A;;;;;;;;;A;;;;;A;;;;;;;AAoCA;;A;;;;;;;AAKA;;A;;;;;;;AAOG;;;AAAH;;A;AAEC;AACA;AACA;A;;AAGA;A;A;;;;;;ACrtBD;AACA;A;;;AAIA;AACA;A;;;AAKA;A;;AA0BA;A;;;;;A;AAQC;A;A;AAMA;AACA;AACA;A;AAMD;AAGA;AACA;AACA;AACA;AAEA;AAgBC;AAEA;AACI;AACJ;AACC;AACA;AACA;AACA;AACA;;A;AACC;A;AAED;AACA;AACA;AACA;AAEA;A;AAGC;AACA;A;AAED;A;AAMD;AAUA;AAMC;AACA;AACA;AAGA;AACA;AACA;AACA;;A;AACC;A;AASD;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;A;AAEC;AACA;AACA;AACA;A;A;A;AAKJ;A;AAEE;A;AAED;AACA;AACA;AACA;A;;;;;AAIA;;;;;AACC;A;;AAED;A;;;;AAOA;A;AAEC;A;A;AAKA;AACA;AACA;AAEA;;;;;A;AAEE;A;A;;AAGF;A;AAID;A;AAEC;A;AAID;AACA;A;AAEC;A;AAED;AACA;;;;;A;AAEE;A;A;;AAMF;A;AAEC;A;AAID;AACA;AACA;;;;;A;AAEE;A;A;;AAGF;A;;;;;AAMA;AAEA;A;AAIC;A;A;;;;;AAYD;AACA;AACA;;;;;AACC;A;;A;;;;;ACnPD;A;AAGC;A;AAED;A;AAGC;A;AAED;A;AAEC;AACA;A;AAED;A;;;;;A;AAMC;A;AAED;A;;;;;AAKA;A;;;;;AAKA;A;;;;;AAOA;A;;;;;AAOA;A;;;;;AAOA;AACA;A;;;;;AASA;AACA;AACA;AACA;A;AAEC;A;A;AAWA;AACA;AACA;A;AAiBD;;AACC;A;AAGD;AACA;A;;;;;;AAUA;AACA;A;AAEC;A;AAED;AACA;AAGD;AACC;AACA;;A;AACC;A;AAGD;AACA;A;;;;;;AAOA;AACA;A;AAEC;;;;AACA;A;AAED;A;;;;ACzFA;A;;;;AAYA;AACA;;;;;;;;AACA;A;;;;;;A;AAKC;AACA;A;AAED;AACA;;AACC;AACA;A;AAEC;A;AAEA;A;AAED;A;AAED;AACA;AACA;A;;;;;;;;A;AAKC;A;AAED;;;A;;;;;;;;A;AAKC;A;AAED;AACA;AACA;;A;AACC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;AACC;AACA;A;AAED;A;A;;;;;;;;A;AAMA;A;AAED;A;AAEC;AACA;A;AAED;;AACC;AACA;AACA;AACA;A;AAED;;A;AACC;A;AAED;AACA;A;;;;;;;AAgBA;;;;;AACC;A;;AAMD;AAEA;AACA;;;;;AACC;A;;AAGD;AACA;;;;;AACC;A;;AAED;AAEA;AACA;AACA;AACI;;;AAGH;A;AAEC;AALiC;A;A;A;AAUjC;AACA;AACA;AACA;AACA;;AACC;A;AAEC;A;AAED;AACA;AACA;AACA;AACA;AACA;A;A;AAGD;;AACC;A;AAEC;A;AAED;AACA;AACA;AACA;AACA;AACA;A;A;AAIA;AACA;AACA;AACA;AACA;AACA;A;A;AAGF;AACA;;AACC;AACA;AACA;AAHiB;A;AAMlB;AACA;AAzDkC;A;AA4DnC;A;;;;;;;AAKA;AACA;;AACC;A;AAED;AAKA;A;;;;;A;;;;;AAUA;A;;;;;A;AAWC;A;A;AAGA;A;AAED;A;;;;;;A;AAKC;A;AAED;AACA;AACA;;A;AACC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;AACC;AACA;A;AAED;A;A;;;;;;;;A;AAWA;A;AAEG;A;AAEH;A;AAED;AACA;AACA;AACA;AAEI;;;AACH;AACA;AAF4B;A;AAK7B;AACA;AACK;AACJ;A;AAEC;A;AAED;A;AAGA;;;;A;AACC;AACA;AACA;A;A;AAEA;AACA;AACA;A;A;AAEA;AACA;AACA;A;A;A;A;;;;;;;;A;AAOD;A;AAEG;A;AAEH;A;AAED;AACA;AACA;AACA;A;;;;;;;;A;AAKC;A;AAGG;A;AAEH;A;AAED;A;;;;;;;;A;AAUC;A;AAGD;AACA;;;;AAEI;AACJ;;;A;AAMK;;;AAEH;AAFiE;A;AAI9D;;;AAEH;AAF6C;A;A;AAQ3C;AACA;AACA;AAGA;AAIJ;AACA;AACA;;;A;AAGC;AACA;AACA;A;AAID;;A;AACC;AACA;AACA;A;AAID;;A;AACC;A;;AAEA;A;AAID;A;;;;;;;;A;AAUC;A;AAGD;AACA;;;;AAIA;AACA;AACA;;;AAGG;;;AAAH;;A;AACC;AACA;AACA;A;AAID;AAGA;A;;;;;;;;;;AAQA;;;;;AACC;A;;AAED;;;;;AACC;A;;AAGD;;;;;A;A;AAEE;AACA;;A;AAED;AACA;A;AACA;A;AACA;A;;AAID;AACA;;AACC;A;AAGD;AACA;;AACC;A;A;AAKA;AACA;A;AAED;AACA;AACA;A;;;;;;;A;AAOC;A;AAED;;;;;AACC;;A;AACC;AACA;;A;AAGD;AACA;AACA;AACA;AACA;;A;AACC;AACA;A;AAGD;AACA;AACA;AACA;AACA;;A;AACC;AACA;A;A;;A;;;;;;;AAUF;AACA;AACA;AACA;A;;;;;;;A;AAQC;A;AAID;;;;;AACC;A;;AAID;AAEA;AAKA;AAII;AAIJ;AACA;AACA;;;AAGG;;;AAAH;;A;AACC;AACA;AACA;A;AAID;AACA;AACA;AACA;;;;;AAEC;AACA;AACA;AACA;;A;AACC;;A;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;AACC;;A;AAED;A;AAEC;A;AAED;A;;AAED;AACA;A;;;;;;AAOA;AACA;;;;;AACC;A;;A;;;;ACxoBD;AACA;A;;;AAG4B;A;;;AAG5B;A;;;AAKA;AACA;AACI;AACA;;;AACC;AACA;AACJ;A;AAGC;AACA;AACA;A;AAGA;AACA;AACA;A;AAGA;AACA;AACA;A;AAGA;AACA;A;A;AAED;AAxB2B;A;AA0B5B;A;;;AAIA;AACA;AACA;;;;;AACC;A;;AAED;A;;;;AAOI;AACJ;;;;;;A;AAEE;A;A;;AAGF;A;;;;;A;AAoBC;A;AAED;AACA;AACA;A;AAKC;A;AAOG;AAKA;AAEA;;;AAGH;AAMA;A;AAEC;A;AAXuC;A;AAgBzC;AAEA;AACA;AACC;A;AAMC;AACA;AACA;AACA;A;AAGD;A;AAGC;AACA;AAEA;AACA;A;AAKA;AAEA;AACA;A;AAGE;A;A;AAOD;A;AAED;AACA;A;AAGA;;AACC;A;A;A;A;AAQF;A;AAGD;AACA;AACA;AACI;;;AAGH;AACA;AAJgC;A;AAMjC;A;;;;;;AAMA;AACA;;;;;;AACC;AACA;;A;AACC;;A;AAMD;AAEA;AACA;;;;;AACC;AACA;A;;AAED;A;;A;;;;;;;;A;AAaA;A;AAED;AAEA;AAEA;;;;;;A;AAEE;AACA;A;AAEA;AACA;A;A;;AAGF;AAEA;A;AAIC;;;;;;AAEC;A;;AAED;A;AAED;AAGA;AAEA;A;;;;;;;;AAMA;AACA;A;;;;;;AAG8B;A;;;;;AAG9B;A;;;;;AAGmC;;;;A;;;;;;AAKnC;AACA;A;;;;;;AAG2B;A;;;;;A;AAI1B;A;AAED;A;;;;;AAGgC;;;;A;;;;AAGhC;A;;;;ACxTA;A;;;;;AAMuC;A;;;;;A;AAiFtC;A;AAKG;AACA;;;;AACJ;;;;;A;AAEE;;A;A;AAGA;A;A;AAGA;A;AAED;A;;A;AAWA;A;AAGD;AACI;AACA;;;AACH;AACA;AACA;AAHuB;A;A;AAYvB;A;AAGD;A;AAEC;AACA;AAGA;AACA;AACI;;;AACH;AACA;AACA;A;AAEC;A;AAED;AACA;AAR0C;A;A;AAY5C;;;;;;A;AAEE;;A;AAED;AACA;AACA;AACA;AACA;A;AAEK;;;A;AAOF;A;AAED;AATwC;A;A;AAYzC;A;AAIC;A;AAED;AACA;AACA;AACI;;;A;AAEF;A;AAED;AAJuC;A;A;A;;A;AAazC;;;;;;A;A;AAMG;;A;AAED;A;A;;AAGF;;;;;AACC;;;;;A;AAEE;A;A;;A;;A;AAMJ;A;;;;;;AA+CA;;AACI;;A;AACF;A;A;AAGF;AACA;AACA;AACA;AACA;A;AAEA;;;;A;AACC;A;A;AAGA;AACA;AACA;A;A;AAGG;;A;AACF;A;AAED;AACA;AACA;A;;AAGA;A;A;A;;;;;;;;AAKD;A;AAEE;AACA;A;AAEC;A;AAED;A;A;AAGA;A;AAED;A;AAEC;A;A;A;;;;;;;A;AAOD;A;AAED;A;;;;;;AAUA;;AACI;;A;AACF;A;A;AAGF;A;AAEC;A;AAED;AACA;A;AAEC;A;AAED;AACA;AAEA;AACA;AAGI;;;AACH;;AACI;;A;AACF;A;A;AAGF;AACA;AACA;AARsB;A;AAUnB;;;AACH;AADmC;A;A;AAInC;A;AAKG;;;;;;AACH;;;;A;AAEC;A;AAED;;A;AAEC;AACA;AACA;A;AAGG;AACA;AACA;A;A;AAKH;AACA;A;AAEC;A;AAED;A;AAEA;AACA;AACA;A;AAEA;AACA;AACA;A;AAfA;A;AAiBD;;AACI;;A;AACF;A;A;AAGF;AACA;AACA;A;AAEC;A;AAEG;;;AACH;AACA;AAFoB;A;A;A;AAOrB;A;A;AAQA;A;AAGD;A;;;;;;;A;AAcA;;;A;AACC;A;A;AAEA;A;A;AAGF;AAGE;;;;A;AAEC;AACA;A;AAEG;AACA;AAEJ;;;;;;;;;;A;AACC;A;AAEC;AACA;AACA;AACA;A;AAED;A;A;AAEA;AACA;A;AAGA;AACA;A;A;AAEA;AACA;A;A;AAEA;AACA;A;A;AAEA;AACA;A;A;AAEA;AACA;A;A;AAEA;AACA;A;A;AAEA;AACA;A;;AAEA;AACA;A;A;AAED;;A;AACC;;AACI;;A;AACF;AACA;A;A;AAGF;AACA;AACA;A;AAGG;AACJ;;A;AACC;;AACI;;A;AACF;AACA;A;A;AAGF;AACA;AACA;A;;AAEG;;;;A;AACF;AACA;A;A;AAKF;;;A;AACC;A;A;AAEA;AAEA;AACA;;AACI;;A;AACF;AACA;A;A;AAGF;AACA;AACA;AACA;A;;AAEA;AACA;A;A;A;AAKA;AACA;A;AAGD;;;;AACA;AAGF;AAGE;A;AAEC;A;AAED;A;AAGC;AACA;AACA;AACA;A;AAED;A;;;;;;;;AAQD;AACA;AAGA;;;;AACA;A;AAEC;AACA;A;AAED;AACA;A;AAEC;AACA;A;A;AAIA;AACA;AACA;A;AAGD;AACA;A;;;;;;;;AAMA;A;AAEC;A;AAGD;;;;AACA;AACA;AACA;A;AAEC;AACA;A;A;AAIA;AACA;AACA;A;AAED;A;;;;;;;A;A;AAME;A;AAED;A;AAED;A;;;;A;AAMC;A;AAED;A;;;;;AAIA;;;;A;AAEC;A;AAED;AACA;AACA;AACA;A;;;;;;;AASA;AAIA;;;;AACA;AACC;;AACC;;;;A;AAEC;AACA;AACA;A;AAED;AACA;AACA;A;AAED;AACA;A;AAEC;AACA;A;A;A;AAIC;AACA;AACA;AACA;A;AAED;AACA;AACA;A;A;A;;;;;;AAMC;;;A;AACF;A;AAED;A;;;;AAIA;;AAEK;AACA;;;AACH;AADoB;A;AAGjB;;;AACH;AADsB;A;AAGnB;;;AACH;AADsB;A;AAGnB;;;AACH;AADsB;A;AAGvB;A;A;;;;;;AAKD;AAOA;AACA;A;;;;;;AAYA;AAEI;AACJ;AACA;AACA;AACA;AACA;AACA;A;;;;;;;AAWA;AAEI;AACJ;AACA;AACA;AACA;AACA;AACA;A;;;;;ACjvByC;A;;;AAIzC;A;;;;AAIiC;A;;;;;AAGD;A;;;;;AAEA;A;;;;AAEI;A;;;A;AAKnC;A;A;AAGA;A;AAED;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A;A;A;A;A;A;A;A;;;;A;A;A;A;A;A;A;A;A;A;A;A;;;;;;;;;;;;;;;A;;;;;;;;;;;;;;;;AC5D0B;A;;;AAQ1B;AACA;AACA;A;;;;;AAG6B;A;;;;AAEK;A;;;;AAQlC;AACA;AACA;AACA;A;;;;A;AAKC;A;A;AAGA;A;AAED;AACA;A;;;AAIA;AAMA;A;;;AAIA;AACA;A;;;AAKA;;;;AACA;;AACK;A;AAEH;;;;A;AAED;;AACC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AAED;;;;;AACC;AACA;A;;AAED;AACA;AACA;A;AAED;A;;;;;;AAIA;A;;;;;A;;;;AAIiC;A;;;;AAGjC;AACA;A;;;AAImC;A;;;;;;A;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/DnC;;A;;;;;;AASA;AACA;;A;AAEC;A;AAED;A;;;;;;;A;AAKC;A;AAGG;AACJ;;;;AACA;;A;AAGC;A;AAIE;;;A;A;AAED;A;AAED;AACA;A;AAGD;AACA;;;A;AACC;AACA;A;AAED;A;;;;;;;A;AAQC;A;AAED;;AACA;A;;;;;;;AAIA;AACG;;;A;AACF;A;AAEA;A;AAID;;;A;A;AAGE;A;AAED;A;AAED;A;AAEC;AACA;A;AAED;AACA;;A;AACC;;;A;A;AAGE;A;AAED;A;AAED;A;AAEC;AACA;A;A;AAIF;;A;AACC;;A;AACC;;A;;AAEA;;A;A;;AAGD;;A;AAED;AACA;A;;;;;;ACzHA;;A;;;;;;AASA;;A;AACC;;A;AAED;A;;;;;;;AAWA;AAEA;;A;AACC;A;AAED;;A;AACC;A;AAED;AACA;AACA;A;;;;;;;;;AAKA;AAIA;A;A;AAOC;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;A;AAGA;A;AAED;AACG;;;A;A;;A;AAGH;;A;AAEC;AACA;AACA;AACA;AACA;AACG;;;A;A;;A;A;AAIJ;;A;AAGC;;;;A;A;;A;AAIA;A;A;;A;;;;;;;;;AASD;;A;AACC;;A;A;A;;;;;A;A;A;;;;;A;AAQD;;;;A;AAEC;AACA;A;AAED;;AACA;A;;;;;;;AAKA;;A;AACC;;A;A;AAGA;A;AAED;;AACA;A;;;;;;;AAMA;;A;AACC;;A;A;AAGA;A;AAED;;A;AAEC;A;AAED;;AAEA;AACA;AACA;AACA;AACA;;;AACA;A;;;;;;;;;;A;A;A;A;A;A;A;A;A;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1FA;A;AAGC;AACA;A;AAGA;AACA;;AACC;A;A;A;;;;AA+BF;;A;AACC;A;AAED;A;;;;;;AAQ4B;;A;;;;;;AAEC;A;;;;;AAEK;A;;;;;AAER;A;;;;;;AAQ1B;AACA;AACA;;;;;AACA;AACA;A;;;;;;;A;AAKC;A;A;AAGA;A;AAED;;;A;AACC;A;AAED;AACA;A;;;;;AAIA;AAMA;A;;;AAIA;AACA;A;;;;;;;A;AAoBA;;;A;AACC;;A;A;AAIA;;A;;AAEA;A;A;A;;;;;A;;;;;;AAKgC;A;;;;;AAGjC;AACA;A;;;;;AAUA;AACA;;A;;;;;;AAKI;AACJ;A;AAEC;;;;;AACC;A;;A;AAGF;;A;;;;ACtPA;AACA;AACA;A;;;AAMI;;;AACH;AACI;;;A;AAEF;A;AAEA;A;AAJiB;A;AAOnB;AAToB;A;A;;;AAgBrB;AACA;;;;;AACC;A;;AAED;A;;;AAYA;AACA;AACI;;;AACH;AACI;;;AACH;AACA;AAFkB;A;AAFC;A;AAOrB;A;;;A;AAOC;AACA;;AACC;AACA;AAGA;A;AAED;A;A;AAGA;A;AAED;A;;AC/EkD;A;;AACA;A;;;AACA;A;;;;;;;;A;A;A;;;;;;;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACClD;AAOA;A;;;AAYA;AACA;AACA;AACA;AACA;AACA;A;AAEC;A;AAEA;A;AAED;A;;;AAMI;;;;;;;;;;;;AACA;;;AACH;;;;AACI;;;AACH;AACA;AACA;AACA;AACA;AACA;A;A;AAIC;A;AAEA;A;AAED;AACA;AACA;AACA;AAjB0B;A;AAFG;A;A;;;ACE/B;A;;;;AA2EqC;A;;;;;AAOK;A;;;;A;AAIzC;A;AAED;A;;;;;A;AAKC;A;AAEE;;;A;AACF;A;AAED;;A;AAEC;A;A;AAGA;A;A;AAGA;A;AAED;AAEA;AACA;A;AAEC;A;AAED;A;AAEC;A;A;AAIA;A;AAGD;AACA;A;A;A;A;AAKE;A;AAEA;A;A;A;A;AAKA;A;AAEA;A;A;A;A;AAKA;A;AAEA;A;A;A;A;AAKA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;A;A;A;AAKA;A;AAEA;A;AAEA;A;AAEA;A;A;AAGF;;A;AACC;;A;AAED;;;;AACA;;A;;;;;;;AAIA;A;AAEC;A;AAED;;;;A;AAEC;A;AAED;;A;A;AAGC;AACI;;;AACH;AADmB;A;AAGhB;;;AAMH;AANqB;A;AAQtB;A;A;AAKA;A;AAED;;A;;;;;;;A;AAKA;;;;A;A;AAEE;A;AAED;;;;A;AAEC;A;AAED;;AAEA;A;A;AAGC;A;AAEA;A;AAEA;A;AAED;A;A;A;AAIC;A;AAED;;;;A;AAEC;A;AAED;;AAEA;AACA;A;A;A;AAIC;A;AAED;;;;A;AAEC;A;AAED;;A;AAGC;A;AAEG;;;AACH;AACA;AAFkB;A;A;;AAMnB;A;A;AAED;;A;;;;;;;A;AAYC;A;AAED;;AAEI;;A;AACF;A;AAIE;;;A;AACF;A;AAED;A;AAEC;A;AAED;AACA;;A;A;AAGA;A;AAED;;;;AACA;;AACA;AACA;A;;;;;;;AAKA;;;;A;AAEC;A;AAED;AACI;AACJ;;;A;AACC;;;;A;AAEC;A;A;A;AAID;;;;A;AAEC;A;AAEG;;;AACH;;;;A;AAEC;A;AAED;;A;AACC;A;AANuB;A;A;AAY1B;AACI;;;A;AAEF;A;AAED;;;;AAJiC;A;AAMlC;;A;AACC;;A;A;AAGA;A;AAGD;A;;;;;;;AAKA;AACA;AAEC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAED;;;;A;AAEC;AAEA;AACA;A;AAKC;A;A;A;A;AAKD;A;AAEC;AACA;A;AAEA;AACA;A;A;AAGD;AACA;AACA;A;AAEA;A;AAEC;AACA;A;AAEA;AACA;A;A;AAGD;AACA;AACA;A;AAEA;AACA;AACA;A;AAEA;A;AAEC;AACA;A;AAEA;AACA;A;A;AAGD;AACA;AACA;A;AAEA;A;AAEC;AACA;A;AAEA;AACA;A;A;AAGD;AACA;AACA;A;A;AAGA;A;AAED;AAGA;AAEA;AACA;AAEI;;;AAEH;;;A;A;AAGE;A;AAED;A;AAID;AACA;A;A;A;AAKK;;;AACH;AADsC;A;A;AAIvC;;;;;;AACC;A;;A;AAMG;;;AACH;AAD8B;A;AAG3B;;;AACH;AADsC;A;A;AAIvC;A;AAEA;A;A;A;A;AAOC;AACI;;;AACH;AACI;;;AACH;AACA;A;AAEC;A;AAED;AACA;AAPoC;A;AAFf;A;A;AAanB;;;AACH;AACI;;;AACH;AACA;AAFoC;A;AAFf;A;A;A;A;AAUvB;AACI;;;AACH;AACI;;;AACH;AACA;A;AAEC;A;AAED;AACA;AAPoC;A;AAFf;A;A;AAanB;;;AACH;AACI;;;AACH;AACA;AAFoC;A;AAFf;A;A;A;A;AAUvB;AACI;;;AACH;AACI;;;AACH;AACA;A;AAEC;A;AAED;AACA;AAPoC;A;AAFf;A;A;AAanB;;;AACH;AACI;;;AACH;AACA;AAFoC;A;AAFf;A;A;A;A;AAUvB;AACI;;;AACH;AACA;A;AAEC;A;AAED;AANsB;A;A;AASvB;AACA;A;A;AAGG;;;AACH;AACA;AAFsB;A;A;A;AAMtB;;;;;;AACA;;;;;;AACI;;;AACH;AACA;AACA;AACA;A;AAEC;A;AAED;AACA;AACA;AACA;AACA;AACA;AAbsB;A;AAevB;A;AAEA;;;;;;AACI;;;AACH;AACA;AACA;AACA;AACA;AACA;AANsB;A;AAQvB;A;A;AAGG;;;AACH;AACI;;;AACH;A;AAEC;A;AAED;AACA;AANoC;A;AAFf;A;A;AAYnB;;;AACH;AACI;;;AACH;A;AAEC;A;AAED;AACA;AANoC;A;AAFf;A;A;AAYnB;;;AACH;AACI;;;AACH;A;AAEC;A;AAED;AACA;AANoC;A;AAFf;A;A;A;AAalB;;;A;AAEF;A;AAFqB;A;A;AAMxB;AACA;A;AAEA;AACA;A;A;AAGC;AACI;;;AACH;AACA;A;AAEC;A;AAED;AANsB;A;A;AASnB;;;AACH;AACA;AAFsB;A;A;A;AAMpB;;;AACH;AACA;AACA;AAHsB;A;A;A;AAOtB;AACA;AACA;AACI;;;AACH;AACA;AACA;AACA;A;AAEC;A;AAED;AARsB;A;A;AAWnB;;;AACH;AACA;AACA;AACA;AAJsB;A;A;A;AAQpB;;;AACH;AACA;AACA;AACA;AACA;AALsB;A;A;AAUxB;;;;AAhRuB;A;AAmRxB;A;;;;;;;AAKA;AAEC;AACA;AACA;AACA;AACA;AAED;A;A;AAEC;AACA;;;;;;AACA;A;A;AAEA;AACA;;;;;;AACA;A;A;AAEA;AACA;;;;;;AACA;A;A;AAEA;AACA;;;;;;AACA;A;A;AAEA;AACA;;;;;;AACA;A;A;AAEA;AACA;;;;;;AACA;A;A;AAEA;AACA;;;;;;AACA;A;A;AAEA;AACA;;;;;;AACA;A;A;AAEA;AACA;;;;;;AACA;A;AAED;;;;;AACI;;;AACH;AACI;;;AACH;AACA;AACA;AAHwC;A;AAFD;A;A;;;;;;;;;AAWzC;AACA;;;;A;A;;A;A;;;A;;;;;;;A;AASC;A;AAED;;A;;;;;;;AAKA;;;;A;AAEC;A;AAED;AACA;AACA;;A;AAIA;;;;;;A;A;AAEE;A;AAED;AACA;;A;A;AAGC;A;AAED;AACA;;A;A;A;AAIE;A;A;AAGD;A;AAED;AACA;;A;A;AAGC;A;AAOA;A;AAED;AACA;;A;A;AAGC;A;AAED;AACA;;A;A;AAED;;A;AACC;;A;AAGG;AACJ;;AACC;;;;A;AAEC;A;AAED;;AACA;A;AAED;;A;;;;;;;AAIG;;;A;AACF;A;AAED;;;A;AACC;A;AAED;A;;;;;;;AAIA;;;A;AAEC;A;A;AAGA;A;AAED;A;;;;;;AAMA;;AAIG;;A;A;AAED;A;AAED;A;AAED;;AACI;;A;A;AAED;A;AAED;A;A;AAGF;A;;;;;;AAMA;;AAIG;;A;A;AAED;A;AAED;A;AAED;AACI;;A;A;AAED;A;AAED;A;AAED;A;AAEC;A;A;AAGA;A;A;AAGE;A;A;AAGH;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAED;A;;;;AAQA;A;;;ACp8BA;AACA;AACA;AACA;A;;;;AASG;;;AAAH;;A;AACC;;A;AAED;;AACI;;;AACC;;;AACH;;;;A;AAEC;A;AAH6B;A;AADD;A;AAQ/B;A;;;;A;AAMC;A;AAED;A;;;;;A;AAKC;A;AAED;A;AAEC;AACA;A;AAED;AACA;AACA;AACA;AACA;AACA;;AACA;;AACA;;AACA;;;;AAEA;;;A;AAEC;A;AAED;;;A;AAEC;A;AAED;;;A;;;;;;;;AAIA;;AACA;AACA;A;A;AAIC;AACA;A;AAEA;AACA;A;AAEA;AACA;A;AAEA;AACA;A;AAEA;AACA;A;AAEA;AACA;A;AAEA;AACA;A;AAED;AACA;AACA;AACA;A;;;;;;;;A;AAKC;AACA;A;AAED;AACA;;;;;;AACC;;AACA;AACA;AACA;A;AAEC;A;AAED;A;;AAED;AACA;;A;AACC;A;A;;;;;;;;AAWD;A;AAEC;A;AAED;A;;;;;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACI;;;AACH;AACA;AAFkB;A;AAInB;AACA;AAGA;AACI;;;AACH;AACA;AAFoB;A;AAIjB;;;AACH;AACA;A;AAEC;A;AAJmB;A;A;AAQpB;AACA;A;AAID;AACI;;;AACH;A;AAEC;A;AAHiB;A;A;AAOlB;AACA;A;AAID;AACI;;;AACH;AACA;AAFoB;A;AAIjB;;;AACH;AACA;A;AAEC;A;AAJmB;A;A;AAQpB;AACA;A;AAID;AACI;;;AACH;AACA;AAFoB;A;AAIjB;;;AACH;AACA;A;AAEC;A;AAJmB;A;A;AAQpB;AACA;A;AAGD;A;;;AAIA;;;;;AACC;A;;A;;;;;;AAKD;;A;AACC;;;;A;AAEC;A;AAED;AACA;A;;AAEA;A;AAED;AAEA;A;A;AAIC;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAOD;;AACA;AACA;;;;;A;AAEE;A;AAEA;A;AAED;A;;AAED;A;AAEC;A;AAEA;AACA;A;AAED;AAEA;;AACA;;AACA;;AACA;;AAEI;;;AAEH;A;AAEA;;;;;;;;A;AACC;;A;AACC;AACA;A;;AAEI;;;AACH;;;AACA;AACA;AAH8B;A;A;A;A;AAQhC;AACA;;;;A;AAEC;;;;A;AAEA;;;;A;AAED;;A;AACC;AACA;AACI;;;AACH;AACA;AACA;AACA;AAJoB;A;A;;AAOjB;;;AACH;;;;;;AACA;AACA;AACA;AACA;AAL8B;A;A;A;A;AAShC;;A;AACC;AACA;A;;AAEA;AACI;;;AACH;;AACA;AAF8B;A;A;A;A;AAMhC;;A;AACC;AACA;A;;AAGI;;;AACH;;;AACA;AACA;AACA;AACA;AACA;AAN8B;A;A;A;A;AAU5B;;;AACH;;;AACA;AACA;AACA;AAJ8B;A;A;A;AAQ3B;;;AACH;;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAR8B;A;A;A;AAY3B;;;AACH;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAV8B;A;A;A;AAkBhC;A;AAEC;A;AAIE;;;A;AACF;A;AAID;;;;AAtH8B;A;AAwH/B;A;;;;;;;A;AAMC;A;A;AAGA;A;AAEA;A;AAED;;A;AAEC;A;AAED;;A;;;;;;A;A;AAQC;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;A;;;;;AAI8B;A;;;;;;;AAK3B;AACJ;;A;;;;;;;AAQA;;;;;;;;A;AAEC;A;AAGG;AACJ;;A;AACC;;AACA;A;A;AAIA;A;AAED;;A;AACC;A;AAGD;AACA;AACA;AAEI;AAED;;AAAH;;A;AACC;;;A;AAED;;A;AACC;A;;A;;AAGA;;;;;;A;AACC;A;A;AAEA;A;A;AAEA;;;A;AACC;A;;AAEA;A;A;A;AAIA;A;;AAEA;A;A;A;AAKH;;;AACA;AACA;;A;AACC;A;AAED;AACA;AACA;A;;;;;;;;;;;;;;;;;;A;A;A;A;A;A;A;A;A;A;A;A;A;;;;;;;;;;;;;;;;;A;A;A;A;A;A;A;A;;;;;;;;;;;;;;;;;;;;;;;AC9fA;;;;A;AAEC;A;AAED;;;;A;AAEC;A;AAEE;;A;AACF;A;AAED;A;;;;;;A;A;A;A;A;A;A;A;A;A;;AA+CC;AACA;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpBD;A;AAGA;;;;A;AACC;A;A;AAWA;A;A;AAWA;A;;AAWA;A;A;AAGD;A;;;;;;AAOA;AACA;AACA;A;AAGC;A;AAID;AAGA;;A;AAEC;A;AAID;AACA;;;;;AACC;A;;AAGD;A;;;;;;AAOI;AACJ;AAEA;;;;;;AACC;A;AAGC;A;AAGA;A;AAEA;A;A;A;AAKC;AAEA;A;AAGD;A;A;;AAIF;A;;;;;;AAaI;;;AACH;AACA;AAEA;AACA;;AACC;AACA;A;AAGC;A;AAGD;;;;A;AAGC;A;AAGD;;;;A;AAGC;A;AAGD;;;;A;AAGC;A;A;AAIA;AACA;A;AAEA;A;A;AAIF;AAGI;;;AACH;AADkB;A;AAInB;AAEA;A;AAGD;A;;;;;;;AAMA;;AACA;;AAGA;AAGA;A;AAIA;;;;A;AACK;;;AACH;AAEI;AACJ;AAEI;;;AACH;AACA;AACA;AAHwC;A;AAKzC;AAX0B;A;A;A;AAcvB;;;AACH;AAEI;AACA;;;AACH;AACA;;AAFwC;A;AAKzC;A;AAEC;A;AAGD;AAd0B;A;A;A;AAiB3B;;;;;AACC;A;;A;A;A;;;;;;;;A;AAQF;;;;A;AACC;A;AAEA;A;AAEA;A;AAEA;A;A;AAGD;A;;;;;;;A;AAOA;;;;A;AACC;A;AAEA;A;AAEA;A;AAEA;A;A;AAGD;A;;;;;;;AAeA;;AACA;;A;AAGC;A;AAGD;A;AAGC;A;AAGD;A;A;AAIC;A;AAGC;A;A;AAGD;AACA;A;AAEA;A;AAGD;A;;;;;;AAQA;AAGA;;;;;;;;;;;;A;AAEC;A;AAGA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;A;AAGD;A;;;;;ACzUA;AAGI;AACA;AACA;AACA;AAEJ;;;;;AACC;;AACA;;;;A;AAGC;;A;AAGD;A;AAGC;A;A;;A;AAKD;A;AAEA;A;AAGD;AAcA;AAEA;A;;;;;;AAwDA;A;;;;;;AAkBA;A;AAIC;A;A;AAMA;A;AAID;AAGA;AAEA;AAGA;AACA;AAEI;;;AACC;;;AACH;AADqB;A;AADD;A;AAMtB;AACA;;;;;;AACC;;;;;;AACC;;A;AACC;AACA;AACI;;;AACC;;;AACH;AAD4C;A;AADD;A;A;A;;A;;AAShD;A;;;;;;;;AASA;;AAEA;AAEI;AACJ;;A;AAGC;A;AAGD;A;;;;;;;AASI;AAEJ;;;;A;AAGC;A;AAED;;;AACA;A;;;;;;;AASI;AAEJ;;;;A;AAGC;A;AAGD;;A;;;;;;;AAOA;AACA;AAEA;;AAGA;AAEI;;;AACC;AACA;AAEJ;;;;AAEA;;A;AACC;;A;AAGD;AACA;;A;AACC;A;AAID;A;AAKC;AACA;AACA;A;AAvB8B;A;A;;;;;;;AAmChC;A;;;;;;AAeA;AAEA;AACA;AACA;AAEA;;;;;AACK;;;AACH;AACA;AAGA;AACA;;;AACA;AAEA;AAT4B;A;A;;AAe9B;AAGA;AACI;;;AACH;AAEA;;;;;;AACC;;A;AACC;;A;AAGD;;AAEA;A;;AAVmB;A;AAerB;AACI;;;AACH;AAEA;;;;;;AACC;AACA;;A;AACC;;A;AAGD;;AAEA;A;;AAXmB;A;AAgBrB;AAEA;A;;;;;;;AAcA;A;AAGC;A;AAID;AAGA;AAMA;AACA;;AACC;AAEA;A;AAGD;;A;AACC;A;A;;;;;;;AC9YD;AASA;AACA;AACA;AACA;AACA;AAEA;;;;A;AAEC;A;AAGD;A;;;;;AAIA;AACA;AACA;AACA;AAGA;AACA;AACA;AAGA;AACA;AACA;AAGA;AACA;AACA;A;;;;;AAIA;;;;;AACC;;;;;A;AAEE;;A;AAGD;A;;A;;A;;;;;AAMF;AAEI;;;AACH;AACA;AAEA;AAJ6D;A;A;;;;;;AAS9D;AACA;AAEA;;AAGI;;;AACH;;;;;AADmB;A;AAKhB;;;AACH;;;;;AADmB;A;AAKpB;;;;;AACA;;;;;AACA;;;;;AAGI;;;AACH;;;;;AADoB;A;AAKjB;;;AACH;;;;;AADoB;A;AAKrB;A;;;;;;;;AAIA;AAEA;;AACA;A;AAGC;A;AAGG;;;AAEH;;;;;AAGA;;;;;AALwB;A;A;;;;;;;;AAiBzB;AACA;AAEA;AACA;AAEI;;;AACC;A;A;AAGH;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAID;;;;;A;AAGC;A;AAID;A;AAEE;A;AAEA;A;A;AAIE;A;AAEA;AACA;A;A;A;AAIA;A;AAEA;AACA;A;A;A;A;AAOF;A;A;AAIA;A;A;AA1D2B;A;AA+D9B;A;;;;;ACrQI;AAEJ;AACA;AAEA;;;;;AACC;AACA;A;;AAGD;AACA;AACA;AAEA;A;;;;;AAKA;AACA;A;;;;;AAMA;A;;;;;AAQI;AACA;;;AACC;;;A;AAEF;A;AAF4B;A;AADD;A;AAQ9B;A;;;;;AAKA;AACA;A;;;;;AAKA;;;;;;AACC;;;;;;AACC;A;;A;;A;;;;;AAOF;AAEA;;;;;AACC;A;;AAGD;A;;;;;AAoCA;A;;;;;AAUA;AAEI;;;AACH;AACA;AAEI;;;AACH;A;AAGC;AACA;A;AAEA;A;AAEC;A;AAEA;A;A;AAX2B;A;AAJD;A;AAqB1B;;;AACH;AACA;AAEI;;;AACH;A;AAGC;AACA;A;AAEA;A;AAEC;A;AAEA;A;A;AAX2B;A;AAJD;A;AAqB9B;A;;;;;AAOA;AAEI;;;AACC;;;AACH;AACA;AACA;AACA;A;AAGC;A;AAP4B;A;AADD;A;AAa9B;A;;;;;AASA;AAEI;;;AACC;AAEA;;;AACH;AACG;A;AACF;A;A;A;AAOA;AACA;A;AAGC;AACA;A;AAf2B;A;AAHD;A;AAwB1B;;;AACC;AAEA;;;AACH;AACG;A;AACF;A;A;A;AAOA;AACA;A;AAGC;AACA;A;AAf2B;A;AAHD;A;AAwB9B;A;;;;;AAKA;AACA;AAEI;;;AACC;;;AACA;A;AACF;A;AAF4B;A;AADD;A;AAQ9B;A;AAEC;A;AAGD;A;;;;;;ACsiFA;A;AAGA;;;;;A;AACC;A;A;AAEA;A;A;AAEA;A;A;AAEA;A;;AAEA;A;A;AAGD;;A;AACC;A;AAGD;AAEA;AAEA;AAEA;A;;;;;;;A;AASC;A;AAGD;AACA;AAEA;A;;;;;;AAKA;AACA;;;;;AACC;A;;AAGD;A;;;;AAYI;AAEJ;;;;;A;AAEE;;A;AAEA;;A;AAEA;A;AAGD;A;AAGC;AACA;A;A;;AAIF;A;;;;AAIA;AAEI;A;AAIH;A;AAEA;A;AAGD;A;;;;;AAKA;AAEA;;;;;AACC;A;;AAGD;A;;;;;A;AAOC;A;AAGD;A;;;;;AAQA;A;;;;;AAMA;A;;;;;;;;;;;;;;;;;;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;;;;;;;;;;;;;;;;;AC97FA;;;;AACA;;A;AACC;;A;AAED;;A;;;;;;A;A;A;A;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACdgC;A;;;;;A;AAyI/B;A;AAED;A;;;;;AAKA;A;;;;;;AAYA;;;;;A;AACC;A;A;AAEA;A;A;AAEA;;;A;A;AAEA;;;A;;AAEA;;;A;A;A;;;;;;;;AAMD;AAGA;;A;AACC;A;A;;;;;;;;AAOD;;;A;AAEC;AACA;A;AAGA;A;;A;AAIC;A;AAED;A;A;AAGD;;A;AAEC;A;;AAEA;A;AAGD;;A;;;;;;;AAOA;;A;AACC;A;AAID;;;;;;AACC;AACA;;;A;AAEE;A;A;AAGA;A;AAED;A;;;A;;AAKF;;;;;;A;A;;A;;;AACK;A;AAEJ;;;A;AACC;;;A;A;AAEA;;;A;;AAEA;A;A;AAED;;A;AACC;A;A;;AAKF;;;;;;A;A;;A;;;AACC;;A;AACC;;A;A;;AAKF;;AACA;;;;;;A;A;;A;;AACI;;AAAH;;A;AACC;;A;A;;AAKF;;AACA;;;;;;A;A;;A;;;AACC;;A;AACC;A;A;;AAKF;;AACA;;;;;;A;A;;A;;;AACC;AACA;;A;AACC;;A;A;;AAKF;;;;;AACC;;A;;AAID;;A;AACC;A;A;;;;;;;;AAQD;;;;;;A;A;;A;;AACI;;AAAH;;A;AACC;A;A;;AAKF;;;;;;A;A;;A;;AACI;;AAAH;;A;AACC;;A;A;;AAKF;;AACA;;;;;;A;A;;A;;AACI;;AAAH;;A;AACC;;A;A;;AAKF;;AACA;;;;;;A;A;;A;;AACI;;AAAH;;A;AACC;A;A;;AAKF;;AACA;;;;;;A;A;;A;;AACI;;AAAH;;A;AACC;;A;A;;AAKF;;;;;AACC;;A;;A;;;;;;;;;AAOD;AACA;AACA;;;;;;AAEC;A;A;A;AAME;AACA;A;A;A;AAKD;AACA;A;AAQA;AACA;AAED;;;A;AAEC;A;AAED;;A;AACC;;A;AAEC;A;A;A;AAIC;A;AAEE;;A;AACF;A;AAGD;AACA;A;A;AAOF;;A;AACI;;;AAAH;;A;AACC;;;;AACA;;A;AAED;;;;;AACA;;A;AACC;;A;AAED;AACG;;;A;AACF;A;AAED;AAKA;AACA;;A;AAGG;A;AAEH;A;A;AAIG;;;A;AACF;AAGA;A;AAEA;A;A;AAIE;AAGD;;AAAH;;A;AACC;;A;AAMD;;A;AAIC;;A;AACC;;A;;AAEA;;A;A;AAKF;;A;AACC;;A;AAKE;;;AAAH;;A;AACC;;;;AACA;;A;AAKE;;;AAAH;;A;AACC;AACA;A;AAMA;AACA;AAED;;A;AACC;;A;AAIC;AACA;A;A;AAKF;;;;;A;AAEC;A;A;AAMA;A;AAOE;;;A;AACC;;;A;AACF;AACA;A;AAEC;A;A;A;AAIH;;A;AACC;;A;AAED;AAKA;;;;;A;AACC;;A;A;AAEG;;A;AACF;A;AAID;;A;AACC;AACA;;A;AAKD;;A;AAEC;AACA;;A;AAED;A;A;AAEA;A;A;AAEG;;;A;AACF;A;AAED;;A;AAEC;AACA;;A;AAED;A;;AAEA;A;A;A;;AAMF;;A;AAEC;AACA;AACA;;;;;;A;A;;A;;AACC;AACA;A;;AAED;A;;A;AAID;;A;AAEC;A;A;;A;;;;;;;AAQD;;;;;AACI;;;AAAH;;A;AAEC;AACA;;A;AAED;;AACA;;A;AACC;;A;AAED;A;;A;;;;;;;;A;AAOA;A;AAED;;A;;;;;;;A;AAMC;A;AAED;;A;;;;;;;AAQA;;A;AACC;;A;AAED;A;AAEC;A;AAID;;;A;;;;;;;;AAKA;;A;;;;;;;;AAMA;;A;AACC;AACA;A;AAED;;A;;;;;;;AAeA;A;;;;;AAsBA;A;;;;;;;AASA;AACA;AACA;AAEA;;;;A;A;AAEC;;A;A;A;AAEA;;A;AAGC;;A;;AAIA;AACG;;;AAAH;;;;;A;AACC;;A;AAED;;A;A;;A;AAGD;;A;A;AAOA;A;A;AAGA;A;A;;A;;;;;;;AASD;AACA;AACA;A;AAMC;A;A;;;;;;;AAQD;AAGA;;;;;AACC;A;;AAED;A;;;;;;AAOA;AAGA;;;;;AACC;A;;AAED;A;;;;;;;A;AAiEC;AACA;A;AAID;AACA;AACA;AAGA;;;;;;AAEC;;;A;AACC;;A;AAID;;A;AACC;;;;AACA;AACA;A;AAKC;AACA;;;;;;AACC;A;;AAED;A;A;AAKF;;;AACA;;;;;AACA;;A;AACC;;A;AAED;AACA;A;;AAID;;A;;;;;;;AAKA;;;;;A;A;AAEC;A;A;AAEA;A;A;AAEA;;;A;A;AAEA;;A;A;;;;;AAOD;A;;;;A;AAMC;A;AAKE;;;AAAH;;A;AACC;;A;AAEC;A;AAED;A;AAKD;;AACA;;;;;;A;AACC;;A;AAED;;;;AACA;;;AACA;;A;;;;;A;AASC;A;AAED;;AACA;;A;AAEC;A;A;AAGA;A;AAEG;;;;;AACH;;;AACA;;;;;;A;AACC;;;A;AAEC;A;AAED;A;AAPmC;A;A;;;;;;;;;AAyBrC;;;;;A;A;AAGC;;;A;;;;;;;A;A;A;;;;;;A;A;A;;;;;;;A;A;AAQA;;A;A;;;;;;;;;AAUE;;;AAAH;;A;AAKC;AAEA;A;AAKE;;;AAAH;;A;AACC;;AACA;;A;A;AAEE;A;AAED;;;A;A;;;;;;;A;A;A;AAOF;;AACA;;AACA;;A;AAEC;;A;AAGD;;;;A;A;AAEC;;;;;A;A;;;;;;;A;AAIG;;;A;AACF;A;A;A;A;AAGD;;A;AAEC;;A;AAED;AAEA;;;A;;A;AAEA;;A;AAGD;;A;AAEC;A;AAID;;AACA;;;AACA;;A;;;;;;;A;;;;;A;AASC;A;AAED;;A;AACC;;A;AACC;A;AAEE;;;A;AACF;A;AAED;A;AAEE;;AAAH;;A;AACI;;AAAH;;A;AACC;;;;;AACC;A;;A;A;AAIA;;;AAAH;;A;AACC;A;AAEE;;;A;AACF;A;AAED;A;;;;;AAKA;;;;;AACC;;A;AACC;;A;AAEE;;;AAAH;;A;AACC;;;A;AACC;;A;AAED;;AACA;;A;AAED;A;;A;;;;;;AAOE;;;AAAH;;A;AACC;;;A;AACC;A;AAED;;AACA;;AACG;;;;AAAH;;A;AACC;A;A;AAIC;;;AAAH;;A;AACC;;;;;AACC;A;;AAED;A;AAGE;;AAAH;;A;AACC;;;;;AACC;A;;A;AAIC;;;AAAH;;A;AACC;A;A;;;;;;AAMD;;;A;;;;;;;;;AAOA;AACA;;;AACC;;A;;;AAED;;;;;A;AAEC;A;A;AAGA;A;AAED;;AACA;;;;A;AACC;;;AACC;AACA;AACG;;;AAAH;;A;AACC;A;A;;;;AAGF;A;AAED;AACA;AACG;;;AAAH;;A;AACC;A;A;;;;;;;AAMD;;A;;;;;;;AAKA;;;AACA;AACA;AACA;;;;A;;;;;;A;AAqBC;A;A;AAGA;A;AAED;A;;;;AAQG;;;A;AACF;A;AAED;A;;;;;AAIA;A;;;;;AAIA;A;;;;;AAIA;;;;;;AACI;;;A;AACF;A;A;;AAGF;A;;;;;AAIA;A;;;;;AAGA;A;;;;;AAIA;A;;;;;AAIA;A;;;;;A;AAOC;A;A;AAGA;A;AAED;;;A;AACC;A;A;;;;;;A;AC1vCA;A;AAED;;;A;;;;;;ACgBA;AACA;A;;;;;AAQA;AACA;A;;;;;AAKA;A;;;;;AAyBA;;;;;A;A;AAEC;A;A;A;AAEA;A;A;A;AAEA;A;;A;AAEA;;A;A;;;;;;;AAamC;A;;;;;;A;AA8BnC;A;AAED;;A;AAEE;A;AAED;A;A;;;;AAiCD;AACA;;A;AAEE;A;AAED;;;;;AACC;A;;A;A;;;;AAQF;;;;;A;AAEE;A;A;;A;;;AAOF;;;;;;A;AAEE;A;A;;AAGF;A;;;;;AA+BA;;;;;AACC;;A;AACC;;A;AAED;A;;A;;;;;;AAcD;A;;;;A;AAMC;A;AAED;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A;A;;A;A;A;A;;;;;;;;;;;;ACtHA;;A;;;;;;AAgIA;;A;;;;;;AAqFA;;A;;;;;;AAwCA;;A;;;;;;AAoDA;;A;;;;;;AA6RA;;A;;;;;;A;;;;;;;;;;;ACxMA;A;;;;;A;;;;;;;;;;;AChcA;A;;;;;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5CA;AAIA;A;;;;;;AAKA;;;;;;;;;;;;;;;;;;;;;;;;A;;;;;;;AAmCA;;;;;;;;;;;;A;;;;;;;AC5CI;AACJ;;AACA;;A;AAEC;;;;A;AAED;AACA;AACA;;A;;;;;;ACfA;A;AAEA;;A;AACC;;A;A;A;;;;;;;ACND;AAEA;AACA;AACA;AACA;AACA;A;;;;ACQA;A;;;;;;ACRA;;;;AACA;;A;AAEC;;;;A;AAED;;;;;;;;;;;;;;;;;;;A;;;;;;;;;A;A;A;A;A;A;A;A;A;A;A;;A;A;A;A"}